我有一个简单的命令,可以创建彩色文本。当只有一个段落没有换行符时,此命令可以正常工作。如果有换行符/新段落,则此命令不起作用(下面 MWE 中的注释代码会产生这种情况)。给出的错误是
Too many }'s.
\tbn #1->\textcolor {blue}{{#1} }
一种简单的方法是对换行后的每个段落分别使用\tbn{}
。但是是否可以重新定义该命令,使其跨段落/换行起作用?
\documentclass{article}
\usepackage{xcolor}
\newcommand{\tbn}[1]{\textcolor{blue}{{#1}}}
\usepackage{lipsum}
\begin{document}
\tbn{This works if there is no line break.}
% \tbn{This doesn't work if there is a line break.
% If there is a line break.}
\end{document}
答案1
\textcolor
不接受参数中的段落(就像所有其他\text...
命令一样\textbf
)。而是使用显式组和\color
:
\documentclass{article}
\usepackage{xcolor}
\newcommand{\tbn}[1]{\leavevmode{\color{blue}#1}}
\begin{document}
\tbn{This works if there is no line break.}
\tbn{This doesn't work if there is a line break.
If there is a line break.}
\end{document}