我正在编写一个包含多个文件的文档,并希望像这样为它们添加标题:
%%% main.tex
\documentclass{article}
\usepackage{subfiles}
\title{Main}
\begin{document}
\maketitle
Some text
\subfile{a}
\end{document}
和
%%% a.tex
\documentclass[main]{subfiles}
\title{A}
\begin{document}
\maketitle
Subordinate text
\end{document}
当我编译时main.tex
,main.pdf
内容是:
主要的
一些文本
下属文本
当我编译时a.tex
,a.pdf
内容是:
A
下属文本
这可能吗?提前谢谢您!
答案1
subfiles 包提供了\ifSubfilesClassLoaded
宏,允许您测试是否编译子文件或主文件:
%%% a.tex
\documentclass[main]{subfiles}
\title{A}
\begin{document}
\ifSubfilesClassLoaded{%
\maketitle
}{}
Subordinate text
\end{document}
答案2
您可以使用的一个简单方法是在前言中定义一个辅助命令,由于子文件的前言将被忽略,因此您可以使用该辅助命令代替\maketitle
。
下面针对您的两个文件执行此操作:
%%% main.tex
\documentclass{article}
\usepackage{subfiles}
\title{Main}
\newcommand\submaketitle{}
\begin{document}
\maketitle
Some text
\subfile{a}
\end{document}
%%% a.tex
\documentclass[main]{subfiles}
\title{A}
\newcommand\submaketitle{\maketitle}
\begin{document}
\submaketitle
Subordinate text
\end{document}
然后,如果你编译,main.tex
你将获得:
如果你编译的话,a.tex
你会得到: