标题中的 Libertine newtxmath 和文本(旧式)图形

标题中的 Libertine newtxmath 和文本(旧式)图形

这与标题为“表格和数学中的内衬数字,文本中的旧式数字”,并给出其中给出的答案。

以下(半)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}

在此处输入图片描述

相关内容