均匀对齐悬挂章节和节号

均匀对齐悬挂章节和节号

我正在使用回忆录类 hangnum 功能来记录章节和部分,这是一个最简单的例子:

\documentclass{memoir}

\makechapterstyle{hangnum}{
  \setlength{\chapindent}{0.8 cm} % <-- What should this be?
  \renewcommand*{\printchaptername}{}
  \renewcommand*{\chapternamenum}{}
  \renewcommand*{\printchapternum}{\noindent\llap{\makebox[\chapindent][l]{\chapnumfont \thechapter}}}
  \renewcommand*{\afterchapternum}{}}

\chapterstyle{hangnum}
\hangsecnum

\begin{document}
\chapter{Chapter}
\section{Section Uno}
\subsection{Subsection Eins}
\section{Section Duo}
\end{document}

有没有办法正确对齐章节和部分的数字,而不用猜测长度?

在此处输入图片描述

答案1

这是您可以做的(只需将\T其删除即可显示事物所在的位置)。

正如评论中提到的,部分使用\quad作为间隔符。但\quad取决于当前字体大小,因此由于\chapnumfont和 sec 字体大小不同,我们不能只使用\quad。相反,我们使用固定宽度的间隔符。

\documentclass{memoir}

\newlength\secspacer
% we do not want em here as it changes with the font size
\setlength\secspacer{12pt} 

\makeatletter
\newcommand{\myhangsecnum}{%
  \def\@seccntformat##1{\llap{\csname the##1\endcsname\kern\secspacer}}}
\makeatother

\newcommand\T{%
  \llap{\smash{\rule[-15cm]{0.1pt}{20cm}}}%
}


\makechapterstyle{hangnum}{
%  \setlength{\chapindent}{1em} % <-- What should this be?
  \renewcommand*{\printchaptername}{}
  \renewcommand*{\chapternamenum}{}
  \renewcommand*{\printchapternum}{\noindent\llap{\chapnumfont \thechapter\T\kern\secspacer}}
  \renewcommand*{\afterchapternum}{}
}

\chapterstyle{hangnum}
\myhangsecnum

\begin{document}
\chapter{Chapter}
\section{Section Uno}
\subsection{Subsection Eins}
\section{Section Duo}
\end{document}

相关内容