我正在写一篇基于美国毕业论文。我需要在标题文本和页码之间设置至少 0.5 英寸的距离。但是,当我修改命令时\@tocrmarg
,它不会对章节标题产生影响。这是一个示例 .tex 文件:
\documentclass[]{USFDissertation}
%\documentclass{report}
\makeatletter
\renewcommand\@tocrmarg{15.55em} % versus 2.55em
\makeatother
\begin{document}
\tableofcontents
\chapter{this is very very very very extremely incredibly long chapter title that is giving me trouble}
\section{This is a very very long section title but listens to tocrmarg and breaks when needed}
\chapter{this chapter title is shorter}
\end{document}
它看起来是这样的:
知道该怎么修复吗?谢谢 :)
答案1
不是。解释是\@tocrmarg
(控制多行条目除最后一行外的所有条目的右边距缩进)仅在 中使用\dottedtocline
,因此只有使用 排版的节单元条目\@dottedtocline
(例如 和 中的节、小节、小小节、段落和小段落条目book
)report
会遵循 的更改\@tocrmarg
。
另一方面,至少在标准book
和report
文档类中,章节(以及部分)条目是不是排版使用 ,\dottedtocline
也不依赖于 的任何参数\@tocrmarg
,因此章节(和部分)条目不遵循后一个参数的变化。
如果您想改变标题和页码之间的距离,您有两个选择;选择哪一个取决于所需的结果。
\@tocmarg
您无需更改,而是可以重新定义\@pnumwidth
,它给出用于排版页码的框的宽度。为此,您需要\def\@pnumwidth{0.5in}
(在.cls
文件或.sty
文件中)或\makeatletter \def\@pnumwidth{0.5in} \makeatother
在
.tex
文件中。 包含示例代码的完整示例:\documentclass[boldheadings,thrmdefs,bbm,ams]{USFDissertation} \def\linespacingfactor{2} \def\parindentvalue{1cm} \usepackage[noframe]{showframe} \usepackage{lipsum} \usepackage{setspace,rotating,indentfirst,color,epsfig,subfigure,epstopdf,booktabs,longtable,multirow,wrapfig,url,pdflscape,caption} \usepackage[absolute]{textpos} \captionsetup[table]{font={stretch=1}} \captionsetup[figure]{font={stretch=1}} \allowdisplaybreaks \makeatletter \def\@pnumwidth{0.5in} \makeatother \begin{document} \renewcommand{\baselinestretch}{\linespacingfactor} % \normalfont \tableofcontents \dissertation \chapter[\uppercase{this is very very long chapter title that is giving me trouble}]{\uppercase{this is very very long chapter title that is giving me trouble}} \pagenumbering{arabic}\pagestyle{plain} \lipsum[1] \section{This is a very very long section title but listens to tocrmarg and breaks when needed} \chapter[\uppercase{this chapter title is shorter}]{\uppercase{this chapter title is shorter}} \lipsum[1] \end{document}
最终的目录如下:
另一个选择是保留更改
\@tocmarg
并使章节条目遵守\@tocrmarg
,这可以通过重新定义来实现\l@chapter
:\documentclass[boldheadings,thrmdefs,bbm,ams]{USFdissertation} \def\linespacingfactor{2} \def\parindentvalue{1cm} \usepackage[noframe]{showframe} \usepackage{lipsum} \usepackage{setspace,rotating,indentfirst,color,epsfig,subfigure,epstopdf,booktabs,longtable,multirow,wrapfig,url,pdflscape,caption} \usepackage[absolute]{textpos} \captionsetup[table]{font={stretch=1}} \captionsetup[figure]{font={stretch=1}} \allowdisplaybreaks \makeatletter \renewcommand\@tocrmarg{0.5in} \renewcommand*\l@chapter{\@dottedtocline{0}{1.5em}{2em}} \makeatother \begin{document} \renewcommand{\baselinestretch}{\linespacingfactor} % \normalfont \tableofcontents \dissertation \chapter[\uppercase{this is very very long chapter title that is giving me trouble}]{\uppercase{this is very very long chapter title that is giving me trouble}} \pagenumbering{arabic}\pagestyle{plain} \lipsum[1] \section{This is a very very long section title but listens to tocrmarg and breaks when needed} \chapter[\uppercase{this chapter title is shorter}]{\uppercase{this chapter title is shorter}} \lipsum[1] \end{document}
现在的结果是
与第一个选项的区别在于,现在多行条目中除最后一行之外的所有内容都位于右边距,而最后一行由数字
0.5in
分隔。\@pnumwidth