如何在文本之外继续加粗下划线?

如何在文本之外继续加粗下划线?

这是我的代码:

\documentclass[12pt]{article}  
\usepackage{soul}
\begin{document}
\setul{}{2pt}
\ul{\Huge\textbf{Some text}}
\underline{\Huge\textbf{Some text \hspace{1in}}}
\ul{\Huge\textbf{Some text \hspace{1in}}} % This line causes error
\end{document}

该命令\underline{\Huge\textbf{Some text \hspace{1in}}}产生结果

在此处输入图片描述

但我希望下划线更粗,所以我尝试使用灵魂包,设置厚度,然后\ul{Some text}

这给了我所需的下划线厚度

在此处输入图片描述

当我尝试将两者结合起来以得到一条超出文本的粗线时,问题就出现了。该命令\ul{\Huge\textbf{Some text \hspace{1in}}}会产生错误,“缺失数字,视为零。”

有什么想法可以解释为什么或如何解决它吗?或者更好的方法是用一条延伸到文本外任意距离的粗线来强调文本?

答案1

你必须阅读灵魂手册的细则http://texdoc.net/texmf-dist/doc/latex/soul/soul.pdf 您必须使用 \mbox{} 进行保护。

\documentclass[10pt,letterpaper]{article}
\usepackage{soul}
\begin{document}
\ul{\Huge\textbf{Some text\mbox{\hspace{1in}}}}
\end{document}

答案2

无需加载任何其他包,这里有一个使用规则完成此操作的命令。

\documentclass{article}
\makeatletter
\newlength\ae@tmp@length
\newcommand\aeunderline[2][]{%%
  \settowidth\ae@tmp@length{#2}%%
  \makebox[0pt][r]{#2}%%
  \hspace{-\ae@tmp@length}%%
  \rule[\dimexpr-0.25ex-4pt]{\dimexpr\ae@tmp@length+#1+0pt\relax}{4pt}}

\makeatother

\pagestyle{empty}
\begin{document}

  \aeunderline[2in]{Hello World} and this is what follows.

\end{document}

在此处输入图片描述

答案3

基于纯 TeX

基于纯 TeX 的带下划线的解决方案仅意味着:

\documentclass{article}
\begin{document}
  \leavevmode
  \vtop{
    \Huge
    \hbox{\textbf{Some text \hspace{1in}}}
    \kern.5ex % space between text and line
    \hrule height 2.5pt % rule thickness
  }
\end{document}

结果

基于 TikZ

以下示例使用 TikZ,它提供了有关线条样式的更多选项。例如,此版本显示圆形线头:

\documentclass{article}
\usepackage{tikz}
\begin{document}
  {\Huge
  \tikz[
    baseline=(text.base),
    node font=\bfseries,
    inner sep=0pt,
    line width=2.5pt,
    line cap=round, % also decorations, ...
  ]
  \draw
    node (text) {Some text}
    (text.south east) ++(1in, -.5ex) coordinate (tmp)
    -- (text.south west |- tmp)
  ;}
\end{document}

结果 TikZ

答案4

只是为了完整地回答这个问题,如果你使用 luatex,有一个未完成的包强调:卢奥林. (它是可用的,只是还没有为 CTAN 做好准备,因为它没有文档并且需要一些性能改进。)

如果您下载此包并将其放在您的本地 TeX 树中,您可以加载它并使用以下命令产生所需的结果:

\documentclass[12pt]{article}
\usepackage{luauline}
\setluaunderlineheight{2pt}  % set thickness of the underline
\begin{document}
\uline{\Huge\textbf{Some text\hspace*{1in}}}
\end{document}

相关内容