r - 在 knitr R-figure 片段中获取 Unicode 字符

标签 r unicode character-encoding plot knitr

目前我正在使用“无原则”(机会主义)的方式制作我的无花果来正确获取 Unicode 字符。例如:

<<ClassFig>>=
pdf('figs/figA.pdf', h=6, w=6, encoding='CP1250')
plot(x, y, xlab='rečenica')
dev.off()
@

现在,我想知道如何正确指定片段(或全局设置,如 opts_chunk$set())以查看我需要的 Uncode 字符。例如:
<<ParadigmFig, fig.height=7, fig.width=15, out.width='1\\textwidth'>>=
plot(x, y, xlab='rečenica')
@

目前,如果我使用第二个正确的变体,我会得到点而不是规范。特点。

最佳答案

尝试使用 cairo_pdf() 生成此图.

cairo_pdf('test.pdf', family="Helvetica")
plot(1:10, (1:10)^2, xlab=enc2utf8("ąśćźół"))
dev.off()

更改字体可能很重要 family其中一个知道区域字符(我在上面使用波兰字母)。对于 OS X,this list可能会给您有关字体系列选择的提示。

现在让我们设置knitr使用这些设置。在文档开头创建一个未缓存的代码块,并调用:
library("knitr")
library("tikzDevice")
opts_chunk$set(
   dev='cairo_pdf',
   dev.args=list(family='DejaVu Sans')
   #out.width='5in', 
   #fig.width=5,
   #fig.height=5/sqrt(2),
   #fig.path='figures-knitr/',
   #fig.align='center',
)

(我已经注释掉了这里没有意义的选项,但有一天你可能也会感兴趣)。您可以找到有关 block 选项的更多详细信息 here .

这是一个示例 .Rnw (至少在我的 Linux 上)产生正确结果的文件:
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[T1,plmath]{polski}
\usepackage[polish]{babel}

\begin{document}

<<cache=FALSE,echo=FALSE,message=FALSE>>=
options(Encoding="UTF-8")
library("knitr")
library("tikzDevice")
opts_chunk$set(
   dev='cairo_pdf',
   dev.args=list(family='Helvetica')
   #out.width='5in', 
   #fig.width=5,
   #fig.height=5/sqrt(2),
   #fig.path='figures-knitr/',
   #fig.align='center',
)
@

<<>>=
plot(1:10, (1:10)^2, xlab="ąśćźół")
@

\end{document}

关于r - 在 knitr R-figure 片段中获取 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23314034/

相关文章:

r - 如何包含 nmath.h?

r - 在 Shiny 的 mainPanel 和 sideerbarPanel 之间添加空间

r - 与 dplyr 等长的组

javascript - 如何防止 Unicode 字符从 JavaScript 呈现为 HTML 中的表情符号?

mysql - 数据库、表和列的不同字符集和排序规则会导致性能问题吗?

r - 防止隐藏一组点后调整 R `plotly` 绘图轴的大小

python - Python 2.7 中的 UnicodeDecodeError

ios - 如何用上标呈现注册商标

ruby - 文件开头的奇怪字符

c - GLib 将 GString 从 UTF-8 转换为 UTF-16/32 可能吗?