如何删除列表开头的空白

如何删除列表开头的空白

我正在尝试使用 lstlisting 将 Maxima 代码嵌入 LaTeX,但在列表上方出现了多余的空白。这是我的序言:

\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}

以下是相关的 LaTeX 代码:

\begin{tabular}{ll}
\textcolor{red}{\ttfamily (\%i1)} &
\begin{lstlisting}
divide(x*((x^2*p^2-t^2)^2 + 2*x*p^3*(x-(2*x^3+2*x^2+x+1)*t)), (x+1)*(t^2-x^2*p^2)^2, t);
\end{lstlisting}
\end{tabular}

结果如下:

在此处输入图片描述

我希望列表的第一行与表格的顶部对齐。

有人可以建议如何修复此问题吗?

答案1

\documentclass如果您能展示从到的完整 MWE,那就太好了\end{document},这样我们就不必猜测或使用水晶球了。

不过,我使用了球并稍微修改了你的例子。请不要因为任何错误的假设而责怪我。

您使用表格在左列显示标记,在右列显示代码示例。您将代码示例放在 -environment 中lstlisting,其作用与显示的公式非常相似,即在代码的顶部和底部添加空白。

相反,您希望您的代码与左列的标签对齐,对吗?

要对齐代码,您必须使用命令\lstinline!code!而不是上述环境。除了使用感叹号作为分隔符 ( !),您还可以选择代码中不存在的任何其他字符来显示。

最后,您必须让您的表格能够与 和平共处\lstinline。我通过将第二列更改为定义宽度的列来实现这一点,该列能够分割长行。为了像以前一样像普通的l- 列,我>{\raggedright\arraybackslash}向​​它添加了一个。这种新的列类型被命名为L(大写 L)。

这是我的例子:

\documentclass{article}
\usepackage{listings}
\usepackage{color}

%% New
\usepackage{array}              % to define new column declarations.

%% Define a new column declaration
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

\lstset{basicstyle=\ttfamily\color{blue},
breaklines=true,
breakatwhitespace=true,
boxpos=t,
resetmargins=true}

\begin{document}
\begin{tabular}{l L{5cm} } % <--- I used the new L-column, made it 5
                           % <--- cm wide!
\textcolor{red}{\ttfamily (\%i1)} &
%% New: use inline listing, it has to be one line!
\lstinline!divide(x*((x^2*p^2-t^2)^2 + 2*x*p^3*(x-(2*x^3+2*x^2+x+1)*t)), (x+1)*(t^2-x^2*p^2)^2, t);!
\end{tabular}
\end{document}

结果如下:

在此处输入图片描述

相关内容