如何添加边框

如何添加边框

鉴于此,我该如何添加边框?

\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。您可以选择其他值:leftlinetoplinebottomlinelinesshadowbox。此外,您无需将列表放入其中,\begin{ttfamily}...\end{ttfamily}因为这可以通过选项 进行设置。字体样式可以通过、、、、等basicstyle选项实现。您可以设置这些以及更多。basicstylekeywordstylenumberstyleidentifierstylecommentstyle

listings点击此处查阅手册(特别是第 4.6 节和 4.11 节)关联或者在终端中输入texdoc listings。有关完整的框架选项,请参阅第 4.11 节。

答案2

listings选项frame可能是构建代码的最简单方法,但也有其他软件包可以提供更灵活、更复杂的环境。tcolorbox就是其中之一。它包含一个用于处理代码清单的特定listingsminted

以下代码显示了默认结果和一些自定义结果。

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

对于不同的边框类型,请查看文档

相关内容