使用knit2pdf将梵文(印地语)字符转换为pdf

时间:2019-04-20 02:40:02

标签: r latex knitr

我有一个R文件,需要在其中输入多行Devanagari(印地语)脚本,然后将其输出为pdf。我可以使用lualatex在tex中编译印地语脚本,但无法从R开始使用它。即使我可以在RStudio中键入印地语字符,当它打印.tex文档时,它也会返回unicode,而该unicode不会打印我需要的字符。

这是我在R中尝试过的事情:

  library(knitr)
  sink("testdevanagari.Rnw")
  cat(paste0("\\documentclass{article}  \n",
             "\\usepackage{fontspec}  \n",
             "\\setmainfont{Times New Roman  \n}",
             "\\newfontscript{Devanagari}{deva,dev2}  \n",
             "\\newfontface{\\hindi}[Script=Devanagari]{Lohit-Devanagari.ttf}  \n",
             "\\begin{document} \n"))
  cat(paste0("{\\hindi नमस्ते }"))
  cat("\\end{document}")
  sink()
  knit2pdf(input = "testdevanagari.Rnw", compiler = 'lualatex')

这是随后在.tex文档中进行编译的关键部分:

\begin{document} 
{\hindi <U+0928><U+092E><U+0938><U+094D><U+0924><U+0947> }\end{document} 

因此,编译后的pdf只会打印出乱码的unicode:

<U+0928><U+092E><U+0938><U+094D><U+0924><U+0947>

我需要pdf来打印单词:

नमस्ते 

请注意,我可以使用lualatex和以下代码从tex编辑器成功编译为pdf:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\newfontscript{Devanagari}{deva,dev2}
\newfontface{\hindi}[Script=Devanagari]{Lohit-Devanagari.ttf}

\begin{document}
{\hindi नमस्ते }
\end{document} 

我如何直接从knit2pdf将此词表达出来?

0 个答案:

没有答案