我想定义\textsb
半粗体文本的命令,因为我找不到提供该命令的包(我很好奇为什么它不是标准命令的一部分)。我找到了一个很好的解决方案相关答案但我不想使用,\setmainfont
因为它会覆盖提供的设置浪荡子包裹。
所以我尝试了\addfontfeatures
,但与\setmainfont
- 它仅在实际选择了字体后才起作用,即它不能从序言中起作用,
- 一旦家庭发生变化,就会被遗忘,例如之后
\ttfamily \normalfont
。
我想知道是否有办法进行修改,mainfont
以便在整个文档中记住它。或者,如果我的方法完全错误,有没有更可行的方法?
\documentclass{scrreprt}
\usepackage[mono=false,oldstyle=true,proportional=true]{libertine}
\addfontfeature{
FontFace = {sb}{n}{LinLibertine_RZah.ttf},
FontFace = {sb}{it}{LinLibertine_RZIah.ttf}
}
\DeclareOldFontCommand{\sbseries}{\fontseries{sb}\selectfont}{\mathbf}
\DeclareTextFontCommand{\textsb}{\sbseries} % {\sbseries foo} \textsb{bar}
答案1
我很高兴你觉得我 2015 年的回答很有帮助,但它并不是在实践中使用 Linux Libertine 字体的最佳示例。(但是,如果你愿意,你可以复制你使用字体Numbers=
功能选择的所有选项fontspec
。)我之所以选择这些示例,是因为它们是包含半粗体系列的字体,并且以 Type 1 和 OTF 的形式存在于 TeX Live 发行版中。
这是与软件包兼容的答案。Ulrike Fischer 抢先了一步 (+1),但这个答案更简单,并且使用了您想要的字体。无论您更改主字体还是使用,它都可以正常工作\libertine
。所以,我希望它和她的一样仍然有用。
\documentclass[varwidth, previeww]{standalone}
\usepackage{fontspec}
\defaultfontfeatures[LinLibertine]{
FontFace = {sb}{n}{LinLibertine_RZ.otf},
FontFace = {sb}{it}{LinLibertine_RZI.otf}
}
\usepackage[mono=false,
oldstyle=true,
proportional=true]{libertine}
\newcommand\sbseries{\fontseries{sb}\selectfont}
\DeclareTextFontCommand{\textsb}{\sbseries}
\begin{document}
Linux Libertine \textbf{bold \textit{italic}}
\textsb{semibold \textit{italic}}
\end{document}
也可以使用\defaultfontfeatures[\rmfamily]{...}
、\defaultfontfeatures[\sffamily]{...}
等等。
还要注意,该包声明了一个\libertineSB
可以在没有的情况下使用的字体系列fontspec
,或者支持sb
用半粗体替换粗体的包选项。
答案2
我没有字体,但类似这样的方法应该可以起作用(用你的字体替换 arial,并根据需要调整字体功能):
\documentclass{scrreprt}
\usepackage{fontspec}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,NFSSFamily=libertine}
\usepackage[mono=false,oldstyle=true,proportional=true]{libertine}
\DeclareFontShape{TU}{libertine}{sb}{n}{<->s*[1] [arial.ttf]:mode=node;script=latn;language=DFLT;+tlig;+pnum;
+onum;+smcp;}{}
\DeclareFontShape{TU}{libertine}{sb}{it}{<->s*[1] [ariali.ttf]:mode=node;script=latn;language=DFLT;+tlig;+pnum;
+onum;+smcp;}{}
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
\begin{document}
some text {\sbseries some text \itshape some text}
\ttfamily some text {\sbseries some text \itshape some text}
\rmfamily some text {\sbseries some text \itshape some text}
\end{document}