gpt4 book ai didi

latex - 由列表包绘制的背景色条纹

转载 作者:行者123 更新时间:2023-12-01 19:34:22 25 4
gpt4 key购买 nike

我正在尝试创建一个具有彩色背景并且可以跨页面的逐字环境(因此不能选择使用颜色框)。似乎列表包是实现这一目标的好方法,但背景一次绘制一行,这样,当我查看 PDF 时,我会看到行之间以及行之间令人讨厌的白色“条纹”不绘制不可见(0pt)框架规则:

http://a.imageshack.us/img202/9928/lststrips.png

这是我用来创建图像中显示的输出的最少代码:

\documentclass{minimal}
\usepackage[pdftex]{xcolor}
\usepackage[a4paper,hmargin=6cm]{geometry}
\usepackage{listings}
\lstset{backgroundcolor=\color{gray},
frame=single, framerule=0pt, framesep=5pt}
\begin{document}

\begin{lstlisting}
if (a < b)
{
printf("A is smaller than B!\n");
}
a = b;
\end{lstlisting}

\end{document}

有没有针对这些“条纹”的解决方法?

最佳答案

一个简单的解决方法是不为列表本身指定颜色,而是使用 \colorbox,但要使其正常工作,您需要使用 \lstinputlisting 或使用例如将结果存储在框中lrbox

\newbox{\mybox}
\begin{lrbox}{\mybox}
\begin{minipage}{\linewidth}
\begin{lstlisting}
if (a < b)
{
printf("A is smaller than B!\n");
}
a = b;
\end{lstlisting}
\end{minipage}
\end{lrbox}
\colorbox{gray}{\usebox{\mybox}}

更新:但是,一个更漂亮的解决方案是使用 Donald Arseneau's framed.sty ,这还允许源代码跨越多个页面。

\documentclass{minimal}
\usepackage[pdftex]{xcolor}
\usepackage[a4paper,hmargin=6cm]{geometry}
\usepackage{listings}
\usepackage{framed}
\begin{document}

\definecolor{shadecolor}{named}{gray}
\begin{shaded}
\begin{lstlisting}
if (a < b)
{
printf("A is smaller than B!\n");
}
a = b;
\end{lstlisting}
\end{shaded}

\end{document}

关于latex - 由列表包绘制的背景色条纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com