Erstellen verschiedener Pdf-Versionen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Erstellen verschiedener Pdf-Versionen

von KOMA » Di 28. Sep 2010, 10:56

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).

von Xenara » Di 28. Sep 2010, 09:56

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}

von Xenara » Di 28. Sep 2010, 09:41

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}

von Raldemar » Di 28. Sep 2010, 09:13

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.

von Xenara » Di 28. Sep 2010, 09:10

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.

Erstellen verschiedener Pdf-Versionen

von Raldemar » Di 28. Sep 2010, 09:02

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

Nach oben