我正在使用tufte-book
documentclass 来排版注释。我希望minitoc
在每章开头的空白处有一个。我首先采用的(老套)方法是使用\marginnote{\minitoc}
,但是如果标题很长,水平框就会溢出并被截断。同样,如果没有长标题,内容框似乎仍然延伸到页面的上方。
minitoc
这是将 设置为 的边缘的适当方法吗tufte-book
?如果是,我该如何强制minitoc
保持在页面几何范围内?
平均能量损失
\documentclass[openany]{tufte-book}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{minitoc}
\begin{document}
\dominitoc\faketableofcontents
\chapter{Lorem?}
\marginnote{\minitoc}
\section{Ipsum}
\blindtext
\section{A long title, perhaps pondering the meaning of life}
\blindtext
\end{document}
MWE 输出
下面的警告似乎与问题无关:
- “第 1 页的边注被移动了”,这可能是问题所在;在 TeXOverflow 上搜索类似问题似乎表明,当边注在编译之间移动时就会发生这种情况,但这里不会发生这种情况。
- “软件包 bibentry 警告:您已使用
\nobibliography*
而无后续\bibliography
。您可能无法运行 BibTeX。”
答案1
您收到的两个警告无需担心。第二个警告只是来自 加载的包tufte-book
。第一个警告告诉您边注现在位于正确的位置,但第一次编译文档时并非如此。
您\documentclass
还可以使用样式目录。但它有一个notoc
选项可以防止这种情况。因为您可能不希望在页边距中使用如此大的字体大小和较大的行宽,所以您应该使用此选项。此外,有必要将迷你目录放置在minipage
与页边距宽度相同的位置。最好将其设置\mtcindent
为零。
\documentclass[openany,notoc]{tufte-book}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{minitoc}
\setlength{\mtcindent}{0pt}
\begin{document}
\chapter{Lorem?}
\marginnote{%
\begin{minipage}{\marginparwidth}%
\minitoc%
\end{minipage}%
}
\section{Ipsum}
\blindtext
\section{A long title, perhaps pondering the meaning of life}
\blindtext
\end{document}
结果:
答案2
您还可以使用etoc
:
\documentclass[openany]{tufte-book}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{etoc}
\etocsetstyle{section}
{\parindent -1em \parskip 1ex}
{\leftskip 1em}
{\etocnumber
\etocname\nobreak\hspace{2em}
\etocpage\par}
{}
\etocsetstyle{subsection}
{\parindent -1em \parskip 1ex}
{\leftskip 2em}
{\etocname\nobreak\hspace{2em}
\etocpage\par}
{}
\etocsettocstyle{\normalfont\normalsize}{}
\etocsetnexttocdepth{2}
\begin{document}
\chapter{Lorem?}
\marginnote{\localtableofcontents}
\section{Ipsum}
\blindtext
\section{A long title, perhaps pondering the meaning of life}
\blindtext
\subsection{A subsection}
\blindtext
\end{document}