Жирный pzc для mathmode

Жирный pzc для mathmode

Есть ли приличный способ сделать шрифт 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. Возможно получить еще один лучший результат, используяxfakeboldПакет Герберта Фосса версии 0.08 2020-06-24.

решение3

То, что у вас здесь есть, этопроблема XY. То, что вам действительно нужно, это не «Bold pzc for mathmode», а жирный математический алфавит. Есть несколько пакетов, которые их предоставляют, но лучшими являются \symbfcalи \symbfscrалфавитыunicode-math, и алфавиты \mathbcalи\mathbscrmathalpha. Оба предоставляют полный выбор, образцы шрифтов, масштабирование и стандартный интерфейс для нескольких шрифтов.

Как mathalphaпредупреждает документация, Zapf Chancery «не очень подходит для использования в качестве математического алфавита из-за разной высоты и глубины, а также длинных хвостов у некоторых глифов. Используйте с осторожностью».

Вот MWE для современного или классического TeX. Он использует клоны алфавита 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

Если говорить точнее, Герман Цапф разработал каллиграфический шрифт специально для использования в качестве математического алфавита: Euler Calligraphic, впервые использованный в книге DEK.Конкретная математика: основа компьютерной науки. Вы можете получить его как опцию cal=eulerили , или как математический шрифт OpenTypescr=eulermathalphaНео Эйлер.

Однако вы можете применить решение 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

Связанный контент