¿Existe alguna forma de dar formato a los comentarios de los listados para que estén alineados a la derecha y aparezcan con un símbolo diferente?

¿Existe alguna forma de dar formato a los comentarios de los listados para que estén alineados a la derecha y aparezcan con un símbolo diferente?

Esta publicación, define un comando de comentario que se puede utilizar mediante cadenas de escape. ¿Hay alguna manera de reformatear una cadena de comentarios definida en la salida del pdf de alguna manera?

Por ejemplo, ¿sería posible tener algo como...?

\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}

haz lo mismo que...

\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}

¿Definiendo de alguna manera la cadena de comentarios y haciendo commentstyleuso del \Comment{}comando?

Respuesta1

Una primera solución es utilizar la opción moredelim=**[il][\hfill$\triangleright$ ]{\#}. Debido a \hfill, las 2 apariciones de Comentario no están exactamente debajo de la otra si los números no tienen la misma cantidad de dígitos.

ingrese la descripción de la imagen aquí

\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}

Una segunda solución es utilizar las opciones.

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

de modo que quede reservado un espacio de 3cm.

ingrese la descripción de la imagen aquí

\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}

información relacionada