
El siguiente código MWE funciona perfectamente en TexLive2018 pero no funciona en "www.overleaf.com" (una plataforma Latex en línea).
\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}
El registro sin formato de "www.overleaf.com" es el siguiente:
Este es pdfTeX, versión 3.14159265-2.6-1.40.19 (TeX Live 2018) (formato precargado = pdflatex 2019.8.28) 28 de noviembre de 2019 12:59 ingresando al modo extendido \write18 habilitado. Análisis de %& líneas habilitado. **main.tex (/compile/main.tex LaTeX2e <2018-12-01> (/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls Clase de documento: artículo 2018/09 /03 v1.4i Clase de documento LaTeX estándar (/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo Archivo: size10.clo 2018/09/03 v1.4i Archivo LaTeX estándar (tamaño opción) ) \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).. .ejecutado .
runsystem(pdfLaTeX --jobname="salida2" \gdef \conditionmacro{2}\input salida).. .ejecutado.
runsystem(pdfLaTeX --jobname="output3" \gdef \conditionmacro{3}\input output).. .ejecutado.
) Esta es la cantidad de memoria de TeX que utilizó: 198 cadenas de 492616 2143 caracteres de cadena de 6128979 59595 palabras de memoria de 5000000 4200 secuencias de control de varias letras de 15000+600000 3640 palabras de información de fuentes para 14 fuentes, de 8000000 para 9000 1141 excepciones de separación de palabras de 8191 23i,1n,17p,112b,36s posiciones de pila de 5000i,500n,10000p,200000b,80000s
No hay páginas de salida. Estadísticas de PDF: 0 objetos PDF de 1000 (máx. 8388607) 0 destinos con nombre de 1000 (máx. 500000) 1 palabra de memoria adicional para salida de PDF de 10000 (máx. 10000000)
ALGUIEN PUEDE AYUDARME POR FAVOR??
Respuesta1
(Tom del equipo de soporte al dorso escribiendo).
Tenga en cuenta que, debido a la configuración del dorso, si bien puede ejecutar pdflatex
dentro de \immediate\write18
o \ShellEsc
, debe tener cuidado con los nombres de los archivos. Es decir, \jobname
está configurado en output
, pero el archivo principal mantiene su nombre original ( main.tex
en el ejemplo siguiente).
Por lo tanto, confiar en \input\jobname
es realmente imposible y evitaría cualquier uso de \jobname
. También tenga en cuenta que pdflatex
debe estar todo en minúsculas en máquinas *nix. Por último, pero no menos importante, la única forma de acceder a los archivos generados por las shell-escape
ejecuciones es a través deRegistros y archivos de salida(derecho deRecompilar) >Otros registros y archivos. Ahí tienes todos los test?.pdf
archivos test?.aux
y test?.log
.
Ejemplo mínimo (que se llamará main.tex
en el dorso para que esto funcione):
\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}