这与标题为“表格和数学中的内衬数字,文本中的旧式数字”,并给出其中给出的答案。
以下(半)MWE 将使用 pdfLaTeX 运行:
\documentclass[12pt]{memoir}
\usepackage{etoolbox}% I tried with \AfterEndPreamble
\usepackage{textcomp}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\AfterEndPreamble{%
\def\libertine@figurealign{}
\libertineOsF
\noindent% memoir indents at the very start
}
\begin{document}
Text figures: 0123456789
\par\noindent
Math figures: $0123456789$
\end{document}
它会导致在数学模式下出现内衬数字,在文本模式下出现文本(旧式)数字,但仅限于文本块,而不包括在标题上,在标题中我们仍然可以获得内衬数字,如页码的数字所示。
我们怎样才能在标题上获得旧式数字呢?
答案1
这似乎有效:
\documentclass[12pt]{memoir}
\usepackage[T1]{fontenc}
\usepackage[oldstyle]{libertine}
\makeatletter
\renewcommand*\libertine@figurestyle{LF}
\makeatother
\usepackage[libertine]{newtxmath}
\makeatletter
\renewcommand*\libertine@figurestyle{OsF}
\makeatother
\begin{document}
\section{foo 123 bar}
Text figures: 0123456789 \textbf{0123456789}
\par\noindent
Math figures: $0123456789$
\end{document}
答案2
对于当前的newtxmath
,不要使用osf
之前的选项\usepackage[libertine]{newtxmath}
,而是在其后立即添加以下4行:
\makeatletter
\def\libertine@figurestyle{OsF} %affects \libertine macro
\makeatother
\renewcommand*{\rmdefault}{LinuxLibertineT-OsF} % for normal text
在里面newtxdoc.pdf
。
答案3
该软件包Libertine
(截至 2014 年 2 月 11 日发布的版本)提供了命令\useosf
,如果在加载数学字体后使用,则仅为文本(包括标题)设置旧式图形。
\documentclass[12pt]{memoir}
\usepackage{textcomp}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\usepackage[libertine]{newtxmath}
\useosf
\begin{document}
\chapter{Chapter}
\section{Section}
Text figures: 0123456789
\par\noindent
Math figures: $0123456789$
\end{document}