我使用该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}