我正在使用 xelatex 和memoir
课程撰写我的论文。我的许多章节标题都包含长单词,我不想在目录中用连字符连接。
根据回忆录类用户指南,我应该能够使用此命令来实现这一点:
\renewcommand{\@tocrmarg}{2.55em plus1fil}
这曾经有效,但现在随着 tex 的更新版本,它不再有效。
我一直将此命令放在前导中,但现在它会抛出错误 ( Missing \begin{document}
)。将其移至之后\begin{document}
并不能解决这个问题。
我意识到我可以只需手动在章节标题中添加换行符,但由于我是使用命令生成标题的,所以这并不是很有用。
我真的只是想让@tocrmarg
命令重新定义起作用......
谁能帮忙?我在下面附上了一个最小示例(已\renewcommand
注释掉):
\documentclass[11pt,oneside]{memoir}
\renewcommand{\@tocrmarg}{2.55em plus1fil}
\begin{document}
\tableofcontents
\newcommand{\lw}{Thisisalongwordverylong}
\chapter{\lw\ \lw\ \lw}
\end{document}
答案1
您必须处理@
命令名称中的 - 符号。TeX 无法将其识别为名称的一部分。要解决此问题,请将整个 - 符号括\renewcommand
起来\makeatletter...\makeatother
:
\documentclass[11pt,oneside]{memoir}
\makeatletter %% HERE
\renewcommand{\@tocrmarg}{2.55em plus1fil}
\makeatother %% AND HERE
\begin{document}
\tableofcontents
\newcommand{\lw}{Thisisalongwordverylong}
\chapter{\lw\ \lw\ \lw}
\end{document}