2 列:如何在 Lyx 中压缩行号、移位代码

2 列:如何在 Lyx 中压缩行号、移位代码

我在默认的 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}

相关内容