\newcommand 中的换行符

\newcommand 中的换行符

我定义了一个新命令来突出显示某些文本部分:

\newcommand{\keyword}[1]{\colorbox{black!5}{#1}}

不幸的是,当文本变得太长时,它会与我的边距重叠。关键字忽略了表格的边距以及整个文档的边距。

\keyword{exp: c=wordExp \{ if(\$c.matches(``a string'')\{ 
\textbackslash\textbackslash do something \}) \}}

在此处输入图片描述

我可以告诉我的命令来生成一个换行符或者强制它在 X 厘米后中断吗?

谢谢。

答案1

您可以采用@barbarabeeton 的建议。但是,我不推荐使用名称\keyword,因为它在某些类的其他地方定义。因此,可以newcommand如下所示:

\newcommand{\KEY}[1]{\colorbox{black!5}{\parbox{\dimexpr\linewidth-2\fboxsep}{#1}}}

观察这个-2\fboxsep,它的作用是将colorbox与上下文本对齐。这是一个完整的例子:

\documentclass{article}
\usepackage{xcolor}
\begin{document}

\newcommand{\KEY}[1]{\colorbox{black!5}{\parbox{\dimexpr\linewidth-2\fboxsep}{#1}}}

\begin{tabular}{|p{.4\linewidth}|p{.5\linewidth}|}
\hline
Something here to fill half & 
Something here to fill half the line width
\KEY{exp: c=wordExp \{ if(\$c.matches(``a string'')\{ 
\textbackslash\textbackslash do something \}) \}}
\\ \hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容