2016-08-29 33 views
3

いくつかのコースノートをPDFとしてまとめようとしており、特定のUnicode文字を正しく表示することができない。一部のUnicode文字がRMarkdownに表示されないPDF出力

デフォルトのエンジンで認識されない文字が原因でエラーが発生するため、文書をレンダリングするにはxelatexラテックスエンジンを使用する必要がありますが、最初のUnicode文字(大文字のデルタ)のみが正しく表示されます。

以下.Rmdファイルをレンダリングするrmarkdown render()機能を使用する場合、例えば:

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

- works - Δ 
- doesn't work - ⌘ 

を得PDFのみ最初のUnicode文字(大文字デルタ)、および遅くとも1(コマンド記号を示します)。

enter image description here

私はそれはおそらく唯一のより基本的なサブセットがサポートされているように思えるので、完全なUTF-8文字エンコーディングを構成するdifferent character subsetsがあることを知っています。

確かに、iconv -f UTF-8 your_file -o /dev/null [1]を使用してファイルのエンコードをチェックしましたが、実際には有効なUTF-8ドキュメントと思われます。

最後に、ドキュメントはデフォルトオプションを使用してHTMLとして適切に表示されるため、PDF出力に固有の問題です。

2番目の文字をPDFにレンダリングする方法はありますか?

システム情報

  • Linuxの64ビット
  • R 3.3.1
  • 1.0 rmarkdown pandoc 1.17.2
  • XeTeX 3.14159265-2.6-0.99996
  • ロケール:en_US.UTF-8
+1

PDFビューアでは作成できない文字ではないと確信していますか? – drhagen

+0

@drhagen良い提案。私はいくつかの異なるPDFビューアでこれをテストしましたが、どれもそのキャラクターをレンダリングしませんでした。何か他のことが起きているようだ。 –

答えて

5

問題は、デフォルトのフォントにその文字が含まれていないことが原因です。あなたはそれを持っているフォントを見つける必要があります。 Linuxでは、fc-listには、ご使用のコンピューターで使用可能なフォントがリストされています。 1を選んで、あなたのYAMLフロント事項に追加します。

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

- works - Δ 
- doesn't work - ⌘ 

をここで、私はそれが⌘文字を持って最初に見つかったものですFreeMonoを、使用していますが、おそらくより良いものがあります。

+1

それはそれをしました!私はまだ素晴らしいフォントを見つけるためにフォントを探していますが、これまでのところ、 "DejaVu Sans"は 'mainfont'として使用されています。ソリューションをありがとう! –

関連する問題