这是我的代码:
\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}
答案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}