我有一篇包含多个部分的文章。为了方便起见,我希望能够分别编译每个部分。对我而言有效的解决方案是使用 if 子句。设置如下:
整个项目的父文件:
%test_parentfile.tex
\documentclass{article}
% Here, I'd load several packages, define macros, etc...
% Define this macro to signal that the entire project is being compiled.
\newcommand*{\projectcompilation}{test}
\begin{document}
% Here, I include the different sections (only a dummy for this illustration).
\input{test_dummysection}
\input{test_dummysection}
\input{test_dummysection}
\end{document}
每个部分(或本例中的虚拟部分,如下所示):
%test_dummysection.tex
\ifdefined\projectcompilation
\else
\input{test_header.tex}
\begin{document}
\fi
\section{My Section}
Test
\ifdefined\projectcompilation
\else
\end{document}
\fi
最后,每个部分都包含以下标题,可能会或可能不会被访问。
%test_header.tex
\documentclass{article}
% Here, I'd load packages
这种设置对我来说效果很好。但是,我一直在尝试使用 latexand 将父文件转换为单个自包含文件。但是,扩展不起作用:
\documentclass{article}
\newcommand*{\projectcompilation}{test}
\begin{document}
\ifdefined\projectcompilation
\else
\documentclass{article}
\begin{document}
\fi
\section{My Section}
Test
\ifdefined\projectcompilation
\else
\end{document}
\ifdefined\projectcompilation
\else
\documentclass{article}
\begin{document}
\fi
\section{My Section}
Test
\ifdefined\projectcompilation
\else
\end{document}
\ifdefined\projectcompilation
\else
\documentclass{article}
\begin{document}
\fi
\section{My Section}
Test
\ifdefined\projectcompilation
\else
\end{document}
\end{document}
几个 if 子句后缺少\fi
。不过,在我手动插入缺少的子句后,一切正常。
似乎毫无理由地latexpand
删除了这些内容\fi
。我该怎么做才能抑制 latexand 中的这种行为,或者我该如何更改设置来避免这种行为?