我在使用knitr生成PDF报告时,无法正确地打印特殊字符(ščž)。
\documentclass[a4paper, 12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[slovene]{babel}
\begin{document}
<<>>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@
\end{document}
我在使用knitr生成PDF报告时,无法正确地打印特殊字符(ščž)。
\documentclass[a4paper, 12pt, oneside]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[slovene]{babel}
\begin{document}
<<>>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@
\end{document}
根据Yihui的评论(请参阅下面的评论),这是对我有效的解决方案。 我正在使用UTF-8编码的.Rnw
文档。
关键是要指定编码给knit
。
请注意,我们仍然缺少“č”(对于非母语人士,您可以将此字符读作“ch”)。
问题可以通过指定不同的打印设备来解决。 考虑在您的代码块选项中指定dev = "CairoPDF"
(需要额外的CairoPDF
软件包)或dev = "cairo_pdf"
(不需要其他软件包)。
<<dev = "CairoPDF">>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@
或者
<<dev = "cairo_pdf">>=
plot(runif(100), main = "ŠČĆŽ ščćž")
@
如果您正在使用Eclipse + StatET编织报告,您可以设置这些选项来自动化工作流程。
knit(..., encoding='UTF-8')
。这比options(encoding = 'UTF-8')
更安全。对于图形设备,您也可以尝试使用cairo_pdf
,它是基于R的基础包中自带的,即无需额外的附加包。 - Yihui Xie