使用“libertine”包会用 Libertine 而不是 Biolinum 覆盖我的 sans-font

使用“libertine”包会用 Libertine 而不是 Biolinum 覆盖我的 sans-font

我正在尝试使用该libertine软件包,而不是使用我的机器(macOS)上安装的 Libertine 字体。似乎添加软件包后libertine,它会覆盖我的 sans-serif 字体并使用 Libertine 而不是 Biolinum。

我有以下布局:

\documentclass{book}

\usepackage{fontspec}
% \usepackage{libertine}

\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}

\usepackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\sffamily\bfseries\LARGE}
  {\filright \sffamily\mdseries
    \fontsize{10em}{0em}\selectfont
    \oldstylenums{\thechapter}}
  {1em}
  {\filright}

\begin{document}
\chapter{Chapter 1}
\end{document}

如果我使用它来构建它xelatex,我会得到以下输出: 无放荡

如果我取消注释\usepackage{libertine},则会呈现以下内容: 与放荡者

1尽管\titleformat块使用了,但大块却是用 Libertine 字体而不是 Biolinum 字体来呈现的\sffamily

有什么方法可以强制无衬线渲染吗?

答案1

问题是\oldstylenums切换字体。只需使用 fontspec 语法。

生物素

\documentclass{book}

\usepackage{fontspec}
\usepackage{libertine}

%\setmainfont{Linux Libertine O}
%\setsansfont{Linux Biolinum O}

\usepackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\sffamily\bfseries\LARGE}
  {\filright \sffamily\mdseries
    \fontsize{10em}{0em}\selectfont
    {\addfontfeature{Numbers=OldStyle}\thechapter}}
  {1em}
  {\filright}

\begin{document}
\chapter{Chapter 1}
\end{document}

答案2

道路fontspec

软件包libertine重新定义\oldstylenums{}以切换字体。您可以改回类似于 的定义,这会将 OpenType 字体功能添加到当前选定的字体中。请注意,这是和软件包fontspec之间的不兼容性!libertinefontspec

\documentclass{book}

\usepackage{fontspec}
\usepackage{libertine}

%% \oldstylenums and \liningums will change the style of the current font, as
%% in fontspec, not switch to the serif font, as in libertine.
\renewcommand\oldstylenums[1]{{\addfontfeatures{Numbers=OldStyle}{#1}}}
\renewcommand\liningnums[1]{{\addfontfeatures{Numbers=Lining}{#1}}}

\usepackage{titlesec}

\titleformat{\chapter}[display]
  {\normalfont\sffamily\bfseries\LARGE}
  {\filright \sffamily\mdseries
    \fontsize{10em}{0em}\selectfont
    \oldstylenums{\thechapter}}
  {1em}
  {\filright}

\begin{document}
\chapter{Chapter 1}

\oldstylenums{1234567890} vs. \liningnums{1234567890}.
\end{document}

Libertine 和 Biolinum 中的旧式数字

fontspec您也可以为命令赋予一个新的、明确的名称,或者在加载之后和加载之前保存定义libertine

道路libertine

libertine软件包提供了第二个命令,\oldstylenumsf{}用于将字体切换为带有旧式数字的 Biolinum。您可以简单地\textsf{\oldstylenums{}}用替换\oldstylenumsf{}

答案3

该包定义了\biolinumOsF字体:

\usepackage{libertine}

\titleformat{\chapter}[display]
{\normalfont\sffamily\bfseries\LARGE}
{\filright\mdseries\fontsize{10em}{0em}\selectfont
  \biolinumOsF\thechapter}
{1em}
{\filright}

在此处输入图片描述

相关内容