
私は、listings パッケージを使用して、行番号とコード間の間隔を制御しようとしています。以下は私が使用しているコードです。
\begin{figure*} [!ht]
\centering
\lstset{showstringspaces=false,
tabsize=1,
breaklines=true,
basicstyle=\footnotesize,
numbers=left,
showspaces=false,
extendedchars=false,
numberstyle=\scriptsize,
numbersep=0pt}
\begin{lstlisting}
INPORT::[name] => [rec.comp.] @ [rec. port]
OUTPORT::[name] <= [orig.comp.] @ [out port]
[PRIMITIVE]::[name]<=[rec.port2]<-[orig.comp1.]@[out port1] [rec.port2]<-[orig.comp2.]@[out port2]...
LUT[n] [logic_func]::[name]<=[rec.port2]<-[orig.comp1.]@[out port1] [rec.port2]<-[orig.comp2.]@[out port2]...
\end{lstlisting}
\caption{single line component netlist of the tiny circuit example.}
\label{fig:netlistSyntax}
\end{figure*}
得られた結果は次のとおりです。
コードと数字の間のスペースが気に入らないので、数字パラメータは、パッケージのドキュメントに記載されているように、「数値とリスト間の距離」です。 '0pt' を使用しても、コードと数値が近くなりません。
ここで何が欠けているのでしょうか?
答え1
lstlisting
は逐語的な型環境であり、スペースが保持されることが重要です。コードは 4 つのスペースで始まり、その 4 つのスペースが表示されます。
showspaces=true
を に設定すると\lstset
(現在は に設定されていますfalse
)、これが明らかになります。
補遺
スペースを削除するには、
gobble=4
に\lstset
。
lstautogobble
というオプションを提供する というパッケージもありますautogobble
。このオプションを使用すると、先頭の空白が自動的に削除されます。