Formatting 使用listings&;格式化源列表;框架包装

Formatting 使用listings&;格式化源列表;框架包装,formatting,latex,listings,Formatting,Latex,Listings,我目前有一个问题,清单软件包不能将源文件分散到多个页面。在写文档时,说明“框架”包应用于各种格式选项。不幸的是,我没有找到任何文件的“框架”包。对于C#源代码,我当前的源代码格式如下所示: 不幸的是,图片服务已经不存在了,我找不到那个图片,因为这篇文章是5年前发布的。我记得格式化的源代码部分(应该在下一页中可见)被截断,根本没有显示出来。 我的“清单”软件包格式如下: \newcommand{\sourceFormatterCSharp} { \lstset { language=[Shar

我目前有一个问题,清单软件包不能将源文件分散到多个页面。在写文档时,说明“框架”包应用于各种格式选项。不幸的是,我没有找到任何文件的“框架”包。对于C#源代码,我当前的源代码格式如下所示:


不幸的是,图片服务已经不存在了,我找不到那个图片,因为这篇文章是5年前发布的。我记得格式化的源代码部分(应该在下一页中可见)被截断,根本没有显示出来。 我的“清单”软件包格式如下:

\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}
}

有谁能帮助我使用“框架”软件包或任何其他类似的软件包来获得类似的结果,使我的源代码看起来像这样,但可以跨页面分发?一个如何在框架中嵌入列表的示例并不令人满意,因为到目前为止,我自己也是。

框架文档在.sty文件本身中。就像这样使用它:

\documentclass{article} \usepackage{framed,lipsum} \begin{document} \begin{framed} \lipsum[1-10] \end{framed} \end{document} \documentclass{article} \usepackage{framed,lipsum} \开始{document} \开始{framed} \利普苏姆[1-10] \结束{framed} \结束{document} 从文档中,您还可以使用:

  • 框架——边缘在边缘的普通框架框(\fbox)
  • 着色--着色背景(\colorbox)渗入边缘
  • 吸顶棚——类似
  • leftbar--左边距中的粗垂直线

在上面的例子中,把你的清单而不是lipsum放在上面,将允许多页的代码都有一个框架;您将无法获得与列表相同的输出,但应该能够调整内容使其看起来正常。

列表包已经支持跨页面拆分代码;请参阅下面的示例(很抱歉,清单太长)。请注意,您不能有跨页面的浮点,因此您需要使用标题包(例如)在
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} \documentclass{article} \usepackage[a5纸张,横向]{geometry} \usepackage{xcolor,清单} \开始{document} \定义颜色{浅灰色}{灰色}{0.8} \lstset { 字幕pos=b ,backgroundcolor=\color{lightgrey} ,数字=左 ,numberstyle=\scriptsize ,步骤编号=2 ,numberSP=5pt ,frame=shadowbox ,rulesepcolor=\color{gray} } \开始{lstlisting} A. B C D E F G H 我 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 我 J K L M N o P Q R s T U v W x Y Z \结束{lstlisting} \结束{document}
谢谢你的回答,但我想得到相同的清单。另一点是,标题将出现在哪里。在我试过之后,我让行号出现在边界上。这里的问题是我所有的标题都在底部。这是文档的样式。我不能只在源代码列表中引入标题,而是在下面的任何地方使用其他标题。有时我有两行长的标题,看起来很奇怪,在列表顶部有两行长的标题。如果有一个像“框架”这样的包,它完全不会产生边框和边距,那就好了。我知道列表中没有分页累牍的结束行,但我可以接受。在多页表格的开头有标题是标准的。在我看来,在这里也可以这样做。我不知道你说的使用框架软件包是什么意思,因为列表已经被页面分割了,所以我看不出它能改善什么。是的,你是对的。我测试了它,它工作了。如果我可以为中断设置一些边距,这样文本不会在中断后立即开始,看起来有点奇怪,那就太酷了。但无论如何,非常感谢你的帮助!我正在寻找一种单一空间列表的方法,但偶然发现了这一点。谢谢你的帖子!你会有现在丢失的图像的副本吗?如果没有它,这个问题就需要认真的帮助。我投票将这个问题作为非主题来结束,因为对问题陈述至关重要的非现场图像现在是一个死链接。