让 {standalone} 忽略来自 \input 文件的文本块(例如 \begin{spacing} 和 \maketitle)

让 {standalone} 忽略来自 \input 文件的文本块(例如 \begin{spacing} 和 \maketitle)

我有许多单独的.tex文件,它们都是\documentclass{article}。我将它们\documentclass{book}作为章节输入到一个文件中。book.tex然后,在文件中,我输入了如下内容:

\chapter{Chapter One!}
\input{article}

article.tex但我希望在需要时能够单独编译。因此在 中article.tex,我保留了\begin{spacing}{1.5}\end{spacing}\maketitle命令。

有什么方法可以在编译时忽略这些命令吗book.tex?该\standaloneignore命令似乎仅适用于忽略\documentclass声明上方的内容。

答案1

子文件可以使用\documentclass{article}、 或。包的\documentclass[preview=false]{standalone}类选项之所以存在,是因为您希望像平常一样自行编译。您也可以在子文件中使用 ,但 也应该添加或。[preview=false]standalonearticle.tex\documentclass{article}\usepackage{standalone} \standalonetrue\newif\ifstandlone \standalonetrue

如果你不想处理某些特定代码,请使用\begin{document}如下所示的开关article.tex\ifstandalone


article.tex

\documentclass[preview=false]{standalone}

%% If you prefer to use the `article` class, the I would recommend
%\documentclass{article}
%\usepackage{standalone} \standalonetrue

\title{Artcle.tex Title}
\author{Duck Article}

\usepackage{lipsum}

\begin{document}
\ifstandalone
   \maketitle% Test to ensure that this is not executed in book.tex
\fi

\lipsum[1]
\end{document}

book.tex:

\documentclass{book}
\usepackage{standalone}
\usepackage{lipsum}

\title{Book.tex Title}
\author{Duck Book}

\begin{document}
%\maketitle Comment this out to ensure that that \maketitle form the article.tex does not get exectuted.
\chapter{Chapter One}
\input{article}
\end{document}

相关内容