Эта почта, определяет команду комментария, которая может быть использована через escape-строки. Есть ли способ как-то переформатировать определенную строку комментария в выводе pdf?
Например, можно ли сделать что-то вроде...
\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}
сделайте то же самое, что и...
\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}
каким-то образом определив строку комментария и заставив commentstyle
использовать \Comment{}
команду?
решение1
Первое решение — использовать опцию moredelim=**[il][\hfill$\triangleright$ ]{\#}
. Из-за \hfill
2 вхождений Comment не находятся точно друг под другом, если числа не имеют одинакового количества цифр.
\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}
Второе решение — использовать опции
escapeinside={\#}{\^^M},
escapebegin={\hfill\begin{minipage}[t]{3cm}$\triangleright$},
escapeend={\end{minipage}}
так, чтобы было зарезервировано пространство в 3 см.
\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}