如何修改主字体?

如何修改主字体?

我想定义\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}

在此处输入图片描述

相关内容