我在用着米尼托克和设置空间包(前者将文本间距设置为onehalfspacing)。
正如您在下面的屏幕截图和 MWE 中看到的,当使用这两个包(带有onehalfspacing
setspace 选项)时会出现图形错误。当onehalfspacing
选项处于活动状态时,目录的第一个项目设置得太靠近由 创建的线minitoc
。
维护者minitoc
(Jean-Pierre Drucbert) 已去世,据我所知,没有人接手。因此,我对修复持悲观态度。
您是否想到了一种解决方法,可以让onehalfspacing
文本和minitoc
部分协同工作?
梅威瑟:
\documentclass[12pt,twoside,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{palatino}
\usepackage{setspace}
\usepackage{graphicx}
\usepackage{minitoc}
\doparttoc
\begin{document}
\doparttoc
\faketableofcontents
\onehalfspacing
\part{1st part}
\parttoc
\chapter{With OneHalfSpacing, the Title is Too Close to the Line}
\singlespacing
\parttoc
\chapter{With SingleSpacing, No Problem}
\end{document}
编辑:如果我删除包,会出现同样的问题palatino
。我们只是看到“更少”的问题。
答案1
一个可以解决的解决方法\parttoc
。
宏\parttoc@
执行
\leavevmode\\\mtc@BBR\vskip -.5\baselineskip
就在末尾,即向上移动位置以放置下一个内容。虽然这对于正常的跳过值来说是可以的,但对于etc\baselineskip
提供的值来说,这很可能太多了。\onehalfspacing
最简单的方法是定义一个校正长度,然后\mtc@startparttocbaselineskip
将其设置为0pt
并应用补丁!这样,就没有间距依赖的升档。
\documentclass[12pt,twoside,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xpatch}
\usepackage{palatino}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{minitoc}
\makeatletter
\newlength{\mtc@startparttocbaselineskip}
\setlength{\mtc@startparttocbaselineskip}{0pt}
\xpatchcmd{\parttoc@}{%
\leavevmode\\\mtc@BBR\vskip -.5\baselineskip
}{%
\leavevmode\\\mtc@BBR\vskip -\mtc@startparttocbaselineskip
}{\typeout{Patch successfully performed}}{\typeout{Patch failed!}}
\makeatother
\doparttoc
\begin{document}
\onehalfspacing
\faketableofcontents
\part{1st part}
\parttoc
\chapter{With OneHalfSpacing, the Title is Too Close to the Line}
\chapter{With SingleSpacing, No Problem}
\end{document}