Quiero acelerar el proceso de compilación, así que dividí el documento principal en dos archivos:
MWE
preámbulo.tex
\documentclass{article}
\csname endofdump\endcsname
principal.tex
\begin{document}
\ifdefined\test
:)
\else
:/
\fi
\end{document}
Esto funciona:
#!/bin/bash
pdftex -ini -jobname="preamble" "&pdflatex" mylatexformat.ltx "preamble.tex"
pdflatex -fmt preamble "main.tex"
Problema
Sin embargo, quiero pasar datos desde la línea de comando a tex para obtener una carita feliz.
#!/bin/bash
pdftex -ini -jobname="preamble" "&pdflatex" mylatexformat.ltx "preamble.tex"
pdflatex -fmt preamble "\def\test{1}\input{main}"
y me topo con un modo interactivo donde no sé qué hacer. Utilizando el-sin-parse-primera-líneatampoco ayuda.
texput.log
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian) (preloaded format=preamble 2014.12.16) 16 DEC 2014 14:17
entering extended mode
restricted \write18 enabled.
**\def\test{1}\input{main}
==============================================================================
JOB NAME : "texput"
CUSTOMISED FORMAT: "preamble"
PRELOADED FILES:
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
==============================================================================
*
! Emergency stop.
<*> \def\test{1}\input{main}
End of file on the terminal!
Here is how much of TeX's memory you used:
3 strings out of 494701
113 string characters out of 6174765
48268 words of memory out of 5000000
3561 multiletter control sequences out of 15000+600000
7639 words of font info for 26 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
8i,0n,22p,42b,30s stack positions out of 5000i,500n,10000p,200000b,80000s
! ==> Fatal error occurred, no output PDF file produced!
Respuesta1
No soy un experto en esto, pero supongo que mylatexformat
no escanea los archivos de entrada de forma recursiva, por lo que nunca encuentra el literal \begin{document}
in main.tex
, necesario para marcar el final del formato de acuerdo con sudocumentación. Al menos para tu MWE, funciona si emites \endofdump
(la alternativa para marcar el final del formato, para evitar dos \begin{document}
) en la línea de comando:
pdflatex -fmt preamble "\endofdump\def\test{1}\input{main}"