我想在我的 LaTeX 文档中编写 shell 代码。我正在使用该listings
软件包,其中包含改编自的代码示例托尔莫德·菲耶尔德斯考尔:
\documentclass{report}
\usepackage{color}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox{gray}{\parbox{\textwidth}{#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white}
% This concludes the preamble
\begin{document}
\begin{lstlisting}[label=some-code,caption=Some Code]
NETWORKING=YES
HOSTNAME= f e −19. l o c a l d o m a i n
}
\end{lstlisting}
\end{document}
问题是,当我生成 PDF 时,每个字符之间都会有一些额外的空格。我希望代码没有这个空格。额外的空格在部分中可见HOSTNAME=
。
答案1
columns=fullflexible
解决了问题。
默认情况下,字符间距是统一的,以保持对齐。设置columns
为非默认值将恢复字符间距(所有字符都按其自然宽度排版),但可能会破坏对齐。
例如:
\begin{lstlisting}[columns=fullflexible,caption=The Name]
dladm show-phys
\end{lstlisting}
除了fullflexible
,您还可以使用flexible
或space-flexible
,它们会尝试通过调整单词之间的水平空格来保持对齐。有关更多信息,请columns
参阅listings
手动的(§2.10“固定列和灵活列”)。