gpt4 book ai didi

r-markdown - 如何强制 RMarkdown 文档中的 Tikz 显示西里尔文字?

转载 作者:行者123 更新时间:2023-12-02 00:05:00 28 4
gpt4 key购买 nike

下面是我的实验性 RMarkdown 文档(名为 tikz-cyrillic.Rmd):

---
title: "TikZ cyrillic test"
output:
pdf_document:
keep_tex: yes
latex_engine: xelatex
dev: tikz
html_document: default
word_document: default
---

```{r,engine='tikz', fig.ext = if (knitr:::is_latex_output()) 'pdf' else 'svg'}
\begin{tikzpicture}
\path (0,0) node
(x) {Hello World!}
(3,1) node[circle,draw](y) {$\int_1^2 x \mathrm d x$};
\draw[->,blue]
(x) -- (y);
\draw[->,red]
(x) -| node[near start,below] {мир!} (y);
\draw[->,orange] (x) .. controls +(up:1cm) and +(left:1cm) .. node[above,sloped] {Привет} (y);
\end{tikzpicture}
```

它基于示例 from 17.11 of pgfmanual.pdf

Gummi 使用 TeXLive 和 XeTeX 以及简单的前言

\usepackage[main=russian,english]{babel}
\usepackage{fontspec}
\setmainfont[Ligatures={TeX,Historic}]{Times New Roman}

给我以下输出:

Gummi output

您可以测试一下 in OverLeaf

但是在 RStudio 中我无法理解应该在哪里输入 TikZ 设备的前导码,所以我有错误的输出(以 HTML 为例):

RStudio HTML-output

我应该在 RMarkdown 文档中更改哪些内容才能在 TikZ 图中获得正确的输出?

我需要 HTML、PDF 和 Word 文档 (docx) 具有相同的图像外观。

注意:如果重要的话,我在 Ubuntu 16.04 LTS 上使用 Gummi 和 RStudio 1.1.456 以及 TeXLive 2015。

最佳答案

可以配置knitr引擎,参见例如https://stackoverflow.com/a/51143900/8416610供引用。您的情况有所不同,因为您需要 PDF 和 SVG 输出。由于 SVG 输出使用 DVI,因此我们无法使用 xelatex 来处理 tikz 图形。相反,我们必须设置标准 latex 来输出西里尔字母:

---
title: "TikZ cyrillic test"
output:
pdf_document:
keep_tex: yes
latex_engine: xelatex
html_document: default
mainfont: Liberation Serif
monofont: Liberation Mono
---

```{r,engine='tikz', fig.ext = if (knitr:::is_latex_output()) 'pdf' else 'svg', engine.opts = list(template = "tikz2pdf-cyr.tex")}
\begin{tikzpicture}
\path (0,0) node
(x) {Hello World!}
(3,1) node[circle,draw](y) {$\int_1^2 x \mathrm d x$};
\draw[->,blue]
(x) -- (y);
\draw[->,red]
(x) -| node[near start,below] {мир!} (y);
\draw[->,orange] (x) .. controls +(up:1cm) and +(left:1cm) .. node[above,sloped] {Привет} (y);
\end{tikzpicture}
```

使用tikz2pdf-cyr.tex:

\documentclass{article}
\usepackage{libertine}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[active,tightpage]{preview}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{preview}
%% TIKZ_CODE %%
\end{preview}
\end{document}

请注意,此处图像和主要文本使用了不同的字体。目前我无法上传任何屏幕截图......

关于r-markdown - 如何强制 RMarkdown 文档中的 Tikz 显示西里尔文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51689570/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com