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