![如何在 LaTeX 中使用 Boondox 书法字体而不替换 \mathcal 命令](https://linux22.com/image/312362/%E5%A6%82%E4%BD%95%E5%9C%A8%20LaTeX%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20Boondox%20%E4%B9%A6%E6%B3%95%E5%AD%97%E4%BD%93%E8%80%8C%E4%B8%8D%E6%9B%BF%E6%8D%A2%20%5Cmathcal%20%E5%91%BD%E4%BB%A4.png)
这是对上一个问题我问了如何将Boondox
书法字体与标准字体一起使用\mathcal
字体一起使用。解决方案涉及\mathalfa
运行包,用 Boondox 字体替换原始字体(由\mathcal
命令生成)。第二步是创建一个单独的命令(例如\mathcalorig
),该命令将用于再次调用原始的“标准”书法字体。
我现在的问题是:是否有可能实现两种字体协同工作而无需直接替换\mathcal
?例如,我希望\mathcal
输出原始的“标准”书法字体,并为 boondox 字体(我几乎不经常使用)提供自己的命令,例如\mathcalboondox
。那么总结一下,我们将得到:
- 打字
\mathcal
会产生您期望的常规行为,即为您提供我们熟悉的标准书法风格 - 打字时,
\mathcalboondox
如果你偶尔想使用 boondox 风格的字体,而不是常规字体,那么输入时就会出现这种字体\mathcal
这是一张描述我所寻找内容的图片:
这可以实现吗?提前感谢您的帮助!
答案1
手动操作更简单mathalfa
:
\documentclass{article}
\DeclareFontFamily{U}{BOONDOX-calo}{\skewchar\font=45 }
\DeclareFontShape{U}{BOONDOX-calo}{m}{n}{
<-> s*[1.05] BOONDOX-r-calo}{}
\DeclareFontShape{U}{BOONDOX-calo}{b}{n}{
<-> s*[1.05] BOONDOX-b-calo}{}
\DeclareMathAlphabet{\mathcalboondox}{U}{BOONDOX-calo}{m}{n}
\SetMathAlphabet{\mathcalboondox}{bold}{U}{BOONDOX-calo}{b}{n}
\DeclareMathAlphabet{\mathbcalboondox}{U}{BOONDOX-calo}{b}{n}
\begin{document}
$\mathcal{ABC}$ $\mathcalboondox{ABC}$
\end{document}
但是还有一种不同的方法,使用mathalfa
,可以这样调用字母表\mathscr
:
\documentclass{article}
\usepackage[scr=boondoxo,scrscaled=1.05]{mathalfa}
\begin{document}
$\mathcal{ABC}$ $\mathscr{ABC}$
\end{document}
答案2
您可以定义一个新的数学字母表,并使用和命令加载BOONDOX-scr
包来代替和,从原始包转置。以下是新包的小代码:\mathscr
\\mathbscr
\mathcal
mathbcal
BOONDOX-cal
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{boondox-scr}[2015/05/29 v1 U/BOONDOX-scr]
\RequirePackage{xkeyval}%
\define@key{BOONDOX-scr.sty}{scaled}[1.0]{%
\expandafter\def\csname BOONDOX-scr@scale\endcsname {#1}}%
\ExecuteOptionsX<BOONDOX-scr.sty>{scaled}%
\ProcessOptionsX<BOONDOX-scr.sty>\relax%
\DeclareMathAlphabet{\mathscr}{U}{BOONDOX-cal}{m}{n}
\SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-cal}{b}{n}
\DeclareMathAlphabet{\mathbscr} {U}{BOONDOX-cal}{b}{n}
\endinput
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{boondox-scr}
\pagestyle{empty}
\begin{document}%
\textbf{%
Boondox :
}%
\[ \begin{array}[t]{c@{\quad}c@{\quad}c}
\verb+ \mathcal + & \verb+ \mathscr + & \verb+ \mathbscr +\\[6pt]
\mathcal{EMTS} & \mathscr{LnS} & \mathbscr{LnS}
\end{array} \]%
\end{document}
结果:
序言中包含的代码:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\DeclareMathAlphabet{\mathscr}{U}{BOONDOX-cal}{m}{n}
\SetMathAlphabet{\mathscr}{bold}{U}{BOONDOX-cal}{b}{n}
\DeclareMathAlphabet{\mathbscr} {U}{BOONDOX-cal}{b}{n}
\pagestyle{empty}
\begin{document}%
\textbf{%
Boondox :
}%
\[ \begin{array}[t]{c@{\quad}c@{\quad}c}
\verb+ \mathcal + & \verb+ \mathscr + & \verb+ \mathbscr +\\[6pt]
\mathcal{EMTS} & \mathscr{LnS} & \mathbscr{LnS}
\end{array} \]%
\end{document}