在回忆录文档中,我有一个包含标题和副标题的部分。我想将标题和副标题放在不同的行中,并用水平线分隔。\part*{TITLE\\[5ex] Subtitle}
我可以用水平线分隔两个文本。我可以添加水平线,\part*{TITLE\\[5ex]\hrule{}{}{} Subtitle}
在这种情况下,线条会被绘制,但下面的文本不会与线条分开,如果我尝试,\part*{TITLE\\[5ex]\hrule{}{}{}\\[5ex] Subtitle}
编译器会崩溃,我会收到一条错误消息“这里没有结束的行”,使用选项“s”编译器会继续,并在编译后的文档中绘制线条,但是有什么方法可以消除错误消息吗?
答案1
您可以使用\rule
两个参数,宽度和厚度。请注意,命令后需要一个空格\rule
,以将字幕推到下一行。MWE:
\documentclass{memoir}
\begin{document}
\part*{TITLE\\[5ex]\rule{\textwidth}{1pt} Subtitle}
\end{document}
如果要降低字幕,可以使用\vskip
。请注意,参数不需要括号或空格。
\documentclass{memoir}
\begin{document}
\part*{TITLE\\[5ex]\rule{\textwidth}{1pt} \vskip10mm Subtitle}
\end{document}
在您的示例中,您使用了\part*
未打印在目录中的。如果您使用常规,\part
那么最好提供一个不带宏的短标题作为可选参数,以防止在目录中使用宏(或使用标题的其他地方,例如标题)。
\documentclass{memoir}
\begin{document}
\tableofcontents
\part[Title -- subtitle]{TITLE\\[5ex]\rule{\textwidth}{1pt} \vskip10mm Subtitle}
\end{document}
答案2
这里有一个作弊解决方案。我们定义一个新的宏,并在本地重新定义\part
应该做什么\printparttitle
。然后\part*{}
按重新定义的方式运行\printparttitle
,现在标题已经嵌入其中。
\documentclass[a4paper]{memoir}
\newcommand\DualPart[2]{%
\begingroup
\renewcommand{\printparttitle}[1]{\parttitlefont%
#1\par\bigskip\hrule\bigskip\par#2\par%
}%
\part*{}%
\endgroup%
}
\begin{document}
\DualPart{Title}{Subtitle}
\end{document}