Ausgabedatei automatisiert umbenennen

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


ToniFalk
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Di 21. Apr 2015, 02:04

Ausgabedatei automatisiert umbenennen

Beitrag 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}

Noch so einer

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

Noch so einer

Beitrag von Noch so einer »

Ich vergaß darauf hinzuweisen, dass das Beispiel wegen der \write18-Anweisung einen Aufruf mit Option -shell-escape benötigt.

Antworten