PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erstellen eines Serienbriefs mit externen Daten funktioniert nicht mehr



Magger
18-11-2019, 20:20
Hallo zusammen,
ich habe seit Jahren Serienbriefe mit externen Daten wie unter https://de.wikibooks.org/wiki/LaTeX-W%C3%B6rterbuch:_Serienbrief_mit_externen_Daten erstellt. Seit einiger Zeit funktioniert das aber nicht mehr. Es gibt keine Fehlermeldung im LaTeX-Log, allerdings wird nur der erste Eintrag in der csv-Datei abgearbeitet und nicht alle weiteren Einträge. Dementsprechend bekomme ich keinen Serienbrief, sondern nur einen Brief. Dokumente, die vorher problemlos kompiliert haben, funktionen nun nicht mehr. Ich nutze ein aktuelles MikTeX unter Windows 10. Hat jemand eine Idee, woran der beschriebene Fehler liegen könnte?

Magger
19-11-2019, 11:24
Ich habe das Problem jetzt mal noch ein bisschen eingegrenzt. Es liegt an einem \section-Befehl innerhalb des Serienbriefes, wenn nur ein Brief und nicht die ganze Serie erstellt wird. Siehe folgendes Minimalbeispiel:

\documentclass{scrartcl}

\begin{filecontents*}{test.csv}
1;Egon;Olsen
2;Benny;Frandsen
3;Kjeld;Jensen
\end{filecontents*}

% Dateiname festlegen (Der Dateiname darf keine Unterstriche enthalten.)
\def\filename{test.csv}

% Befehl zum Parsen der Zeilen
\def\chopline#1;#2;#3 \\{
\def\nummer{#1}
\def\vorname{#2}
\def\name{#3}
}
\newif\ifmore\moretrue

\begin{document}

% Quelldatei einlesen
\newread\quelle
\openin\quelle=\filename

% Schleife über alle Zeilen der Quelldatei
\loop
% einzelne Zeile einlesen
\read\quelle to \zeile
% prüfen, ob das Dateiende erreicht wurde
\ifeof\quelle
\global\morefalse
% Seite erzeugen
\else
\expandafter\chopline\zeile\\

\section{Mitglied}

\begin{labeling}{Nachname:~}
\item[Nummer:] \textbf{\nummer}
\item[Vorname:] \textbf{\vorname}
\item[Nachname:] \textbf{\name}
\end{labeling}

\fi
% neue Seite beginnen
\newpage
% Zähler zurücksetzen
\setcounter{section}{0}
\ifmore\repeat
% Ende der Schleife über alle Zeilen

% Quelldatei schließen
\closein\quelle

\end{document}

Nimmt man den \section-Befehl hinaus, geht es, mit dem Befehl leider nicht.

Das Problem scheint MiKTeX-spezifisch zu sein, jedenfalls tritt der Fehler in TeXLive bei Overleaf (siehe https://www.overleaf.com/read/dpbcvsngjfsx) nicht auf.