在 LaTeX 中缩进代码列表

在 LaTeX 中缩进代码列表

对于我正在编写的一个小型 LaTeX 文档,我想将源代码字段(在 SQL 中)插入到我的论文中。

我发现我可以为此使用 listing 包,到目前为止效果很好:

\usepackage{color}
\definecolor{light-gray}{gray}{0.95}

\usepackage{listings} 
\lstset{numbers=right, 
                numberstyle=\tiny, 
                breaklines=true,
                backgroundcolor=\color{light-gray},
                numbersep=5pt} 
\lstset{language=SQL} 

这很有效,因此我可以插入如下代码清单:

\begin{lstlisting}{insert}
INSERT INTO Tabelle (Spalte1, Spalte2, Spalte3) VALUES (Wert1, Wert2, Wert3);
\end{lstlisting}

它向我显示的是包含代码的浅灰色框,但它们从行首开始,就像文本一样。我现在希望自动显示代码列表缩进一点。这样灰色框就不会从文本级别开始。

有人能告诉我如何实现这个吗?我是 LaTeX 的新手……如果有人能帮忙就太好了!

答案1

listings包允许您更改边距(请参阅文档

\lstset{numbers=right, 
                numberstyle=\tiny, 
                breaklines=true,
                backgroundcolor=\color{light-gray},
                numbersep=5pt,
                xleftmargin=.25in,
                xrightmargin=.25in} 

按需要进行调整。

答案2

您可以使用 选项执行此xleftmargin操作listings。请参阅手册第 33 页,第 4.10 节“边距和线条形状”。

例子:

\documentclass{article}

\usepackage{lipsum}
\usepackage{color}
\definecolor{light-gray}{gray}{0.95}

\usepackage{listings} 
\lstset{numbers=right, 
                numberstyle=\tiny, 
                breaklines=true,
                backgroundcolor=\color{light-gray},
                xleftmargin=\parindent,
                %xleftmargin=1cm,
                %xrightmargin=\parindent,
                numbersep=5pt} 
\lstset{language=SQL} 
\begin{document}
\lipsum[1]
\begin{lstlisting}{insert}
INSERT INTO Tabelle (Spalte1, Spalte2, Spalte3) VALUES (Wert1, Wert2, Wert3);
\end{lstlisting}
\lipsum[2]
\end{document}

相关内容