
Я пытаюсь контролировать интервал между номерами строк и моим кодом с помощью пакета 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
является средой типа verbatim, и, что особенно важно, пробелы сохраняются. Ваш код начинается с четырех пробелов, и вы видите эти четыре пробела.
Если вы установите showspaces=true
его \lstset
(в настоящее время он установлен на false
), это станет очевидным.
Приложение
Чтобы убрать пробелы, можно добавить
gobble=4
к \lstset
.
Также есть пакет, lstautogobble
который предоставляет опцию, называемую autogobble
. С этой опцией начальные пробелы автоматически удаляются.