在Rmarkdown中编写希腊文字

时间:2018-11-21 19:13:04

标签: r-markdown

您好,我正在努力使用Rmarkdown在希腊文中创建文档,因为我不想学习所有的Latex命令,并且使用Rmarkdown实际制作看起来像Latex文档的文档非常容易。真的,我唯一的问题是语言。我有很多错误,并且到目前为止,我已经设法解决了这些错误。贝娄我给你一个简单的例子,Rstudio的产品。问题是它不打印任何希腊字母,但没有发生错误。我真的不知道发生了什么。

---
title: "Title"
author: "Me"
fontsize: 12pt
header-includes:
   - \usepackage{fontspec}  
   - \usepackage[english,greek]{babel}
   - \newcommand{\en}{\selectlanguage{english}}
   - \newcommand{\gr}{\selectlanguage{greek}}

output:
   pdf_document:
      latex_engine: xelatex
---


{\gr{Αυτά είναι ελληνικά}}    

我正在Rstudio中使用tinytex和会话信息:

R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service 
Pack 1

Matrix products: default

locale:
[1] LC_COLLATE=Greek_Greece.1253  
LC_CTYPE=Greek_Greece.1253    
LC_MONETARY=Greek_Greece.1253
[4] LC_NUMERIC=C                  
LC_TIME=Greek_Greece.1253    

attached base packages:
[1] stats     graphics  grDevices utils     
datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.0  backports_1.1.2 magrittr_1.5    
rprojroot_1.3-2 htmltools_0.3.6
[6] tools_3.5.0     yaml_2.2.0      Rcpp_0.12.18    
stringi_1.2.4   rmarkdown_1.10 
[11] knitr_1.20      stringr_1.3.1   digest_0.6.15   
evaluate_0.11 

2 个答案:

答案 0 :(得分:1)

使用真正包含希腊字形的字体至关重要。 当输入文档保存在UTF-8中时,以下对我有用:

---
header-includes:
   - \usepackage[english,greek]{babel}
   - \newcommand{\en}[1]{{\selectlanguage{english}#1}}
   - \newcommand{\gr}[1]{{\selectlanguage{greek}#1}}
mainfont: GFS Didot
output:
   pdf_document:
      latex_engine: xelatex
---


\gr{Αυτά είναι ελληνικά}   \en{The gick brown fox jumps over the lazyy dog.}

我删除了\usepackage{fontspec},因为使用xelatex时该操作自动完成。由于pandoc不喜欢{\command text}样式,我还更新了您的语言切换命令以接受参数。

但是,将xelatexpolyglossia而不是babel结合起来会更常规。当您使用pandoc功能时,lang就是这样:

---
lang: el
mainfont: GFS Didot
output:
   pdf_document:
      latex_engine: xelatex
---


Αυτά είναι ελληνικά [the quick brown fox jumps over the lazy dog]{.class lang="en"}

Αυτά είναι ελληνικά

::::: {.class lang="en"}

Here is a paragraph.

And another.

:::::

Αυτά είναι ελληνικά

请注意,您可能必须更新fontspec / mathspec / polyglossia才能避免使用this problem

答案 1 :(得分:0)

首先,感谢您的及时答复,我们非常感谢您的建议。好吧,我尝试通过tlmgr_update()命令(来自tinytex软件包)更新您所说的软件包,我复制粘贴了您的最后一个代码,并产生以下错误:

processing file: untitled.Rmd
output file: untitled.knit.md

! Package fontspec Error: The font "GFS Didot" cannot be 
found.

Error: Failed to compile untitled.tex. See untitled.log for 
more info.
Execution halted

我什至没有做tlmgr_update(“ GFS”),因为我看到您使用的字体来自此软件包。