2016-07-26 11 views
1

私はLinux Libertineフォントで表示されるテキストをRにマップしています。パッケージextrafontがロードされ、フォントがロードされ、ゴーストスクリプトへのパスが正しく設定されています。R:epsにlibertineフォントを使用する - エラーメッセージ

次のコマンドを使用すると、Rは出力を保存し、すべて正常に動作します。私が代わりにfamily='Linux Libertine'を使用する場合

ggsave(file = foo.eps, plot = map, width = 15, height = 10, units = "cm", family='Linux Libertine Display') 

は、しかし、私は次のエラーメッセージが表示されます。

Error in grDevices::postscript(..., onefile = FALSE, horizontal = FALSE, : 
    unknown family 'Linux Libertine' 

をそれはの復帰にリストされているような奇妙なフォントを、見つけることができないようですfonttable()。どのように私はフォントを使用するRを作ることができる任意のアイデア?

+1

私はパッケージからフォントをロードしようとしていますが、この問題を解決するGitHubのパッケージ問題が見つかりました。(https://github.com/wch/extrafont/issues/26)最後のコメントを参照してください。 – TomNash

答えて

2

実際の問題と解決策を説明しないユーザーTomNashによって提供さlink

問題で一部のフォントは(これはLinuxのリバティーを含みます)の異なるフォントフェース名(Linuxではリバティー太字、Linuxのリバティー斜体を持っていること、など)がすべて同じ家族名(Linux Libertine)を共有しています。 extrafontパッケージでは、ファミリ名のみを表示するため(この例ではLinux Libertine Displayが動作しますが、これは一意のファミリ名であるため)、これらのフォントを区別することはできません。フォントファミリ細胞へsystem.file("fontmap", "fonttable.csv", package="extrafontdb")、その後fonttable.csvを開き、すべてのLinuxリバティーフォント(または任意のフォントこの懸念)のためにコピーするフォント名:

この問題を解決する最も簡単な方法は、フォントテーブルのディレクトリを検索することです。その後、Rに戻り、loadfonts()を再度実行して、Rがフォントテーブルを再構築することを確認します。

+1

そしてLinux Libertineは正しいですが、ファミリ名のポイントはフォントファミリ全体で同じです。古いフォントや、従来のソフトウェアを回避するために設計されたフォントを除いて、別のファミリ名は見つかりません。 – nim

関連する問題