+
我想从newtx
(包含)包中提取加号newtxmath
。但我只想将此符号提取到我的文档中,而不是包含整个包(这会导致冲突)。我该怎么做?例如,似乎应该写成类似\DeclareMathSymbol{+}{...}{...}{...}
重新定义+
符号的内容,但我如何才能获得字体系列名称newtxmath
?我检查了包文档,但找不到它。同时,我也检查了newtxmath.sty
,但几乎看不懂。需要帮助。
答案1
newtxmath.sty
重新定义数学中的加号的重要行是带有的行\DeclareMathSymbol{+}
和符号字体的定义lettersA
。
此外,字体定义文件untxmia.fd
使用\if
反映选项libertine
、minion
和 的开关cochineal
。
\documentclass{article}
\mathchardef\OldPlus=\mathcode`\+
\makeatletter
\newif\iftx@libertine
\newif\iftx@minion
\newif\iftx@coch
\makeatother
\DeclareSymbolFont{lettersA}{U}{ntxmia}{m}{it}
\SetSymbolFont{lettersA}{bold}{U}{ntxmia}{b}{it}
\DeclareMathSymbol{+}{\mathbin}{lettersA}{253}
\begin{document}
\begin{tabular}{ll}
Old: & $\OldPlus$\\
New: & $+$
\end{tabular}
\end{document}
减号 或 的大小写有所\times
不同。这里,包newtxmath
重新定义了标准符号字体symbols
。因此,在下面的示例中,将此字体重命名为 ,NTXsymbols
以避免其他字母发生变化:
\documentclass{article}
\usepackage{booktabs}
\mathchardef\OldPlus=\mathcode`\+
\mathchardef\OldMinus=\mathcode`\-
\let\OldTimes\times
\makeatletter
\newif\iftx@libertine
\newif\iftx@minion
\newif\iftx@coch
\makeatother
\DeclareSymbolFont{lettersA}{U}{ntxmia}{m}{it}
\SetSymbolFont{lettersA}{bold}{U}{ntxmia}{b}{it}
\DeclareMathSymbol{+}{\mathbin}{lettersA}{253}
\DeclareSymbolFont{NTXsymbols}{OMS}{ntxsy}{m}{n}
\SetSymbolFont{NTXsymbols}{bold}{OMS}{ntxsy}{b}{n}
\DeclareMathSymbol{-}{\mathbin}{NTXsymbols}{0}
\DeclareMathSymbol{\times}{\mathbin}{NTXsymbols}{2}
\begin{document}
\begin{tabular}{ll}
Old & New \\
\midrule
$\OldPlus$ & $+$ \\
$\OldMinus$ & $-$ \\
$\OldTimes$ & $\times$ \\
\end{tabular}
\end{document}
答案2
如果你不想使用数学字母来表示单个符号(从 16 个可用符号中找出来并不难),你可以定义一个宏来访问该符号,方法是调整egreg 的回答以及来自的相关命令pifont
。结合 Heiko Oberdiek 的回答中的信息:
\documentclass{article}
% ateb egreg: https://tex.stackexchange.com/a/14406/
\usepackage{pifont}
\makeatletter
\newcommand\Pimathsymbol[3][\mathord]{%
#1{\@Pimathsymbol{#2}{#3}}}
\def\@Pimathsymbol#1#2{\mathchoice
{\@Pim@thsymbol{#1}{#2}\tf@size}
{\@Pim@thsymbol{#1}{#2}\tf@size}
{\@Pim@thsymbol{#1}{#2}\sf@size}
{\@Pim@thsymbol{#1}{#2}\ssf@size}}
\def\@Pim@thsymbol#1#2#3{%
\mbox{\fontsize{#3}{#3}\Piitsymbol{#1}{#2}}}
% ateb Heiko Oberdiek: https://tex.stackexchange.com/a/354435/
\newif\iftx@libertine
\newif\iftx@minion
\newif\iftx@coch
% pifont.sty
\newcommand{\Piitfont}[1]{\fontfamily{#1}\fontencoding{U}%
\fontseries{m}\fontshape{it}\selectfont}
\newcommand{\Piitsymbol}[2]{{\Piitfont{#1}\char#2}}
\makeatother
\newcommand{\newplus}{\Pimathsymbol[\mathbin]{ntxmia}{253}}
\begin{document}
\[
+ \newplus
\]
\end{document}