有沒有一個不錯的方法可以將 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 的說法,有兩種極端的選擇:
- 或使用
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}
你可以看到放大你可以看到雙重背景,但在遠處看並不明顯。
- 或在包包中使用可怕的:-)假粗體符號
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}
附錄:
- 可以使用以下方法獲得另一個最佳結果
xfakebold
Herbert Voß 版本 0.08 2020-06-24 的軟體包。
答案3
你這裡有的是XY 問題。 你真正想要的不是“數學模式的粗體 pzc”,而是粗體的數學腳本字母表。有幾個軟體包提供了它們,但最好的是\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 中,編譯為:
在 PDFLaTeX 中,它編譯為:
值得一提的是,Hermann Zapf 確實設計了一種專門用作數學字母表的書法字體:Euler Calligraphic,首次在 DEK 的書中使用具體數學:計算機科學的基礎。您可以將其作為cal=euler
或scr=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}