Números de página del TOC, página A alineada a la izquierda, página S centrada

Números de página del TOC, página A alineada a la izquierda, página S centrada

He personalizado algunas numeraciones de páginas. Mi asesor quería que las páginas del apéndice estuvieran etiquetadas como A-pagenum. Eso se logró \renewcommand{\thepage}{A-\arabic{page}}mientras mi información de respaldo estaba etiquetada con S-pagenum, entonces \renewcommand{\thepage}{S-\arabic{page}}.

Sin embargo, al observar mi TOC, parece que mis páginas A quedan alineadas a la izquierda cuando el número de páginas cambia de uno a dos dígitos. Pero mis páginas S tal vez estén... ¿centradas? Parece extraño y no tengo ni idea de por qué la S se centra y la A no.

Parece una de esas cosas atrapantes de las que tal vez no soy consciente o las paso por alto. Pero me gustaría que las páginas S también estuvieran alineadas a la izquierda como las A.

Aquí hay un MWE (que es un poco más largo, porque es un MWE para una publicación relacionada)

\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}

Respuesta1

No está alineado a la izquierda o centrado, sino que excede considerablemente o ligeramente el ancho de un cuadro. Citando el apartado 9.2.2. del memoirmanual:

Los números de página [en el ToC] están escritos en un cuadro de ancho fijo. El comando \setpnumwidthse puede utilizar para cambiar el ancho del cuadro (interno de LaTeX \@pnumwidth). Los textos del título terminarán antes de llegar al margen derecho. \setrmargse puede utilizar para establecer esta distancia (interna de LaTeX \@tocrmarg). Tenga en cuenta que la longitud utilizada en \setrmargdebe ser mayor que la longitud establecida en \setpnumwidth. Estos valores deben permanecer constantes en cualquier documento determinado.

Ampliar los valores de \@pnumwidthy \@tocrmarghará que los números de página (en mi opinión, correctamente) estén alineados a la derecha. Para alinearlos a la izquierda, también debes jugar con las distintas \cftKformatpnummacros.

\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}

información relacionada