在数学模式下控制下划线深度

在数学模式下控制下划线深度

我使用该ulem包通过设置来控制下划线的深度

\renewcommand{\ULdepth}{1pt}

在数学模式之外,这种方法效果很好。但是,\uline在数学模式内部使用时,我似乎无法控制下划线的深度。(添加\smash也无法真正解决问题。)

\documentclass{article}

\usepackage[normalem]{ulem}
\setlength{\parskip}{15pt} % add space between paragraphs for illustration

\begin{document}

\renewcommand{\ULdepth}{1pt} 
\uline{normal text} $\uline{f(x)=y}$

\uline{normal text} $\uline{\smash{f(x)=y}}$

\renewcommand{\ULdepth}{10pt}
\uline{normal text} $\uline{f(x)=y}$

\end{document}

在此处输入图片描述

有没有办法在数学模式中“重新控制”下划线的深度。如果无法通过该ulem包进行这种控制(我也尝试过soul,但没有成功),是否有其他包可以实现使数学模式内外的下划线深度统一的目的?

答案1

$\mbox{\uline{$....$}}$如果您想用文本设置在数学子项下划线,则可以使用 ulem

答案2

这是大卫的回答

  • 它定义了\mathuline可以在数学模式下使用,以\uline使用 David 的技巧来获取 的文本模式版本。此外,还\mathpalette用于获取正确的数学样式。
  • [可选]\uline被重新定义为在数学模式中使用,\mathuline而不是默认的\underline。但请注意,如果您有较大的符号和深度较大的公式(例如\int\frac,则该线将与公式相交。

示例文件:

\documentclass{article}
\usepackage{ulem}

\makeatletter
\newcommand*{\saved@uline}{}
\let\saved@uline\uline

\newcommand*{\mathuline}{%
  \mathpalette{\math@uline\saved@uline}%
}
\newcommand*{\math@uline}[3]{%
  % #1: ulem command
  % #2: math style
  % #3: contents
  \mbox{#1{$#2#3\m@th$}}%
}

% optional
\renewcommand*{\uline}{%
  \relax  
  \ifmmode
    \expandafter\mathuline
  \else
    \expandafter\saved@uline
  \fi
}
\makeatother

\begin{document}
\uline{normal text} $\uline{f(x)=y}$
\end{document}

结果

相关内容