我应该在文档的序言中添加什么内容才能使数字成为旧式的?
不是“文本模式中的数字”,而是“数字”。数学模式也是如此。我知道有些人不喜欢数学模式中的旧式数字,因为它们看起来$a^{36}$
不对,但我不需要上标或下标中那么大的数字。而且我需要在数学模式下使用它们,因为表格需要是{array}
s 而不是{tabular}
s,因为它们包含许多数学公式或\mathcal
字母。
我尝试过 font-packages cfr-lm
、hfoldstyle
和,eco
但kpfonts
都无济于事。
我正在使用 MikTeX。
我宁愿保留 Computer Modern 的外观。它比我见过的其他字体 x 高度更大(因此更易读,也更好),而且我喜欢它的数学字形。
如果可能的话,文本模式下按比例间隔的旧式数字和数学模式下固定宽度的旧式数字会更好!
这是一次尝试,使用字体包cfr-lm
,它提供与计算机现代相似的字体,并在文本模式下提供旧式数字(这是进步),但在数学模式下仍使用排列数字。
\documentclass[12pt,a4paper]{article}
\usepackage{amsmath} % for \boxed
% See frabjous's comment to https://tex.stackexchange.com/q/2852
%\usepackage[oldstylenums]{kpfonts}
\usepackage{cfr-lm}
\begin{document}
0123456789 are text-mode digits. 1719--1811.
$0123456789$ are inline maths-mode digits. Now comes a tabular:
\begin{tabular}{r}
111367\\890111
\end{tabular}
and an array
$\begin{array}{r}
111367\\890111
\end{array}$
\boxed{\begin{matrix}
a+3&b-2\\
65&17
\end{matrix}}
\end{document}
答案1
将数字的标准分配更改为文本字体。
\documentclass[12pt,a4paper]{article}
\usepackage{cfr-lm}
\usepackage{amsmath} % for math
\DeclareMathSymbol{0}{\mathalpha}{letters}{`0}
\DeclareMathSymbol{1}{\mathalpha}{letters}{`1}
\DeclareMathSymbol{2}{\mathalpha}{letters}{`2}
\DeclareMathSymbol{3}{\mathalpha}{letters}{`3}
\DeclareMathSymbol{4}{\mathalpha}{letters}{`4}
\DeclareMathSymbol{5}{\mathalpha}{letters}{`5}
\DeclareMathSymbol{6}{\mathalpha}{letters}{`6}
\DeclareMathSymbol{7}{\mathalpha}{letters}{`7}
\DeclareMathSymbol{8}{\mathalpha}{letters}{`8}
\DeclareMathSymbol{9}{\mathalpha}{letters}{`9}
\begin{document}
0123456789 are text-mode digits. 1719--1811.
$0123456789$ are inline maths-mode digits. {\boldmath$0123$\textbf{0123}}
Now comes a tabular:
\begin{tabular}{r}
111367\\890311
\end{tabular}
and an array
$\begin{array}{r}
111367\\890311
\end{array}$
$\boxed{\begin{matrix}
a+3&b-2\\
65&17
\end{matrix}}$
\end{document}
答案2
(先说一句:我同意不是我认为在数学模式中使用旧式数字是个好主意。但是,既然你问了...)
fontspec
我不知道如何使用 pdfLaTeX 实现您的格式化请求。但是,使用 LuaLaTeX(或 XeLaTeX)和软件包可以轻松实现unicode-math
。
%%% compile with LuaLaTeX or XeLaTeX
\documentclass{article}
\usepackage{amsmath,array,booktabs}
\newcolumntype{C}{>{$}c<{$}}
\usepackage{unicode-math}
\defaultfontfeatures{Renderer=OpenType}
%\setmainfont{Latin Modern Roman}%
% [Numbers={OldStyle,Proportional}]
%\setmathfont{Latin Modern Math}
%\setmathfont{Latin Modern Roman}%
% [range=up/{num},Numbers={OldStyle,Monospaced}]
\setmainfont{Libertinus Serif}[Numbers={Proportional,OldStyle}]
\setmathfont{Libertinus Math}
\setmathfont{Libertinus Serif}[range=up/{num},Numbers={Monospaced,OldStyle}]
\begin{document}
Text mode: 0123456789, pp.\ 1668--2759.
Math mode: $0123456789$, $16+38=54$.
\smallskip
\begin{tabular}{@{}cC@{}}
\multicolumn{2}{c}{Type of spacing}\\
\cmidrule(lr){1-2}
prop. & $mono.$ \\
(text)& $(math)$\\
\midrule
111111 & 111111 \\
333333 & 333333 \\
222222 & 222222 \\
888888 & 888888 \\
999999 & 999999 \\
000000 & 000000
\end{tabular}
\smallskip
\boxed{\begin{matrix}a+3&b-2\\65&17\end{matrix}}
\end{document}