用希伯来语制作 LaTeX 文档?(在 Sweave + RStudio 中)

用希伯来语制作 LaTeX 文档?(在 Sweave + RStudio 中)

我想在.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 中没有完全简单的方法可以做到这一点。原因是compiledPdfRStudio 提供的命令用于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 解析交叉引用”已选中未选中。这是偏好设置面板的图片。

偏好面板图像

输出

这是输出。由于我不懂希伯来语,所以我只使用谷歌翻译来翻译文档中的一小段文字。我想这很有趣。

代码输出

相关内容