![如何添加边框](https://linux22.com/image/260604/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E8%BE%B9%E6%A1%86.png)
鉴于此,我该如何添加边框?
\begin{ttfamily}
\begin{lstlisting}
g@g0001:~$ cd Desktop
g@g0001:~/Desktop$ cat script.sh
#!/bin/bash
echo $1 `date`
g@g0001:~/Desktop$ ./script.sh "hello"
hello Wed Dec 19 06:30:49 CET 2012
g@g0001:~/Desktop$ ./script.sh "`ls -la`"
total 244 drwxr-xr-x 2 g g 4096 2012-12-19 06:29
. drwxr-xr-x 34 g g 4096 2012-12-19 06:23
.. -rwxr-xr-x 1 g g 314 2012-11-24 12:06
25332.txt -rw------- 1 g g 1038 2008-01-15 18:59
Makefile -rw-r--r-- 1 g g 227981 2011-09-06 10:37
.pdf -rwxrwxrwx 1 g g 29 2012-12-18 18:16
script.sh Wed Dec 19 06:31:18 CET 2012
\end{ttfamily}
我试过了\fbox
但出现错误。
答案1
您是否正在尝试实现这样的目标?
% http://tex.stackexchange.com/questions/88564/how-can-i-add-borders
\documentclass[border=5,preview]{standalone}
\usepackage{listings}
\lstset{
basicstyle=\ttfamily,
frame=single
}
\begin{document}
\begin{lstlisting}
g@g0001:~$ cd Desktop
g@g0001:~/Desktop$ cat script.sh
#!/bin/bash
echo $1 `date`
g@g0001:~/Desktop$ ./script.sh "hello"
hello Wed Dec 19 06:30:49 CET 2012
g@g0001:~/Desktop$ ./script.sh "`ls -la`"
total 244 drwxr-xr-x 2 g g 4096 2012-12-19 06:29
. drwxr-xr-x 34 g g 4096 2012-12-19 06:23
.. -rwxr-xr-x 1 g g 314 2012-11-24 12:06
25332.txt -rw------- 1 g g 1038 2008-01-15 18:59
Makefile -rw-r--r-- 1 g g 227981 2011-09-06 10:37
.pdf -rwxrwxrwx 1 g g 29 2012-12-18 18:16
script.sh Wed Dec 19 06:31:18 CET 2012
\end{lstlisting}
\end{document}
此处,框架是通过frame
值为 的选项实现的single
。默认值为none
。您可以选择其他值:leftline
、topline
、bottomline
、lines
或shadowbox
。此外,您无需将列表放入其中,\begin{ttfamily}...\end{ttfamily}
因为这可以通过选项 进行设置。字体样式可以通过、、、、等basicstyle
选项实现。您可以设置这些以及更多。basicstyle
keywordstyle
numberstyle
identifierstyle
commentstyle
listings
点击此处查阅手册(特别是第 4.6 节和 4.11 节)关联或者在终端中输入texdoc listings
。有关完整的框架选项,请参阅第 4.11 节。
答案2
listings
选项frame
可能是构建代码的最简单方法,但也有其他软件包可以提供更灵活、更复杂的环境。tcolorbox
就是其中之一。它包含一个用于处理代码清单的特定listings
库minted
。
以下代码显示了默认结果和一些自定义结果。
\documentclass[multi=tcblisting, border=2mm]{standalone}
\usepackage[most]{tcolorbox}
%\usepackage{listings}
\lstset{
basicstyle=\ttfamily,
}
\begin{document}
\begin{tcblisting}{listing only}
g@g0001:~$ cd Desktop
g@g0001:~/Desktop$ cat script.sh
#!/bin/bash
echo $1 `date`
g@g0001:~/Desktop$ ./script.sh "hello"
hello Wed Dec 19 06:30:49 CET 2012
g@g0001:~/Desktop$ ./script.sh "`ls -la`"
total 244 drwxr-xr-x 2 g g 4096 2012-12-19 06:29
. drwxr-xr-x 34 g g 4096 2012-12-19 06:23
.. -rwxr-xr-x 1 g g 314 2012-11-24 12:06
25332.txt -rw------- 1 g g 1038 2008-01-15 18:59
Makefile -rw-r--r-- 1 g g 227981 2011-09-06 10:37
.pdf -rwxrwxrwx 1 g g 29 2012-12-18 18:16
script.sh Wed Dec 19 06:31:18 CET 2012
\end{tcblisting}
\begin{tcblisting}{listing only, title=Framed listing with title, colback=blue!20, colframe=blue!70!black, sharp corners}
g@g0001:~$ cd Desktop
g@g0001:~/Desktop$ cat script.sh
#!/bin/bash
echo $1 `date`
g@g0001:~/Desktop$ ./script.sh "hello"
hello Wed Dec 19 06:30:49 CET 2012
g@g0001:~/Desktop$ ./script.sh "`ls -la`"
total 244 drwxr-xr-x 2 g g 4096 2012-12-19 06:29
. drwxr-xr-x 34 g g 4096 2012-12-19 06:23
.. -rwxr-xr-x 1 g g 314 2012-11-24 12:06
25332.txt -rw------- 1 g g 1038 2008-01-15 18:59
Makefile -rw-r--r-- 1 g g 227981 2011-09-06 10:37
.pdf -rwxrwxrwx 1 g g 29 2012-12-18 18:16
script.sh Wed Dec 19 06:31:18 CET 2012
\end{tcblisting}
\end{document}
答案3
您可以为您的列表设置frame
:
\begin{lstlisting}[frame=single]
...
\end{lstlisting}
或者,如果您不想添加frame=single
到每个lstlisting
环境中,您可以定义并设置默认样式:
\lstdefinestyle{mystyle}{frame=single}
\lstset{style=mystyle}
对于不同的边框类型,请查看文档。