Mehrere Versionen vom selben Dokument

Alles rund um das System für Linux, Mac & Windows.
StefanSchmelz
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 21. Aug 2019, 22:19

Mehrere Versionen vom selben Dokument

Beitrag von StefanSchmelz »

Hi Leute, ich bin neu bei Latex und will schon wieder zu viel auf einmal....
Ich schreibe eine horror Geschichte, die ich potentiell in einer zensierten und einer unzensierten Version haben will und habe irgendwie keinen Bock zwei Dateien zu haben.
Ich bin versucht eine Variable zu haben, auf die ich an den Stellen teste.
Ich benutze cmake um das latex script zu compilieren und würde gern einmal mit und einmal ohne die Variable compilieren.
Falls es was hilft ich benutze Tex Live auf einem Ubuntu 18.04 System.
Frage 1: Wie kann man sowas machen?
Frage 2: Gibt es einen besseren weg, an den ich noch nicht gedacht habe?
Frage 3: Kann mir jemand ein beispiel sagen, wo ich nachschauen kann?
Vielen Dank im Voraus und danke für eure Zeit :D

Gast

Beitrag von Gast »

Es gibt Pakete für bedingten Satz. Im einfachsten Fall reicht aber auch ein

Code: Alles auswählen

\newif\ifshortversion
in der Dokumentpräambel und dann im Dokument entsprechend

Code: Alles auswählen

\ifshortversion Und damit verabschiedete sich Karl.
\else Bevor Karl sich verabschiedete soff er noch drei Schnaps und sechs Bier, zerhackte drei Stühle und sprang dann zum Abschied vom Dach.
\fi
Dabei ist aber auf korrekte Schachtelung aller \if… \else …\fi zu achten.
Die Umschaltung zwischen den beiden Versionen geschieht dann mit \shortversiontrue und \shortversionfalse in der Dokumentprämbel. Das kann man theoretisch auch über den Aufruf von pdflatex lösen, beispielsweise per pdflatex '\AtBeginDocument{\shortversiontrue}\input' foo.tex statt pdflatex foo.tex. Oder man packt in die Dokumentpräambel etwas wie \IfFileExists{shortversion.dat}{\shortversiontrue}{\shortversionfalse}. Dann kann man über die Existenz der Datei shortversion.dat regeln, welche Version erzeugt werden soll. Es gibt wirklich viele Möglichkeiten.

StefanSchmelz
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 21. Aug 2019, 22:19

Beitrag von StefanSchmelz »

Danke schonmal, das klingt gut. :D
Ich schau mal ob ich es schaffe und melde mich, wenn es kaputt ist :-P

StefanSchmelz
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 21. Aug 2019, 22:19

Beitrag von StefanSchmelz »

Code: Alles auswählen

\newif \ifshortversion
\newcommand{\explicit}[1]{\ifshortversion#1\fi}
Das ist mein code um das zu machen. Allerdings scheint er den umgekehrten effekt zu haben. Ich benutze jetzt ein Shell-Script um die Dokumente zu compilieren und mein aufruf von pdflatex sieht so aus:
pdflatex -output-directory output/clean '\AtBeginDocument{\shortversiontrue}\input' Story.tex

Wenn ich das teste, dann bekomme ich mit \shortversiontrue eine Datei mit inhalt und mit \shortverionfalse eine leere Ausgabe...

Jetzt beim schreiben fällt mir auf, dass ich entweder das if umdrehen muss, dass ich auf false prüfe, oder ein \else einfügen.

Denke damit ist das gelöst, danke :D

Antworten