是否可以使用罗马小型大写数字对章节标题进行编号?
最小工作示例给了我我想要的,除了我希望罗马部分的编号与小型大写数字。
为了达到预期的效果,我不能使用\Roman{section}
而不是\roman{section}
。
\documentclass{book}
\renewcommand\thesection{\arabic{section}}
\begin{document}
\tableofcontents
\section{Arabic Section}
\renewcommand\thesection{\roman{section}}
\setcounter{section}{0}
\section{Roman Section}
I vs. \textsc{i}
\end{document}
该示例基于这个答案。
答案1
基本上
\renewcommand{\thesection}{{\scshape\roman{section}}
会做
对于数字本身的变化,请注意{}
用于分组和限制效果的额外对\scshape
,即字体切换到small caps
。
然而问题是,在章节标题和目录条目中,章节编号都是用粗体字体书写的。
普通cm
字体没有小型大写字母的粗体版本,但可以使用 来“启用/伪造/模拟” \usepackage{bold-extra}
。
\documentclass{book}
\usepackage{bold-extra}
\renewcommand\thesection{\arabic{section}}
\begin{document}
\tableofcontents
\section{Arabic Section}
\renewcommand\thesection{{\scshape\roman{section}}}
\setcounter{section}{0}
\section{Roman Section}
I vs. \textsc{i}
\end{document}
答案2
一个具有非常小的包的解决方案,称为scroman
,它定义了三种新的编号样式:
scroman
,这就是你想要的,osroman
这就像roman
,除了一个最终的i 被替换为j
,- 一个相似的
scosroman
。
第一种和第三种风格的演示:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{osroman}
\renewcommand\thesection{\arabic{section}}
\usepackage{lipsum}
\pagestyle{plain}
\begin{document}
\pagenumbering{scosroman}
\tableofcontents
\section{Arabic Section}
\lipsum
\renewcommand\thesection{\scroman{section}}
\setcounter{section}{0}
\section{Roman Section}
\lipsum
\end{document}
小包装编码:
\ProvidesPackage{osroman}
%%Provide 3 new numberings : scroman (roman numbering with small caps)
%% osroman (j, ij, iij, iv, v, vj, vij, viij, ix, x & c. )
%% scosroman (mixes scroman and os roman)
\newcommand{\oldstyleroman}[1]{\expandafter\@oldstyleroman#1\@nil}
\def\@oldstyleroman#1#2\@nil{%
\ifcat$\detokenize{#2}$%
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\if#1ij\else#1\fi}% si #2 est vide
{#1\@oldstyleroman#2\@nil}% si #2 n'est pas vide
}
\def\scroman#1{\expandafter\@scroman\csname c@#1\endcsname}
\def\@scroman#1{{\scshape\romannumeral #1}}
\def\osroman#1{\expandafter\@osroman\csname c@#1\endcsname}
\def\@osroman#1{{\oldstyleroman{\romannumeral #1}}}
\def\scosroman#1{\expandafter\@scosroman\csname c@#1\endcsname}
\def\@scosroman#1{{\scshape\oldstyleroman{\romannumeral #1}}}