例子
\documentclass[a4paper,11pt,border=1pt]{standalone}
%\LetLtxMacro{\oldcdot}{\cdot}
%\renewcommand{\cdot}{\!\cdot\!} <-- Like this
\begin{document}
$3\cdot 10^8$ m/s
\end{document}
我得到了以下输出。
但是\cdot
左右之间有很多空格。我如何得到下面的图像?我应该使用宏吗?
答案1
\cdot
定义为fontmath.ltx
:
\DeclareMathSymbol{\cdot}{\mathbin}{symbols}{"01}
这意味着它是一个bin
元运算符 ( \mathbin
),因此它前后会有一个额外的空格,就像其他二元运算符一样,例如+
和-
。
\cdot
如果你“隐藏”在括号内,TeX 将不会插入该空格:
\documentclass[11pt,border=1pt]{standalone}
\begin{document}
$3{\cdot} 10^8$ m/s
\end{document}
如果要多次使用该符号,您可以定义一个ord
一元数学符号 ( \mathord
),其字形如下\cdot
:
\documentclass[11pt,border=1pt]{standalone}
\DeclareMathSymbol{\mdot}{\mathord}{symbols}{"01}
\begin{document}
$3\mdot 10^8$ m/s
\end{document}
或者您可以\cdot
使用相同的命令重新定义。
答案2
为此siunitx
,我建议确保数字和单位的统一。
\documentclass{article}
\usepackage{amsmath}
\usepackage{siunitx}
\sisetup{
exponent-product={{\cdot}}, % double brace for avoiding the space
per-mode=symbol,
}
\begin{document}
\SI{3e8}{\meter\per\second} % long form
\SI{3e8}{m/s} % abbreviated form
\SI[per-mode=reciprocal]{3e8}{\meter\per\second} % long form
\end{document}
请注意,当使用长格式时(推荐),很容易从一种表示形式更改为另一种表示形式。
这样做的好处还在于,如果您改变了主意,关于如何呈现该产品,那么您只需要改变序言中的选项即可。
使用选项可以获得相同的效果tight-spacing
,但它也会作用于所有二进制运算,例如不确定性。
\documentclass{article}
\usepackage{amsmath}
\usepackage{siunitx}
\sisetup{
exponent-product=\cdot,
tight-spacing,
per-mode=symbol,
}
\begin{document}
\SI{3e8}{\meter\per\second} % long form
\SI{3e8}{m/s} % abbreviated form
\SI[per-mode=reciprocal]{3e8}{\meter\per\second} % long form
\end{document}