粗体 pzc 用于数学模式

粗体 pzc 用于数学模式

有没有一种合适的方法可以将 pzc 字体加粗,定义为

\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}

在数学模式中。尝试使用 \bm 如下,没有发现任何东西

\documentclass{report}
\usepackage{amsmath}
\usepackage{bm}
\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
\begin{document}
$\mathpzc{A}$ is a set and $\bm{ \mathpzc{B}}$ is a polyset.
\end{document}

有什么建议么?

答案1

Zapf Chancery 字体(或其克隆版)不提供粗体版本。

如果您愿意使用 XeLaTeX 或 LuaLaTeX,您可以利用 TeX Gyre Chorus,它是 Zapf Chancery 的克隆版,可以伪造粗体。

\documentclass{article}
\usepackage{fontspec}

\newfontfamily{\chorus}{TeX Gyre Chorus}[
  NFSSFamily=chorus,
  BoldFont=*,
  BoldFeatures={FakeBold=3},
]

\DeclareMathAlphabet{\mathzc}{TU}{chorus}{m}{n}
\DeclareMathAlphabet{\mathzcb}{TU}{chorus}{b}{n}

\begin{document}

$\mathzc{A}\ne\mathzcb{A}$

\end{document}

在此处输入图片描述

答案2

完全根据用户@egreg 的意见,有两个极端的选择:

  1. 或使用contour包(以我的拙见,这是一个很好的折衷方案):

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{contour}
\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
\begin{document}
$\mathpzc{A}$ is a set and \contour[2]{black}{$\mathpzc{A}$} is a polyset.
\end{document}

我认为该参数2接近良好且正确。否则,您可以使用 设置选项1。请参阅下面带有参数的示例1

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
    \usepackage{amsmath}
    \usepackage{contour}
    \DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
    \begin{document}
    $\mathpzc{A}$ (normal) \contour[1]{black}{$\mathpzc{A}$} (bold)
    \end{document}

在此处输入图片描述

您可以看到放大您可以看到双重背景,但在远处看并不明显。

  1. 或者使用带有包的可怕的:-)假粗体符号amsbsy

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{amsbsy}
\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
\begin{document}
$\mathpzc{A}$ is a set and $\pmb{\mathpzc{A}}$ is a polyset.
\end{document}

附录

  1. 使用以下方法可以获得另一个最佳结果xfakeboldHerbert Voß 版本 0.08 的软件包 2020-06-24。

答案3

你这里有XY 问题。 你真正想要的不是“粗体 pzc for mathmode”,而是粗体数学脚本字母表。有几个软件包提供它们,但最好的是\symbfcal\symbfscr字母表unicode-math以及\mathbcal\mathbscr字母mathalpha. 两者都提供了全面的选择、字体样本、缩放和多种字体的标准界面。

正如mathalpha文档所警告的那样,Zapf Chancery“由于高度和深度不同,并且某些字形的尾巴很长,因此不太适合用作数学字母表。请谨慎使用。”

这是适用于现代或经典 TeX 的 MWE。它使用 pxmath/txmath\mathcal字母表的克隆。您可能更喜欢不同的字体集,但这两个软件包都为您提供了多种选择。

\documentclass{article}
\usepackage{iftex}

\ifTUTeX
  \usepackage{unicode-math}
  \setmathfont{Latin Modern Math}
  \setmathfont{Asana Math}[range={scr,bfscr}, Alternate, Scale=MatchUppercase]
\else
  \usepackage{amsmath}
  \usepackage[scr=pxtx]{mathalpha}
  \newcommand\mathbfscr[1]{\mathbscr{#1}}
\fi

\pagestyle{empty}

\begin{document}
\(\mathscr A\) is a set and \(\mathbfscr A\) is a polyset.
\end{document}

在 LuaLaTeX 或 XeLaTeX 中,编译为:

Asana Math 示例

在 PDFLaTeX 中,它编译为:

pxtx 示例

值得一提的是,Hermann Zapf 确实设计了一种专门用作数学字母的书法字体:Euler Calligraphic,最早用于 DEK 的书中具体数学:计算机科学的基础。您可以将其作为cal=eulerscr=euler选项获取mathalpha,或作为 OpenType 数学字体获取新欧拉。

但是,您可以应用 egreg 的解决方案,FakeBold=使用标准\mathcal\mathscr字母表以及 Zapf Chancery 的克隆。

\documentclass{article}

\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont{TeX Gyre Chorus}[range=scr,Scale=MatchUppercase]
\setmathfont{TeX Gyre Chorus}[range=bfscr,Scale=MatchUppercase,FakeBold=1.2]

\pagestyle{empty}

\begin{document}
\(\mathscr A\) is a set and \(\mathbfscr A\) is a polyset.
\end{document}

TeX Gyre Chorus 样本

相关内容