![问题 Libertine 半粗体带衬线数字](https://linux22.com/image/410358/%E9%97%AE%E9%A2%98%20Libertine%20%E5%8D%8A%E7%B2%97%E4%BD%93%E5%B8%A6%E8%A1%AC%E7%BA%BF%E6%95%B0%E5%AD%97.png)
我希望我可以使用 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}