对于我正在编写的一个小型 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}