フォントの埋め込みに失敗し、PDFを生成できず困っています。
環境は、Ubuntu、TeX Live 2016 です。
\documentclass{jsarticle}
\usepackage{otf}
\begin{document}
テスト。
\end{document}
という内容のsample.texをdviファイルに変換したのち、
dvipdfmx -f otf-yu.map sample
とすると、次のようなエラーが出てPDFを作成できません。
[1
dvipdfmx:warning: Could not locate a virtual/physical font for TFM "hminr-h".
dvipdfmx:warning: >> This font is mapped to a physical font "JJSYuMinchoPr6N-R.OTF".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: JJSYuMinchoPr6N-R.OTF
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
Output file removed.
自分なりに解決策を探しましたが、うまくゆきませんでした。
$ kpsewhich -progname=dvipdfmx -format=.otf JJSYuMinchoPr6N-R.OTF
を実行しても空行しか表示されないので、適切な場所にotfファイルが置かれていないのだろうと考え、
$ kpsewhich -progname=dvipdfmx -show-path=.otf
を実行し、ここで表示されたディレクトリのうちの一つである /usr/local/texlive/texmf-local/fonts/opentype 以下にフォントファイルのシンボリックリンクを貼りましたが、全く解決になりませんでした。
どうすればうまくフォントを埋め込んでPDFを生成できるでしょうか?
よろしくお願いします。
mktexlsrしていないだけってことはないですよね?
ないと思います。mktexlsrについてあんまりよくわかっていないのですが、とりあえず今回のエラーの解決になりそうな操作をしたあとは随時
$ sudo mktexlsr
を実行するようにしていました。
シンボリックリンクを張った後に
kpsewhich -progname=dvipdfmx -format=.otf JJSYuMinchoPr6N-R.OTF
を再度実行した結果はどうなるでしょうか?
はる前と全く同じで、何も表示されません。
JJSYuMinchoPr6N-R.OTF のファイル名を JJSYuMinchoPr6N-R.otf に変更するとどうでしょうか.
手元で touch で空ファイルを作って試してみただけですが,拡張子が大文字だと kpsewhich でひっかからないような気がします.
.TTF は OK なのに .OTF はだめみたいなのは気のせい?
手元で touch で空ファイルを作って試してみただけですが,拡張子が大文字だと kpsewhich でひっかからないような気がします.
.TTF は OK なのに .OTF はだめみたいなのは気のせい?
うまくいきました!
シンボリックリンクの拡張子を.otfと小文字にし、それに合わせてmapファイル内に記されたフォント名も小文字にしたら、無事、フォントが埋め込まれたPDFが生成されました。
本当に助かりました。ありがとうございます。
うまくいったようでよかったです.
自己レスですが,
> .TTF は OK なのに .OTF はだめみたいなのは気のせい?
気のせいではなくて,そう設定されているようです.
$ kpsewhich -help-formats
kpathsea version 6.2.2
Recognized Kpathsea format names and their (abbreviations) and suffixes:
...
truetype fonts: .ttf .ttc .TTF .TTC .dfont [variables: TTFONTS TEXFONTS]
...
opentype fonts: .otf [variables: OPENTYPEFONTS TEXFONTS]
...
基本的に拡張子は小文字じゃないといけないけれど,.TTF と .TTC は
例外ということでしょうか.ちなみに,これらは tex-file.c に
直書きされていて,設定ファイル等では変更できないように見えます.
自己レスですが,
> .TTF は OK なのに .OTF はだめみたいなのは気のせい?
気のせいではなくて,そう設定されているようです.
$ kpsewhich -help-formats
kpathsea version 6.2.2
Recognized Kpathsea format names and their (abbreviations) and suffixes:
...
truetype fonts: .ttf .ttc .TTF .TTC .dfont [variables: TTFONTS TEXFONTS]
...
opentype fonts: .otf [variables: OPENTYPEFONTS TEXFONTS]
...
基本的に拡張子は小文字じゃないといけないけれど,.TTF と .TTC は
例外ということでしょうか.ちなみに,これらは tex-file.c に
直書きされていて,設定ファイル等では変更できないように見えます.
Windows を無視してよければ小文字だけでもいいのかもしれないけど
C:/Windows/fonts の中に山ほど .TTF やら .TTC がいたりするので
例外にしないとマズいのかもしれません。
windows での kpathsea(TeX のファイルサーチシステム)は
大文字と小文字を区別しないので、どちらで検索かけても
ヒットします。むしろ Unix 系で大文字と小文字が区別される
からこそ、例外扱いが必要なのだと思います。
Unix 系で .otf と .OTF の両方を検索できるように、2017 以降の
kpathsea を仕様変更するという可能性はあるのでしょうか?
大文字と小文字を区別しないので、どちらで検索かけても
ヒットします。むしろ Unix 系で大文字と小文字が区別される
からこそ、例外扱いが必要なのだと思います。
Unix 系で .otf と .OTF の両方を検索できるように、2017 以降の
kpathsea を仕様変更するという可能性はあるのでしょうか?
> Unix 系で .otf と .OTF の両方を検索できるように
foo.OTF というファイルが Unix system にどの
くらいあるのか知りませんが,追加して困ること
は無いと思いますので,追加しておきました。
foo.OTF というファイルが Unix system にどの
くらいあるのか知りませんが,追加して困ること
は無いと思いますので,追加しておきました。
> 環境は、Ubuntu、TeX Live 2016 です。
(snip)
> [1
> dvipdfmx:warning: Could not locate a virtual/physical font > for TFM "hminr-h".
> dvipdfmx:warning: >> This font is mapped to a physical > font "JJSYuMinchoPr6N-R.OTF".
> dvipdfmx:warning: >> Please check if kpathsea library can find this font: JJSYuMinchoPr6N-R.OTF
> dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
お手元の Linux distro である Ubuntu において、該当の游明朝!?OpenTypeフォントの実体とライセンスをお持ちでしょうか?
(snip)
> [1
> dvipdfmx:warning: Could not locate a virtual/physical font > for TFM "hminr-h".
> dvipdfmx:warning: >> This font is mapped to a physical > font "JJSYuMinchoPr6N-R.OTF".
> dvipdfmx:warning: >> Please check if kpathsea library can find this font: JJSYuMinchoPr6N-R.OTF
> dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...
お手元の Linux distro である Ubuntu において、該当の游明朝!?OpenTypeフォントの実体とライセンスをお持ちでしょうか?
実体もライセンスも、恐らく問題ないはずです。LibreOfficeではちゃんとフォントを使用することができています。