Várias saídas de PDF de um único arquivo .tex

Várias saídas de PDF de um único arquivo .tex

O código MWE a seguir está funcionando perfeitamente no TexLive2018, mas não está funcionando em "www.overleaf.com" (uma plataforma online Latex).

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

O log bruto de "www.overleaf.com" é o seguinte:

Este é o pdfTeX, versão 3.14159265-2.6-1.40.19 (TeX Live 2018) (formato pré-carregado = pdflatex 2019.8.28) 28 NOV 2019 12:59 entrando no modo estendido \write18 ativado. Análise de %&-linha habilitada. **main.tex (/compile/main.tex LaTeX2e <2018-12-01> (/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls Classe de documento: artigo 2018/09 /03 v1.4i Classe de documento LaTeX padrão (/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo Arquivo: size10.clo 2018/09/03 v1.4i Arquivo LaTeX padrão (tamanho opção) ) \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).. .executado .

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

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

) Aqui está a quantidade de memória do TeX que você usou: 198 strings de 492616 2.143 caracteres de string de 6128979 59.595 palavras de memória de 5.000.000 4.200 sequências de controle multiletras de 15.000 + 600.000 3.640 palavras de informações de fonte para 14 fontes, de 8.000.000 para 9000 1141 exceções de hifenização de 8191 23i,1n,17p,112b,36s posições de pilha de 5000i,500n,10000p,200000b,80000s

Nenhuma página de saída. Estatísticas de PDF: 0 objetos PDF em 1.000 (máx. 8388607) 0 destinos nomeados em 1.000 (máx. 500.000) 1 palavra de memória extra para saída de PDF em 10.000 (máx. 1.0000000)

ALGUÉM PODE ME AJUDAR POR FAVOR??

Responder1

(Tom da equipe de suporte Overleaf escrevendo.)

Observe que, devido à configuração do Overleaf, embora você possa executar pdflatexdentro \immediate\write18ou \ShellEsc, você deve ter cuidado com os nomes dos arquivos. Ou seja, \jobnameestá definido como output, mas o arquivo principal mantém seu nome original ( main.texno exemplo abaixo).

Portanto, confiar em \input\jobnameé realmente impossível e eu evitaria qualquer uso de \jobname. Observe também que pdflatextudo deve estar em letras minúsculas nas máquinas *nix. Por último, mas não menos importante, a única forma de acessar os arquivos gerados pelas shell-escapeexecuções é viaLogs e arquivos de saída(direito deRecompilar) >Outros registros e arquivos. Lá você tem todos os arquivos test?.pdf, test?.auxe .test?.log

Exemplo mínimo (a ser chamado main.texno Overleaf para fazer isso funcionar):

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

informação relacionada