Erstellen verschiedener Pdf-Versionen

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


Raldemar
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mo 27. Sep 2010, 16:47

Erstellen verschiedener Pdf-Versionen

Beitrag von Raldemar »

Hallo zusammen,

ich beschäftige mich erst seit kurzem mit Latex und hab natürlich gleich mal eine Frage:

Ich benötige 2 verschiedene Versionen eines Dokuments folgender Struktur:

Kap.1
Kap.2
Kap.3-Version1
Kap.4
usw.

und...

Kap.1
Kap.2
Kap.3-Version2
Kap.4
usw.

gibt es eine Möglichkeit dies Mithilfe Latex umzusetzen?

thx u lg aus Graz

Raldemar

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Ein Main-Dokument erstellen und mittels \input (oder \include) das auszutauschende Dokument einbinden.
Der Übersichtlichkeit halber mache ich es eigentlich immer so, dass ich sämtliche Kapitel sowieso auslagere.

Bei dir würde das dann etwa so aussehen:
\documentclass{...}
...

\begin{document}
...
\input{Kap1}
\input{Kap2}
\input{Kap3-Version1}
%\input{Kap3-Version2}
\input{Kap4}
...
\end{document}
Dann mal mit der einen Version, mal mit der anderen kompilieren und das entstehende PDF jeweils unter anderem Namen speichern.

Raldemar
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mo 27. Sep 2010, 16:47

Beitrag von Raldemar »

Danke für die schnelle Antwort,

ja diese Möglichkeit hab ich jetzt als quasi Notlösung, ich suche aber nach einer automatisierten Variante, da ich das bei mehreren files umsetzen möchte ohne jedesmal im code rumzuwurschteln.

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Ok, da wäre \input natürlich etwas aufwändig. Um solche Missverständnisse zu vermeiden, wäre es gut, wenn du bereits bei der Fragestellung alle nötigen Infos mitliefern würdest.
Dazu gehört auch ein Minimalbeispiel, denn momentan habe ich noch keine Ahnung, wie dein Dokument wirklich aussieht.

Daher weiss ich nicht, ob sich mein Vorschlag auf dein Problem wirklich anwenden lässt:
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}	

\usepackage{ifthen}% Für Befehl \ifthenelse

\begin{document}

% Neuer Befehl \version{x}, wobei X entweder 1 oder beliebig sein kann
\newcommand{\version}[1]{%
% Wenn-Dann-Sonst-Befehl: Wenn in Befehl \version{x} x=1, dann ist die Abfrage Wahr -> erste Klammer. Sonst: zweite Klammer
\ifthenelse{\equal{#1}{1}}%
% Alle Dateien für Version 1
{% Beginn Then
\input{Deine-Datei-Version-1}%
\input{Deine-Datei-Version-1}%
\input{Deine-Datei-Version-1}%
\input{Deine-Datei-Version-1}%
\input{Deine-Datei-Version-1}%
}% Ende Then
% Alle Dateien für Version 2
{% Beginn Else
\input{Deine-Datei-Version-2}%
\input{Deine-Datei-Version-2}%
\input{Deine-Datei-Version-2}%
\input{Deine-Datei-Version-2}%
\input{Deine-Datei-Version-2}%
}% Ende Else
}

% Befehl kann erst verwendet werden, wenn er im \newcommand auch definiert wurde, also am Ende des Dokuments
\version{1}

\end{document}

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Folgende Variante wäre noch einfacher, setzt aber voraus, dass sich die Dateinamen von Version 1 und 2 wirklich nur um die Zahl unterscheiden bzw. dass alle Dateien einer Version gleich aufgebaut sind.
Also z.B. foo-1, file-1, datei-1, aber nicht 1-foo, file-1-version, datei-1.

Im Beispiel funktionieren Dateien der Struktur foo-x, wobei foo der Hauptname ist, der Bindestrich wird automatisch eingefügt, und x die Versionsnummer.
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}	


% Neuer input-Befehl \myinput: \myinput{Dateiname}{Versionsnummer} -> z.B. "Dateiname-1"
\newcommand{\myinput}[2]{%
\input{#1-#2}
}

% Neuer Befehl \myversion. Dient nur dazu, die Versionsnummer für alle \myinput-Befehle gleichzeitig zu definieren.
% Muss für die jeweils gewünschte Version geändert werden.
\newcommand{\myversion}{2}

\begin{document}

\input{Normal}

\myinput{foo}{\myversion}

\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Xenara hat geschrieben:Folgende Variante wäre noch einfacher, setzt aber voraus, dass sich die Dateinamen von Version 1 und 2 wirklich nur um die Zahl unterscheiden bzw. dass alle Dateien einer Version gleich aufgebaut sind.
Also z.B. foo-1, file-1, datei-1, aber nicht 1-foo, file-1-version, datei-1.
% Nehmen wir an diese Datei heißt foo.tex
\documentclass{scrreprt} 
\usepackage[ngerman]{babel} 
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}	


% Neuer input-Befehl \versioninput{Dateiname} -> z. B. "Dateiname-1" etc.
\newcommand{\versioninput}[2]{%
  \input{#1-\versionpostfix.tex}
}
\providecommand*{\versionpostfix}{1}% Nur definieren, wenn noch nicht definiert.

\input{Normal}

\versioninput{footext}

\end{document}
Statt \versionpostfix in der Datei zu ändern, kann man jetzt übrigens auch den Aufruf anpassen:
latex '\def\versionpostfix{2}\input' foo
würde dafür sorgen, dass die Dateien mit Endung "-2.tex" geladen werden.

Man kann aber auch einfach eine Hilfedatei erstellen:
% Compiliere Version 5:
\def\versionpostfix{5}
\input foo.tex
und diese dann durch LaTeX jagen, um Version 5 zu erhalten. Das Ergebnis trägt dann natürlich den Namen den Hilfsdatei (was man per Aufrufoption ggf. ändern kann, mehr dazu in der Manpage zu pdftex bzw. tex).

Antworten