在数学公式中,上划线经常被用到。
在LaTex中,输入上划线的方式常用的有\overline
和\bar
命令。不过,这两个命令都有点问题。
\bar
命令占一个字符的宽度,意味着,如果你的公式比较长,bar是无法完全覆盖的,就像这样:
而\overline
呢,是覆盖所有字符的,如果多个字符连在一起,那么上划线也连在一起。
例如:
对于公式代码
$\overline{A} \overline{B} \overline{C}$
会渲染成:
都不符合我们的预期。
一种可行的解决方案是,设定overline的宽度。
先引入包:
\usepackage{amsmath,amssymb}
在
\begin{document}
代码之前,加入:
\makeatletter
\newsavebox\myboxA
\newsavebox\myboxB
\newlength\mylenA
\newcommand*\xoverline[2][0.75]{%
\sbox{\myboxA}{$\m@th#2$}%
\setbox\myboxB\null% Phantom box
\ht\myboxB=\ht\myboxA%
\dp\myboxB=\dp\myboxA%
\wd\myboxB=#1\wd\myboxA% Scale phantom
\sbox\myboxB{$\m@th\overline{\copy\myboxB}$}% Overlined phantom
\setlength\mylenA{\the\wd\myboxA}% calc width diff
\addtolength\mylenA{-\the\wd\myboxB}%
\ifdim\wd\myboxB<\wd\myboxA%
\rlap{\hskip 0.5\mylenA\usebox\myboxB}{\usebox\myboxA}%
\else
\hskip -0.5\mylenA\rlap{\usebox\myboxA}{\hskip 0.5\mylenA\usebox\myboxB}%
\fi}
\makeatother
这样,在正文中,就可以使用xoverline命令,来代替overline,默认是0.75的宽度,可以自己设定:
\xoverline[1.0]{i}
学习曲线还是陡了一点,我几乎都忘了它的用法了。
@土木坛子 没错,很多问题不好解决。
杨老师您好我是单小同,2117023……之前为工作的事情多有打扰望勿怪,微信上面有虚拟层……望你和师姐勿放黑箱!谢谢!