Разрыв строки в \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}

введите описание изображения здесь

Связанный контент