下划线样式

下划线样式

我想加粗下划线。

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{contour}
\usepackage{ulem}

\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}

\newcommand{\myuline}[1]{%
  \uline{\phantom{#1}}%
  \llap{\contour{white}{#1}}%
}
\begin{document}

\myuline{bold underline}

\end{document}

答案1

(警告:这个答案涉及最初的上述帖子的格式。发布此答案后,我注意到 OP 彻底改变了问题的设置和相关代码。例如,宏\myunder不再定义或使用。因此,这个答案可能对 OP 或此帖子的未来读者都没有多大用处。哦,好吧。)

即使你将垂直偏移从 0.5pt 更改\dunderline为 0.4pt,宏\myunder仍然会存在两个主要缺陷:

  • 如果 的参数\myunder包含一个低于基线的字母(例如gjpqy),则宏将绘制两条单独的细线,而不是一条粗线。此外,上方的细线与具有低于基线的组件的字母相交。(我认为该\smash指令可能是造成这一不幸属性的原因。)

  • 如果\myunder出现两个连续的指令,则两组单词之间的空白太大。

我不想调整的定义\myunder,而是只需加载ulem包并通过指令更改的值\ULthickness(默认值:0.4pt)\renewcommand,比如说\renewcommand\ULthickness{.8pt}

在此处输入图片描述

    \documentclass{article}
    \usepackage[utf8]{inputenc}
    \newcommand\dunderline[2][.4pt]{ % use 0.4pt, not 0.5pt
    \raisebox{-#1}{\underline{\raisebox{#1}{\smash{\underline{#2}}}}}}
    \newcommand{\myunder}{\dunderline}
    
    \usepackage[normalem]{ulem} % for "\uline" macro
    
    
    \begin{document}
    
    Using \texttt{\string\myunder}
    
    \myunder{thick underlining} \myunder{text}

    
    \medskip
    Using \texttt{\string\uline}
    
    \uline{thin underlinining} \uline{text}
    
    \renewcommand\ULthickness{.8pt} % <-- double the default width
    
    \uline{thick underlinining} \uline{text}
    
    \end{document}

答案2

使用包bm

d

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{contour}
\usepackage{ulem}

\usepackage{bm} % added <<<<<<<<

\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}

\newcommand{\myuline}[1]{%
    \bfseries %<<<<<<<<<<<<<<<<
    \uline{\phantom{#1}}%
    \llap{\contour{white}{#1}}%
}
\begin{document}
    
    \myuline{bold underline} 
    \bigskip
    
    \myuline{bold linguistic}
    
\end{document}

相关内容