TOC 頁碼,A-pagenum 左對齊,S-pagenum 居中

TOC 頁碼,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將使頁碼(IMO,正確)右對齊。為了使它們左對齊,您還必須擺弄各種\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}

相關內容