Seite 1 von 1

Ausgabedatei automatisiert umbenennen

Verfasst: Mo 27. Apr 2015, 20:00
von ToniFalk
Hallo.
Ich möchte im Quellcode bewirken, dass der ausgegebene Dateiname, also der Name des pdf-Dokuments, anders benannt wird, als das tex-Dokument!
In meinem konkreten Fall habe ich eine Liste mit verschiedenen Ausgabenamen in einer ifcase-Anweisung. Je nachdem, welchen Wert der Index erhält, soll das pdf-Dokument einen anderen Namen erhalten. Die Liste zu erstellen habe ich noch hinbekommen, allerdings bin ich weder hier im Forum, noch auf anderen Seiten fündig geworden, was den Befehl für die Dateinamensänderung betrifft.
Vielen Dank schon mal vorab für eure Hilfe.
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}

\newcommand\Ausgabename[1]{% Diese Liste der Dateinamen soll noch wesentlich länger werden
 \ifcase#1  % 0
    DateiName0
  \or % 1
    DateiName1
  \or % 2
    DateiName2
  \else % >2
    DateiName3
 \fi}
\newcounter{index}
\setcounter{index}{2} % dieser Index soll frei wählbar sein

%   An dieser Stelle soll Quellcode eingefügt werden,
%   welcher bewirkt, dass das erzeugte pdf-Dokument den
%   Namen: \Ausgabename\theindex erhält.
%   In diesem Fall (index = 2) soll das ausgegebene pdf-Dokument
%   dann "DateiName2.pdf" heißen.


\begin{document}

\end{document}

Verfasst: Di 28. Apr 2015, 07:38
von Noch so einer
Aus der TeX-Datei heraus einen anderen Namen für das PDF (oder die log-Datei) zu wählen, funktioniert nicht. Was hingegen funktioniert, ist ein Aufruf der Art: pdflatex --jobname=DateiName2 test.tex

Unter Linux funktioniert außerdem:
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}

\newcommand\Ausgabename[1]{% Diese Liste der Dateinamen soll noch wesentlich länger werden
 \ifcase#1  % 0
    DateiName0%
  \or % 1
    DateiName1%
  \or % 2
    DateiName2%
  \else % >2
    DateiName3%
 \fi}

\AtEndDocument{\write18{mv \jobname.pdf \Ausgabename{2}.pdf}}

\begin{document}
Test
\end{document}
Unter Linux geht das, weil die Datei durch das Umbenennen trotzdem offen bleibt. Unter Windows geht das so AFAIK nicht.

Was ebenfalls möglich wäre, ist die Umbenennung per arara oder ähnliche Verarbeitungsprogramme oder über ein Nachbearbeitungsscript im Editor, falls der so etwas unterstützt.

Verfasst: Di 28. Apr 2015, 07:40
von Noch so einer
Ich vergaß darauf hinzuweisen, dass das Beispiel wegen der \write18-Anweisung einen Aufruf mit Option -shell-escape benötigt.