Gibt es eine Möglichkeit, Listenkommentare so zu formatieren, dass sie rechtsbündig sind und mit einem anderen Symbol angezeigt werden?

Gibt es eine Möglichkeit, Listenkommentare so zu formatieren, dass sie rechtsbündig sind und mit einem anderen Symbol angezeigt werden?

Dieser Beitrag, definiert einen Kommentarbefehl, der über Escape-Zeichenfolgen verwendet werden kann. Gibt es eine Möglichkeit, eine definierte Kommentarzeichenfolge in der PDF-Ausgabe irgendwie neu zu formatieren?

Wäre es zum Beispiel möglich, so etwas zu haben wie ...

\documentclass{article}
\usepackage{listings}

\lstset{basicstyle=\small\sffamily,
  numbers=none,
  frame=tb,
  columns=fullflexible,
  comment=[l]{\#},
  showstringspaces=false,
  escapechar=\&% char to escape out of listings and back to LaTeX
}


\begin{document}
\begin{lstlisting}
  Hello  # Comment 1
  World  # Comment 2
\end{lstlisting}
\end{document}

tun Sie dasselbe wie ...

\documentclass{article}
\usepackage{listings}

\newcommand*{\Comment}[1]{\hfill\makebox[3.0cm][l]{$\triangleright$ #1}}%
\lstset{basicstyle=\small\sffamily,
  numbers=none,
  frame=tb,
  columns=fullflexible,
  showstringspaces=false,
  escapechar=\&% char to escape out of listings and back to LaTeX
}

\begin{document}
\begin{lstlisting}
  Hello  &\Comment{Comment 1}&
  World  &\Comment{Comment 2}&
\end{lstlisting}
\end{document}

indem Sie irgendwie die Kommentarzeichenfolge definieren und commentstyleden \Comment{}Befehl verwenden?

Antwort1

Eine erste Lösung besteht darin, die Option zu verwenden moredelim=**[il][\hfill$\triangleright$ ]{\#}. Aufgrund der \hfillstehen die beiden Vorkommen von Kommentar nicht genau untereinander, wenn die Zahlen nicht die gleiche Anzahl Ziffern haben.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage[paperwidth=8cm,paperheight=2cm,left=0.5cm,right=0.5cm]{geometry}
\usepackage{listings}
\lstset{
  basicstyle=\small\sffamily,
  frame=tb,
  columns=fullflexible,
  moredelim=**[il][\hfill$\triangleright$ ]{\#}
}
\begin{document}
\begin{lstlisting}
  Hello  # Comment 9
  World  # Comment 10
\end{lstlisting}
\end{document}

Eine zweite Lösung besteht darin, die Optionen zu verwenden

escapeinside={\#}{\^^M},
escapebegin={\hfill\begin{minipage}[t]{3cm}$\triangleright$},
escapeend={\end{minipage}}

so dass ein Abstand von 3cm eingehalten wird.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage[paperwidth=8cm,paperheight=2cm,left=0.5cm,right=0.5cm]{geometry}
\usepackage{listings}
\lstset{
  basicstyle=\small\sffamily,
  frame=tb,
  columns=fullflexible,
  escapeinside={\#}{\^^M},
  escapebegin={\hfill\begin{minipage}[t]{3cm}$\triangleright$},
  escapeend={\end{minipage}}
}
\begin{document}
\begin{lstlisting}
  Hello  # Comment 9
  World  # Comment 10
\end{lstlisting}
\end{document}

verwandte Informationen