How can I write special characters in RMarkdown latex documents?

人盡茶涼 提交于 2020-01-09 11:15:40

问题


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?


回答1:


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:

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.



回答2:


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).




回答3:


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.




回答4:


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 ;



来源:https://stackoverflow.com/questions/26821326/how-can-i-write-special-characters-in-rmarkdown-latex-documents

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!