问题 Libertine 半粗体带衬线数字

问题 Libertine 半粗体带衬线数字

我希望我可以使用 Libertine 字体的半粗体版本。

默认情况下,我使用 elzevirian 数字,这样就没有问题了,我可以用半粗体显示 elzevirian 数字。

在某些情况下,我需要使用半粗体的内衬数字。

然而,应该采用半粗体显示的内衬数字实际上是正常粗细的。

在此处输入图片描述

以下是 MWE:

\documentclass{article}

\RequirePackage[oldstyle,proportional]{libertine}
\DeclareRobustCommand\textsb[1]{{\libertineSB#1}}

\begin{document}
\LARGE

\noindent
Some "default" text with old style nums : 1234567890\\
\textsb{Some semi-bold text with old style nums : 1234567890}\\
\textbf{Some bold text with old style nums : 1234567890}\\

\noindent
Some text with lining nums : \liningnums{1234567890}\\
\textsb{Some semi-bold text with lining nums : \liningnums{1234567890}}\\
\textbf{Some bold text with lining nums : \liningnums{1234567890}}\\
\end{document}

你知道如何解决这个问题吗?

谢谢。

答案1

它可以与 一起使用pdflatex,但不能与 (Lua|Xe)LaTeX 一起使用,因为 中的一个错误libertine.sty会重置字体系列,而不是在执行 时添加所需的功能\liningnums

\documentclass{article}
\usepackage{iftex}

\usepackage[oldstyle,proportional]{libertine}

\DeclareTextFontCommand\textsb{\libertineSB}

\iftutex % XeLaTeX or LuaLaTeX
  \RenewDocumentCommand{\liningnums}{m}{%
    {\addfontfeatures{Numbers=Lining}#1}%
  }
\fi

\begin{document}

\noindent
Some "default" text with old style nums: 1234567890\\
\textsb{Some semi-bold text with old style nums: 1234567890}\\
\textbf{Some bold text with old style nums: 1234567890}

\noindent
Some text with lining nums: \liningnums{1234567890}\\
\textsb{Some semi-bold text with lining nums: \liningnums{1234567890}}\\
\textbf{Some bold text with lining nums: \liningnums{1234567890}}

\end{document}

在此处输入图片描述

相关内容