Verursachen Kommentare in der Präambel Fehler beim Build mit einer „vorkompilierten“ Formatdatei unter Verwendung von mylatexformat?

Verursachen Kommentare in der Präambel Fehler beim Build mit einer „vorkompilierten“ Formatdatei unter Verwendung von mylatexformat?

Betrachten Sie das folgende MWE - fast das gleiche wie inFehler mit [griechisch] Babel und letzte Seite, \Frontmatter?, aber nicht genau - wo ich ein großes Dokument habe, für das ich "vorkompilierte Header" generieren wollte (TikZs Externalisierung und Mylatex(Beachten Sie, dass \jobname derselbe sein sollte)) und dachte, ich würde mylatexformatdafür verwenden (ultraschnelles PDFLatex mit Vorkompilierung).

Die Struktur sieht ungefähr so ​​aus:

setup/_preamble.tex

\documentclass[10pt]{book}

\usepackage{cmap}% (causes pdflatex: dangling objects discarded, no output file produced. with -ini/mylatexformat)
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% \usepackage[english]{babel} % ok
\usepackage[greek,english]{babel} % ok w/ hack below
\usepackage{amsmath,amssymb}
\usepackage{csquotes}
\usepackage[backend=biber]{biblatex}
\usepackage{tikz}
\usepackage{siunitx}

\usepackage{lastpage}
\makeatletter
\let\oldlastpage@putl@bel\lastpage@putl@bel
\renewcommand*\lastpage@putl@bel{%
  \bgroup
  \let\textlatin\@firstofone % make \textlatin a no-op
  \oldlastpage@putl@bel%
  \egroup
}
\makeatother

test.tex

%% This is the file `test.tex'
%
\input{setup/_preamble.tex}%
%
% \csname endofdump\endcsname% may \def to \relax; https://tex.stackexchange.com/questions/57398
\ifcsname endofdump\endcsname%
  % it is called with precompiled header; stop here:
  \typeout{HEEEREEEE: endofdump defined!}%
  \endofdump% shouldn't be here?
  \typeout{HEEEREEEE: POST endofdump defined!}%
\else%
\fi%

\usepackage{lipsum}

\begin{document}
\frontmatter
\clearpage

\section{Something}
\lipsum[1-5]

\end{document}

Wenn ich dies mit kompiliere pdflatex test.tex, läuft die Kompilierung einwandfrei.

Ich "kompiliere" die test.fmtDatei folgendermaßen:

$ pdflatex -ini -jobname="test" "&pdflatex" mylatexformat.ltx "test.tex"
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (INITEX)
...
HEEEREEEE: endofdump defined!
<<ot1.cmap>><<oml.cmap>><<oms.cmap>><<omx.cmap>> ...
(\end occurred when \ifcsname on line 6 was incomplete)
Beginning to dump on file test.fmt
 (preloaded format=test 2015.2.18)
...
20 words of pdfTeX memory
...

... was gut zu funktionieren scheint.

.pdfWenn ich jedoch versuche, die Datei mit der vorkompilierten Datei wie folgt zu erstellen .fmt(ich füge den Kommentar nicht %&testals erste Zeile der test.texDatei ein, sondern gebe ihn in der Befehlszeile an):

$ pdflatex --file-line-error --synctex=1 "&test" test.tex
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=pdflatex)
...
==============================================================================
JOB NAME         : "test"
CUSTOMISED FORMAT: "test"
PRELOADED FILES:
setup/_preamble.tex
...
  t1cmtt.fd    2014/09/29 v2.5h Standard LaTeX font definitions
  t1cmss.fd    2014/09/29 v2.5h Standard LaTeX font definitions

==============================================================================
(mylatexformat)Info: start reading document "test"
(mylatexformat)      on input line 13. (\endofdump)
==============================================================================
(./setup/_preamble.tex

./setup/_preamble.tex:1: LaTeX Error: Two \documentclass or \documentstyle commands.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.1 \documentclass[10pt]{
                         book}
?

... aus irgendeinem Grund,sogarWenn die vorkompilierte .fmtDatei geladen wird, TeXTrotzdembeginnt mit dem Lesen von setup/_preamble.tex- und meldet somit einen Fehler von „zwei \documentclassBefehlen“?

Ich kenne die Lösung bereits: Sie besteht darin, die Prozentzeichen im Kommentar um das \inputin zu entfernen test.tex:

%% This is the file `test.tex'

\input{setup/_preamble.tex}

% \csname endofdump\endcsname% may \def to \relax; https://tex.stackexchange.com/questions/57398
...

... und dann funktioniert das Ausführen des Builds mit der vorkompilierten .fmtDatei ( pdflatex "&test" test.tex) einwandfrei.

Meine Frage lautet: Warum sollten Kommentare in der Präambel überhaupt Einfluss auf den Analyseprozess von haben mylatexformat?

verwandte Informationen