我想在一段文本上加线,但这条线离数字太近了,不太好看,所以我想在上线和文本之间添加一些填充。这是我目前所做的:
$\overline{\mbox{XXX\raisebox{0.8cm}{}}}$
XXX
我想要加划线的文本在哪里。
这对我来说看起来非常丑陋,所以我想知道是否有更好的方法来做到这一点。
答案1
下面的例子展示一些替代方案。
备注:
\raisebox
也可用于指定最终高度(和深度)。高度称为\height
可用于计算(\dimexpr
或包装calc
)的高度。\vphantom
:参数高度和深度的占位符。参数未设置,宽度为零。\rule
宽度为零可用于插入不可见的垂直规则。\strut
.7\baselineskip
添加一个具有高度和深度的不可见垂直框.3\baselineskip
。
示例文件:
\documentclass{article}
\makeatletter
\newcommand*{\ov}[1]{%
$\m@th\overline{\mbox{#1}}$%
}
\newcommand*{\ovA}[1]{%
$\m@th\overline{\mbox{#1}\raisebox{3mm}{}}$%
}
\newcommand*{\ovB}[1]{%
$\m@th\overline{\mbox{#1\rule{0pt}{3mm}}}$%
}
\newcommand*{\ovC}[1]{%
$\m@th\overline{\mbox{#1\strut}}$%
}
\newcommand*{\ovD}[1]{%
$\m@th\overline{\mbox{#1\vphantom{\"A}}}$%
}
\newcommand*{\ovE}[1]{%
$\m@th\overline{\raisebox{0pt}[1.2\height]{#1}}$%
}
\newcommand*{\ovF}[1]{%
$\m@th\overline{\raisebox{0pt}[\dimexpr\height+1mm\relax]{#1}}$%
% Package `calc' can be used as alternative for `\dimexpr'.
}
\newcommand*{\ovG}[1]{%
$\m@th\overline{\raisebox{0pt}[\dimexpr\height+1mm\relax]{#1\vphantom{A}}}$%
}
\makeatother
\begin{document}
\setlength{\parskip}{5mm}
\ov{XXX} \ov{xxx} \ov{\"A}
\ovA{XXX} \ovA{xxx} \ov{\"A} \qquad\verb|\raisebox{3mm}{}|
\ovB{XXX} \ovB{xxx} \ov{\"A} \qquad\verb|\rule{0pt}{3mm}{}|
\ovC{XXX} \ovC{xxx} \ov{\"A} \qquad\verb|\strut|
\ovD{XXX} \ovD{xxx} \ov{\"A} \qquad\verb|\vphantom{\"A}|
\ovE{XXX} \ovE{xxx} \ov{\"A} \qquad\verb|\raisebox{0pt}{1.2\height}|
\ovF{XXX} \ovF{xxx} \ov{\"A} \qquad\verb|\raisebox{0pt}{\height+1mm}|
\ovG{XXX} \ovG{xxx} \ov{\"A} \qquad\verb|\raisebox{0pt}{\height+1mm} + \vphantom{A}|
\end{document}
答案2
分隔由字体参数控制,因此更改它有点困难。您可以为文本添加预定高度:
\documentclass{article}
\newcommand{\tolstrut}{%
\vrule height\dimexpr\fontcharht\font`\A+.1ex\relax width 0pt\relax
}
\DeclareRobustCommand{\textoverline}[1]{%
\ensuremath{\overline{\mbox{\tolstrut#1}}}%
}
\begin{document}
\textoverline{no} \textoverline{with}
\end{document}
调整0.1ex
尺寸,尝试各种值,直到满意为止。