Versaletes/letras minúsculas para numeração de páginas do sumário

Versaletes/letras minúsculas para numeração de páginas do sumário

Eu uso numeração de páginas árabe (1, 2, ...) e romana (I, II, ...) em meu documento. Contudo, as figuras romanas normais parecem demasiado dominantes no índice (por exemplo, XXVIII). Os números romanos minúsculos também não me parecem bons (xxviii).

Eu gostaria de alcançar o seguinte:

  • A numeração romana das páginas no final de cada página deve ser em letras maiúsculas de tamanho padrão.
  • A numeração das páginas em árabe na parte inferior de cada página deve ser em números de tamanho padrão.
  • A numeração romana das páginas no índice deve ser em versalete de tamanho padrão ou em letras maiúsculas menores. (Eles não devem ser tão largos regularmente)
  • A numeração das páginas em árabe no índice deve ser em números de tamanho padrão.

A seguir está um MWE que mostra o que tenho agora.

\documentclass{scrartcl}
\begin{document}
    \pagenumbering{Roman}
    \setcounter{page}{27}
    \tableofcontents
    \newpage
    \section{Section}
    \newpage
    \pagenumbering{arabic}
    \section{Section}
\end{document}

Como você pode ver, eu uso o KOMA-Script. Estou aberto a usar recursos do tocstyle, pois já uso esse pacote (vejaKOMA-Script: alinhamento incorreto de números romanos).


Observação:Esta pergunta foi inicialmente feita por engano para uma solução usando tocloft. É por isso que existem algumas respostas usando isso.

Responder1

Com opróxima versão 3.20 do KOMA-Script tocstylenão será necessário. Já existe umpré-lançamentono site KOMA-Script.

\documentclass{scrartcl}[2016/10/23]
\newcommand\pagenumbertocfont[1]{\ifisinteger{#1}{#1}{\tiny #1}}
\RedeclareSectionCommands[
    tocdynnumwidth,
    tocpagenumberbox=\hbox,
    tocpagenumberformat=\pagenumbertocfont
]{part,section,subsection,subsubsection,paragraph}
\RedeclareSectionCommands[
    tocpagenumberformat=\usekomafont{disposition}\pagenumbertocfont
]{part,section}


\usepackage{blindtext}

\begin{document}
    \pagenumbering{Roman}
    \setcounter{page}{27}
    \tableofcontents
    \clearpage
    \part{Part}
    \blinddocument

    \cleardoubleoddpage
    \pagenumbering{arabic}
    \blinddocument
\end{document}

Resultado:

insira a descrição da imagem aqui


Com oversão atual 3.19avocê pode usar pagenumberhookdo pacote tocstyle.

\documentclass{scrartcl}

\usepackage[tocindentauto]{tocstyle}
\usetocstyle{KOMAlike}
\settocfeature{pagenumberbox}{\hbox}

\newcommand\pagenumbertocfont[1]{\ifisinteger{#1}{#1}{\tiny #1}}
\settocstylefeature{pagenumberhook}{\pagenumbertocfont}
\settocstylefeature[-1]{pagenumberhook}{\pagenumbertocfont}
\settocstylefeature[1]{pagenumberhook}{\pagenumbertocfont}

\usepackage{blindtext}

\begin{document}
    \pagenumbering{Roman}
    \setcounter{page}{27}
    \tableofcontents
    \clearpage
    \part{Part}
    \blinddocument

    \cleardoubleoddpage
    \pagenumbering{arabic}
    \blinddocument

\end{document}

Isso funciona também com a classe padrão article. Mas então você precisa carregar o pacote scrextendadicionalmente.

\documentclass{article}
\usepackage{scrextend}
\usepackage{tocstyle}
\usetocstyle{standard}
\settocfeature{pagenumberbox}{\hbox}

\newcommand\pagenumbertocfont[1]{\ifisinteger{#1}{#1}{\tiny #1}}
\settocstylefeature{pagenumberhook}{\pagenumbertocfont}
\settocstylefeature[-1]{pagenumberhook}{\pagenumbertocfont}
\settocstylefeature[1]{pagenumberhook}{\pagenumbertocfont}

\usepackage{blindtext}

\begin{document}
    \pagenumbering{Roman}
    \setcounter{page}{27}
    \tableofcontents
    \clearpage
    \part{Part}
    \blinddocument

    \cleardoubleoddpage
    \pagenumbering{arabic}
    \blinddocument
\end{document}

Responder2

Talvez a coisa mais fácil a fazer seja usar o tocloftpacote para definir a aparência do toc.

\documentclass{scrartcl}
\usepackage{tocloft}
\renewcommand\cftsecfont{\bfseries\sffamily}
\renewcommand\cftsecpagefont{\bfseries\small\sffamily}
\begin{document}
    \pagenumbering{Roman}
    \setcounter{page}{27}
    \tableofcontents
    \newpage
    \section{Section}
    \newpage
    \pagenumbering{arabic}
    \section{Section}
\end{document}

insira a descrição da imagem aqui

Para efeito de comparação, isso ocorre sem as tocloftconfigurações:

insira a descrição da imagem aqui

Responder3

Já que você definiu a toclofttag, presumo que você esteja interessado em usar o pacote para modificar a aparência do Índice. O código a seguir mostra como isso pode ser feito. Observe o uso de \cftsetrmarge \cftsetpnumwidthpara aumentar a quantidade de espaço reservado para números de página - os algarismos romanos tendem a ocupar muito mais espaço do que os algarismos arábicos.

A família de fontes Computer Modern não fornece uma combinação de atributos de fonte sans-serif/small-caps/negrito. O código abaixo, portanto, gera números de página com serifa/sem negrito e letras minúsculas no ToC.

insira a descrição da imagem aqui

\documentclass{scrartcl}

\usepackage{tocloft}
\cftsetrmarg{4em} % set aside more space for roman numerals
\cftsetpnumwidth{3.5em}  
\renewcommand\cftsecfont{\bfseries\sffamily}
\renewcommand\cftsubsecfont{\bfseries\sffamily}
\renewcommand\cftsubsubsecfont{\bfseries\sffamily}
\renewcommand\cftsecpagefont{\scshape}

\begin{document}
    %%\pagenumbering{roman} 
    \renewcommand\thepage{\scshape\roman{page}} % <- new
    \setcounter{page}{37}
    \tableofcontents
    \newpage
    \section{Section}
    \subsection{Subsection}
    \subsubsection{A very very very very very  very very very very very very very very very very very very very very very very very very very very long subsubsection header}
    \newpage
    \pagenumbering{arabic}
    \section{Section}
\end{document}

informação relacionada