在 LyX 中正确对齐 TeX 代码

在 LyX 中正确对齐 TeX 代码

我对使用 LyX 将我的 R 代码(使用模块)排版为 pdf 还不太熟悉Rnw(knitr)。在处理过程中,我遇到了一个问题。例如,我有一个表格形式的数据集,如下所示:

受伤 安全带_是 安全带_不
没有任何 12813 65963
最小 647 4000
次要的 359 2642
主要的 四十二 303

我编写了一个代码来R创建这样的数据框,如下所示:

CarInjury<-data.frame(injury=factor(c("none","minimal","minor","major")),seatbelt_yes=c(12813,647,359,42),seatbelt_no=c(65963,4000,2642,303))

这可以很好地完成创建表格的工作,甚至在我运行文件时正确返回输出,但是,代码只是忽略并运行到页面之外,部分位于 pdf 的右侧。像这样: 屏幕截图 1

在上图中,可以清楚地看到从上到下的部分seatbelt_no=c(65963,4000,2642,303))已经是'' 退出页面。

类似的例子:我使用了数据集空气质量绘制一些图表。我做了以下事情:

naairquality<-na.omit(airquality)
plot(naairquality[naairquality$Month==5,]$Day,naairquality[naairquality$Month==5,]$Solar.R,pch=16,col="Blue",xlim=c(1,31),ylim=c(0,400),xlab="Day",ylab=NA,main="Solar Radiation and Temperature vs. Days for May-Sep,1973")
par(new=T)
plot(naairquality[naairquality$Month==5,]$Day,naairquality[naairquality$Month==5,]$Temp,pch=18,col="Yellow",ylim=c(0,400),xaxt='n',yaxt='n',xlab=NA,ylab=NA,type='l',lwd=1.5)
par(new=T)
plot(naairquality[naairquality$Month==6,]$Day,naairquality[naairquality$Month==6,]$Solar.R,pch=16,col="dodgerBlue",xlim=c(1,31),ylim=c(0,400),xlab=NA,ylab=NA,xaxt='n',yaxt='n')
par(new=T)
plot(naairquality[naairquality$Month==6,]$Day,naairquality[naairquality$Month==6,]$Temp,pch=18,col="Orange",ylim=c(0,400),xaxt='n',yaxt='n',xlab=NA,ylab=NA,type='l',lwd=1.5)
par(new=T)
plot(naairquality[naairquality$Month==7,]$Day,naairquality[naairquality$Month==7,]$Solar.R,pch=16,col="deepskyBlue",xlim=c(1,31),ylim=c(0,400),xlab=NA,ylab=NA,xaxt='n',yaxt='n')
par(new=T)
plot(naairquality[naairquality$Month==7,]$Day,naairquality[naairquality$Month==7,]$Temp,pch=18,col="Gold",ylim=c(0,400),xaxt='n',yaxt='n',xlab=NA,ylab=NA,type='l',lwd=1.5)
par(new=T)
plot(naairquality[naairquality$Month==8,]$Day,naairquality[naairquality$Month==8,]$Solar.R,pch=16,col="Blue4",xlim=c(1,31),ylim=c(0,400),xlab=NA,ylab=NA,xaxt='n',yaxt='n')
par(new=T)
plot(naairquality[naairquality$Month==8,]$Day,naairquality[naairquality$Month==8,]$Temp,pch=18,col="Red",ylim=c(0,400),xaxt='n',yaxt='n',xlab=NA,ylab=NA,type='l',lwd=1.5)
par(new=T)
plot(naairquality[naairquality$Month==9,]$Day,naairquality[naairquality$Month==9,]$Solar.R,pch=16,col="seagreen",xlim=c(1,31),ylim=c(0,400),xlab=NA,ylab=NA,xaxt='n',yaxt='n')
par(new=T)
plot(naairquality[naairquality$Month==9,]$Day,naairquality[naairquality$Month==9,]$Temp,pch=18,col="Brown",ylim=c(0,400),xaxt='n',yaxt='n',xlab=NA,ylab=NA,type='l',lwd=1.5)
par(xpd=T)
legend("topright",c("May","Jun","Jul","Aug","Sep"),col=c("blue","dodgerblue","deepskyblue","blue4","seagreen"),pch=16,title="Solar Radiation",horiz=T,cex=0.65)
legend("topleft",c("May","Jun","Jul","Aug","Sep"),col=c("yellow","orange","gold","red","brown"),lty=1,title="Temperature",horiz=T,lwd=1.5,cex=0.65)

图表确实很好(正如我预期的那样): 屏幕截图 2

但代码并没有完全合身' 在页面中(再次'' 在右侧): 屏幕截图 3

截图-4

我想知道 LyX 中是否有一些调整/方法,如果代码的某些部分不适合页面宽度,它们会自动在代码中换行。类似这样(CarInjury 示例):

CarInjury<-data.frame(injury=factor(c("none","minimal","minor","major")),seatbelt_yes=c(12813,647,359,42),
seatbelt_no=c(65963,4000,2642,303))

笔记:我考虑过改变文档的内边框和外边框,但对于很长的代码行(如airquality绘图代码)来说,这是不可行的。我甚至将 TeX 代码插入框内的字体大小设置为small,但这也没有多大帮助。

笔记:这些代码是早已提交的作业的一部分(今年 4 月下旬)。这应该可以解释屏幕截图中问题的序列号。我希望学习 LyX 中的任何新调整(如果有的话)来解决我的这个问题,以便我可以更好地排版我未来的文档。

笔记:如果这篇文章的标题与内容有点不符,我深表歉意。但我真的想不出任何其他合适的标题来写这篇文章。

答案1

选项1:手动格式化代码。这可能是提高可读性的最佳选择:

CarInjury <- data.frame(
  injury=factor(c("none","minimal","minor","major")),
  seatbelt_yes=c(12813,647,359,42),
  seatbelt_no=c(65963,4000,2642,303))

输出将是相同的。

选项 2:将选项添加tidy=TRUE,tidy.opts=list(width.cutoff=60)到 R 块(“选项”框)。请注意,此选项将忽略您的手动格式(如果有)。

姆韦

mwe2

相关内容