mylatexformat - 从格式编译 \endofdump 中省略内容?

mylatexformat - 从格式编译 \endofdump 中省略内容?

编辑2: \csname endofdump\endcsname解决了我的问题

编辑: 我应该补充一下,我得到了一个未定义控制序列编译没有预加载格式的 pdfLaTeX 时出错\endofdump,但使用预加载格式时可以正常工作,这让我相信它没有像我希望的那样工作。所以我尝试了注释掉,\endofdump因为根据mylatexformat文档第 3 页,它会查找包含的行\endofdump。我可以通过使用来实现我想要的行为\endofdump,唯一的警告是,如果我想编译用于该格式的文档,我需要将其注释掉。我怀疑我需要一个包\endofdump,但\usepackage{mylatexformat}抛出了未找到错误。


我可以成功使用mylatexformatpdflatex,但遇到了一些困惑。

我只想mylatexformat预编译第一个,比如说前言的一半——所以我想排除某个点之后的内容。这可能吗?

据我所知,\endofdump只有在格式加载后才可以包含内容。但我想从格式中省略内容。

为了编译格式文件,我有一个批处理脚本:

pdflatex -ini -jobname="format" "&pdflatex" mylatexformat.ltx """MWEformat.tex"""

我的 MWE 如下:

第一阶段:编译格式成功

%& COMPILE THE FORMAT LIKE THIS format
\documentclass[11pt,a4paper]{article}
\newcommand{\testOne}{Command One works}
%%% I would only like my format to contain the above two lines
%\endofdump  % End of dump only works for when we use format, not compile it 
\newcommand{\testTwo}{Command Two works}  % this is included in format, but I don't want it to be
\begin{document}
    \testOne\\
    \testTwo
\end{document}

第二阶段:加载格式成功

%&format
%preamble precompiled, this works
\begin{document}
    \testOne\\
    \testTwo
\end{document}

第三阶段:\endofdump当我想在格式后包含内容时起作用

%&format
\renewcommand{\testTwo}{Command Two change attempt!!!}  % interestingly, this will work with no space between it and \begin{documet}... but it wont work if there's a line space betwen this and \begin{documet} (as expected).

\endofdump
\renewcommand{\testTwo}{Command Two changed success!!!}  % since end of dump applied, now I can change the command

\begin{document}
    \testOne\\
    \testTwo
\end{document}

我实际上想要从第 3 阶段得到的是一个错误:我不想\testTwo包含在格式中,因此\renewcommand我必须使用\newcommand

相关内容