先程、以前に作成したファイルを何の気なしにコンパイルし直したら、以前はまったく問題なかったものが
! Incompatible direction list can't be unboxed.
\@begindvi ->\unvbox \@begindvibox
\global \let \@begindvi \@empty
l.5 \end{document}
というエラーに遭遇しました。
問題が再現する最小限のファイルは以下です。なお、utarticle(uplatex)でも同様です。
\documentclass[a4j]{tarticle}
\usepackage[dvipdfmx]{graphicx}
\begin{document}
テスト
\end{document}
どうやら、最近のある時期のgraphixパッケージの変更で、こうなってしまったようですが、原因の特定には至っておりません。
当方の環境はOS X 10.11.6/UpTeX.appは内部のBasic TeXを最新の状態に保っています。
コミュニティ版 pLaTeX 2016/07/01 以降では、当該のバグを修正していますので、
tlmgr 更新すればエラーは出なくなるはずです。
参考:forum:1967 これの \AtBeginDocument{\AtBeginDvi{}} 云々の話です。
ちなみに現在の pLaTeX の最新版は、forum:2015 でご案内した 2016/09/03 版です。
日本の TeX Live のミラーにも既に到達しているはずです。
tlmgr 更新すればエラーは出なくなるはずです。
参考:forum:1967 これの \AtBeginDocument{\AtBeginDvi{}} 云々の話です。
ちなみに現在の pLaTeX の最新版は、forum:2015 でご案内した 2016/09/03 版です。
日本の TeX Live のミラーにも既に到達しているはずです。
TeX Live 標準(MacTeX や BasicTeX も含む)では、tlmgr によって latex や platex や uplatex などの
フォーマット作成を必要とするファイルが更新されると、自動的に fmtutil-sys が走るようになって
います。そのとき、通常なら TEXMFSYSVAR に fmt ファイルが生成するはずです。
(したがって、一般ユーザが自分で fmt を作成する必要がある状況はほとんど生じません。)
たとえば UNIX なら TEXMFSYSVAR は
/usr/local/texlive/2016/texmf-var
になっていると思います。したがって、これは sudo が必要で
sudo fmtutil-sys --byfmt platex
とするとこの場所に platex.fmt ができます。
一方、fmtutil のほうは TEXMFVAR に書き出しますが、これは
/Users/ユーザ名/Library/texlive/2016/texmf-var
だったり
/Users/ユーザ名/.texlive2016/texmf-var
だったりしますが、いずれにせよ sudo 権限が不要です。
TEXMFSYSVAR と TEXMFVAR の両方に platex.fmt が存在する場合、TEXMFVAR にあるものが優先され
ます。したがって、普段は fmtutil ではなく fmtutil-sys を走らせるよう心がければ、TEXMFVAR に platex.fmt
が存在する状況は起きないと思いますので、フォーマットを更新し忘れる可能性が低くなると思います
(自動更新に任せてしまいます)。updmap と updmap-sys の違いも同様です。
フォーマット作成を必要とするファイルが更新されると、自動的に fmtutil-sys が走るようになって
います。そのとき、通常なら TEXMFSYSVAR に fmt ファイルが生成するはずです。
(したがって、一般ユーザが自分で fmt を作成する必要がある状況はほとんど生じません。)
たとえば UNIX なら TEXMFSYSVAR は
/usr/local/texlive/2016/texmf-var
になっていると思います。したがって、これは sudo が必要で
sudo fmtutil-sys --byfmt platex
とするとこの場所に platex.fmt ができます。
一方、fmtutil のほうは TEXMFVAR に書き出しますが、これは
/Users/ユーザ名/Library/texlive/2016/texmf-var
だったり
/Users/ユーザ名/.texlive2016/texmf-var
だったりしますが、いずれにせよ sudo 権限が不要です。
TEXMFSYSVAR と TEXMFVAR の両方に platex.fmt が存在する場合、TEXMFVAR にあるものが優先され
ます。したがって、普段は fmtutil ではなく fmtutil-sys を走らせるよう心がければ、TEXMFVAR に platex.fmt
が存在する状況は起きないと思いますので、フォーマットを更新し忘れる可能性が低くなると思います
(自動更新に任せてしまいます)。updmap と updmap-sys の違いも同様です。
連投すいません。
BasicTeXを素でインストールして、sudo tlmgr update --self --allしてみたのですが、以下のログのようにfmtutil-sysまで走らせてはいないようです。何かオプションが必要なのでしょうか。それとも、fmtutil-sysを走らせるのはtlmgrではなくて、別のプロセスなのでしょうか?
tlmgr: package log updated: /usr/local/texlive/2016basic/texmf-var/web2c/tlmgr.log
running mktexlsr ...
done running mktexlsr.
running updmap-sys ...
done running updmap-sys.
regenerating fmtutil.cnf in /usr/local/texlive/2016basic/texmf-dist
BasicTeXを素でインストールして、sudo tlmgr update --self --allしてみたのですが、以下のログのようにfmtutil-sysまで走らせてはいないようです。何かオプションが必要なのでしょうか。それとも、fmtutil-sysを走らせるのはtlmgrではなくて、別のプロセスなのでしょうか?
tlmgr: package log updated: /usr/local/texlive/2016basic/texmf-var/web2c/tlmgr.log
running mktexlsr ...
done running mktexlsr.
running updmap-sys ...
done running updmap-sys.
regenerating fmtutil.cnf in /usr/local/texlive/2016basic/texmf-dist
あれ、しかし確かに BasicTeX.pkg をインストールしてみると、
fmtutil-sys は自動で走りませんね。
つまり、最初から platex.fmt は存在しなくて、初回に platex コマンドを実行した時に
慌てて mktexfmt を実行することで、platex.fmt を生成する、という挙動になっていました。
私が pLaTeX の開発に活用しようかと検討中の仮想環境に BasicTeX.pkg をインストールして
platex などを走らせた時のログも、そのようになっています。
https://travis-ci.org/aminophen/platex/builds/157582078
fmtutil-sys は自動で走りませんね。
つまり、最初から platex.fmt は存在しなくて、初回に platex コマンドを実行した時に
慌てて mktexfmt を実行することで、platex.fmt を生成する、という挙動になっていました。
私が pLaTeX の開発に活用しようかと検討中の仮想環境に BasicTeX.pkg をインストールして
platex などを走らせた時のログも、そのようになっています。
https://travis-ci.org/aminophen/platex/builds/157582078
結論から申し上げますと、
MacTeX-2016 distro の BasicTeX.pkg を標準的にインストールした前提条件において、
/usr/local/texlive/2016basic/tlpkg/texlive.tlpdb 内の
depend opt_create_formats:0
となっている行を
depend opt_create_formats:1
に書き換えれば、tlmgr 時に必要に応じて各fmtが生成されます。
これで、本件の問題が解決します。
詳細は、BasicTeX.pkg を展開していただいて、
Payloadおよびpostscriptなどの各種スクリプトをご覧くださいませ。
> これ、少なくともUpTeX.appに限らないBasicTeXの
> (もしかしたらTeXLiveないしMacTeX全般の)問題ですから、
> そちら側で対応していただくのが望ましいと思います。
これは BasicTeX の作り方から、それが問題であると言えないようにも見えます。
個人的には、(BasicTeX.pkgも含む)MacTeXは、
MacTeXディレクトリ構造と挙動を完全に理解しないかぎり、
MacTeXを使わない方がよいと思います。
それは、通常のTeX Liveと異なる動作がMacTeXの挙動にしばしば紛れているからです。
もし .app 内に完全自己完結な BasicTeX +日本語相当の TeX Live distro を構成なさるのであれば、
通常の install-tl により BasicTeX + collection-langjapanese + α程度の
TeX Live 環境を構築するほうが賢明だと思います。
MacTeX-2016 distro の BasicTeX.pkg を標準的にインストールした前提条件において、
/usr/local/texlive/2016basic/tlpkg/texlive.tlpdb 内の
depend opt_create_formats:0
となっている行を
depend opt_create_formats:1
に書き換えれば、tlmgr 時に必要に応じて各fmtが生成されます。
これで、本件の問題が解決します。
詳細は、BasicTeX.pkg を展開していただいて、
Payloadおよびpostscriptなどの各種スクリプトをご覧くださいませ。
> これ、少なくともUpTeX.appに限らないBasicTeXの
> (もしかしたらTeXLiveないしMacTeX全般の)問題ですから、
> そちら側で対応していただくのが望ましいと思います。
これは BasicTeX の作り方から、それが問題であると言えないようにも見えます。
個人的には、(BasicTeX.pkgも含む)MacTeXは、
MacTeXディレクトリ構造と挙動を完全に理解しないかぎり、
MacTeXを使わない方がよいと思います。
それは、通常のTeX Liveと異なる動作がMacTeXの挙動にしばしば紛れているからです。
もし .app 内に完全自己完結な BasicTeX +日本語相当の TeX Live distro を構成なさるのであれば、
通常の install-tl により BasicTeX + collection-langjapanese + α程度の
TeX Live 環境を構築するほうが賢明だと思います。
fmtutil-sys の件は了解しました。対応可能ならばよろしくお願いします。
(私のの手元は El Capitan でも Yosemite でもないので動かせないのですが…)
補足として、UpTeX.app に添付されている bounddvi.sty とは、新仕様の graphicx が
共存するかどうか若干不安です。(二重にページサイズ指定が起きる。)
https://okumuralab.org/tex/mod/forum/discuss.php?d=1956
https://okumuralab.org/tex/mod/forum/discuss.php?d=1971
万が一食い違う場合は、graphicx パッケージや color パッケージに
nosetpagesize オプションをつけてください。
(私のの手元は El Capitan でも Yosemite でもないので動かせないのですが…)
補足として、UpTeX.app に添付されている bounddvi.sty とは、新仕様の graphicx が
共存するかどうか若干不安です。(二重にページサイズ指定が起きる。)
https://okumuralab.org/tex/mod/forum/discuss.php?d=1956
https://okumuralab.org/tex/mod/forum/discuss.php?d=1971
万が一食い違う場合は、graphicx パッケージや color パッケージに
nosetpagesize オプションをつけてください。
> bounddvi.sty とは、新仕様の graphicx が
> 共存するかどうか若干不安です。
この件ですが、bounddvi パッケージを「pLaTeX のトンボ」
が使われていても graphicx 併用で問題が起きないように
拡張したうえで TeX Live にインストールしました。
(改変再配布にあたり井上氏の許可をいただきました)
collection-langjapanese の platex-tools バンドルを明日以降
更新すると、中にドキュメントと一緒に bounddvi.sty v7.1 が
見つかると思います。こちらをお使いくだだい。
> 共存するかどうか若干不安です。
この件ですが、bounddvi パッケージを「pLaTeX のトンボ」
が使われていても graphicx 併用で問題が起きないように
拡張したうえで TeX Live にインストールしました。
(改変再配布にあたり井上氏の許可をいただきました)
collection-langjapanese の platex-tools バンドルを明日以降
更新すると、中にドキュメントと一緒に bounddvi.sty v7.1 が
見つかると思います。こちらをお使いくだだい。