端末から 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ファイルに表示されていないプログラムコードがいくつかあります。エラーの意味と私にできることは何ですか?ありがとう。
この問題は、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が正しく表示され、必要なフォントにアクセスできます。