\Underbar 可以改变字体样式,但是 \bar 没有,为什么?

\Underbar 可以改变字体样式,但是 \bar 没有,为什么?

X字母应该具有相同的大小和样式。下面你可以看到一个丑陋的样式变化X。如何保持字体大小、样式等属性不变?

在此处输入图片描述

丑陋的例子尺寸随 而变化\frac{\bar x_i+\underbar x_i}{2}

在此处输入图片描述

代码

\documentclass[a4paper,english,titlepage,12pt]{article} 
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm}     %For theorems
\usepackage{amssymb}    %For things, \mathbb R.
\usepackage{bm}         %For bolding with greek letters


\begin{document}

\begin{align}
l_i &= \bar x_i-\underbar x_i \\
\hat x_i &= 0.5 (\bar x_i+\underbar x_i)
\end{align}

\end{document}

答案1

你把事情弄得比本来的更难。\underbar{$x$}无需进一步的软件包或新命令即可解决。要获得相等的长度,请使用\overline{x}而不是\bar{x}。这些条比上面的长,但相等。

答案2

不同之处在于,\underbar当它装箱内容时会切换到文本模式。内核中的定义是

\def\underbar#1{\underline{\sbox\tw@{#1}\dp\tw@\z@\box\tw@}}

另一边,\bar是数学重音:

\DeclareMathAccent{\bar}{\mathalpha}{operators}{"16}

您可以定义内核的变体\underbar,以数学模式框住内容:

\documentclass[a4paper,english,titlepage,12pt]{article} 
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm}     %For theorems
\usepackage{amssymb}    %For things, \mathbb R.
\usepackage{bm}         %For bolding with greek letters

\makeatletter
\def\munderbar#1{\underline{\sbox\tw@{$#1$}\dp\tw@\z@\box\tw@}}
\makeatother

\begin{document}
\newbox\mybox
\begin{align}
l_i &= \bar{x}_i-\munderbar{x}_i \\
\hat x_i &= 0.5 (\bar{x}_i+\munderbar{x}_i)
\end{align}

\end{document}

在此处输入图片描述

但是,正如您在图片中看到的那样,结果并不是很好。更好的选择是使用accents包及其\underaccent命令:

\documentclass[a4paper,english,titlepage,12pt]{article} 
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsthm}     %For theorems
\usepackage{amssymb}    %For things, \mathbb R.
\usepackage{bm}         %For bolding with greek letters
\usepackage{accents}

\newcommand\munderbar[1]{%
  \underaccent{\bar}{#1}}

\begin{document}
\newbox\mybox
\begin{align}
l_i &= \bar{x}_i-\munderbar{x}_i \\
\hat x_i &= 0.5 (\bar{x}_i+\munderbar{x}_i)
\end{align}

\end{document}

在此处输入图片描述

答案3

您有两个选择:使用\underlineaccents包及其\underaccent功能;我将展示两者。

\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{accents}

\newcommand{\ubar}[1]{\underaccent{\bar}{#1}}

\begin{document}

\begin{align*}
l_i &= \bar{x}_i-\underline{x}_i \\
\hat{x}_i &= 0.5 (\bar{x}_i+\underline{x}_i)
\end{align*}

\begin{align*}
l_i &= \bar{x}_i-\ubar{x}_i \\
\hat{x}_i &= 0.5 (\bar{x}_i+\ubar{x}_i)
\end{align*}

\end{document}

在此处输入图片描述


避免使用\bar x\hat x;使用括号可能看起来更难输入,但它增加了清晰度。

相关内容