newtx が読み込めない

newtx が読み込めない

- 白石 裕輝 の投稿
返信数: 14

Homebrew Cask で basictex をインストールして,次のように環境を整えました.

http://qiita.com/sira/items/d7f5c411ccb0f90c43d8

そして,newtx を導入するために次のパッケージをインストールしました.

$ sudo tlmgr install newtx fontaxes boondox txfonts helvetic

newtxtext を使った次のファイルを ptex2pdf -l で処理すると,

\documentclass[a4paper]{jsarticle}
\usepackage{amsmath}
\usepackage{newtxtext}
\begin{document}
    Hello, \LaTeX!
    \[ \int dx = x + C. \]
\end{document}

dvipdfmx の実行中に次のようなエラーになります.

[1
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 qtmr.pfb
mktexpk: don't know how to create bitmap font for qtmr.pfb.
mktexpk: perhaps qtmr.pfb is missing from the map file.
kpathsea: Appending font creation commands to missfont.log.

dvipdfmx:warning: Could not locate a virtual/physical font for TFM "ntx-Regular-tlf-t1".
dvipdfmx:warning: >> This font is mapped to a physical font "qtmr.pfb".
dvipdfmx:warning: >> Please check if kpathsea library can find this font: qtmr.pfb
dvipdfmx:fatal: Cannot proceed without .vf or "physical" font for PDF output...

newtxmath を使った場合,

\documentclass[a4paper]{jsarticle}
\usepackage{amsmath}
\usepackage{newtxmath}
\begin{document}
    Hello, \LaTeX!
    \[ \int dx = x + C. \]
\end{document}

ptex2pdf -l で処理すると platex の実行中に,

`newtxmath' v1.51, 2016/10/15 Math macros based on txfonts (msharpe)
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/oberdiek/ifluatex.sty)
(/usr/local/texlive/2016basic/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/xkeyval/xkvutils.tex
(/usr/local/texlive/2016basic/texmf-dist/tex/generic/xkeyval/keyval.tex))))

! LaTeX Error: File `binhex.tex' not found.

というエラーになります.

何かパッケージが足りていないのでしょうか?
ご存知の方がいましたら,お教えください.

白石 裕輝 への返信

Re: newtx が読み込めない

- 奥村 晴彦 の投稿
フルTeX Live 2016の環境では

$ kpsewhich binhex.tex
/usr/local/texlive/2016/texmf-dist/tex/generic/kastrup/binhex.tex
$ kpsewhich qtmr.pfb
/usr/local/texlive/2016/texmf-dist/fonts/type1/public/tex-gyre/qtmr.pfb

いろいろ足りなさそうですね。
奥村 晴彦 への返信

Re: newtx が読み込めない

- aminophen の投稿
BasicTeX (= TeX Live scheme-small) ユーザではないので間違っているかもしれませんが
scheme-small には newtx そのものは入っていますが、kastrup と tex-gyre が入っていないようです。
tlmgr でさらに kastrup と tex-gyre を追加して、まだエラーが出るようならさらに必要そうな
パッケージを追加していくしかないと思います。

TeX Live の膨大なパッケージに対して、tlmgr が依存関係を考慮するのは原理的に不可能
ですから、こういうことが起きるのは仕方がないでしょう。
aminophen への返信

Re: newtx が読み込めない

- 白石 裕輝 の投稿

ありがとうございます.おっしゃるとおり,

$ sudo tlmgr install kastrup tex-gyre

で無事コンパイルできるようになりましたが,

LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <5.5> not available
(Font)              size <5> substituted on input line 7.

 :

LaTeX Font Warning: Size substitutions with differences
(Font)              up to 0.5pt have occurred.

 )

このような warning が出るようになりました.
これについてはわかりますでしょうか?

aminophen への返信

Re: newtx が読み込めない

- KUROKI Yusuke の投稿
texlive.tlpdb に書けばよいと思うので,上流に報告したらよいと思うのですが,お願いできますか?
KUROKI Yusuke への返信

Re: newtx が読み込めない

- aminophen の投稿
> texlive.tlpdb に書けばよいと思うので

はその通りだと思いますが

> 上流に報告したらよいと思うのですが,お願いできますか?

はあまりその通りだと思いません。

仮に今回の件を解消しようとすると、具体的には二通り考えられますが、どちらがよいでしょう?

[1] package newtx に
depend kastrup
depend tex-gyre
を追加する

[2] scheme-small に
depend kastrup
depend tex-gyre
を追加する

私が誤解していなければ、現在の tlpdb には [2] の事例のほうが、[1] の事例(すなわち
ある package に対して depend <package> としてある例)より多いように見えます。

いずれにせよ、scheme-small によりインストールされる容量が大きくなるわけ
ですから、どこまで許容するかという点を考えると私は消極的です。

----

たとえば luatexja は collection-langjapanese に入っていますが、
filehook などのパッケージを必要としていて
「scheme-small + collection-langjapanese」だけでは ltjs クラスを使った文書を
全くコンパイルできません。こういうのをレポートし始めるとキリがないと思っています。

最近も dependency に関する話はいろいろありますが
http://tug.org/mailman/htdig/tex-live/2016-October/039372.html
http://tug.org/mailman/htdig/tex-live/2016-April/038070.html
現在の人手では tlmgr が完全に依存関係を解決してくれるものにはできないと思います。
目先のことだけ考えて今回の newtx だけ上流に報告するのはあまり気が進みません。
aminophen への返信

Re: newtx が読み込めない

- KUROKI Yusuke の投稿
原理的には,[1] で書いておいて,scheme-* など別から depend されれば,depend リストをたどってもらうべきでしょう.私なら [1] で報告します.

場当たり的だというのはその通りですが,それは,統一的に解決しようという機運が出てきたら一気に解決するので(みんな賢い),いやというほど報告を上げるのが近道だ,と私は思っています.
KUROKI Yusuke への返信

Re: newtx が読み込めない

- aminophen の投稿
depend がどういう場合に使われているかというのも前に検討したことがあり

newtxtext に限ると、kastrup に depend しているわけではない
ので(白石さんが既に書いていらっしゃる通り、dvipdfmx するときに
初めて失敗する)、depend ではないと思います。
そして、dvipdfmx するときに失敗するというのは、単に map がたまたま
tex-gyre になっているから(PostScript 標準の Times に割り当てれば
失敗しない)と思われるので、これも depend ではないと思います。
少なくとも scheme-small に tex-gyre がくっ付いてくるのは私はあまり嬉しく
ないので、[1] にせよ [2] にせよ私は気が進みませんでした。
どなたか必要な方に報告していただければと思います。

# こうしたパッケージ依存性のテストも既にトピックになっているので、
# いい案がないかと暇な時に考えているのですが、
# 多忙のため pLaTeX 周辺以外にコミットできずにいます。
http://tug.org/pipermail/tex-live/2016-June/038864.html
白石 裕輝 への返信

Re: newtx が読み込めない

- 奥村 晴彦 の投稿
まったく関係ありませんが,ご紹介の記事,brewは一般ユーザで実行して,tlmgrはsudo付けているのはどういう意味があるんでしょう?
奥村 晴彦 への返信

Re: newtx が読み込めない

- ワトソン の投稿
私は Linuxbrew について一切の知見を持ち合わせていないので,以下は
すべて標準的な設定の macOS での話です.

brew は sudo 付きで実行すると「サンドボックスが機能せず非常に危険」
との主旨のメッセージを吐いてエラーになるはずです.一方,tlmgr は sudo
付きでないと「権限がない」などと言われ update 等の操作は実行できないと
思います.そのため,私の知る限り世にあるほとんどの記事で brew は
sudo なし,tlmgr は sudo 付きでコマンド例が書かれているように思います.
ワトソン への返信

Re: newtx が読み込めない

- 奥村 晴彦 の投稿
brewはもちろん一般ユーザ権限で動かすでしょうからsudoは付けないのですが,そうするとbrewでインストールされたものもrootではなくユーザの持ち物になるんですよね(brewにまさかsuid roogが付いていないでしょうから)。そうするとtlmgrにはsudoがいらないのではないか,という単純なツッコミでしたが,この件にはまったく関係ないので,忘れてください。
奥村 晴彦 への返信

Re: newtx が読み込めない

- H.Ogawa の投稿
homebrewは、直接の関係ファイルは/usr/local以下に、ユーザーの所有権でインストールされますが、BasicTeXがどうだったかはわかりません(homebrewのサーバーで管理されているパッケージではなく、MacTeXのBasicTeX.pkgを落としてきて、それをインストールさせる仕組みなので。)。もしかしたらシステム所有権でインストールされてしまうのかもしれませんが、だとしても、TeXLiveのディレクトリの所有権をユーザーにしてしまえば、sudoは要らないし、それで問題は起きないと思います。実際、私が配付しているUpTeXパッケージでは、任意の場所にインストールできるように所有権もtmlgrの実行権限もユーザーにしてますが、それで不都合は発生してません。
奥村 晴彦 への返信

Re: newtx が読み込めない

- Yamamoto Munehiro "munepi" の投稿
Homebrew Cask は,外部ソフトウェアを brew の仕組みでインストールできるようにしているだけです。この tlmgr はbrewからみると外部ですから,通常の sudo tlmgr として実行すればよいです。実際に,brew cask を実行する際に適時 sudo 権限を求められます。

ちなみに,sudo を使わずに tlmgr を実行できるような TeX Live 環境も作成できます。たとえば,特定の用途に特化したTeX Live環境をコンテナ化する場合など。
Yamamoto Munehiro "munepi" への返信

Re: newtx が読み込めない

- 奥村 晴彦 の投稿
なるほど,sudo tlmgr したら次回の brew のときに困らないかと思っていましたが,sudo を求められるのですね。

私のMacは /usr/local 以下をすべて自分の持ち物にしていますので tlmgr に sudo は付けない方式になります。というか実は自分も sudoer に入れていません。