章节编号的特殊格式

章节编号的特殊格式

在这些数学写作Knuth 等人编写的注释(如果您撰写技术文章,值得一看前几页),他们使用特定的排版来表示章节编号。除了符号之外\S,数字本身还应用了特殊格式,使其看起来比平常更“矮”。

在此处输入图片描述

我很喜欢这种风格(它在某种程度上既优雅又熟悉),但我不知道如何在 TeX 中重新创建它。关于如何完成这种特殊的数字格式,您有什么想法吗?

答案1

您观察到的风格是(所谓的)“旧风格”。

您可以使用命令 将该样式与默认字体一起使用\oldstylenums。要查看效果,请输入\oldstylenums{1234567890}

在此处输入图片描述

要使章节编号与您链接的文档中的编号相同,您可以键入

\renewcommand{\thesection}{\S\oldstylenums{\textbf{\arabic{section}}}.}

如下文中的 MWE 所示

\documentclass{article}

\renewcommand{\thesection}{\S\oldstylenums{\textbf{\arabic{section}}}.}

\begin{document}

\section{First section}

\oldstylenums{1234567890}

\end{document} 

这使

在此处输入图片描述

显然,这不是使用“旧式”数字的正确方法。例如,当引用如上定义的部分时,您将同时获得粗体数字和句点,这不是理想的行为。

您应该选择专门支持“旧式”数字的字体。有关更多信息,请参阅主题使用旧式数字而不使用 \oldstylenumslockstep 提到。

例如,我发现 Kp 字体与“旧式”数字一起使用效果非常好。下面是一个例子。

在此处输入图片描述

\documentclass{article}

\usepackage[oldstylenums]{kpfonts}  % load with the option fulloldstylenums
                                    % if you also want old style numbers in math mode
\usepackage{titlesec}
\usepackage{lipsum}     % just for the example

\renewcommand{\thesection}{\S\arabic{section}}
\titleformat{\section}{\normalfont\bfseries}{\thesection.}{1em}{}[]   

\begin{document}

\section{Notes on Technical Writing}\label{sec:first}
\lipsum[2]

\section{Referencing} 
This a reference to \ref{sec:first} and this is a list of digits: 1234567890.

\end{document} 

请注意,我已经使用了titlesec命令\titleformat重新定义章节标题以包含句点。

答案2

如果您使用旧式数字来表示章节编号,则应将它们用于所有“非数学”数字,即所有未以正确的数学意义使用的数字,例如章节编号以外的页码。

一些字体系列提供旧式数字,但除了使用 clumsy\oldstyle命令外,不提供 Computer Modern。但是,您可以使用cfr-lmLatin Modern 字体,这些字体与 Computer Modern 几乎相同。有了它,在参考文献的数字前面cleveref添加标记就变得很容易了。对于标题中的章节编号,只需修改即可。我也会将旧式数字用于公式编号,因为它们只是标记,但在下面的代码中有一行可以将它们更改为直线数字。§\@seccntformat

\documentclass{article}
\usepackage[
  rm={oldstyle=true},
]{cfr-lm}
\usepackage{amsmath}

\makeatletter
\renewcommand\@seccntformat[1]{\S\csname the#1\endcsname\quad}
% Uncomment the following line for lining digits in equation numbers
%\renewcommand\maketag@@@[1]{\hbox{\m@th\normalfont\lstyle#1}}
\makeatother

\usepackage{cleveref}
\crefformat{section}{\S#2#1#3}

\begin{document}

\section{Introduction}\label{sec:intro}

Here we talk about something, with an equation
\begin{equation}\label{eq:good}
1+1=2
\end{equation}

Here's a ref to the present section, which is \cref{sec:intro}, and
one to equation~\eqref{eq:good}.

\end{document}

这样做有什么好处?\thesection命令不会受到影响,仍然完全可扩展,并可与诸如 之类的包一起使用refcount。该cleveref包非常强大,值得推荐,可在整个文档中获得统一的引用。最后,对 的调用cfr-lm可以更改为

\usepackage[osf,sc]{mathpazo}

使用带有旧式数字的 Palatino,无需对文档进行任何其他更改。

在此处输入图片描述

相关内容