在knitr LaTeX报告中绘制特殊字符(斯洛文尼亚语)的问题

4

我在使用knitr生成PDF报告时,无法正确地打印特殊字符(ščž)。

\documentclass[a4paper, 12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[slovene]{babel}

\begin{document}

<<>>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@

\end{document}

enter image description here

1个回答

4

根据Yihui的评论(请参阅下面的评论),这是对我有效的解决方案。 我正在使用UTF-8编码的.Rnw文档。

关键是要指定编码给knit

enter image description here

请注意,我们仍然缺少“č”(对于非母语人士,您可以将此字符读作“ch”)。

问题可以通过指定不同的打印设备来解决。 考虑在您的代码块选项中指定dev = "CairoPDF"(需要额外的CairoPDF软件包)或dev = "cairo_pdf"(不需要其他软件包)。

<<dev = "CairoPDF">>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@

或者

<<dev = "cairo_pdf">>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@

输入图像描述

如果您正在使用Eclipse + StatET编织报告,您可以设置这些选项来自动化工作流程。

输入图像描述


1
抱歉,我之前提到的关于编码的评论已经不再适用了。现在,如果您知道文档是UTF-8编码的,应该使用knit(..., encoding='UTF-8')。这比options(encoding = 'UTF-8')更安全。对于图形设备,您也可以尝试使用cairo_pdf,它是基于R的基础包中自带的,即无需额外的附加包。 - Yihui Xie
1
@Yihui 好的,那就简单了。 :) 我会编辑我的答案以反映新发现的智慧。 - Roman Luštrik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接