对于大文档,我选择使用主/从结构。
我不想像以前那样对comment
包中的从属代码的序言进行注释/取消注释\end{document}
(以避免从属代码与其主代码合并时发生冲突),而是想为“特殊”的 MWE.tex 制作一组指令,该指令可以自动合并到其他 MWE.tex 或主代码中,但没有义务在每次我想编译从属代码时都使用它,请按照以下示例操作:\input{slave.tex}
\input{}
%
\makeatletter
\@ifundefined{ifmaster}
{\expandafter\newif\csname ifmaster\endcsname
\masterfalse}
{\mastertrue}
\makeatother
\ifmaster
\begin{comment}
\else
\fi
\documentclass{memoir}
\begin{document}
\ifmaster
\end{comment}
\else
\fi
INPUT TEST
\ifmaster
\else
\end{document}
\fi
此时,当我将条件放在主代码的序言中时,它工作得很好\mastertrue
。\newif\ifmaster
一切都是“自动的”,我只需使用合并的从属代码或从属代码编译主代码即可生成文档,而不必再玩注释%
从属代码的序言。
但是,一旦我想使用 制作两级从属\input{slave_in_slave}
,如以下示例所示,我就会遇到此错误:
! Emergency stop.
<*> test_inclusion.tex
*** (job aborted, no legal \end found)
我知道是\end{document}
谁在扰乱这个过程,这就是我请你帮助我的原因(或者也许有一种更干净的方法来自动化从属代码的编译)。
我精确地确保输入代码test_inclusion_inclusion
具有与第一个完全相同的 MWE.tex,并且我希望所有用途只有一个 MWE.tex:
\makeatletter
\@ifundefined{ifmaster}
{\expandafter\newif\csname ifmaster\endcsname
\masterfalse}
{\mastertrue}
\makeatother
\ifmaster
\begin{comment}
\else
\fi
\documentclass{memoir}
\begin{document} %
\ifmaster
\end{comment}
\else
\fi
INPUT TEST
\input{test_inclusion_inclusion}
\ifmaster
\else
\end{document}
\fi
感谢您的帮助 !