PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere pdfs aus einer Tex-Datei ausgeben



Stubbe
05-02-2018, 12:08
Hallo zusammen,

ich nutzte Latex um Berichte zu verfassen. In der Regel benötige ich eine Kurz- und eine Langfassung des Berichts. Ich nutze in meinen Berichtdateien eine Fallunterscheidung, um Teile aus der langen Berichtversion herauszunehmen



\newcommand{\Lang{1}

Im Kurzen Teil steht keine Werbung
\ifnum\Lang=1
Hier könnte Ihre Werbung stehen
\fi



Bisher habe ich zwei Latexdateien BerichtKurz.tex und BerichtLang.tex, die die gleichen Inputdateien nutzen, der einzige Unterschied ist, dass bei der Kurzen Version die Variable \Lang=0 gesetzt wird und bei der langen Version die Variable \Lang=1 gesetzt wird.

Um meine beiden Berichte zu bekommen muss ich BerichtKurz.tex und BerichtLang.tex durchlaufen lassen und bekommen BerichtKurz.pdf und BerichtLang.pdf. Wenn ich dann nochmal etwas ändere, muss ich jeweils die nicht aktive Datei nochmals laden und durchlaufen lassen.


Gibt es eine Möglichkeit, beide Dateien gleichzeitig auszugeben? Und kann man den Namen der Ausgabedateien mit einen Variable verknüpfen?

Ich nutze TeXstudio und Texlive.


Vielen Dank für eure Hilfe

Stubbe

u_fischer
06-02-2018, 09:58
https://tex.stackexchange.com/questions/5228/can-one-tex-file-output-to-multiple-pdf-files/5265#5265

Abgesehen davon, kannst du dir natürlich einfach ein Skript schreiben, das beide Dateien kompiliert, oder ein passendes Profil in texstudio.

Stubbe
08-02-2018, 08:26
Hallo Ulrike,

vielen Dank für deine Antwort, so ähnlich wie in deinem Link
https://tex.stackexchange.com/questi...iles/5265#5265 beschrieben funktioniert auch mein Script, dabei bekomme ich jedoch immer nur die jeweilig ausgewählte Datei ausgegeben.

Kann ich mit einem "passenden Profil" im TeXstudio mehrere Dateien ausgeben, hast du einen Link o.ä parat wie man das macht oder welche Einstellungen man da vornehmen muss?

Mit einem zusätzlichem Programm welches jeweils meine Masterdateien abarbeitet möchte ich eher nicht arbeiten (es sind nur 2), das wäre ähnlich aufwendig wie das Laden und ausführen der zweiten Masterdatei.

Viele Grüße

Stubbe

rais
08-02-2018, 22:40
Du könntest -- unabhängig vom verwendeten Editor -- so etwas (im allgemeinen Teil) versuchen:


\ifnum\Lang=1
\immediate\write18{pdflatex BerichtKurz.tex}% Langfassung wird gerade kompiliert, also Kurzfassung auch kompilieren
\else
\immediate\write18{pdflatex BerichtLang.tex}% wie oben, nur anders herum...
\fi

VG

Stubbe
09-02-2018, 16:23
Hallo Zusammen,

ich danke euch für eure tollen Beiträge, das Problem ist gelöst! Hier noch ein kleines Beispiel, damit es einfacher ist, alles nachzuvollziehen:
Es werden drei Dateien im selben Ordner abgelegt, geöffnet wird nur die Datei "Lang.tex"

Datei Lang.tex

\documentclass[ % Festlegung der Dokumentklasse
paper=a4 % Papierformat
]
{scrartcl}
\usepackage{blindtext}

\begin{document}
\newcommand{\Lang}{1}
\input{Text.tex}
\immediate\write18{pdflatex Kurz.tex}
\end{document}

Datei Kurz.tex

\documentclass[ % Festlegung der Dokumentklasse
paper=a4 % Papierformat
]
{scrartcl}
\usepackage{blindtext}

\begin{document}
\newcommand{\Lang}{0}
\input{Text.tex}
\end{document}

Datei Text.tex

\ifnum\Lang=1
Hier steht viel unnützes Zeug.

Und werden alle Dateien aus der Langversion implementiert.

\blindtext

\blindtext
\else
Hier steht nicht soviel.

Und werden alle Dateien für die Kurzversion eingefügt.

\blindtext

Aber es könnte!!

\fi

Wenn ihr das Programm Lang.tex durchlaufen lasst, werden euch zwei pdfs ausgegeben: "Lang.pdf" und "Kurz.pdf"

Um den Code lauffähig zu machen muss im TeXstudio noch konfiguriert werden: Optionen -> TeXstudio konfigurieren ... -> Befehle -> PdfLaTeX: pdflatex.exe --shell-escape -synctex=1 -interaction=nonstopmode %.tex


Viel Spaß beim Testen


Stubbe