在这些数学写作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-lm
Latin 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,无需对文档进行任何其他更改。