Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dateiname Ausgabe-PDF ändern

528 views
Skip to first unread message

Melanie Sommer

unread,
Nov 1, 2010, 9:55:55 AM11/1/10
to
Hallo,

ich erinnere mich, dass die Frage bereits mehrfach auf der Liste
gestellt wurde, aber ich finde sie nicht mehr und habe auch keine
Erinnerung mehr, ob die Antwort positiv war.

Ich würde gerne - je nach Parameter in der Dokumentklasse einer selbst
geschriebenen Klasse - den Dateiname des Ausgabepdfs aus " ( dateiname
des tex-files ) + ( Endung je nach Parameter ) .pdf " zusammen
stellen.

Ich nutze Miktex 2.8 und kompiliere mit latex + dvips + ps2pdf.

Lässt sich das umsetzten? Gerne auch ein Link oder Stichwort, wenn es
dazu im Netz eine Anleitung gibt.

Danke!

Heiko Oberdiek

unread,
Nov 1, 2010, 11:52:15 AM11/1/10
to
Melanie Sommer <melanie...@mailinator.com> wrote:

> ich erinnere mich, dass die Frage bereits mehrfach auf der Liste
> gestellt wurde, aber ich finde sie nicht mehr und habe auch keine
> Erinnerung mehr, ob die Antwort positiv war.
>
> Ich würde gerne - je nach Parameter in der Dokumentklasse einer selbst
> geschriebenen Klasse - den Dateiname des Ausgabepdfs aus " ( dateiname
> des tex-files ) + ( Endung je nach Parameter ) .pdf " zusammen
> stellen.

Das geht nicht, da zu spät.

Je nach TeX-Distribution geht das am einfachsten auf der
Kommandozeile, wenn das TeX-Programm eine
entsprechende Option kennt (-jobname bei TeX Live).

> Ich nutze Miktex 2.8 und kompiliere mit latex + dvips + ps2pdf.

Die Dokumentenklasse könnte den Wunschausgabenamen auf dem
Bildschirm/.log-Datei ausgeben. Die Aufrufe könnte man in ein
Skript packen, das dann auch die .log-Datei auswertet und das
Ergebnis entsprechend umbenennt.

--
Heiko Oberdiek

feuersaenger

unread,
Nov 1, 2010, 11:56:04 AM11/1/10
to
Hallo Melanie,

Soweit ich ad-hoc weiss, ist es nicht moeglich, nach start von latex/
pdflatex noch den Ausgabedateinamen zu aendern.

Was dagegen moeglich ist: Du kannst die Kommandozeilenoption '-
jobname' verwenden, um den Ausgabedateinamen *vor* laden Deines
Dokuments festzulegen. Ich sehe ein, dass das nicht Deiner Anforderung
entspricht - aber meines Wissens ist das die einzige derzeit
verfuegbare Moeglichkeit.

Mit liebem Gruss

Christian

On 1 Nov., 14:55, Melanie Sommer <melanie-som...@mailinator.com>
wrote:

Heiko Oberdiek

unread,
Nov 1, 2010, 6:56:13 PM11/1/10
to
feuersaenger <cfeuer...@googlemail.com> wrote:

> Soweit ich ad-hoc weiss, ist es nicht moeglich, nach start von latex/
> pdflatex noch den Ausgabedateinamen zu aendern.

Man kann noch gewissen Code auf der Kommandozeile ausführen
lassen, aber spätestens mit Einlesen der ersten Datei ist der
Ausgabedateiname festgelegt. Da die Setzung des Dateinamens
in einer Klasse geschehen soll, ist diese erste Datei spätestens
die Klasse selbst.

--
Heiko Oberdiek

Ulrich D i e z

unread,
Nov 2, 2010, 4:41:55 PM11/2/10
to
Heiko Oberdiek schrieb:

> Melanie Sommer <melanie...@mailinator.com> wrote:
>
> > ich erinnere mich, dass die Frage bereits mehrfach auf der Liste
> > gestellt wurde, aber ich finde sie nicht mehr und habe auch keine
> > Erinnerung mehr, ob die Antwort positiv war.
> >
> > Ich würde gerne - je nach Parameter in der Dokumentklasse einer selbst
> > geschriebenen Klasse - den Dateiname des Ausgabepdfs aus " ( dateiname
> > des tex-files ) + ( Endung je nach Parameter ) .pdf " zusammen
> > stellen.
>
> Das geht nicht, da zu spät.
>
> Je nach TeX-Distribution geht das am einfachsten auf der
> Kommandozeile, wenn das TeX-Programm eine
> entsprechende Option kennt (-jobname bei TeX Live).

Ich denke, dass es unter bestimmten Umständen doch gehen
könnte:

Man kann ohne weiteres eine Dokumentklasse schreiben, welche
-- sofern man \write18 aktiviert hat, und auf der Kommandozeile
einen -jobname-Parameter angeben kann -- das Bereitstellen einer
Dokumentklassenoption, mittels welcher man einstellen kann, wie die
dvi/pdf-output-Datei heissen soll, wie folgt ermöglicht:
Sofern diese Klassenoption nicht dem \jobname entspricht, den
momentan laufenden "Compilierprozess" sofort abbrechen (->\stop),
nachdem via \write18 ein weiterer Compilierprozess - diesmal
mit einem der jobname-Klassenoption entsprechenden -jobname-
Parameter - gestartet worden ist.

Dank eines netten Menschen, der das kvoptions-Package
geschrieben hat, kann man ohne Umstände vielleicht noch
weitergehen und bspw obendrein eine weitere "StringOption"
deklarieren, in welcher man den Namen einer weiteren
Dokumentklasse angeben kann, welche dann intern via
\LoadClass geladen wird, wobei man per \PassOptionsToClass
alles, was sonst noch so an Optionen angegeben wurde und
was somit in der \@unusedoptionlist angesammelt worden ist,
an besagte "weitere" Dokumentklasse weiterreichen kann.

Im Moment schwebt mir eine Dokumentklasse vor, welche selbst
drei Optionen verarbeitet
- jobnameoption=<string> - <string> spezifiziert, wie die resultierende
dvi/pdf-Datei heissen soll.
- otherdocumentclass=<string> - <string> specifiziert den Namen
derjenigen Dokumentklasse, die man eigentlich benutzen möchte.
- shellescape=<1 oder 2>

Wenn shellescape 2 ist, wird angenommen, dass \write18 nicht
aktiviert ist und es wird einfach der Compiliervorgang normal
fortgesetzt, wobei intern die als "otherdocumentclass" angegebene
Dokumentklasse mit sämtlichen noch nicht genutzten Optionen
geladen wird.

Wenn shellescape 1 ist, wird angenommen, dass \write18
funktioniert. Wenn nun jobnameoption dem \jobname bereits
entspricht, wird einfach der Compiliervorgang normal
fortgesetzt, wobei intern die als "otherdocumentclass" angegebene
Dokumentklasse mit sämtlichen noch nicht genutzten Optionen
geladen wird.
Wenn nun jobnameoption dem \jobname nicht entspricht, wird
der Compiliervorgang abgebrochen und LaTeX per \write18
nochmal mit dem entsprechenden -jobname-Kommandozeilen-
parameter aufgerufen. Beim Rumorgeln auf der Kommandozeile
kann man, wenn man will, den dann gültigen \jobname erstmal
in ein anderes Makro abspeichern und dann wieder per \def
auf den alten \jobname zurückdefinieren, sodass bis auf eine
der beiden entstehenden .log-Dateien und die entstehende
dvi-/pdf-Datei sämtliche Hilfsdateien den gleichen "Vornamen"
haben wie die Quelldatei, was bspw im Zusammenhang mit
Skripten à la texify, welches als exe-Datei bei MiKTeX dabei
ist, ganz nützlich sein könnte.

Wenn an so etwas grosses Interesse besteht, könnte ich mich
eine Weile damit beschäftigen, hätte dann aber gerne jemanden,
die/der von der Materie etwas versteht und bereit ist, zumindest
meinen Code zu revidieren und bei der Aufbereitung einer
benutzerverständlichen Dokumentation zu helfen.

Ulrich

0 new messages