当使用独立文档时,如何检查我的子文档是否正在由父文档加载?

当使用独立文档时,如何检查我的子文档是否正在由父文档加载?

当我使用独立包将子 .tex 文件加载到主 .tex 文件中,然后标题和目录标题的部分Contents仍会显示在主文档中。

问题是我需要单独构建 child.tex,并且稍后还要构建 main.tex 以将所有文件收集到一个文件中。因此在 child.tex 中我也使用\tableofcontents和 使用\title。我不知道如何在构建 main.tex 时删除它们,因为这些不会进入preamble子级,而必须在子级的主体中,并且standalone只会删除 中的内容preamble

所以我需要某种逻辑或标志,如下所示,我可以将其添加到每个子文档中:

\begin{document}
....
\ifstandalone
% do nothing, I am being loaded by parent
\else
title{title of child document}
\author{me}
\maketitle
\tableofcontents
\fi

现在standalone确实有这样的开关\ifstandalone,但我不知道如何在子文档中使用它。以下是该包的 PDF(该包太高级了,我现在还无法全部理解)。

在此处输入图片描述

我尝试了很多方法,但都不起作用。有人知道怎么做吗?这是 MWE、parent.tex 和 child.tex。两者都在同一个文件夹中。

\documentclass[12pt,notitlepage]{report}
\usepackage{standalone}%  
\usepackage{import}       
\begin{document}  
\author{me}
\title{This is my document home parent.tex title}
\maketitle
\tableofcontents

\chapter{HWs}
now include the other document    
   \subimport{.}{child}   %make sure no empty line after this
\end{document}

这是 child.tex

\documentclass{article}
\begin{document}
\title{my child.tex file}  %need a way to remove this when compiling parent.
\author{me}
\maketitle
\tableofcontents

\section{problem 1}
test 1
\section{problem 2}
test 2
\end{document}

现在如果我这样做

rm *.aux; rm *.toc; pdflatex child.tex 

它可以工作。但是当我这样做时,pdflatex parent.tex仍然会在 main.tex 中显示子级的目录和标题部分,这会弄乱父文档中的布局:

在此处输入图片描述

附言:这是我在 child.tex 中尝试过的东西

\documentclass{article}
\usepackage{standalone}% added this so to be able to use the ifstandalone flag
\begin{document}
\ifstandalone  %but this had no effect when build the parent.tex, the title and
               %part of the TOC still showed up in the parent, causing problems
%
\else
\title{child.tex title}
\author{me}
\maketitle
\tableofcontents
\fi

\section{problem 1}
test 1
\section{problem 2}
test 2
\end{document}

答案1

开关\ifstandalone的工作方式相反。您应该将其放在子文档中。如果是独立文档,则 \ifstandalone 分支的内容将存在,如果包含,则将被省略。

我认为以下内容可以解决您的问题:

子文件:

\documentclass{article}
\usepackage{standalone} \standalonetrue

\begin{document}
\ifstandalone
    \title{my child.tex file}  %need a way to remove this when compiling parent.
    \author{me}
    \maketitle
    \tableofcontents
\fi

\section{problem 1}
test 1
\section{problem 2}
test 2
\end{document}

父文件:

\documentclass[12pt,notitlepage]{report}
\usepackage{standalone}
\usepackage{import}
\begin{document}
\author{me}
\title{This is my document home parent.tex title}
\maketitle
\tableofcontents

\chapter{HWs}
now include the other document
   \subimport{.}{child}   %make sure no empty line after this
\end{document}

如果这就是您想要实现的目标。

相关内容