粗體 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”,而是粗體的數學腳本字母表。有幾個軟體包提供了它們,但最好的是\symbfcal\symbfscr字母表unicode-math、 和的\mathbcal字母\mathbscrmathalpha。兩者都提供全面的選擇、字體範例、縮放和多種字體的標準介面。

正如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 中,編譯為:

體式數學範例

在 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 合唱樣本

相關內容