我有多个子文件,我想将它们导出为一个主文件,每个子文件都有自己的目录。当我导出文件时,第一个子文件的目录包含所有内容,而其他文件的目录为空。
我希望每个文件的目录保持完整,并且我不希望任何子文件的页码重新开始。我正在使用 LyX。
我尝试使用该titletoc
包,并用以下 LaTeX 代码替换了 LyX 目录对象(通过插入->列表/目录->目录插入):
\startlist{toc}
\printlist{toc}{}{\section*{Table of Contents}}
但是当我导出主文档时收到以下错误:
LaTeX 错误:出现问题 - 也许缺少/项目。
(当我单独导出子文档时,我没有收到此错误。)
因此,我的问题是:
- 如何将多个子文件合并为一个主文档,并且每个子文件都有自己的目录?
- 使用该
titletoc
软件包是否适合我想要实现的目标?
可能相关的问题:
Titletoc/Titlesec/Titleps 文档: http://mirror.its.dal.ca/ctan/macros/latex/contrib/titlesec/titlesec.pdf
答案1
我对这个问题的解读就是这样的。
子文件是独立的、单独的文档。每个文件都有自己的目录,我认为这是 mini-toc 的要求。
主文件有自己的目录。子文件使用 加载到主文件中\input
。子文件保留自己的目录,并使用反映主文档分页的新页码进行更新。
具体操作如下:
每个子文档都使用
article
类和standalone
包。子文件包含一个测试 ( ),用于确定它是否正在独立编译。然后,每个子文件都将成为可以编译的独立文档,并在使用和从包\newif\ifstandlone \standalonetrue
构建自己的目录的过程中进行编译。\startcontents
\printcontents
titletoc
主文件使用
report
类并加载standalone
包。每个子文件都使用 加载\input
。由于standalone
正在使用,它会剥离每个子文件的前言,只留下每个子文件的内容。使用 中的宏在主文件中构建目录titletoc
。
最终结果是,每个子文件都可以是一个独立的文档,可以编译以生成最终文档,同时还可以从子文件构建主文件而无需对这些文件进行任何更改。主文档和子文件都有各自的目录。
此答案由 TeX.SE 其他地方发布的一些优秀答案提供支持。来源是:使用 titletoc (米尼托克和回忆录) 和独立 (让 {standalone} 忽略来自 \input 文件的文本块(例如 \begin{spacing} 和 \maketitle))。
这是 MWE 和输出。
\begin{filecontents*}{child1.tex}
\documentclass[a4paper,11pt]{article}
\usepackage{standalone}
%https://tex.stackexchange.com/questions/29995/get-standalone-to-ignore-blocks-of-text-from-input-files-e-g-beginspacin/30000#30000
\newif\ifstandlone \standalonetrue
\usepackage{lipsum}
\usepackage{titletoc}
\begin{document}
%https://tex.stackexchange.com/questions/5944/minitoc-and-memoir/7877#7877
\section*{Contents}
\startcontents[sections] %
\printcontents[sections]{}{1}{}
\section{Child 1 - Section 1}
\lipsum[2]
\section{Child 1 - Section 2}
\lipsum[2]
\end{document}
\end{filecontents*}
\begin{filecontents*}{child2.tex}
\documentclass[a4paper,11pt]{article}
\usepackage{standalone}
\newif\ifstandlone \standalonetrue
\usepackage{lipsum}
\usepackage{titletoc}
\begin{document}
\section*{Contents}
\startcontents[sections]
\printcontents[sections]{}{1}{}
\section{Child 2 - Section 1}
\lipsum[2]
\section{Child 2 - Section 2}
\lipsum[2]
\end{document}
\end{filecontents*}
\documentclass[a4paper,11pt]{report}
\usepackage{standalone}
\usepackage{lipsum}
%https://tex.stackexchange.com/questions/39153/table-of-contents-with-chapter
\usepackage{titletoc}
\titlecontents*{chapter}% <section-type>
[0pt]% <left>
{}% <above-code>
{\bfseries\chaptername\ \thecontentslabel\quad}% <numbered-entry-format>
{}% <numberless-entry-format>
{\bfseries\hfill\contentspage}% <filler-page-format>
\begin{document}
\tableofcontents
\chapter{First child document}
\input{child1.tex}
\chapter{Second child document}
\input{child2.tex}
\end{document}
答案2
您正在寻找这样的东西吗?
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{titlesec,titletoc,lipsum}
\titleformat{\section}
{\normalfont\Large\bfseries}
{\thesection}{1em}{}
[\vspace*{2pc}%
\startcontents
\printcontents{}{1}{\setcounter{tocdepth}{2}}%
]
\newcommand\repeatsection{%
\section{This section}
\lipsum[1]
\subsection{This subsection}
\lipsum[1]
\subsection{This subsection}
\lipsum[1]
\subsection{This subsection}
\lipsum[1]
}
\newcommand\repeatsections{%
\repeatsection\repeatsection\repeatsection\repeatsection
}
\begin{document}
\tableofcontents
\repeatsections
\end{document}