在我工作的项目中,结构如下
.
├── a
│ └── main.tex
├── b
│ └── main.tex
├── main.tex
根主文件是
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{import}
\usepackage{tocbibind}
\usepackage{minitoc}
\begin{document}
%
\dominitoc
\faketableofcontents
\import*{a/}{main}
\import*{b/}{main}
\end{document}
并且 a/main.tex 和 b/main.tex 文件理想情况下应该是
\chapter{Chapter}
\minitoc
\section{Section}
\subsection{Subsection}
不幸的是,minitoc 没有出现。编译后,我在根目录中有各种 mtc 文件(为了便于阅读,大多数文件都隐藏了)
.
├── [4.0K] a
│ └── [ 69] main.tex
├── [4.0K] b
│ └── [ 69] main.tex
├── [ 0] main.mtc
├── [ 0] main.mtc0
├── [ 266] main.mtc1
├── [ 266] main.mtc2
├── [ 19K] main.pdf
├── [ 284] main.tex
└── [ 192] main.toc
但是 main.log 抱怨
(./a/main.tex¶ |
Chapter 1.¶ |
Package minitoc Info: I0006¶ |
(minitoc) main.mtc1 is empty on input line 3.¶
我发现获取 minitoc 的方法是将 main.mtc1 复制/粘贴到 a/ 中。并将 main.mtc2 复制/粘贴到 b/ 中。因此,显然,由于命令 import{a/},minitoc 会在 a/ 和 b/ 目录中查找 mtc 文件(这显然是 import 的作用...)。
我发现的另一个解决方案是在根目录中添加一个 minitoc.tex 文件
.
├── a
│ └── main.tex
├── b
│ └── main.tex
├── main.tex
├── minitoc.tex
其中仅包含
\minitoc
并将 a/main.tex 和 b/main.tex 更改如下
\chapter{Chapter}
\setcounter{mtc}{1}%Or 2, according to the chapter number
\import{../}{minitoc}
\section{Section}
\subsection{Subsection}
这个解决方案的麻烦之处在于我必须手动设置计数器。这还不算太糟,但是有没有更好的自动解决方案?