使用列表在 LaTeX 中编写 R 代码

使用列表在 LaTeX 中编写 R 代码

我使用该包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....在这里我们看到没有悬挂缩进,但只使用了对齐。

相关内容