使用列表&amp ;;格式化源列表框架包

时间:2009-11-08 23:23:09

标签: formatting latex listings

我目前有一个问题,列表包不能跨多个页面传播源文件。在doc中写道,“framed”包应该用于各种格式化选项。不幸的是,我没有找到任何“框架”包的文档。我目前的源格式对于C#源来说是这样的:

Source Formatting http://www.free.image.hosting.net/uploads/88987a1ef4.png


不幸的是,图像服务不再存在,我无法找到该图像,因为该帖子是在5年多前发布的。我记得的是,格式化的源代码部分,应该在下一页上可见,只是被截断,根本没有显示。

我对“listing”包的格式是:

\newcommand{\sourceFormatterCSharp}
{
\lstset
{ language=[Sharp]C
, captionpos=b
%, frame=lines
, morekeywords={var, get, set}
, basicstyle=\footnotesize\ttfamily
, keywordstyle=\color{blue}
, commentstyle=\color{darkgreen}
, stringstyle=\color{darkred}
, backgroundcolor=\color{lightgrey}
, numbers=left
, numberstyle=\scriptsize
, stepnumber=2
, numbersep=5pt
, breaklines=true
, tabsize=2
, showstringspaces=false
, emph={double, bool, int, unsigned, char, true, false, void, get, set}
, emphstyle=\color{blue}
, emph={Assert, Test}
, emphstyle=\color{red}
, emph={[2]\#using, \#define, \#ifdef, \#endif}
, emphstyle={[2]\color{blue}}
, frame=shadowbox
, rulesepcolor=\color{grey}
, lineskip={-1.5pt} % single line spacing
}
}

% first optional param is placement
% param1 file name without extension
% param2 chapter number, e.g. 1 or 2 ...
% param3 caption to use
\newcommand{\embedCSharp}[4][htbp]
{
\sourceFormatterCSharp
\includeListing{#1}{#4}{#3:#2}{#3/#2.cs}
}

任何人都可以帮助我使用“框架”软件包或其他任何其他资源帮助我实现类似的结果,看起来像这样,但可以跨页面分发吗? 如何在框架中嵌入列表的示例将无法满足,因为我到目前为止自己。

2 个答案:

答案 0 :(得分:2)

列表包已经支持跨页面拆分代码;请参阅下面的示例(抱歉长列表)。请注意,您不能拥有跨页面的浮动,因此您需要使用标题包(例如)在lstlisting环境的开头插入标题。

\documentclass{article}
\usepackage[a5paper,landscape]{geometry}
\usepackage{xcolor,listings}
\begin{document}
\definecolor{lightgrey}{gray}{0.8}
\lstset
{
captionpos=b
, backgroundcolor=\color{lightgrey}
, numbers=left
, numberstyle=\scriptsize
, stepnumber=2
, numbersep=5pt
, frame=shadowbox
, rulesepcolor=\color{gray}
}
\begin{lstlisting}
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
\end{lstlisting}
\end{document}

答案 1 :(得分:1)

框架文档位于.sty文件中。只需使用它:

\documentclass{article}
\usepackage{framed,lipsum}
\begin{document}
\begin{framed}
\lipsum[1-10]
\end{framed}
\end{document}

从文档中,您还可以使用:

  • 框架 - 边缘为边缘的普通框架框(\ fbox)
  • 阴影 - 阴影背景(\ colorbox)渗透到边缘
  • snugshade - 类似
  • 左栏 - 左边缘的粗垂直线

在上面的示例中放置您的列表而不是lipum将允许多页代码及其周围的框架;你将无法获得相同的输出到列表,但应该能够调整一些东西以使事情看起来没问题。