在 R 中使用 texi2dvi 时避免将不间断空格字符打印为波浪号

在 R 中使用 texi2dvi 时避免将不间断空格字符打印为波浪号

我正在使用 R 中的 Sweave 工具链从 Sweave 文件生成 tex 文件,作为 R 包的一部分。我使用 R 命令:

    $(RSCRIPT) -e "tools::texi2dvi( 'file.tex', pdf = TRUE, clean = FALSE )" 

(我 Makefile 的一部分,位于 inst/doc 中)来生成 pdf。不间断空格字符 ~ 似乎在生成的 pdf 中显示为真正的波浪号。我该如何避免这种情况?(我在 .tex 文件上运行 pdflatex 似乎可以解决问题,但我认为这比使用 R 工具编译包更依赖于平台。(有关 R/Sweave makefile 的更多信息,请参阅这个问题

答案1

我遇到了同样的问题。现在在工作中,我有一台 Windows 机器,对 tools::texi2dvi 的调用似乎工作正常,生成的 pdf 中没有不可分割的空间。但是,在我家里的 Ubuntu 11.10 机器上,如果我通过 进行编译,我会看到 ~ 字符,就像您描述的那样tools::texi2dvi。我的解决方案是使用system来自 R 的调用来获取pdflatexLinux 上的 if 和tools::texi2dviWindows 上的 if。我将该函数作为 build.R 文件的一部分,用于我当天正在处理的任何项目。

compile <- function(){
  if (.Platform$OS != 'windows'){
    system("pdflatex ./tex/MAIN.tex")
  } else {
    tools::texi2dvi(file  = "./tex/MAIN.tex",
                    pdf   = TRUE,
                    clean = FALSE,
                    quiet = FALSE)
  }
}

compile()

相关内容