![目录页码,A-pagenum 左对齐,S-pagenum 居中](https://linux22.com/image/254596/%E7%9B%AE%E5%BD%95%E9%A1%B5%E7%A0%81%EF%BC%8CA-pagenum%20%E5%B7%A6%E5%AF%B9%E9%BD%90%EF%BC%8CS-pagenum%20%E5%B1%85%E4%B8%AD.png)
我自定义了一些页码。我的顾问希望附录页面标记为 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}