
私は文書でアラビア数字 (1、2、...) とローマ数字 (I、II、...) の両方のページ番号を使用しています。しかし、通常のローマ数字は目次で目立ちすぎます (例: XXVIII)。小文字のローマ数字も見栄えがよくありません (xxviii)。
私は次のことを達成したいと考えています。
- 各ページの下部にあるローマ字のページ番号は、標準サイズの大文字にする必要があります。
- 各ページの下部にあるアラビア語のページ番号は、標準サイズの数字にする必要があります。
- 目次のローマ字ページ番号は、標準サイズの小文字または小さめの大文字にする必要があります。(通常ほど幅広にしないでください)
- 目次内のアラビア語のページ番号は標準サイズの数字にする必要があります。
以下は、私が現在持っているものを示す MWE です。
\documentclass{scrartcl}
\begin{document}
\pagenumbering{Roman}
\setcounter{page}{27}
\tableofcontents
\newpage
\section{Section}
\newpage
\pagenumbering{arabic}
\section{Section}
\end{document}
tocstyle
ご覧のとおり、私はKOMA-Scriptを使用しています。このパッケージをすでに使用しているため、の機能を使用することは可能です(KOMA-Script: ローマ数字の配置が間違っている)。
注意:この質問は最初、 を使用した解決策を誤って尋ねていましたtocloft
。そのため、 を使用した回答がいくつかあります。
答え1
とともに近日リリース予定の KOMA-Script バージョン 3.20 tocstyle
必要ありません。すでにプレリリースKOMA-Script の Web サイトをご覧ください。
\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}
結果:
とともに現在のバージョン 3.19apagenumberhook
パッケージから使用できます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}
これは標準クラスでも機能しますarticle
。ただし、その場合はパッケージを追加でロードする必要がありますscrextend
。
\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}
答え2
おそらく最も簡単な方法は、tocloft
パッケージを使用して 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}
比較のために、tocloft
設定なしの状態を示します。
答え3
タグを設定しているのでtocloft
、パッケージを使用して目次の外観を変更することに興味があると思われます。次のコードは、これを実行する方法を示しています。ページ番号用に確保されるスペースを増やすために\cftsetrmarg
とを使用していることに注意してください\cftsetpnumwidth
。ローマ数字はアラビア数字よりも多くのスペースを占める傾向があります。
Computer Modern フォント ファミリは、サンセリフ/スモールキャップ/太字の組み合わせのフォント属性を提供しません。したがって、以下のコードは、目次にセリフ/非太字のスモールキャップのページ番号を生成します。
\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}