如何使“fakebold”在自定义字体上发挥作用?

如何使“fakebold”在自定义字体上发挥作用?

我添加了希腊语专用字体,但当我使用它时,命令\textbf{}不会产生粗体字母。我添加了[FakeBold=3],但没有效果。问题是什么?

\documentclass[openany]{book}
\usepackage{fontspec}
\setmainfont[BoldFont={* Semibold},ItalicFont={* Italic},BoldItalicFont={* Semibold Italic}]{Times New Roman}
\newfontfamily\bgkfamily[FakeBold=3]{SBL Greek}
%%% \newfontfamily\bgkfamily[BoldFeatures={FakeBold=2.5}]{SBL Greek}
\DeclareTextFontCommand{\bgreek}{\bgkfamily\upshape}
\begin{document}
    Here is a sentence. This is \bgreek{και \textbf{και } και}
\end{document}

如果有关系的话,我会使用 Texpad。

答案1

我不太确定我是否理解了您的要求。但是,如果您将其FakeBold作为顶级字体选项,则会使字体的所有面都变粗。如果您没有其他粗体字体,则粗体文本不会变得更粗。

要自动仅使粗体字体加粗并仅使倾斜和斜体字体倾斜,请使用AutoFakeBoldAutoFakeSlant

\documentclass{article}
\usepackage{fontspec}
\usepackage[regular]{newcomputermodern}

% Intentionally loading these fonts in a way that prevents finding NewCM10-Bold.otf.
\newfontfamily\fakebolded{NewCM10-Regular.otf}[FakeBold=1.5, FakeSlant=0.25]
\newfontfamily\autobolded{NewCM10-Regular.otf}[AutoFakeBold=1.5, AutoFakeSlant=0.25]

\begin{document}
Real \textbf{Bold \textsl{Slanted}}

\fakebolded Fake \textbf{Bold \textsl{Slanted}}

\autobolded Auto-Fake \textbf{Bold \textit{Slanted}}
\end{document}

新计算机现代样本

答案2

解决方案很简单:您必须声明粗体字体。

在代码中,我通过文件名选择字体,因为我不会将 SBL Greek 添加到我的系统字体中。

\documentclass[openany]{book}
\usepackage{fontspec}

\newfontfamily\bgkfamily{SBL_grk}[
  Path=./,
  Extension=.ttf,
  BoldFont=*,
  BoldFeatures={FakeBold=4},
]
\DeclareTextFontCommand{\bgreek}{\bgkfamily\upshape}

\begin{document}

Here is a sentence. This is \bgreek{και \textbf{και} και}

\end{document}

如果你在系统字体中安装了该字体,则可以使用

\newfontfamily\bgkfamily{SBL Greek}[
  BoldFont=*,
  BoldFeatures={FakeBold=4},
]

我使用了 4 来使粗体更加明显。

在此处输入图片描述

答案3

\documentclass[a4paper, 12pt]{article}

\usepackage{amsfonts, amssymb, amsmath, amsthm}

\usepackage[no-math]{fontspec}
\setmainfont{ModernMTStd-Extended.otf}[
FakeBold=2,
Ligatures=TeX,
]

\setsansfont[%
FakeBold=2,
ItalicFont=NewCMSans10-Oblique.otf,%
BoldFont=NewCMSans10-Bold.otf,%
BoldItalicFont=NewCMSans10-BoldOblique.otf,%
SmallCapsFeatures={Numbers=OldStyle}]{NewCMSans10-Regular.otf}

\setmonofont[%
FakeBold=2,
ItalicFont=NewCMMono10-Italic.otf,%
BoldFont=NewCMMono10-Bold.otf,%
BoldItalicFont=NewCMMono10-BoldOblique.otf,%
SmallCapsFeatures={Numbers=OldStyle}]{NewCMMono10-Regular.otf}

\let\mathbbalt\mathbb
\usepackage{unicode-math}
\setmathfont{NewCMMath-Regular.otf}[FakeBold=2]
\let\mathbb\mathbbalt

\begin{document}
    This is how you fakebold \texttt{custom} \textsf{fonts}. You need to have the fonts specified in the \texttt{setmainfont} arguments installed on your machine or in the directory you are working on.
     \begin{align*}
         v\in\mathbb{V}\\
         f\in\mathbb{F}
     \end{align*}
\end{document}

输出

相关内容