这是该问题的后续问题:如何使用 \usepackage{physics} 获得“除以”符号?在引用的问题中,OP 询问如何\undef
重新定义\div
。我想重新发明轮子,然后看看精确的\div
“源代码”首先用于渲染。但我在哪里可以找到它?
以下是一个 MNWE:
\documentclass{article}
\begin{document}
What is the \emph{exact} ``source code'' of
\ttfamily\textbackslash div\normalfont, and
where do I find it? Whatever it is, it renders
this: $\div$. I want to use it as a
starting-point to \ttfamily\textbackslash
def \normalfont my own variant
\ttfamily\textbackslash mydiv\normalfont.
\end{document}
附加问题:我该如何写\ttfamily \textbackslash
(上面的 MNWE 给我一个关于“字体形状不可用”的警告)。
答案1
假设 TeX Live 在 Unix 系统上bash
,打开一个终端窗口并输入
texdef -t latex div
并返回。您将获得以下信息:
> texdef -t latex div
\div:
\mathchar"2204
\the\div:
8708
这可能并不是很有趣,因为非行家。在交互式会话中执行\show\div
或键入
\texttt{\meaning\div}
在文档中并对其进行排版。
然而,作为\div
核心数学符号,真正的定义可以在fontmath.ltx
; 类型中找到
grep '\\div\b' $(kpsewhich fontmath.ltx)
终端会打印
\DeclareMathSymbol{\div}{\mathbin}{symbols}{"04}
这实际上是 LaTeX 内核的定义\div
。
你可以通过以下方式找到所有核心数学符号的定义
less $(kpsewhich fontmath.ltx)
答案2
原发帖人说“我想重新发明轮子……”
我要指出的是,要制作你自己的版本\div
,你不一定需要知道原始版本的确切表述。特别是,代码
\let\svdiv\div
\def\div{...\svdiv...}
\div
将允许根据原件定义新的。此外,在的情况下\div
,正如约瑟夫在评论中指出的那样,\show\div
揭示了定义\mathchar"2204
表明没有“代码”本身用于除法符号,但它仅仅指向字体本身的字形槽(数学符号字体的槽 4)。
\documentclass{article}
\usepackage{stackengine}
\begin{document}
Here is the new \textbackslash div:
\let\svdiv\div
\def\div{\mathbin{\ensurestackMath{\stackinset{c}{.002ex}{c}{-.06ex}{\circ}{\svdiv}}}}
$A \div B$
\end{document}
如果不想重新定义原文,而只想\mydiv
根据原文进行定义,那么可以这样:
\documentclass{article}
\usepackage{stackengine}
\begin{document}
Here is \textbackslash mydiv:
\def\mydiv{\mathbin{\ensurestackMath{\stackinset{c}{.002ex}{c}{-.06ex}{\circ}{\div}}}}
$A \mydiv B$
\end{document}