Mehrere PDF-Ausgaben aus einer einzigen .tex-Datei

Mehrere PDF-Ausgaben aus einer einzigen .tex-Datei

Der folgende MWE-Code funktioniert einwandfrei in TexLive2018, aber nicht in „www.overleaf.com“ (einer Online-Latex-Plattform).

\documentclass{article}

\ifx\conditionmacro\undefined
\immediate\write18{%
    pdfLaTeX --jobname="\jobname1"
    \gdef\string\conditionmacro{1}\string\input\space\jobname
}%
\immediate\write18{%
    pdfLaTeX --jobname="\jobname2"
    \gdef\string\conditionmacro{2}\string\input\space\jobname
}%
\immediate\write18{%
    pdfLaTeX --jobname="\jobname3"
    \gdef\string\conditionmacro{3}\string\input\space\jobname
}%
\expandafter\stop
\fi

\begin{document}
    \ifnum\conditionmacro=1 
    Condition is 1
    \fi
    \ifnum\conditionmacro=2 
    Condition is 2
    \fi
    \ifnum\conditionmacro=3 
    Condition is 3
    \fi
    \verb|\conditionmacro| is \texttt{\meaning\conditionmacro}.
\end{document}

Das Rohprotokoll von „www.overleaf.com“ lautet wie folgt:

Dies ist pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (vorinstalliertes Format=pdflatex 2019.8.28) 28. Nov. 2019 12:59. Wechsel in den erweiterten Modus. \write18 aktiviert. %&-Zeilenanalyse aktiviert. **main.tex (/compile/main.tex LaTeX2e <2018-12-01> (/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls Dokumentklasse: Artikel 2018/09/03 v1.4i Standard-LaTeX-Dokumentklasse (/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo Datei: size10.clo 2018/09/03 v1.4i Standard-LaTeX-Datei (Größenoption) ) \c@part=\count80 \c@section=\count81 \c@subsection=\count82 \c@subsubsection=\count83 \c@paragraph=\count84 \c@subparagraph=\count85 \c@figure=\count86 \c@table=\count87 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) runsystem(pdfLaTeX --jobname="output1" \gdef \conditionmacro{1}\input output).. .ausgeführt.

runsystem(pdfLaTeX --jobname="output2" \gdef \conditionmacro{2}\input output).. .ausgeführt.

runsystem(pdfLaTeX --jobname="output3" \gdef \conditionmacro{3}\input output).. .ausgeführt.

) Hier sehen Sie, wie viel von dem TeX-Speicher Sie verwendet haben: 198 Zeichenfolgen von 492616 2143 Zeichenfolgenzeichen von 6128979 59595 Wörter Speicher von 5000000 4200 Steuersequenzen mit mehreren Buchstaben von 15000+600000 3640 Wörter Schriftinformationen für 14 Schriftarten von 8000000 für 9000 1141 Silbentrennungsausnahmen von 8191 23i,1n,17p,112b,36s Stapelpositionen von 5000i,500n,10000p,200000b,80000s

Keine Ausgabeseiten. PDF-Statistik: 0 PDF-Objekte von 1000 (max. 8388607) 0 benannte Ziele von 1000 (max. 500000) 1 Wort zusätzlicher Speicher für PDF-Ausgabe von 10000 (max. 10000000)

KANN MIR BITTE JEMAND HELFEN??

Antwort1

(Tom vom Overleaf-Supportteam schreibt.)

Bitte beachten Sie, dass Sie aufgrund des Overleaf-Setups zwar pdflatexinnerhalb von \immediate\write18oder ausführen können \ShellEsc, aber bei den Dateinamen vorsichtig sein müssen. Das \jobnameist nämlich auf eingestellt output, aber die Hauptdatei behält ihren ursprünglichen Namen ( main.texim Beispiel unten).

Es ist also \input\jobnamewirklich unmöglich, sich auf zu verlassen, und ich würde jede Verwendung von vermeiden \jobname. Beachten Sie auch, dass pdflatexauf *nix-Maschinen alles klein geschrieben werden sollte. Und nicht zuletzt ist der einzige Weg, auf die von den Läufen generierten Dateien zuzugreifen, shell-escapeüberProtokolle und Ausgabedateien(rechts vonNeu kompilieren) >Andere Protokolle und Dateien. Dort haben Sie alle test?.pdf, test?.auxund test?.logDateien.

Minimalbeispiel (muss main.texin Overleaf aufgerufen werden, damit dies funktioniert):

\documentclass{article}

\usepackage[margin=5pt]{geometry}

\ifx\conditionmacro\undefined
\gdef\conditionmacro{0}
\immediate\write18{
    pdflatex --jobname="test1" "\gdef\string\conditionmacro{1}\string\input\space main"
}
\immediate\write18{
    pdflatex --jobname="test2" "\gdef\string\conditionmacro{2}\string\input\space main"
}
\immediate\write18{
    pdflatex --jobname="test3" "\gdef\string\conditionmacro{3}\string\input\space main"
}
\fi

\usepackage{pdfpages}

\begin{document}
    \centering\fontsize{40}{45}\bfseries
    JOBNAME = \jobname\par
    \ifcase\conditionmacro\relax
        % = 0
        \fbox{\includegraphics[width=9cm]{test1.pdf}}
        \fbox{\includegraphics[width=9cm]{test2.pdf}}
        \fbox{\includegraphics[width=9cm]{test3.pdf}}
    \or
        % = 1
        Condition is 1
    \or
        % = 2
        Condition is 2
    \or
        % = 3
        Condition is 3
    \fi
%    \verb|\conditionmacro| is \texttt{\meaning\conditionmacro}.
\end{document}

verwandte Informationen