如何使用 Mathcal 或 Pazocal 字体自动生成分隔词

如何使用 Mathcal 或 Pazocal 字体自动生成分隔词

考虑以下代码:

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{calrsfs}

\DeclareMathAlphabet{\pazocal}{OMS}{zplm}{m}{n}
\SetMathAlphabet\pazocal{bold}{OMS}{zplm}{bx}{n}

\begin{document}
\Huge
\vskip 15pt
$\boldsymbol{\pazocal{EACH DAY}}$ \\
\end{document}

产生

在此处输入图片描述

尽管在代码中输入了“EACH DAY”作为文本,但这两个单词并没有分开。我认为这是因为pazocal某种数学模式字体。

为了自动分隔单词,我尝试过\text与一起使用\pazocal,但是这样做时字体消失了(尽管两个单词分开了)。

我知道我可以通过在两个单词之间添加水平空格来强制分隔;但我希望能够自动执行此操作以容纳多个单词。

问题:我如何使用\pazocal字体,boldsymbol以便在括号内输入的单个单词pazocal{}以所需的字体生成单独的单词?

谢谢。

答案1

如果要将该字体用于文本,则必须指定单词间距,因为 OMS 编码字体中的相关参数为零(出于技术原因)。

\documentclass[a4paper,12pt]{article}

\newcommand{\textpazocal}[1]{%
  \begingroup
  \setlength{\spaceskip}{0.5em plus 0.2em minus 0.1em}%
  \usefont{OMS}{zplm}{bx}{n}#1%
  \endgroup
}

\begin{document}

\textpazocal{EACH DAY}

\end{document}

在此处输入图片描述

最终的输出结果真的很丑陋,不是吗?

如果您坚持使用数学模式……

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}

\DeclareMathAlphabet{\pazocalalphabet}{OMS}{zplm}{m}{n}
\SetMathAlphabet\pazocalalphabet{bold}{OMS}{zplm}{bx}{n}

\ExplSyntaxOn
\NewDocumentCommand{\pazocal}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
  \pazocalalphabet{\seq_use:Nn \l_tmpa_seq { \ }}
 }
\ExplSyntaxOff

\begin{document}

$\pazocal{EACH DAY}$

$\boldsymbol{\pazocal{EACH DAY}}$

\end{document}

在此处输入图片描述

你可能想要替换{ \ }{\mspace{12mu plus 4mu minus 2mu}}

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}

\DeclareMathAlphabet{\pazocalalphabet}{OMS}{zplm}{m}{n}
\SetMathAlphabet\pazocalalphabet{bold}{OMS}{zplm}{bx}{n}

\ExplSyntaxOn
\NewDocumentCommand{\pazocal}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
  \pazocalalphabet{\seq_use:Nn \l_tmpa_seq {\mspace{12mu plus 4mu minus 2mu}}}
 }
\ExplSyntaxOff

\begin{document}

$\pazocal{EACH DAY}$

$\boldsymbol{\pazocal{EACH DAY}}$

\end{document}

在此处输入图片描述

调整间距以适合您的喜好。

相关内容