How can I write special characters in RMarkdown latex documents?

前端 未结 4 1859
广开言路
广开言路 2020-12-10 18:17

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 us

相关标签:
4条回答
  • 2020-12-10 18:56

    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.
    
    0 讨论(0)
  • 2020-12-10 18:56

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

    0 讨论(0)
  • 2020-12-10 19:11

    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.

    0 讨论(0)
  • 2020-12-10 19:21

    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 ;

    0 讨论(0)
提交回复
热议问题