我使用soul
's\hl
来设置段落部分的背景,并使用ulem
's\uline
来给文本加下划线。
问题是我无法为带有背景的文本加下划线。
初始文档:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[normalem]{ulem}
\usepackage{soul}
\newcommand{\bg}[2]{\sethlcolor{#1}\hl{#2}}
\definecolor{ColorFg}{HTML}{FFFFFF}
\definecolor{ColorBg}{HTML}{008000}
\begin{document}
{\color{ColorFg}\bg{ColorBg}{Some Text}} another text.
\end{document}
我想强调的是Text
:
{\color{ColorFg}\bg{ColorBg}{Some \uline{Text}}} another text.
它失败了! Argument of \UL@on has an extra }.
我尝试使用\soulregister{\uline}{1}
(来自该主题的解决方案) - 没有错误,也没有下划线的文本。
是否可以为带有背景颜色的文本加下划线(也许我必须使用其他包)?
PSsoul
文档提供了嵌套命令的解决方案,但对我来说没用,因为换行符不起作用。
谢谢。
答案1
只需将其放在\uline{}
一对括号内即可。您不需要任何其他包装。
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage[normalem]{ulem}
\usepackage{soul}
\newcommand{\bg}[2]{\sethlcolor{#1}\hl{#2}}
\definecolor{ColorFg}{HTML}{FFFFFF}
\definecolor{ColorBg}{HTML}{008000}
\begin{document}
{\color{ColorFg}\bg{ColorBg}{Some {\uline{Text}}}} another text.
\end{document}
输出如下,
问题解答
有人能告诉我为什么下面的“文本”消失了吗?
{\color{ColorFg}\bg{ColorBg}{Some \protect\uline{Text}}} another text.