目录页码,A-pagenum 左对齐,S-pagenum 居中

目录页码,A-pagenum 左对齐,S-pagenum 居中

我自定义了一些页码。我的顾问希望附录页面标记为 A-pagenum。因此,我通过以下方式实现了此目的:\renewcommand{\thepage}{A-\arabic{page}}将我的支持信息标记为 S-pagenum,因此\renewcommand{\thepage}{S-\arabic{page}}

但是,查看目录时,当页码从个位数变为两位数时,A 页似乎是左对齐的。但我的 S 页可能……居中?看起来不对劲,我不知道为什么 S 居中,而 A 不居中。

似乎是我可能没有意识到或忽略的那些问题之一。但我希望 S 页也能像 A 页一样左对齐。

以下是 MWE(略长一些,因为它是相关文章的 MWE)

\documentclass{memoir}
\setlength{\parskip}{12pt plus2pt}
\def\baselinestretch{1.6}
\linespread{1.3}
\usepackage{titletoc}

\begin{document}
\tableofcontents*
\setsecnumdepth{subsection}
\maxsecnumdepth{subsection}
\settocdepth{subsection}    
\chapter{Chap1}
\section{Chap1Sec1}
\section{Chap1Sec2}
\chapter{Chap2}
\section{Chap2Sec1}
\section{Chap2Sec2}
\subsection{Chap2Sec2Subsec1}
\chapter{Chap3}
\settocdepth{section}
\renewcommand{\thesection}{\thechapter-\Roman{section}}
\renewcommand{\thesubsection}{\thechapter-\Roman{section}.\arabic{subsection}}
\renewcommand{\thepage}{S-\arabic{page}}
\section{Chap3Sec1}
\clearpage
\section{Chap3Sec2}

\startcontents
\printcontents{}{2}{\addtocontents{ptc}{\setcounter{tocdepth}{2}}}
\subsection{Chap3Sec2Subsec1}
\subsection{Chap3Sec2Subsec2}
\subsection{Chap3Sec2Subsec3}
\subsection{Chap3Sec2Subsec4}
\stopcontents
\section{Chap3Sec3}\clearpage
\section{Chap3Sec4}\clearpage
\section{Chap3Sec5}\clearpage
\section{Chap3Sec6}\clearpage
\section{Chap3Sec7}\clearpage
\renewcommand{\thepage}{A-\arabic{page}}
\setcounter{page}{9}
\chapter{Chap4}
\settocdepth{subsection}
\section{Chap4Sec1}\clearpage
\section{Chap4Sec2}\clearpage
\subsection{Chap4Sec2Subsec1}
\end{document}

答案1

它不是左对齐,而是居中,而是大大超出框的宽度,而不是略微超出框的宽度。引用手册第 9.2.2 节memoir

[目录中的] 页码排版在固定宽度的框中。命令\setpnumwidth可用于更改框的宽度(LaTeX 的内部\@pnumwidth)。标题文本将在到达右边距之前结束。\setrmarg可用于设置此距离(LaTeX 的内部) \@tocrmarg。请注意,使用的长度\setrmarg应大于设置的长度 \setpnumwidth。这些值在任何给定文档中都应保持不变。

\@pnumwidth增大和的值\@tocrmarg将使页码(在我看来,是正确的)右对齐。要使它们左对齐,您还必须摆弄各种\cftKformatpnum宏。

\documentclass{memoir}
\setlength{\parskip}{12pt plus2pt}
\def\baselinestretch{1.6}
\linespread{1.3}
\usepackage{titletoc}

\setpnumwidth{2.5em}
\setrmarg{3.5em}

\makeatletter
\renewcommand*{\cftchapterformatpnum}[1]{%
    \hbox to \@pnumwidth{{\cftchapterpagefont #1}}}
\renewcommand*{\cftsectionformatpnum}[1]{%
    \hbox to \@pnumwidth{{\cftsectionpagefont #1}}}
\renewcommand*{\cftsubsectionformatpnum}[1]{%
    \hbox to \@pnumwidth{{\cftsubsectionpagefont #1}}}
\makeatother

\begin{document}
\tableofcontents*
\setsecnumdepth{subsection}
\maxsecnumdepth{subsection}
\settocdepth{subsection}    
\chapter{Chap1}
\section{Chap1Sec1}
\section{Chap1Sec2}
\chapter{Chap2}
\section{Chap2Sec1}
\section{Chap2Sec2}
\subsection{Chap2Sec2Subsec1}
\chapter{Chap3}
\settocdepth{section}
\renewcommand{\thesection}{\thechapter-\Roman{section}}
\renewcommand{\thesubsection}{\thechapter-\Roman{section}.\arabic{subsection}}
\renewcommand{\thepage}{S-\arabic{page}}
\section{Chap3Sec1}
\clearpage
\section{Chap3Sec2}

\startcontents
\printcontents{}{2}{\addtocontents{ptc}{\setcounter{tocdepth}{2}}}
\subsection{Chap3Sec2Subsec1}
\subsection{Chap3Sec2Subsec2}
\subsection{Chap3Sec2Subsec3}
\subsection{Chap3Sec2Subsec4}
\stopcontents
\section{Chap3Sec3}\clearpage
\section{Chap3Sec4}\clearpage
\section{Chap3Sec5}\clearpage
\section{Chap3Sec6}\clearpage
\section{Chap3Sec7}\clearpage
\renewcommand{\thepage}{A-\arabic{page}}
\setcounter{page}{9}
\chapter{Chap4}
\settocdepth{subsection}
\section{Chap4Sec1}\clearpage
\section{Chap4Sec2}\clearpage
\subsection{Chap4Sec2Subsec1}
\end{document}

相关内容