如何控制双下划线的行间间距长度?

如何控制双下划线的行间间距长度?

我使用包\uuline中的命令ulem来制作双下划线文本。我想知道是否可以控制行之间的间距长度?我在下​​面画出了我的意思。如果不行,如何制作可控制间距长度的自定义双下划线?在此处输入图片描述

答案1

双线之间的间距是硬编码的:1.2pt,请参阅\uuline包中的定义ulem

下面的示例以两种方式改变定义:

  • 硬编码空间被 dimen 寄存器替换\uulinesep

  • 此外,对齐的是顶线,而不是底线。这可以避免当\uulinesep增加太多时,顶线会盖印下行线,甚至会移动到基线上方。

整个双线的深度可以通过设置来改变,\ULdepth如示例的第二行和第三行所示。默认值为\maxdimen。则包ulem使用深度j()

完整示例:

\documentclass{article}

\usepackage{ulem}

\newdimen\uulinesep
\setlength{\uulinesep}{1.2pt}

\makeatletter
\renewcommand*{\uuline}{%
  \bgroup
  \UL@setULdepth
  \markoverwith{%
    \lower\ULdepth\hbox{%
      \kern-.03em%
      \vtop{%
        \hrule width.2em%
        \kern\uulinesep
        \hrule
      }%
      \kern-.03em%
    }%
  }%
  \ULon
}
\makeatother


\begin{document}
\newcommand*{\test}[1]{%
  \begingroup
    \renewcommand*{\uulinesep}{#1}%
    \uuline{#1}%
  \endgroup
}
\test{0pt} \test{0.6pt} \uuline{1.2pt}\,\uline{(default)}
\test{2pt} \test{1ex}

\newcommand*{\testA}[1]{%
  \begingroup
    \setlength{\ULdepth}{#1}%
    \addtolength{\ULdepth}{.4pt}% line width
    \uuline{#1}%
  \endgroup
}
\newcommand*{\testB}[1]{%
  \begingroup
    \settodepth{\ULdepth}{#1}%
    \addtolength{\ULdepth}{.4pt}% line width
    \uuline{#1}%
  \endgroup
}

\testA{0pt} \testA{1.5pt} \testA{1pt} \testA{2pt} \testA{4pt}

\testB{j} \testB{()} \testB{x} \testB{$\int_0^\infty$}
\end{document}

结果

相关内容