如何在RMarkdown latex文档中写入特殊字符?

disho6za  于 2022-12-20  发布在  其他
关注(0)|答案(5)|浏览(184)

我试着用RMarkdown pdf格式写一篇论文。但是我不知道如何使用特殊字符,比如“,ı,,ü,ö"。这些字符在土耳其语中是存在的。我可以很容易地在Latex中使用它们,例如\u{g} -,\c{c} - Ç,"{u} - ü,{\i} - ı,等等。
你能告诉我如何在RMarkdown中做同样的事情吗?
我在哪里可以找到一些Rmarkdown纸或书的模板?

qyyhg6bp

qyyhg6bp1#

土耳其语字符的HTML代码也可以使用(例如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
-------   --    -------------------------------   --

它将PDF呈现为:

有关文章模板,请参见rticles包或make your own
有关书籍模板,请查看pandoc ebookgitbookbookdown
我最初建议的这个xelatex选项 * 不 * 适用于土耳其语字符:
xelatex enginerecommended,然后你可以用mainfont参数访问你的系统字体:

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

n6lpvg4x2#

我猜这个问题 * 本身 * 已经过时了,从现在起(rmarkdown V1.4 /knitr V1.15.1),knitr会自动遵循this问题的建议,包括

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

在LaTeX输出的前同步码中(注意:当然,这意味着您的文档编辑器必须使用UTF-8,但是RStudio默认使用UTF-8。
然后,这将按预期工作:

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

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

这不是万能的,因为许多脚本仍然需要更多的修补(我尝试了韩语、中文和日语)。如果您需要更多的字体,请参阅here以了解从哪里开始支持序言。

lyr7nygr

lyr7nygr3#

rmarkdown使用LaTeX来创建PDF,所以你应该可以只使用LaTeX标记。

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

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

此外,根据特定字符的不同,您可以直接输入它们(例如,请参见here)。

wlp8pajw

wlp8pajw4#

如果您需要土耳其语以外的其他语言的特殊字符,您可以键入此网页上列出的代码:
http://www.starr.net/is/type/htmlcodes.html
确保包括;

3htmauhk

3htmauhk5#

现在说这个可能有点晚了,但是我想在目前已经给出的答案之外再补充一点,这个答案不仅适用于pdf_documents,也适用于html_word_documents

**解决方案:**使用

1.以R为底的函数capture.output()cat()
1.统一码表示法

**示例:**考虑编写ñ。快速浏览一下https://www.compart.com/en/unicode/U+00F1,我们可以得到ñU+00F1代码。在R中,这是\u00f1。MWE如下所示。

---
title: "Minimum Working Example"
author: "Mr. John Ate`r capture.output(cat('\u00f1'))`o"
output:
  pdf_document: default
  word_document: default
  html_document: default
---

## Some Example of Printing `r capture.output(cat('\u00f1'))`

This is an inline output of `r capture.output(cat('\u00f1'))`.

**简化:**一直使用capture.output(cat())是相当麻烦的,因此我们可以定义一个自定义函数,例如

diac <- function(x) {
  capture.output(cat(x))
}

并按如下方式内联使用它:x1米10英寸1x.

相关问题