列表中的简练评论字体

列表中的简练评论字体

我尝试使用压缩字体来压缩我的评论的大小,但是效果并不正常。

ttfamily启用后,字体形状看起来不错basicstyle,但是注释字母之间有很大的间距。我该如何消除这些间距?

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

\begin{document}
    \begin{lstlisting}[language=Prolog,basicstyle=\ttfamily\footnotesize,commentstyle=\fontseries{lc}\selectfont\itshape]
    hello :- world
    % This is a comment
    \end{lstlisting}    
\end{document}

编辑:我如何让该帖子的源代码进行编译,就像我在其他帖子中看到的那样?

答案1

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{listings}

\begin{document}
    \begin{lstlisting}[language=Prolog,basicstyle=\ttfamily\footnotesize,
      commentstyle=\fontseries{lc}\selectfont\itshape,columns=fullflexible]
    hello :- world
    % This is a comment
    \end{lstlisting}    
\end{document}

Heiko Oberdiek 的回答:

劫持答案,因为问题已关闭,而我距离发送答案只剩几秒钟了。:-((((

赫伯特的变体回答,这需要columns=fullflexible。以下示例仅将此设置用于注释。然后,columns如果垂直对齐是一个问题并且需要不太灵活的 的设置,则可以使用的其他值columns

\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{listings}

\newcommand*{\mycommentstyle}[1]{%
  \begingroup
    \fontseries{lc}%
    \fontshape{it}%
    \selectfont
    \lstset{columns=fullflexible}%
    #1%
  \endgroup
}

\begin{document}
\begin{lstlisting}[
  language=Prolog,
  basicstyle=\ttfamily,
  commentstyle=\mycommentstyle,
]
a     :- b     % Dummy statement
hello :- world % This is a longer comment
% This is a comment again
\end{lstlisting}
\end{document}

结果

顺便说一句,如果垂直对齐要求允许,我更愿意fullflexible或至少flexiblefixed其作为 的值columns。文本阅读起来更美观。甚至还有可变宽度的打字机字体(系列lmvttvariablett包的选项lmodern)。

相关内容