2010-07-30 28 views
8

Tôi đang cố gắng tạo môi trường đúng nguyên văn với nền màu và có thể trải rộng trên các trang (do đó sử dụng hộp màu không phải là tùy chọn). Dường như gói danh sách là một cách hay đối với nó, nhưng nền được vẽ một dòng tại một thời điểm, như vậy, khi tôi xem tệp PDF, tôi thấy các sọc "trắng" gây phiền nhiễu giữa các dòng cũng như vị trí vô hình (0pt) quy tắc khung không được rút ra:Sọc màu nền được vẽ theo danh sách gói

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

Dưới đây là các mã nhỏ tôi đã sử dụng để tạo ra sản lượng hiện trong hình ảnh:

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

có workaround chống lại những ' sọc '?

+0

Tắt chủ đề. Thuộc về tex.SE –

Trả lời

2

Cách giải quyết đơn giản là không chỉ định màu cho danh sách, thay vào đó hãy sử dụng \colorbox, nhưng để làm việc, bạn cần sử dụng \lstinputlisting hoặc lưu trữ kết quả trong hộp bằng cách sử dụng ví dụ: 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}} 

UPDATE: Tuy nhiên, một giải pháp đẹp hơn là sử dụng Donald Arseneau's framed.sty, mà còn cho phép các mã nguồn để span nhiều trang.

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

Vấn đề là, bằng cách gói nó vào trong một \ colorbox, môi trường lstlisting mất khả năng mở rộng trên các trang. –

+2

Xin chào grddev. Tôi thích giải pháp của bạn bằng cách sử dụng gói 'framed'. Một vấn đề là các số dòng và chú thích lstlistings được occluded, toàn bộ hoặc một phần, bởi hộp bóng mờ. Bạn có biết một công việc xung quanh? Cảm ơn. – user001

Các vấn đề liên quan