改变形状时改变数字字体特征

改变形状时改变数字字体特征

我正在编写一个文档,主字体设置为旧数字,但我想在表格中使用“正常”样式。这可行,但某个表格中的一些数字是斜体的,不知何故我找不到更改这些字体功能的方法。

事实证明,该表格无关紧要,在普通文本中使用\itshape\em\textit{}会产生相同的结果:

\documentclass[preview,border=2px,12pt]{standalone}

\usepackage{fontspec}
\setmainfont [Numbers = {Proportional,OldStyle}]{Linux Libertine O}

\begin{document}

2189 89283 98239 8098 2983 098023 \textit{1392843902984u29830} {\itshape 1981987092183749280}

{
\addfontfeatures{Numbers={Lining,Monospaced}, ItalicFeatures={Numbers={Lining,Monospaced}}}
2189 89283 98239 8098 2983 098023 \textit{1392843902984u29830} \itshape 1981987092183749280
}

\end{document}

在此处输入图片描述

知道我做错了什么吗?还是我遇到了错误?

答案1

使用 XeLaTeX 时我收到警告

*************************************************
* fontspec warning: "icu-feature-not-exist-in-font"
* 
* OpenType feature 'Numbers=Lining,Monospaced' (+tnum) not available for font
* 'Linux Libertine O/BI' with script 'Latin' and language 'Default'.
*************************************************

这可能是造成这种情况的原因。我通过定义新的字体系列而不是动态添加功能获得了预期的结果:

\documentclass[varwidth,border=2pt,12pt]{standalone}

\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont [Numbers = {Proportional,OldStyle}]{Linux Libertine O}
\newfontfamily{\libertinelf}{Linux Libertine O}

\begin{document}

2189 89283 98239 8098 2983 098023 \textit{1392843902984u29830} {\itshape 1981987092183749280}

{\libertinelf
2189 89283 98239 8098 2983 098023 \textit{1392843902984u29830} \itshape 1981987092183749280
}

\end{document}

在此处输入图片描述

答案2

Fontspec 在已经使用 Oldstyle 数字时会出现一些问题lnumtnum解决此问题的最简单方法之一是使用最新的libertine软件包:

\documentclass[preview,border=2pt,12pt]{standalone}

\usepackage{libertine}

\begin{document}

2189 89283 98239 8098 2983 098023 \textit{1392843902984u29830} {\itshape 1981987092183749280}

\liningnums{%
    \addfontfeature{Numbers = Monospaced}
    2189 89283 98239 8098 2983 098023 \textit{1392843902984u29830} \itshape 1981987092183749280
}
\end{document}

数字

等宽数字也可以使用(斜体数字除外):

等宽

答案3

使用 libertine.sty:

\usepackage{libertine}
\begin{document}
 2189 89283 98239 8098 2983 098023 \textit{\libertineLF 1392 84390 29842 9830}
\end{document}

相关内容