![使用列表在 LaTeX 中编写 R 代码](https://linux22.com/image/346497/%E4%BD%BF%E7%94%A8%E5%88%97%E8%A1%A8%E5%9C%A8%20LaTeX%20%E4%B8%AD%E7%BC%96%E5%86%99%20R%20%E4%BB%A3%E7%A0%81.png)
我使用该包listings
将 R 代码包含到我的项目中。
不幸的是,它会(有时,但并非总是)在 pdf 文档中产生悬挂缩进。
是否有可能消除这个悬挂缩进(我只希望在打印时进行对齐,另请参见代码下方更具体的例子)?
以下是使用该包摘录的我的 LaTeX 文件listing
:
\begin{lstlisting}[language=R]
#read.in is a function which reads in the picture
#as 620x872X3 matrix
#(#pixels in height x #pixels in width x #channels)
#RGB channels are used for reading in .png picture
read.in<-function(pic){
require("png")
datpng <-img <- readPNG(system.file("img", pic , package="png"))
dat<-apply(datpng, c(1,2), sum)
#define grid with 10 x 14 boxes on the picture,
#which used later in the algorithm
nrow<-10
ncol<-14
sizer<-dim(dat)[2]/nrow
sizec<-dim(dat)[1]/ncol
#arr is array containig precisely the boxes
#with handwritten numbers as subarrays a[,,k],
#k ranges from 1 to 10*14
#= number of boxes containing precisely one digits
arr<- array(0,c(sizec, sizer, nrow*ncol))
k<- 1
for (i in 1:ncol){
for (j in 1:nrow){
arr[,,k]<-dat[(i-1)*sizec+1:sizec,(j-1)*sizer + 1:sizer]
k<-k+1
}
}
#Reshape 167x165x140-array arr into the 27555x140-array arra,
#hence arra[,k] are exactly the data corresponding to one scanned digit,
#where k ranges from 1 to 140=#boxes.
arra<-arr
dim(arra)<-c(prod(dim(arr)[1:2]), dim(arr)[3])
arra<-t(arra)
#generate data frame for classification
classes<-c(rep(0:9, each=10),0:9, 0:9, 0:9, 0:9)
ar<-data.frame(nr=factor(c(classes)), arra)
return(ar)
}
\end{lstlisting}
我们看到,在以 开头的行#define grid...
和以 开头的下一行中#which...
有一个悬挂缩进,但我实际上希望它看起来像(在缩进的意义上)以 和 开头的行require("png")...
。datpng....
在这里我们看到没有悬挂缩进,但只使用了对齐。