重新定义数学符号的大小

重新定义数学符号的大小

我刚刚发现,打印文档时,大于等于符号 \geq 看起来与我想要的不一样。因为我经常使用它,所以我想重新定义 \geq 命令,从而得到另一个版本。

首先它太大了。我找到了 scalerel 包,并设法缩放它并重新定义它:

\let\oldgeq\geq
\renewcommand{\geq}{\scaleobj{0.8}{\oldgeq}}

效果很好,空间太小了,但这不是重点。

其次,符号的底线与文本的其余部分不对齐。如果你仔细看,你会发现它比其余部分略低。所以我尝试对齐它或将其设置在文本线上方一点,但没有成功。我找到了一种使用 tikz 的解决方法,但它只适合普通字体中的正确位置。我希望它与每个字体大小的文本对齐,所以这不是一个好的解决方案。

也许有人可以帮助我解决第二个问题,或者对整个问题有更好的解决方案?

以下是 MWE:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{scalerel}

\let\oldgeq\geq
\renewcommand{\geq}{\scaleobj{0.8}{\oldgeq}}

\begin{document}
$5\oldgeq8$ $5\geq8$
\end{document}

提前致谢。

答案1

我不确定您不喜欢标准符号的什么地方。无论如何,您可以而且应该使用\mathpalette

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}

\let\oldgeq\geq
\let\oldleq\leq
\renewcommand{\geq}{\mathrel{\mathpalette\bueckirel\oldgeq}}
\renewcommand{\leq}{\mathrel{\mathpalette\bueckirel\oldleq}}
\newcommand{\bueckirel}[2]{%
  \raisebox{\depth}{\scalebox{0.8}{$#1#2$}}%
}

\begin{document}

$5\oldgeq8$ $5\geq8_{a\geq b}$

$5\oldleq8$ $5\leq8_{a\leq b}$

\end{document}

在此处输入图片描述

答案2

这会将修订版的基数设置\geq为与原始版相同的深度,并修复水平间距。已编辑以处理较小的数学样式。

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{scalerel,stackengine}

\let\oldgeq\geq
\newcommand{\geqaux}{\mathrel{\scaleobj{0.8}{\oldgeq}}}
\renewcommand\geq{\mathrel{\ThisStyle{%
  \setbox0=\hbox{$\SavedStyle\geqaux$}
  \edef\dpgeq{\the\dp0}
  \abovebaseline[-\dpgeq]{$\SavedStyle\geqaux$}
}}}
%\renewcommand\geq{\mathrel{\ThisStyle{\abovebaseline[0pt]{$\SavedStyle\geqaux$}}}}

\begin{document}
$5\oldgeq8\quad 5\geq8$

$\scriptstyle 5\oldgeq8\quad 5\geq8$
\end{document}

在此处输入图片描述

如果确实希望符号的水平斜线位于数字基线上,则使用重新定义的注释版本\geq,结果为

在此处输入图片描述

相关内容