Каков правильный способ управления отделением чисел от текста/кода с помощью пакета listings?

Каков правильный способ управления отделением чисел от текста/кода с помощью пакета listings?

Я пытаюсь контролировать интервал между номерами строк и моим кодом с помощью пакета 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. С этой опцией начальные пробелы автоматически удаляются.

Связанный контент