この郵便受けは、エスケープ文字列を介して使用できるコメント コマンドを定義します。定義されたコメント文字列を何らかの方法で 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 つの出現は正確には互いに下になりません。
\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}
2番目の解決策は、オプションを使用することです
escapeinside={\#}{\^^M},
escapebegin={\hfill\begin{minipage}[t]{3cm}$\triangleright$},
escapeend={\end{minipage}}
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}