graphixパッケージが縦組で動かない。

graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
返信数: 16
先程、以前に作成したファイルを何の気なしにコンパイルし直したら、以前はまったく問題なかったものが

! 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を最新の状態に保っています。

H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- aminophen の投稿
コミュニティ版 pLaTeX 2016/07/01 以降では、当該のバグを修正していますので、
tlmgr 更新すればエラーは出なくなるはずです。

参考:forum:1967 これの \AtBeginDocument{\AtBeginDvi{}} 云々の話です。

ちなみに現在の pLaTeX の最新版は、forum:2015 でご案内した 2016/09/03 版です。
日本の TeX Live のミラーにも既に到達しているはずです。
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
ご教示ありがとうございました。
9/3版には更新されているのですが、やはりエラーが出たので、fmtファイルを削除・作り直したところ、エラーは解消しました。

今回の件に限らず、fmtファイルの再作成まで、なかなか気が回らないので、どこかでアナウンスがあった方がよいかもしれません。あるいは、platex/uplatexに変更があったときには、fmtが自動で更新されるような仕組みは用意できないですかね(それとも、すでにありますか?)。

H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- aminophen の投稿
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 の違いも同様です。
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
ありがとうございます。
UpTeX.appでは、texmf-varにplatex関係のfmtを作ってくれてないので、tlmgrのときに fmtutil-sys が動いてくれてないようです。UpTeX.appは任意の場所に置けるようにしてあるので、コマンドのパスを決め打ちできず、スクリプト中であれこれ細工をして、コマンドを見つけられるようにしているのですが、tlmgrの事後処理のところを見落としていたようです。時間があるときに見直して、可能なら直してみます。
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
連投すいません。

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
H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- aminophen の投稿
regenerating fmtutil.cnf 云々のあとに done なる行が表示されていない
のが不思議です。本来であれば、その後に fmtutil-sys が走るはずです。
texmf-dist/scripts/texlive/tlmgr.pl を読む限り、そこで呼ばれるように思います。
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- aminophen の投稿
あれ、しかし確かに BasicTeX.pkg をインストールしてみると、
fmtutil-sys は自動で走りませんね。

つまり、最初から platex.fmt は存在しなくて、初回に platex コマンドを実行した時に
慌てて mktexfmt を実行することで、platex.fmt を生成する、という挙動になっていました。

私が pLaTeX の開発に活用しようかと検討中の仮想環境に BasicTeX.pkg をインストールして
platex などを走らせた時のログも、そのようになっています。
https://travis-ci.org/aminophen/platex/builds/157582078
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
はい、まさにその挙動で、userのLibraryにplatex.fmt, uplatex.fmtができるようになってました。UpTeX.app側で問題を解消しようとすると、tlmgrに引き続いてfmtutil-sys --allを実行させるという対症療法しかないと思います。が、これだとtlmgrの度に大量のfmtが再作成されますから、ウザイことになりますね。

これ、少なくともUpTeX.appに限らないBasicTeXの(もしかしたらTeXLiveないしMacTeX全般の)問題ですから、そちら側で対応していただくのが望ましいと思います。
H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- Yamamoto Munehiro "munepi" の投稿
結論から申し上げますと、
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 環境を構築するほうが賢明だと思います。
Yamamoto Munehiro "munepi" への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
ご教示ありがとうございました。
詳細については、時間がとれるときに勉強しておきます。
以上、取り急ぎ。
H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
TeXlive 2016 scheme-smallベースでパッケージングし直しました。種々のご指摘、お礼申し上げます。取り急ぎ。
H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- aminophen の投稿
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 オプションをつけてください。
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
graphicxが勝手にpapersize specialをしてくれるようになったのですね。bounddvi.styも旧いものですし、今後は非推奨にして

基本的に
\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
を推奨、

graphicxを使う場合は、それも要らない、でしょうか。

H.Ogawa への返信

Re: graphixパッケージが縦組で動かない。

- aminophen の投稿
> bounddvi.sty とは、新仕様の graphicx が
> 共存するかどうか若干不安です。

この件ですが、bounddvi パッケージを「pLaTeX のトンボ」
が使われていても graphicx 併用で問題が起きないように
拡張したうえで TeX Live にインストールしました。
(改変再配布にあたり井上氏の許可をいただきました)

collection-langjapanese の platex-tools バンドルを明日以降
更新すると、中にドキュメントと一緒に bounddvi.sty v7.1 が
見つかると思います。こちらをお使いくだだい。
aminophen への返信

Re: graphixパッケージが縦組で動かない。

- H.Ogawa の投稿
アップデートでちゃんと落ちてきました。
動かしてみると、UpTeX.appに入れてある旧bounddvi(texmf-local内)ではなく、新しい方を読み込んでいるので、ひとまずはUpTeX.appを更新する必要もなさそうです。
取り急ぎ。