减少数学下划线的长度

减少数学下划线的长度

在数学中,我经常发现单个下划线字母的线条太长。以下是一个例子:$\beta\in[\underline{\beta},\bar{\beta}]$

在此处输入图片描述

或者更糟的是:

在此处输入图片描述

mathxm我可以通过从包的字体中加载一些重音符号来解决条太窄的问题mathabx,但我还没有找到减少宽度的好方法\underline{U}

我将非常感激您的提示。


以下是不同函数的总结。我添加了 nunder 函数,这很有趣。但是,它迫切需要一个额外的可选参数来设置除法因子\mkern\the\numexpr#1/2mu\relax(硬编码为 2)。

两个例子比较一下 KP 字体(左)和 CM|nunder div by 2(中)以及 CM|nunder div. by 10(右)。右边的图像nunder可能和 一样好看bunderline

Kp 字体 CM1 CM2

nunder在 KP 字体上运行良好,但在硬编码值为 2 的 CM 下表现不佳。我将进一步研究两个可选参数,但我的第一次尝试没有成功(使用 TeX Faq 的 blah 示例)。

\documentclass{article}
\usepackage{etex}
\usepackage{amsmath}
\usepackage{mathtools}

\newcommand{\bunderline}[2][4]{\underline{#2\mkern-#1mu}\mkern#1mu}
\newcommand{\boverline}[2][4]{\overline{#2\mkern-#1mu}\mkern#1mu}
\newcommand{\nunder}[2][5]{\mathrlap{\mkern\the\numexpr#1/2mu\relax\underline{\phantom{\mathrm{#2}\mkern-#1mu}}}#2}
\newcommand{\nunderline}[2][4]{%
  \ensuremath{\mathrlap{\mkern#1mu\underline{\phantom{\mathrm{#2}\mkern-#1mu}}}}#2}
\begin{document}

\begin{align}
  \label{eq:4}
  \nunderline[3]{U}\nunderline[3]{\beta}\\
  \nunderline[6]{U}\nunderline[6]{\beta}\\
  \bunderline[6]{U}\bunderline[2]{\beta}\\
  \nunder[6]{U}\nunder[2]{\beta}\\
  \nunder[3]{U}\nunder[2]{\beta}
\end{align}

\end{document}

答案1

您可以将对象设置为下划线,使 TeX 认为它更短:

\documentclass{article}
\newcommand{\bunderline}[1]{\underline{#1\mkern-4mu}\mkern4mu }

\begin{document}
$\beta\in[\bunderline{\beta},\bar{\beta}]\qquad \bunderline{U}$
\end{document}

在此处输入图片描述

正如 Rasmus 所说,人们还可以引入一个可选参数来决定特定情况下的缩短量:

\newcommand{\bunderline}[2][4]{\underline{#2\mkern-#1mu}\mkern#1mu }

\bunderline[6]{U}一个就可以得到更多的缩短。

编辑

每个字体系列似乎都需要一个特定的默认缩写,也许还需要一个“前缩写”。例如,这似乎与 KPfonts 配合得很好:

\usepackage{kpfonts}
\newcommand{\bunderline}[1]{\mkern2mu\underline{\mkern-2mu#1\mkern-4mu}\mkern4mu }

在此处输入图片描述

需要考虑的一个方案是accents提供\underaccent

\underaccent{\bar}{U}

以下是使用 KPfonts 的结果

$\beta\in[\underaccent{\bar}{\beta},\bar{\beta}]\qquad\underaccent{\bar}{U}$

在此处输入图片描述

答案2

基于 egreg 的第一个解决方案,也可以将下划线居中:

\newcommand{\ubar}[1]{\mkern3mu\underline{\mkern-3mu #1\mkern-3mu}\mkern3mu}

答案3

好吧,原因很明显:字母是斜体的,并且“突出”到右侧。这是一个快速破解方法,仅适用于(或主要适用于)字母(并且不太可靠:它假设文本和数学使用相同的字体(或准确地说是具有相同宽度的字体):

\documentclass[12pt]{article}

\usepackage{mathtools}
\newcommand{\narrowunderline}[1]{\mathrlap{\underline{\vphantom{#1}\hphantom{\textup{#1}}}}#1}

\begin{document}
$U\in[\narrowunderline{U},\bar{U}]$

$f\in[\narrowunderline{f},\bar{f}]$
\end{document}

正如您所见,它既不优雅,也没有给出漂亮的结果 - 但它比默认值要好。

相关内容