Das hängt jetzt eher davon ab, wie gut du im Umgang mit Datenbanken und Programmiersprachen bist. Man kann ja mit den meisten SQL Engines auch konfigurierbare Daten-Reports erstellen. SQL ist es dabei vollkommen egal, ob die erzeugte Text-Datei LaTeX-Befehle enthält oder nicht, ist ja auch nur Text.
Man kann aber natürlich auch einfach CSV exportieren und das dann von LaTeX-Seite beispielsweise mit
datatool verarbeiten. Ob Serienbrief oder irgend ein anderes Dokument ist
datatool Jacke wie Hose. Man muss dabei aber daran denken, jeweils Seitenzähler etc. am Anfang jedes einzelnen Dokuments wieder zurück zu setzen und bei doppelseitigen Dokumenten mit
\cleardoublepage zu enden.
Man kann sich auch ein Python-Programm (oder perl-Skript oder VBasic-Programm oder …) schreiben, das sowohl die Datenbank ausliest als auch Platzhalter in einem Dokument durch die Daten aus der Datenbank ersetzt und die notwendigen LaTeX-Aufrufe durchführt.
Interessanter Weise kann man dafür theoretisch sogar
pandoc missbrauchen. Das arbeitet nämlich für die Konvertierung von Dokumenten ebenfalls mit Templates, die über Variablen gesteuert werden. Es ist möglich, eigene Variablen per YAML oder Kommandozeile vorzugeben. Man könnte nun das Standard-LaTeX-Template
default.latex durch ein Template ersetzen, das bereits Text mit Variablen enthält. Die Variablen müsste man dann passend aus der Datenbank befüllen.
Einfach sollte auch sein, aus der SQL-Datenbank Minidokumente zu generieren, die einen Satz von Befehlen definieren, etwa:
% Dateiname: Datensatz1.tex
\newcommand*{\DATAName}{Heinzelmann}
\newcommand*{\DATATelefon}{1234567}
Dann bastelt man sich ein Dokument, das diese Befehle an den variablen Stellen enthält:
% Dateiname: TemplateA.tex
\documentclass{article}
\begin{document}
\DATAName{} hat die Telefonnummer \DATATelefon.
\end{document}
Jetzt muss man nur noch bei den Aufrufen von LaTeX dafür sorgen, dass vor
TemplateA.tex auch noch
Datensatz<Nr>.tex geladen wird, beispielsweise, wenn man 5 Datensatz-Dokumente hat:
#!/usr/bin/bash
for n in {1..5}; do
pdflatex -jobname Dokument$n '\input{'Datensatz$n.tex'} \input{TemplateA.tex}'
Für die Windows-Eingabeaufforderung oder PowerShell muss die Schleife und das Quoting passend ersetzt werden. Das Ergebnis hat man dann in
Dokument1.pdf bis
Dokument5.pdf.
Es gibt also viele Möglichkeiten und letztlich hängt der beste Weg von deinen Vorkenntnissen und deiner Bereitschaft ab, diese ggf. zu erweitern.
Das hängt jetzt eher davon ab, wie gut du im Umgang mit Datenbanken und Programmiersprachen bist. Man kann ja mit den meisten SQL Engines auch konfigurierbare Daten-Reports erstellen. SQL ist es dabei vollkommen egal, ob die erzeugte Text-Datei LaTeX-Befehle enthält oder nicht, ist ja auch nur Text.
Man kann aber natürlich auch einfach CSV exportieren und das dann von LaTeX-Seite beispielsweise mit [ctan]datatool[/ctan] verarbeiten. Ob Serienbrief oder irgend ein anderes Dokument ist [tt]datatool[/tt] Jacke wie Hose. Man muss dabei aber daran denken, jeweils Seitenzähler etc. am Anfang jedes einzelnen Dokuments wieder zurück zu setzen und bei doppelseitigen Dokumenten mit [tt]\cleardoublepage[/tt] zu enden.
Man kann sich auch ein Python-Programm (oder perl-Skript oder VBasic-Programm oder …) schreiben, das sowohl die Datenbank ausliest als auch Platzhalter in einem Dokument durch die Daten aus der Datenbank ersetzt und die notwendigen LaTeX-Aufrufe durchführt.
Interessanter Weise kann man dafür theoretisch sogar [tt]pandoc[/tt] missbrauchen. Das arbeitet nämlich für die Konvertierung von Dokumenten ebenfalls mit Templates, die über Variablen gesteuert werden. Es ist möglich, eigene Variablen per YAML oder Kommandozeile vorzugeben. Man könnte nun das Standard-LaTeX-Template [tt]default.latex[/tt] durch ein Template ersetzen, das bereits Text mit Variablen enthält. Die Variablen müsste man dann passend aus der Datenbank befüllen.
Einfach sollte auch sein, aus der SQL-Datenbank Minidokumente zu generieren, die einen Satz von Befehlen definieren, etwa:
[code]
% Dateiname: Datensatz1.tex
\newcommand*{\DATAName}{Heinzelmann}
\newcommand*{\DATATelefon}{1234567}
[/code]
Dann bastelt man sich ein Dokument, das diese Befehle an den variablen Stellen enthält:
[code]
% Dateiname: TemplateA.tex
\documentclass{article}
\begin{document}
\DATAName{} hat die Telefonnummer \DATATelefon.
\end{document}
[/code]
Jetzt muss man nur noch bei den Aufrufen von LaTeX dafür sorgen, dass vor [tt]TemplateA.tex[/tt] auch noch [tt]Datensatz<Nr>.tex[/tt] geladen wird, beispielsweise, wenn man 5 Datensatz-Dokumente hat:
[code]
#!/usr/bin/bash
for n in {1..5}; do
pdflatex -jobname Dokument$n '\input{'Datensatz$n.tex'} \input{TemplateA.tex}'
[/code]
Für die Windows-Eingabeaufforderung oder PowerShell muss die Schleife und das Quoting passend ersetzt werden. Das Ergebnis hat man dann in [tt]Dokument1.pdf[/tt] bis [tt]Dokument5.pdf[/tt].
Es gibt also viele Möglichkeiten und letztlich hängt der beste Weg von deinen Vorkenntnissen und deiner Bereitschaft ab, diese ggf. zu erweitern.