像专业书籍中一样列出 LaTeX 源代码
Latex 源代码列表应该是什么样子才能产生像已知书籍中那样的输出,例如 Spring 框架的输出? 我尝试过使用乳胶列表包,但无法生成看起来像下面一样好的东西。 因此,我主要对格式说明感兴趣,以生成类似下面示例的内容(来自曼宁的 示例Spring in Action章节):
编辑 特别是在 Tormod Fjeldskår 的帮助下,这里是产生所需外观的完整代码片段:
\usepackage{listings}
\usepackage{courier}
\lstset{
basicstyle=\footnotesize\ttfamily, % Default font
% numbers=left, % Location of line numbers
numberstyle=\tiny, % Style of line numbers
% stepnumber=2, % Margin between line numbers
numbersep=5pt, % Margin between line numbers and text
tabsize=2, % Size of tabs
extendedchars=true,
breaklines=true, % Lines will be wrapped
keywordstyle=\color{red},
frame=b,
% keywordstyle=[1]\textbf,
% keywordstyle=[2]\textbf,
% keywordstyle=[3]\textbf,
% keywordstyle=[4]\textbf, \sqrt{\sqrt{}}
stringstyle=\color{white}\ttfamily, % Color of strings
showspaces=false,
showtabs=false,
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
% backgroundcolor=\color{lightgray},
showstringspaces=false
}
\lstloadlanguages{ % Check documentation for further languages ...
% [Visual]Basic,
% Pascal,
% C,
% C++,
% XML,
% HTML,
Java
}
% \DeclareCaptionFont{blue}{\color{blue}}
% \captionsetup[lstlisting]{singlelinecheck=false, labelfont={blue}, textfont={blue}}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
在文档中使用它:
\lstinputlisting[label=samplecode, caption=A sample]{sourceCode/HelloWorld.java}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
在我看来,您真正想要的是自定义标题的外观。 使用
caption
包可以最轻松地完成此操作。 有关如何使用此包的说明,请参阅手册(PDF)。 您可能需要创建自己的自定义标题格式,如手册第 4 章中所述。编辑:使用 MikTex 测试:
结果:
It seems to me that what you really want, is to customize the look of the captions. This is most easily done using the
caption
package. For instructions how to use this package, see the manual (PDF). You would probably need to create your own custom caption format, as described in chapter 4 in the manual.Edit: Tested with MikTex:
Result:
我对
listings
包很满意:以下是我的配置方式:
我使用像这样:
I am happy with the
listings
package:Here is how I configure it:
I use it like this:
并且,无论您做什么,请配置列表包以使用固定宽度字体(如您的示例中所示;您将在文档中找到该选项)。 默认设置使用网格上的比例字体排版,恕我直言,这非常丑陋且不可读,从其他带有图片的答案中可以看出。 当我必须阅读一些以比例字体排版的代码时,我个人非常感到恼火。
尝试使用以下方法设置固定宽度字体:
And please, whatever you do, configure the listings package to use fixed-width font (as in your example; you'll find the option in the documentation). Default setting uses proportional font typeset on a grid, which is, IMHO, incredibly ugly and unreadable, as can be seen from the other answers with pictures. I am personally very irritated when I must read some code typeset in a proportional font.
Try setting fixed-width font with this:
我想知道为什么没有人提到 Minted 包。 它具有比 LaTeX 列表包更好的语法突出显示。 它使用 Pygments。
LaTeX 中的示例:
结果为:
您需要使用标志
-shell -escape
使用 pdflatex 命令。有关更多信息:https://www. sharelatex.com/learn/Code_Highlighting_with_minted
I wonder why nobody mentioned the Minted package. It has far better syntax highlighting than the LaTeX listing package. It uses Pygments.
Example in LaTeX:
Which results in:
You need to use the flag
-shell-escape
with the pdflatex command.For more information: https://www.sharelatex.com/learn/Code_Highlighting_with_minted
尝试一下
listings
包。 下面是我不久前使用的一个彩色 Java 列表的示例:您可能想要自定义它。 列表包有多个参考。 只需谷歌搜索即可。
Have a try on the
listings
package. Here is an example of what I used some time ago to have a coloured Java listing:You may want to customize that. There are several references of the listings package. Just google them.
看看
算法
< /a> 包,特别是算法
环境。Take a look at
algorithms
package, especially thealgorithm
environment.您还可以执行其他几项操作,例如选择新字体:
There are several other things you can do, such as selecting new fonts:
对于我使用的 R 代码
,它看起来完全像这样
For R code I use
And it looks exactly like this