\bar{} 和 \underline{} 的外观问题

\bar{} 和 \underline{} 的外观问题

下面的代码

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\begin{document}
\[
\left[\underline{x},\bar{x}\right]
\]
\[
\left[\underline{t},\bar{t}\right]
\]
\end{document}

产生以下结果:

在此处输入图片描述

我想“修复”\underline{x}长度,它大于 \bar{x},并且\bar{t}与的部分重叠(几乎!)与\right]相比,\underline{t}与看起来不错\left[

使用pdfLaTeX

答案1

无需额外的软件包。这些宏可修正带有倾斜入口的框的宽度。

\documentclass{article}

\begin{document}

\newdimen\slantmathcorr
\def\oversl#1{%assuming that mathslant=0.25
\setbox0=\hbox{$#1$}
\slantmathcorr=\wd0
\hskip 0.2\slantmathcorr \overline{\hbox to 0.8\wd0{%
\vphantom{\hbox{$#1$}}}}
\hskip-\wd0\hbox{$#1$}
}

\def\undersl#1{%assuming that mathslant=0.25
\setbox0=\hbox{$#1$}
\slantmathcorr=\wd0
\underline{\hbox to 0.8\wd0{%
\vphantom{\hbox{$#1$}}}}
\hskip-0.8\wd0\hbox{$#1$}
}

\[
\left[\underline{x},\bar{x}\right]
\]
\[
\left[\underline{t},\bar{t}\right]
\]

Corrected:

\[
\left[\undersl{x},\oversl{x}\right]
\]
\[
\left[\undersl{t},\oversl{t}\right]
\]

\end{document}

在此处输入图片描述

再次重申 OP 要求的版本。它可能会产生一些副作用。

\documentclass{article}

\begin{document}

\let\oldbar\bar
\let\oldunderline\underline
\let\oldoverline\overline


\newdimen\slantmathcorr
\def\oversl#1{%assuming that mathslant=0.25
\setbox0=\hbox{$#1$}
\slantmathcorr=\wd0
%\hskip 0.2\slantmathcorr \overline{\hbox to 0.8\wd0{%
\hskip 0.2\slantmathcorr \oldoverline{\hbox to 0.8\wd0{%
\vphantom{\hbox{$#1$}}}}
\hskip-\wd0\hbox{$#1$}
}

\def\undersl#1{%assuming that mathslant=0.25
\setbox0=\hbox{$#1$}
\slantmathcorr=\wd0
%\underline{\hbox to 0.8\wd0{%
\oldunderline{\hbox to 0.8\wd0{%
\vphantom{\hbox{$#1$}}}}
\hskip-0.8\wd0\hbox{$#1$}
}

\[
\left[\underline{x},\bar{x}\right]
\]
\[
\left[\underline{t},\bar{t}\right]
\]

Corrected:

\[
\left[\undersl{x},\oversl{x}\right]
\]
\[
\left[\undersl{t},\oversl{t}\right]
\]



\let\bar\oversl
\let\underline\undersl

\[
\left[\underline{x},\bar{x}\right]
\]
\[
\left[\underline{t},\bar{t}\right]
\]

\end{document}

答案2

您可以使用accents下划线包;对于间隔,最好定义您自己的命令:

\documentclass{article}
\usepackage{accents}
\newcommand{\ubar}[1]{\underaccent{\bar}{#1}}
\newcommand{\interval}[2]{[\,#1,#2\,]}
\begin{document}
\[
\interval{\ubar{x}}{\bar{x}}
\]
\[
\interval{\ubar{t}}{\bar{t}}
\]
\end{document}

在此处输入图片描述

答案3

\ushort要在数学模式下获得“短”下划线,可以使用\bar{t}包。为了避免和之间发生近乎或完全碰撞],您可以插入一个\,(“薄空间”)垫片。

在下面的示例中,修改后的代码在左边,而原始代码在右边。

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{ushort}
\begin{document}
\[
[\ushort{x},\bar{x}] \mbox{ vs. } [\underline{x},\bar{x}]
\]
\[
[\ushort{t},\bar{t}\,] \mbox{ vs. } [\underline{t},\bar{t}]
\]
\end{document}

相关内容