Latexpand 和 if 子句

Latexpand 和 if 子句

我有一篇包含多个部分的文章。为了方便起见,我希望能够分别编译每个部分。对我而言有效的解决方案是使用 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 中的这种行为,或者我该如何更改设置来避免这种行为?

相关内容