lstlisting: So richten Sie hervorgehobenen Code aus

lstlisting: So richten Sie hervorgehobenen Code aus

Ich möchte ein paar neue Befehle definieren, um Teile meines Codes hervorzuheben (dies ist eigentlich für einen Trace-Dump, nicht für eine Programmiersprache).

Mein Problem ist, dass ich den farbigen Text nicht richtig mit dem Listentext ausrichten kann. Siehe „Hallo Welten“.

Ich habe versucht, \ttfamilyder neuen Befehlsdefinition etwas hinzuzufügen, aber das hat nicht geholfen. Ich habe auch verschiedene Schriftgrößen ausprobiert und ich glaube, dass sowohl farbige als auch nicht farbige Textschriftarten dieselbe Größe haben, also glaube ich nicht, dass das das Problem ist.

\documentclass{article}

\usepackage{listings}
\lstset{
  basicstyle=\ttfamily\large,
  breakatwhitespace=false,
  breaklines=true,
  escapeinside={\%*}{*},
}

\usepackage{color}
\definecolor{mycolorGreenOne}{rgb}{0, 0.7, 0}
\newcommand*{\listingsHigh}[1]{\textcolor{red}{#1}}
\newcommand*{\LighthighOne}{\color{cyan}}

\begin{document}
\begin{lstlisting}
My text: %*\LighthighOne Hello world!* Goodbye!
My text: Hello world! Goodbye!
My text: %*\listingsHigh{Hello world!}* Goodbye!
\end{lstlisting}
\end{document}

Antwort1

Das Problem ist gelöst! Ich habe hinzugefügt: columns=fullflexible.

Ich sollte erwähnen, dass mir die Beschreibung von fullflexible in der Dokumentation im Hinblick auf das, was es tatsächlich bewirkt, nicht intuitiv erscheint. Dies liegt daran, dass es darauf hinzuweisen scheint, dass fixed die Spalten „ausgerichtet“ hält und flexible die Spalten „zerstört“, um sicherzustellen, dass die ursprüngliche Schriftausrichtung eingehalten wird. fixedFunktioniert jedoch nicht, aber fullflexiblefunktioniert. Wenn jemand erklären möchte, warum, wäre ich dankbar.

Siehe Abschnitt 2.10:Auflistungen pdf.

\documentclass{article}

\usepackage{listings}
\lstset{
  basicstyle=\ttfamily\large,
  breakatwhitespace=false,
  breaklines=true,
  escapeinside={\%*}{*},
  columns=fullflexible
}

\usepackage{color}
\definecolor{mycolorGreenOne}{rgb}{0, 0.7, 0}
\newcommand*{\listingsHigh}[1]{\textcolor{red}{#1}}
\newcommand*{\LighthighOne}{\color{cyan}}

\begin{document}
\begin{lstlisting}
My text: %*\LighthighOne Hello world!* Goodbye!
My text: Hello world! Goodbye!
My text: %*\listingsHigh{Hello world!}* Goodbye!
\end{lstlisting}
\end{document}

verwandte Informationen