我正在写一篇论文,我想修改回忆录类的章节标题样式。这是我用于章节标题定义的代码:
\chapterstyle{demo2}
\renewcommand*{\printchaptername}
{
\centering\chapnamefont\MakeUppercase{\@chapapp}
}
\renewcommand*{\printchapternum}{\chapnumfont\thechapter\space}
\renewcommand*{\chaptitlefont}{\Huge\bfseries\boldmath\sffamily\center}
\renewcommand{\printchaptertitle}[1]{
\hrule %makeuppercase removes the hrule already printed so explicitely added another
\chaptitlefont\MakeUppercase{#1}
}
我的一些章节标题跨越两行,有些仅跨越一行,就像这些图片一样:
问题 :无论文本的长度如何,如何才能使每个标题的两条水平线之间具有相同的垂直空间,并且垂直居中文本?
非常感谢您的帮助 !
编辑最小工作示例:
章节.sty:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{style}[2019/06/27 Custom LaTeX style]
\chapterstyle{demo2}
\renewcommand*{\printchaptername}
{
\centering\chapnamefont\MakeUppercase{\@chapapp}
}
\renewcommand*{\printchapternum}{\chapnumfont\thechapter\space}
\renewcommand*{\chaptitlefont}{\Huge\bfseries\boldmath\sffamily\center}
\renewcommand{\printchaptertitle}[1]{
\hrule
\chaptitlefont\MakeUppercase{#1}
}
主文本:
\documentclass{memoir}
\usepackage[utf8]{inputenc}
\usepackage{chapter}
\title{Same vertical spacing in chapter title header}
\author{wahouh}
\date{July 2020}
\begin{document}
\maketitle
\chapter{some title very long spanning over two lines }
\chapter{Conclusions}
\end{document}
答案1
这不是一个答案,但作为评论它太长了。
您提供的代码作为 MWE(尽管分为两部分)对我来说不起作用。我摆弄了一下,并生成了以下内容作为 MWE,尽管它需要一些整理。
% chapdemo2prob.tex SE 552137
\documentclass{memoir}
\usepackage[utf8]{inputenc}
\usepackage{comment}
%\usepackage{chapter} %%%% what is this???
%
%\NeedsTeXFormat{LaTeX2e}
%\ProvidesPackage{style}[2019/06/27 Custom LaTeX style]
%
\chapterstyle{demo2}
\makeatletter
\renewcommand*{\printchaptername}%
{\centering\chapnamefont\MakeUppercase{\@chapapp}
}
\makeatother
\renewcommand*{\printchapternum}{\chapnumfont\thechapter\space}
\renewcommand*{\chaptitlefont}{\Huge\bfseries\boldmath\sffamily\center}
\renewcommand*{\chaptitlefont}{\Huge\bfseries\boldmath\sffamily\centering}
\renewcommand{\printchaptertitle}[1]{
\hrule
\vspace{0.5\baselineskip}
\chaptitlefont\MakeUppercase{#1}
}
\title{Same vertical spacing in chapter title header}
\author{wahouh}
\date{July 2020}
\begin{document}
\maketitle
\chapter{some title very long spanning over two lines }
\chapter{Conclusions}
\end{document}
这是您代码的一个版本,但作为单个文件。您至少应该在代码中使用\centering
而不是\center
。如果您提供不会导致 LaTeX 错误的 MWE,那将非常有帮助。
您的要求很复杂。必须先运行一次初始 LaTeX,存储每个章节标题水平线之间的间距。然后在第二次运行中取其中的最大值并调整所有章节标题的间距。我不会尝试这样做。--- GOM