定义 \underline{} 的宏是什么?

定义 \underline{} 的宏是什么?

命令是如何\underline定义的?如何才能使自定义下划线仅用作水平线,但又遵循指定的高度或文本、数学输入等的高度以及特定的宽度?

这是我的第一次尝试:

\newcommand{\ndfracunderline}[1]{\ensuremath{\underline{\phantom{\dfrac{2}{3\hspace*{#1}}}}}}

这个方法很好用,但是下面的方法不行:

\newsavebox\underlinebox

\newcommand\cunderline[3][black]{%
\newlength{\cunderlineheight}%
\settoheight{\cunderlineheight}{#3}%
{\sbox\underlinebox{\cunderlineheight\hspace*{#2}}%
  \rlap{\usebox\underlinebox}\color{#1}\rule[-1.2\dp\underlinebox]{\wd\underlinebox}{0.5pt}}}

答案1

我不知道这是否可能成为你所追求的:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\makeatletter
\newcommand{\newunderline}[3][black]{% \newunderline[<colour>]{<width>}{<stuff>}
  {\def\@tempa{!}%
   \def\@tempb{#2}%
   \ifx\@tempa\@tempb\relax
     \def\@tempa{\phantom}\let\maybe@hspace\@gobble%
   \else%
     \def\@tempa{\vphantom}\let\maybe@hspace\hspace%
   \fi%
   \color{#1}\underline{\@tempa{#3}\maybe@hspace{#2}}}}
\makeatother

\begin{document}

$x$: \newunderline{1ex}{$x$} \par
$\frac{x}{y}$: \newunderline[red]{2em}{$\frac{x}{y}$} \par
$\dfrac{\mathrm{d}y}{\mathrm{d}x}$: \newunderline[blue!80!white]{!}{$\dfrac{\mathrm{d}y}{\mathrm{d}x}$}

\end{document}​​​​​​​​​​​​​​​​​​​​​​​​​

\newunderline[<colour>]{<width>}{<stuff>}需要 3 个参数。如果宽度<stuff>!。根据您的要求,它尊重深度参数、模式(文本或数学)可以具有指定的宽度(或自然的)。

相关内容