![如何让 lstlisting 看起来和算法环境一模一样?](https://linux22.com/image/255756/%E5%A6%82%E4%BD%95%E8%AE%A9%20lstlisting%20%E7%9C%8B%E8%B5%B7%E6%9D%A5%E5%92%8C%E7%AE%97%E6%B3%95%E7%8E%AF%E5%A2%83%E4%B8%80%E6%A8%A1%E4%B8%80%E6%A0%B7%EF%BC%9F.png)
我正在使用algorithm
和排版伪代码algorithmicx
以获得如下结果(取自包文档):
现在我想用这个listings
包打印真正的 C++ 代码。有没有办法让它看起来lstlisting
一模一样(显示类似清单 1代替算法 1, 当然)?
答案1
该caption
包可用于更改标题格式:以粗体字体排版标签,当居中标题适合一行时停用居中标题,隐藏默认标签分隔符并将其替换为空格,并在标题前添加规则。可以使用选项添加标题后的规则和标题末尾的规则;还可以使用该包frame=
提供\lstset
的功能控制编号和一些缩进listings
:
\documentclass{article}
\usepackage{listings}
\usepackage{caption}
\lstset{
language=C++,
basicstyle=\small\ttfamily,
numbers=left,
numbersep=5pt,
xleftmargin=20pt,
frame=tb,
framexleftmargin=20pt
}
\renewcommand*\thelstnumber{\arabic{lstnumber}:}
\DeclareCaptionFormat{mylst}{\hrule#1#2#3}
\captionsetup[lstlisting]{format=mylst,labelfont=bf,singlelinecheck=off,labelsep=space}
\begin{document}
\begin{lstlisting}[caption={test algorithm}]
#include <iostream>
using namespace std;
int main()
{
cout << "Welcome to the wonderful world of C++!!!\n";
return 0;
}
\end{lstlisting}
\end{document}