
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 tocstyle
nã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:
Com oversão atual 3.19avocê pode usar pagenumberhook
do 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 scrextend
adicionalmente.
\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 tocloft
pacote 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}
Para efeito de comparação, isso ocorre sem as tocloft
configurações:
Responder3
Já que você definiu a tocloft
tag, 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 \cftsetrmarg
e \cftsetpnumwidth
para 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.
\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}