如何编写 \underline 文本但带有虚线

如何编写 \underline 文本但带有虚线

喜欢

Hello World 
...........    

或者

Hello World
-----------

但事实并非如此

Hello World  // \underline{Hello World}
___________  //

答案1

(免责声明:在文本上加下划线可能被视为印刷上的不良做法。)

我能想到两种方法来做到这一点。

乌莱姆

如果您想要快速解决方案,此选项很好。使用\dotuline\dashuline 来自包ulem

\documentclass{article}

\usepackage[normalem]{ulem} % [normalem] prevents the package from changing the default behavior of `\emph` to underline.

\begin{document}

\dotuline{dotty}

\dashuline{dashing}

\end{document}

使用 ulem 的点划线和虚线下划线

蒂克兹

如果您想要控制,此选项很好。您可以使用 TikZ 创建自己的宏。以下是六个宏的示例。前三个产生点下划线,后三个产生虚线下划线。

\documentclass{article}

\usepackage{tikz}

\newcommand{\udot}[1]{%
    \tikz[baseline=(todotted.base)]{
        \node[inner sep=1pt,outer sep=0pt] (todotted) {#1};
        \draw[dotted] (todotted.south west) -- (todotted.south east);
    }%
}%

\newcommand{\udensdot}[1]{%
    \tikz[baseline=(todotted.base)]{
        \node[inner sep=1pt,outer sep=0pt] (todotted) {#1};
        \draw[densely dotted] (todotted.south west) -- (todotted.south east);
    }%
}%

\newcommand{\uloosdot}[1]{%
    \tikz[baseline=(todotted.base)]{
        \node[inner sep=1pt,outer sep=0pt] (todotted) {#1};
        \draw[loosely dotted] (todotted.south west) -- (todotted.south east);
    }%
}%

\newcommand{\udash}[1]{%
    \tikz[baseline=(todotted.base)]{
        \node[inner sep=1pt,outer sep=0pt] (todotted) {#1};
        \draw[dashed] (todotted.south west) -- (todotted.south east);
    }%
}%

\newcommand{\udensdash}[1]{%
    \tikz[baseline=(todotted.base)]{
        \node[inner sep=1pt,outer sep=0pt] (todotted) {#1};
        \draw[densely dashed] (todotted.south west) -- (todotted.south east);
    }%
}%

\newcommand{\uloosdash}[1]{%
    \tikz[baseline=(todotted.base)]{
        \node[inner sep=1pt,outer sep=0pt] (todotted) {#1};
        \draw[loosely dashed] (todotted.south west) -- (todotted.south east);
    }%
}%


\begin{document}

\uloosdot{dotty}

\udot{dotty}

\udensdot{dotty}

\uloosdash{dashing}

\udash{dashing}

\udensdash{dashing}

\end{document}

使用 TikZ 绘制下划线的六个示例

thick请注意,您可以修改这些宏以满足您的需求。例如,您可以通过将选项添加到 来更改厚度样式\draw,例如

\draw[dotted, thick] (todotted.south west) -- (todotted.south east);

其他修改可能是改变颜色和不透明度,例如

\draw[dotted, blue, opacity=0.25] (todotted.south west) -- (todotted.south east);

或者通过编辑中的措施来改变文本和装饰之间的距离[inner sep=1pt,outer sep=0pt],例如

\node[inner sep=0.8pt,outer sep=0pt] (todotted) {#1};

本答案中的所有 TikZ 代码都是对\cancel 在被取消的事物下绘制

答案2

支持通过以下方式提供dashundergaps

在此处输入图片描述

\documentclass{article}

\usepackage[dash,dot]{dashundergaps}

\begin{document}

\dotuline{dotty}

\dashuline{dashing}

\end{document}

相关内容