如何使用 fontspec 设置带有 mathdesign 的无标题字体

如何使用 fontspec 设置带有 mathdesign 的无标题字体

我喜欢这个mathdesign包,但想在 中使用 Myriad Pro 章节标题LuaLaTeX。这可能吗,还是我必须将 OTF 字体转换为 T1?(我对 *TeX 中的字体问题一无所知。)命令\setsansfontmathdesign包似乎不能一起工作,尽管 mathdesign 中没有提到 fontspec。这是一个 MWE,显示了通过 LuaLaTeX 运行时不起作用的内容。

 \documentclass{article}
 \usepackage [english] {babel}
 \usepackage {blindtext}
 \usepackage {titlesec}
 \usepackage {etoolbox}
 \usepackage {ifluatex}
 \titleformat{\section}{\Large\sffamily\bfseries}{\thesection}{1em}{}

 \ifbool{luatex} { 
   \usepackage {fontspec}
   \setsansfont [Ligatures=TeX,Scale=MatchLowercase] {Myriad Pro}
   \usepackage [charter] {mathdesign}
 }{\usepackage [T1] {fontenc}
   \usepackage [charter] {mathdesign}
   \renewcommand*{\sfdefault}{phv} % Adobe Helvetica 
 }

 \begin{document}
 \section {A section}
 \blindmathpaper
 \end{document}

该文件的开头如下所示(请注意缺少无衬线部分标题) 首先使用字体规范

如果我mathdesign之前加载包,fontspec我会得到正确的部分标题字体,但rmdefault字体会切换到 CM。

有趣的是,在所有情况下,数学字体仍然是 Charter。

在此处输入图片描述

答案1

您还必须设置正确的字体编码才能选择正确的字体(对于 LuaLaTeX 版本):

\titleformat{\section}
  {\fontencoding{EU2}\Large\sffamily\bfseries}
  {\thesection}
  {1em}
  {}

在此处输入图片描述

\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{titlesec}
\usepackage{ifluatex}

\ifluatex
  \usepackage {fontspec}
  \setsansfont [Ligatures=TeX,Scale=MatchLowercase] {Myriad Pro}
  \usepackage[T1]{fontenc}
  \usepackage[charter]{mathdesign}
  \titleformat{\section}
    {\fontencoding{EU2}\Large\sffamily\bfseries}
    {\thesection}
    {1em}
    {}
\else
  \usepackage[T1]{fontenc}
  \usepackage[charter]{mathdesign}
  \renewcommand*{\sfdefault}{phv} % Adobe Helvetica
  \titleformat{\section}
    {\Large\sffamily\bfseries}
    {\thesection}
    {1em}
    {}
\fi

\begin{document}

\section {A section}
\blindmathpaper
\end{document}

为了完整起见,这里有一个仅有 LuaTeX 的版本,其中带有 Herbert 在评论中指出的字体:

\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{titlesec}

\usepackage[charter]{mathdesign}
\usepackage[no-math]{fontspec}
\setmainfont[Ligatures=TeX,
             BoldFont={CharterITC Bold BT},
             BoldItalicFont={CharterITC Bold Italic BT},
            ]{CharterITC BT}
\setsansfont[Ligatures=TeX,Scale=MatchLowercase]{Myriad Pro}

\titleformat{\section}{\Large\sffamily\bfseries}{\thesection}{1em}{}

\begin{document}

\textbf{Abc}

\section {A section}
\blindmathpaper
\end{document}

指定字体的方式可能需要有所不同(这里我将字体放在系统字体中)。请注意,必须手动指定粗体和粗斜体版本,因为默认值是“黑色”,这让人fontspec无法理解。我添加了一个粗体字作为示例。

在此处输入图片描述

相关内容