Esta postagem, define um comando de comentário que pode ser usado por meio de strings de escape. Existe uma maneira de reformatar uma sequência de comentários definida na saída do PDF de alguma forma?
Por exemplo, seria possível ter 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}
faça a mesma coisa 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}
definindo de alguma forma a string de comentários e fazendo commentstyle
uso do \Comment{}
comando?
Responder1
Uma primeira solução é usar a opção moredelim=**[il][\hfill$\triangleright$ ]{\#}
. Devido ao \hfill
, as 2 ocorrências de Comentário não ficam precisamente abaixo uma da outra se os números não tiverem o mesmo número de dígitos.
\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}
Uma segunda solução é usar as opções
escapeinside={\#}{\^^M},
escapebegin={\hfill\begin{minipage}[t]{3cm}$\triangleright$},
escapeend={\end{minipage}}
para que seja reservado um espaço de 3cm.
\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}