How can I write special characters in RMarkdown la

2020-02-06 07:55发布

I am trying ot write a paper in RMarkdown pdf. But I dont know how to use special characters like "İ, ı, ğ, ü, ö". Those characters are present in Turkish. I can easily use them in Latex using e.g. \u{g} – ğ, \c{c} – ç, \”{u} – ü, {\i} – ı, etc.

Could you please tell how can I do the same in RMarkdown?

And where can I find some Rmarkdown paper or book templates?

4条回答
▲ chillily
2楼-- · 2020-02-06 08:32

If you need special characters for other languages in addition to Turkish, looks like you can type in the code listed at this webpage:

http://www.starr.net/is/type/htmlcodes.html

Be sure to include the ;

查看更多
来,给爷笑一个
3楼-- · 2020-02-06 08:34

rmarkdown uses LaTeX to create the PDF, so you should be able to just use LaTeX markup. As an example:

---
title: "Test"
output: pdf_document
---

This is a special character: \u{g}.

Also, depending on the particular characters, you may be able to just type them in as-is (see, for example, here).

查看更多
不美不萌又怎样
4楼-- · 2020-02-06 08:35

HTML codes for Turkish characters will work (example from wikipedia):

---
title: "My doc"
output: pdf_document
---

HTML      char  detail                            anglicized
-------   --    ------------------------------    ---
Ğ   Ğ       Uppercase "G" with breve accent   gh1
İ     İ     Uppercase dotted "I"²               i (as in "tree")
Ş     Ş     Uppercase "S" with cedilla          sh
ğ     ğ     Lowercase "g" with breve accent   gh1
ı     ı     Lowercase dotless "i"³              ou (as in "in")
ş     ş     Lowercase "s" with cedilla          sh
-------   --    -------------------------------   --

Which renders the PDF like this:

enter image description here

For article templates, see the rticles package, or make your own

For book templates, have a look at pandoc ebook, gitbook and bookdown


This xelatex option I initially suggested will not work for Turkish characters:

The xelatex engine is recommended for this kind of thing. Then you can access your system fonts with the mainfont argument:

---
title: "My doc"
output:
  pdf_document:
    latex_engine: xelatex
mainfont: "name of your system font that has all those characters"
---

PDF output will be in the font you specify. 

Just type as normal with no special codes.
查看更多
戒情不戒烟
5楼-- · 2020-02-06 08:43

I guess this question per se is obsolete. As of now (rmarkdown V1.4 / knitr V1.15.1), knitr automatically follows the advice of this question and includes

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

in the preamble to LaTeX output (caveat: of course this means that your document editor will have to be using UTF-8, but e.g., RStudio does that by default).

Then this works as expected:

---
title: "Test"
output: pdf_document
---

Here are some special characters: İ ı Ş Ğ ş ğ ö ü

This is not a panacea, as many scripts still require more tinkering (I tried Korean, Chinese, and Japanese). See here for where to start on bolstering the preamble in case you need more multifarious fonts.

查看更多
登录 后发表回答