我想在.Rnw
文件中用希伯来语书写,并将其与 RStudio 一起使用。
经过一番搜索,我找到了一个在 LaTeX 中使用希伯来语的例子: RTL 中的数字、标点和括号反转...但是当我尝试在 RStudio 会话中运行上面的例子时,出现了一堆错误。例如:
Sweave('aaa2.Rnw') Writing to file aaa2.tex
Processing code chunks with options ...
You can now run (pdf)latex on 'aaa2.tex'
Warning messages:
1: 'aaa2.Rnw' has unknown encoding: assuming Latin-1
2: invalid char string in output conversion
Running texi2dvi...
Error: running 'texi2dvi' on 'aaa2.tex' failed
LaTeX errors:
! ! The fontspec package requires either XeTeX or LuaTeX to function. ! The fontspec package requires either XeTeX or LuaTeX to function. ! ! ! You must change your typesetting engine to, e.g., "xelatex" or "lualatex" ! You must change your typesetting engine to, e.g., "xelatex" or "lualatex" ! instead of plain "latex" or "pdflatex". ! instead of plain "latex" or "pdflatex". ! ! ! See the fontspec documentation for further information. ! See the fontspec documentation for further information. ! ! ! For immediate help type H ! For immediate help type H |''''''''''''''''''''''''''''''''''''''''''''''' | This is a fatal error: LaTeX will abort |...............................................
In addition: Warning message:
running command '"C:\PROGRA~2\MIKTEX~1.9\miktex\bin\texi2dvi.exe" --quiet --pdf "aaa2.tex" -I "d:/R/R-214~1.0/share/texmf/tex/latex" -I "d:/R/R-214~1.0/share/texmf/bibtex/bst"' had status 1
有什么建议么?
答案1
在 RStudio 中没有完全简单的方法可以做到这一点。原因是compiledPdf
RStudio 提供的命令用于texi2dvi
编译由 生成的 LaTeX 文件Sweave
,而texi2dvi
对 一无所知xelatex
,而 正是您应该用于希伯来语文档的命令。因此,解决方案是Sweave
从 RStudio 中手动运行,然后xelatex
从控制台运行。为了帮助您入门,这里有一个测试文档,是我为网站上的一个单独问题准备的,我已将其改编为希伯来语使用。
更新RStudio 的开发版本(版本 > 0.96.48)现在支持 XeLaTeX。
Rnw 文件(假设名字是sweave-test.Rnw
)
% This document must be compiled with Sweave and xelatex (not pdflatex)
\documentclass{article}
\usepackage{booktabs}
\usepackage{caption}
\usepackage[noae]{Sweave} % you must load Sweave with the `noae` option
% load polyglossia late in the package load order, since the bidi package (which is
% loaded when an RTL language is set) redefines lots of package code.
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\setotherlanguage{english}
\setmainfont{David CLM}
% for R work with Hebrew, it's important to have a mono font that supports
% the Hebrew script. Miriam Mono is one that I know of
\setmonofont[Script=Hebrew]{Miriam Mono CLM}
\title{\textenglish{Side-by-side xtables}}
\author{}
\date{}
\begin{document}
\maketitle
ראשית קצת קוד R כדי ליצור כמה נתונים.
<<>>=
myData <- matrix(c(19,89,23,23,74,44,16,39,67),ncol=3,byrow=TRUE)
colnames(myData) <- c("A","B","C")
rownames(myData) <- c("1","2","3")
myData2 <- myData * 2
@
כעת אנו שמים את הנתונים בשני צדדי על ידי צד טבלאות:
\begin{table}[htb]
\begin{minipage}{.45\textwidth}
\centering
\captionof{table}{\textenglish{First Table}}
<<echo=FALSE,results=tex>>=
library("xtable")
print(xtable(myData),
floating=FALSE,
hline.after=NULL,
add.to.row=list(pos=list(-1,0, nrow(myData)),
command=c('\\toprule\n','\\midrule\n','\\bottomrule\n')))
@
\end{minipage}
\begin{minipage}{.45\textwidth}
\centering
\captionof{table}{\textenglish{Second Table}}
<<echo=FALSE,results=tex>>=
print(xtable(myData2),
floating=FALSE,
hline.after=NULL,
add.to.row=list(pos=list(-1,0, nrow(myData2)),
command=c('\\toprule\n','\\midrule\n','\\bottomrule\n')))
@
\end{minipage}
\end{table}
\end{document}
在 RStudio 中打开此文档,然后在其上运行 Sweave:
Sweave("sweave-test.Rnw")
然后程序将退出并显示以下消息:
Writing to file sweave-test.tex
Processing code chunks with options ...
1 : echo term verbatim
2 : term tex
3 : term tex
You can now run (pdf)latex on 'sweave-test.tex'
现在您需要在结果文件上运行xelatex
(不是) 。假设您的系统已设置为从命令行正确运行,最简单的方法可能是从 RStudio 中打开 Shell 窗口,然后从那里运行命令。pdflatex
.tex
xelatex sweave-test.tex
然后,您需要使用.pdf
您最喜欢的查看器打开生成的文件。由于 RStudio 的最新稳定版本不太可定制,我认为没有简单的方法可以解决这个问题。不过,我自己不使用 RStudio;在 Mac 上,我可以直接从我的 LaTeX IDE(TeXShop)中运行 Sweave 文件。
将 XeLaTeX 与更高版本的 RStudio 结合使用
目前,RStudio 0.96.48 版本已提供使用 XeLaTeX 进行 Sweave 编译的首选项。在首选项中,选择 XeLaTeX 进行编译,并确保“使用 texi2dvi 解析交叉引用”已选中未选中。这是偏好设置面板的图片。
输出
这是输出。由于我不懂希伯来语,所以我只使用谷歌翻译来翻译文档中的一小段文字。我想这很有趣。