Quero imprimir alguns caracteres estrangeiros no meu PDF final produzido com RStudio (0.99) + *.Rnw-File com knitr + XeLaTex (via Miktex).
Ao usar XeLaTex e poliglossia posso fazer com que todos os caracteres estrangeiros sejam impressos corretamente no PDF, se eu passar diretamente para o ambiente Tex do arquivo *.Rnw.
Se eu usar a função Cat("...") para imprimir texto no PDF dentro de um pedaço R, ela falhará em alguns caracteres ("1."), em outros não ("2....") .
Eu uso a codificação utf8 nas configurações do RStudio, que obviamente funciona bem no ambiente Tex. Mas por que a expressão de gato dentro do pedaço R não gosta dos mesmos caracteres?
O que posso fazer para usar a expressão cat("...") (que uso com frequência) também para caracteres estrangeiros?
MWE:
\documentclass[utf8, a4paper]{article} % with/without [utf8] does not change anything
% !Rnw weave = knitr
% !TeX program = XeLaTeX
\usepackage{polyglossia}
\setmainlanguage[]{english}
\usepackage{fontspec}
\begin{document}
Directly passed in tex environment:
1. äöüßĐØ
2. ČĈĐĎŸ
<<echo=FALSE, results = 'asis'>>=
cat("Within a R-Knitr-Junk: \\newline")
cat("1. äöüßĐØ ~")
cat("2. ČĈĐĎŸ")
@
\end{document}
Resultado em PDF:
Verificando o arquivo tex produzido pelo RSTudio (usando o Notepad++ com suporte utf8), a linha dentro do bloco R se parece com:
SO: Win7/64 bits, RStudio 0.99, R 3.2.5, MikTex 2.9.5900
Responder1
Pode estar relacionado com a fonte que o sistema está usando para gerar o código; geralmente é outra fonte que não a do texto normal. Também depende do seu sistema, então você pode ter que seguir estesdoispassos
O que acontecerá se você adicionar esta linha ao seu preâmbulo de látex depois de \usepackage{fontspec}
?
\usepackage{libertine}
E você pode ter que usarcaractere unicode de escape especialno seu código R, é mais robusto. Isso é, por exemplo, ß
cat("\u00DF")
# ß
e a maneira mais fácil de fazer isso é usarstringi::stri_escape_unicode()
stringi::stri_escape_unicode("ČĈĐĎŸ")
# \u010c\u0108\u0110\u010e\u0178
Verhttps://stackoverflow.com/questions/29265172/print-unicode-character-string-in-r