如何在子文件根文件和子文件中使用不同的前导码

如何在子文件根文件和子文件中使用不同的前导码

\maketitle \tableofcontents使用包时,我在根文件和子文件中都有subfiles。当我编译子文件时,它工作正常。但是当我编译根文件时,还出现了titleauthor信息以及额外的“内容”。我不知道如何删除这些信息。

我尝试使用宏来控制操作。但效果不太好。

我有几个难题。

1.子文件中变量的新定义是否会删除从根文件传输来的变量值?

2. 是否有命令可以测试此处的变量是否multiple已被定义?

3.在调试latex的时候,如何输出自己在latex中定义的值?

4.还有其他优雅的方法可以实现我的目标吗?

谢谢你!

这是名为 root.tex 的根文件

\documentclass[a4paper, 12pt]{article}
\usepackage{subfiles}

\newif\ifmultiple  %\multipletrue means called by main file
\multipletrue

\author{Ct586}
\title{How to use subfiles}
\date{\today}

\begin{document}

\maketitle

\tableofcontents

\subfile{child}

\end{document}

这是名为 child.tex 的子文件:

\documentclass[Dynamic.Network.Embryonic.Development.tex]{subfiles}

\newif\ifmultiple  %\multipletrue means called by main file
%\multipletrue
\ifmultiple
    \begin{document}
\else
    \author{Ct586}
    \title{How to use subfiles}
    \date{\today}
    \begin{document}
      \maketitle    
      \tableofcontents
\fi


\section{child}
child

\end{document}

答案1

\let\tableofcontents\relax在主要设置之后设置:

\RequirePackage{filecontents}
\begin{filecontents*}{child.tex}
\documentclass[main.tex]{subfiles}
    \author{Ct586}
    \title{How to use subfiles}
    \date{\today}
\begin{document}
\maketitle    
\tableofcontents

\section{child}
child

\end{document}
\end{filecontents*}
\documentclass[a4paper, 12pt]{article}
\usepackage{subfiles}
\author{Ct586}
\title{How to use subfiles}
\date{\today}
\begin{document}
\maketitle
\def\author#1{} \def\title#1{}
\tableofcontents
\let\tableofcontents\relax

\subfile{child}
\end{document}

相关内容