
Ich habe einen neuen Befehl zum Hervorheben einiger Textteile definiert:
\newcommand{\keyword}[1]{\colorbox{black!5}{#1}}
Wenn der Text zu lang wird, überlappt er leider meine Ränder. Das Schlüsselwort ignoriert den Rand der Tabelle sowie den Rand des gesamten Dokuments.
\keyword{exp: c=wordExp \{ if(\$c.matches(``a string'')\{
\textbackslash\textbackslash do something \}) \}}
Kann ich meinem Befehl sagen, dass er eine neue Zeile einfügen oder einen Zeilenumbruch nach X Zentimetern erzwingen soll?
Danke.
Antwort1
Sie können den Rat von @barbarabeeton befolgen. Ich empfehle den Namen \keyword
jedoch nicht, da er in einigen Klassen an anderer Stelle definiert ist. Das kann also newcommand
so aussehen:
\newcommand{\KEY}[1]{\colorbox{black!5}{\parbox{\dimexpr\linewidth-2\fboxsep}{#1}}}
Beachten Sie dies -2\fboxsep
, das dazu dient, die mit dem Text darüber und darunter auszurichten colorbox
. Hier ist ein vollständiges Beispiel:
\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}