我在默认的 Lyx 中使用 2 列布局,其中包含多个程序列表。其中一些程序带有行号。由于采用 2 列布局,行号占据了列间空白的很大一部分。有没有办法执行以下任何一项或全部操作?
- 将行号压缩到更接近代码清单的位置
- 将代码稍微向右移动一点(一些用于程序列表的左边距设置)
- 允许代码稍微超出页面侧的正常列宽
谢谢!
答案1
对于您的三点,有三个参数可以修改以满足您的需要。(请参阅listings
手动的可查看所有可用选项。
xleftmargin
-- 左边距。通过调整此值,您可以向左/向右移动列表。(负值有效。)xrightmargin
-- 右边距。通过将其设置为负值,您可以允许代码超出列宽。numbersep
-- 定义行号和代码之间的空白量。默认值为 10pt。
在 LyX 中,您可以在文档 --> 设置 --> 列表中应用这些选项。用key=value
逗号分隔每对,例如
xleftmargin=1cm,xrightmargin=-1cm,numbersep=2pt
在下面的 LaTeX 代码示例中,我还将字体更改为打字机字体,减小了行号的字体大小并启用了换行功能。)
\documentclass[twocolumn]{article}
\usepackage{listings}
\lstset{
xleftmargin=1em, % <-- change this to a suitable length
xrightmargin=-0.5cm, % <-- change this to a suitable negative length
numbersep=2pt, % default 10pt
numbers=left,
numberstyle=\footnotesize,
basicstyle=\ttfamily,
breaklines=true}
\usepackage{lipsum} % for dummy text
\begin{document}
\lipsum[1]
\begin{lstlisting}
This
is
a
code
listing.
\end{lstlisting}
\lipsum[2-3]
\begin{lstlisting}
This
is
a very very very very very very very long
code
listing.
\end{lstlisting}
\lipsum[4-6]
\end{document}