我想定义三种不同的浅色背景颜色。我想在序言中定义它们,并希望在运行代码中使用它们。
我的代码:
\usepackage[dvipsnames]{xcolor}
\colorlet{r1}{ForestGreen}
\colorlet{r2}{RubineRed}
\colorlet{r3}{RoyalPurple}
\textcolor{r1}{Forestgreen}. \textcolor{r2}{RubineRed}
It successfully changes the text color to my defined colors.
But this is not what I wanted. I want to change the text background color.
答案1
我很乐意删除它,但也许这至少可以帮助澄清问题。这定义了一个命令,\Hl
它接受一个可选参数。如果留空,则使用以前的高亮颜色,否则将使用新颜色。当然,可以根据需要进行更改。
\documentclass{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{soul}
\colorlet{r1}{ForestGreen}
\colorlet{r2}{RubineRed}
\colorlet{r3}{RoyalPurple}
\newcommand{\Hl}[2][\empty]{%
\ifx#1\empty
\else
\colorlet{myhlcolor}{#1}%
\sethlcolor{myhlcolor}%
\fi
\hl{#2}}
\begin{document}
\Hl{Quack} \Hl[r1!20]{Blub} \Hl[r2!50]{Pft} \Hl{Meow} \Hl[r3!30]{Pffft}
\end{document}
答案2
您可以使用 soul 包进行高亮显示。但它不太好用,而且许多命令不允许在参数中使用。我建议使用 lualatex 和新的 lua-ul 包:
\documentclass{scrreprt}
\usepackage[dvipsnames]{xcolor}
\usepackage{luacolor,lua-ul}
\colorlet{r1}{ForestGreen}
\colorlet{r2}{RubineRed}
\colorlet{r3}{RoyalPurple}
\LuaULSetHighLightColor{r1}
\begin{document}
\highLight{Forestgreen}, \highLight[r2]{RubineRed}
It successfully changes the text color to my defined colors.
\highLight[r3]{But this is not what I wanted}. I want to change the text background color.
\end{document}
答案3
使用\colorbox{}{}
:
\documentclass{...}
...
\usepackage{xcolor}
...
\begin{document}
...
\colorbox{r1}{ForestGreen}. \colorbox{r2}{RubineRed}
It successfully changes the highlight color to my defined colors.
...
\end{document}