我在 Tex 文件中使用下面的编码,当我查看 DVI 输出时,列表的框架规则出现故障(请查看下面的屏幕截图)
有人可以帮我解决这个问题吗?
\documentclass{book}
\usepackage{color}
\usepackage{float}
\usepackage{listings}
\overfullrule=12pt
\definecolor{dkgreen}{cmyk}{0.81,0.48,0.95,0.59}%
\definecolor{gray}{cmyk}{0.69,0.63,0.62,0.59}%
\definecolor{mauve}{cmyk}{0.84,1,0.27,0.39}%
\makeatletter
\def\@viiihpt{8.5}
\newcommand\codesize{\@setfontsize\codesize\@viiihpt{10}}
\lstset{
basicstyle=\ttfamily\codesize,
backgroundcolor=\color{white},
showspaces=false,
showstringspaces=false,
frame=single,xleftmargin=3pt,xrightmargin=3pt,
rulecolor=\color{black},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve}
}
\makeatother
\begin{document}
\chapter{Book title}
\lstinputlisting[float=b,language=Python,
caption=Creating a Tk Root Widget (Python Coding),
label=P04-Tk.py] {P04-Tk.py}
\end{document}
以下是使用的编码P04-Tk.py
from tkinter import * # import Tkinter module
root = Tk() # create Tk root widget
root.mainloop() # enter Tkinter event loop
编辑:[芭芭拉·比顿]
当使用 pdflatex 处理文件时也会发生这种情况,并且仅当注释移动到新行时才会发生。以下是使用原始代码的结果,以及.py
修改文件以缩短行数以便所有行都保留在输出中的一行上的结果:
这是一个错误吗?或者除了避免(或打破)长线之外还有其他已知的解决方案吗?
答案1
使用选项breaklines
\lstinputlisting[float=b,language=Python,breaklines,
caption=Creating a Tk Root Widget (Python Coding),
label=P04-Tk.py] {P04-Tk.py}