2016-08-29 4 views
3

Ich versuche, einige Kursnotizen als PDF zusammenzustellen, und habe Probleme, bestimmte Unicode-Zeichen korrekt anzuzeigen. Die Verwendung der xelatex Latex-Engine ist erforderlich, damit das Dokument überhaupt gerendert wird (die Verwendung der Standard-Engine führt aufgrund der nicht erkannten Zeichen zu einem Fehler), jedoch wird nur das erste Unicode-Zeichen (Großbuchstaben-Delta) richtig angezeigt.Einige Unicode-Zeichen werden in RMarkdown nicht angezeigt. PDF-Ausgabe

Wenn beispielsweise die rmarkdown render() Funktion unter Verwendung der folgenden .Rmd Datei zu machen:

--- 
output: 
    pdf_document: 
    latex_engine: xelatex 
--- 

- works - Δ 
- doesn't work - ⌘ 

Die resultierende PDF zeigt nur den ersten Einheitscodezeichen (Großbuchstaben delta), und nicht die spätere (geschleift square).

enter image description here

Ich weiß, dass es different character subsets ist, die die volle UTF-8-Zeichencodierung bilden, so scheint es, wie vielleicht nur mehr grundlegende Untergruppen unterstützt werden.

Nur um sicher zu sein, überprüfte ich die Codierung der Datei mit iconv -f UTF-8 your_file -o /dev/null [1], und es scheint tatsächlich ein gültiges UTF-8-Dokument zu sein.

Das Dokument wird schließlich mit den Standardoptionen als HTML gerendert, sodass das Problem spezifisch für die PDF-Ausgabe ist.

Haben Sie Ideen, wie Sie das zweite Zeichen in PDF rendern können?

System Information

  • Linux 64-Bit-
  • R 3.3.1
  • rmarkdown 1.0
  • pandoc 1.17.2
  • XeTeX 3.14159265-2.6-0.99996
  • Locale : en_US.UTF-8
+1

Sind Sie sicher, dass der Charakter nicht ins Dokument gelangt, statt dass Ihr PDF-Viewer es nicht zeichnen kann? – drhagen

+0

@drhagen Guter Vorschlag. Ich habe es gerade an einigen verschiedenen PDF-Viewern getestet, aber keiner von ihnen hat den Charakter wiedergegeben. Scheint etwas anderes zu sein. –

Antwort

5

Das Problem könnte sein, dass die Standardschriftart dieses Zeichen nicht hat. Sie müssen eine Schriftart finden, die es enthält. Unter Linux listet fc-list die auf Ihrem Computer verfügbaren Schriftarten auf. Wählen Sie ein und fügen Sie sie yaml Titelei:

--- 
output: 
    pdf_document: 
    latex_engine: xelatex 
mainfont: FreeMono 
--- 

- works - Δ 
- doesn't work - ⌘ 

Hier bin ich mit FreeMono, die die erste ist, fand ich, dass die ⌘ Charakter hat, aber es ist wahrscheinlich eine bessere.

+1

Das hat es geschafft! Ich schaue immer noch durch die Schriften, um eine nette Sans-Schriftart zu finden, mit der ich arbeiten kann, aber bis jetzt funktioniert "DejaVu Sans" bereits, wenn ich sie als "Mainfont" benutze. Danke für die Lösung! –

Verwandte Themen