RStudio(0.99) + *.Rnw-File과 knitr + XeLaTex(Miktex를 통해)로 생성된 최종 PDF에서 일부 외국 문자를 인쇄하고 싶습니다.
XeLaTex 및 폴리글로시아를 사용하는 동안 *.Rnw-파일의 Tex 환경에 직접 전달하면 모든 외국 문자가 PDF에서 올바르게 인쇄되도록 관리할 수 있습니다.
Cat("...") 기능을 사용하여 R-청크 내 PDF의 텍스트를 인쇄하면 일부 문자("1.")에서는 실패하고 다른 문자에서는 실패합니다("2...."). .
나는 Tex 환경 내에서 분명히 잘 작동하는 RStudio 설정에서 utf8 enconding을 사용합니다. 그런데 R-chunk 내부의 고양이 표현은 왜 같은 문자를 좋아하지 않습니까?
자주 사용하는 cat("...") 표현식을 외국 문자에도 사용하려면 어떻게 해야 하나요?
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}
PDF 결과:
RSTudio(utf8 지원이 포함된 Notepad++ 사용)에서 생성된 tex 파일을 확인하면 R 청크 내부 줄은 다음과 같습니다.
OS: Win7/64Bit, RStudio 0.99, R 3.2.5, MikTex 2.9.5900
답변1
시스템에서 코드를 출력하는 데 사용하는 글꼴과 관련이 있을 수 있으며 일반적으로 일반 텍스트용 글꼴과 다른 글꼴입니다. 또한 시스템에 따라 다르므로 다음을 따라야 할 수도 있습니다.둘단계
뒤에 라텍스 프리앰블에 이 줄을 추가하면 어떻게 되나요 \usepackage{fontspec}
?
\usepackage{libertine}
그리고 당신은 사용해야 할 수도 있습니다특수 이스케이프 유니코드 문자R 코드에서는 더 강력합니다. 예를 들어 ß입니다.
cat("\u00DF")
# ß
가장 쉬운 방법은 다음을 사용하는 것입니다.stringi::stri_escape_unicode()
stringi::stri_escape_unicode("ČĈĐĎŸ")
# \u010c\u0108\u0110\u010e\u0178
보다https://stackoverflow.com/questions/29265172/print-unicode-character-string-in-r