如何全局改变数学符号的大小?

如何全局改变数学符号的大小?

我正在用 LuaTeX 编写一个包含许多科学计数法数字的文档。
我不喜欢它,\cdot因为它在数字两侧留下了太多空白。
我不喜欢它,{\cdot}因为它留下的空间太小。使用\times会使 ax 过大。

我想\times在文档的开头重新定义以改变该命令所有后续出现的行为,我想每次输入时都得到一个较小的“x” \times,并将其保持在中间高度。

我如何重新定义 的大小\times
我如何控制“x”两侧的空间和符号的粗细?

我知道我也可以使用siunitx,但现在修改所有表格而不出现意外错误会变得更加困难。

原始尺寸

我需要的尺寸

我没有足够的知识来找出任何解决方案,但我尝试了两件我在谷歌上找到的方法:

\usepackage{scalerel}
\newcommand\Times{\scaleobj{0.6}{\times}}


\usepackage{relsize}
\newcommand{\Times}{\mbox{\smaller$\times$}}

但是它们把“x”留在底部并且非常薄。

在此处输入图片描述

答案1

我不会这么做。无论如何,我不会重新定义\times,而是针对特定目的使用不同的名称。

\documentclass{article}
\usepackage{amsmath}
\usepackage{pict2e}
\usepackage{siunitx}

\makeatletter
\let\skan@times\times
\DeclareRobustCommand{\rtimes}{% you may want to redefine \times, but don't
  \mathbin{%
    \nonscript\mspace{-0.75\medmuskip}%
    \mspace{1mu}\mathpalette\rtimes@\relax\mspace{1mu}%
    \nonscript\mspace{-0.75\medmuskip}%
  }%
}
\newcommand{\rtimes@}[2]{%
  \vcenter{\hbox{%
    \begingroup
    \settoheight{\unitlength}{$#1\skan@times$}%
    \setlength{\unitlength}{0.5\unitlength}%
    \begin{picture}(1,1)
    \roundcap
    \linethickness{1\getfontdimen{8}{#1}{3}}
    \Line(0,0)(1,1)\Line(1,0)(0,1)
    \end{picture}%
    \endgroup
  }}%
}
\newcommand{\getfontdimen}[3]{%
  \fontdimen#1
  \ifx#2\displaystyle\textfont\else
  \ifx#2\textstyle\textfont\else
  \ifx#2\scriptstyle\scriptfont\else
  \scriptscriptfont\fi\fi\fi #3%
}
\makeatother

\begin{document}

$5.12\times 10^{-49}$

$5.12\rtimes 10^{-49}$ $\scriptstyle5.12\rtimes 10^{-49}$

\num{5.12e-49}

\sisetup{exponent-product=\rtimes}

\num{5.12e-49}

\end{document}

在此处输入图片描述

这利用了\timesComputer Modern 中带有圆头的简单几何形状。使用其他字体时情况会有所不同。

siunitx您应该考虑使用非常简单的语法输入此类数字,没有需要明确提及操作的符号,以便您可以随时改变主意。

厚度的控制是通过使用分数线的默认厚度来完成的,该默认厚度存储\fontdimen8在数学组 3 中的字体中。

请注意,它\rtimes不会在任何情况下都表现正常(例如,在括号旁边),但对于您的目的来说,它会表现正常。

答案2

这样可以保持相同的线条粗细,但会将其缩小到 0.6 倍。如果您需要在较小的数学样式中使用此功能,请告诉我。

\documentclass{article}
\usepackage{scalerel,stackengine}
\newcommand\shortminus{\ensuremath{\hstretch{0.6}{-}}}
\newcommand\Times{\mathbin{\!\rotatebox[origin=c]{45}{\stackinset{c}{}{c}{}{%
  \rotatebox[origin=c]{90}{\shortminus}}{\shortminus}}\!}}
\begin{document}
$5.12\times10^{-49}$

$5.12\Times10^{-49}$
\end{document}

在此处输入图片描述

答案3

您可以使用scalemarginraise来形成所需的输出。

\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{amsmath}
\usepackage{adjustbox}


\setmainfont{TeX Gyre Termes}
\setmathfont[FakeBold=4.0, version=bold]{TeX Gyre Termes Math}
\setmathfont[version=default]{TeX Gyre Termes Math}


\begin{document}
% use default math font
\mathversion{default}

\let\oldtimes\times
\renewcommand{\times}{%
\adjustbox{scale=0.6, margin=-0.2pt, raise=0.4pt}{$\mathversion{bold}\boldsymbol{\oldtimes}$}%
}

$a \oldtimes b$

$a \times b$

\end{document}

相关内容