web-dev-qa-db-ja.com

Evinceのフォントエラー

端末から pdfファイル をEvinceで開くと:

I/O Error: Cannot open '/usr/local/texlive/2014/texmf-dist/fonts/opentype/public/tex-gyre/texgyrecursor-regular.otf'
Syntax Error: failed to load truetype font<0a>
some font thing failed

PDFファイルに表示されていないプログラムコードがいくつかあります。エラーの意味と私にできることは何ですか?ありがとう。

3
Tim

この問題は、EvinceのAppArmorプロファイルが原因で、Evinceが利用できるファイルリソースが制限されています。

TexLiveフォントはシステムで利用できるようになっているため、特定の状況下ではEvinceによって選択される可能性があります(私のシステムでは、/ etc/fonts/conf.avail/30-metric-aliases.confに「 「Tex Gyre Heros」と「Helvetica」。Helveticaフォントがインストールされていないため、代わりにTex Gyre Herosがfontconfigによって選択されます。

エラーメッセージはやや誤解を招くかもしれませんが、カーネルログを見ると(コンソールでdmesgと入力するか、tail -f /var/log/syslog)、次のようなエラーメッセージが表示されます。

[345695.334701] type=1400 audit(1462672575.673:72990): apparmor="DENIED" operation="open" profile="/usr/bin/evince" name="/usr/local/texlive/2015/texmf-dist/fonts/opentype/public/tex-gyre/texgyreheros-regular.otf" pid=31050 comm="EvJobScheduler" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0

EvinceにTexLiveフォントへの読み取りアクセス許可を与えるには、ファイルに次のルールを追加します/etc/apparmor.d/local/usr.bin.evince

/usr/local/texlive/**/public/** r,

ファイルを保存し、次のコマンドを発行してルールをリロードします(ターミナルで):

Sudo service apparmor reload

evinceの開いているインスタンスをすべて終了します。次にEvinceでPDFファイルを開くと、PDFが正しく表示され、必要なフォントにアクセスできます。

4
Apteryx