preview package と box, latex, platex

preview package と box, latex, platex

- TAKENO Shigeharu の投稿
返信数: 12
preview package と box, latex, platex について質問します。
以下のソースを platex で処理した場合は、どちらのページも問題なく表示されるのですが、
latex (pdfTeX 3.14159265-2.6-1.40.16 (Web2C 2015)), pdflatex (同じ) で
コンパイルすると、最初の box を使った方の数式のインテグラルが下にずれます (平方根もずれます)。

----- ここから -----
\documentclass{article}
\usepackage[active,tightpage]{preview}
\newbox\mybox
\begin{document}
\setbox\mybox\hbox{$I = \int_0^1 x^3dx$}
\begin{preview}\copy\mybox\end{preview}

\begin{preview}$I = \int_0^1 x^3dx$\end{preview}
\end{document}
----- ここまで -----

原因、および対処法 (latex や pdflatex でずれないようにする方法) をご存知でしたら教えてください。

なお、当方 OS は FreeBSD (12) で、TeX Live のバージョンはやや古いようなのですが (texlive-base-20150521_42)、今のところ FreeBSD のパッケージシステムの最新がこれなので、TeX Live を新しくせよ、という回答だと少し難しいので、それ以外の回答を希望します。

pdflatex による前者がずれるサンプル (pdf ファイル) を添付します。

TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- Dora TeX の投稿

previewパッケージは「どのようにしてPDFを生成するか」に応じて,適切なドライバ指定が必要です。

(TeX Live 2015 での動作は確認していませんが)次のようにドライバを明示指定してみてください。

pdfLaTeX を使うとき

\usepackage[pdftex,active,tightpage]{preview}

(p)LaTeX + dvips を使うとき

\usepackage[dvips,active,tightpage]{preview}

(p)LaTeX + dvipdfmx を使うとき

prdvipdfmx.def を入手した上で

\usepackage[dvipdfmx,active,tightpage]{preview}
Dora TeX への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
ご回答ありがとうございます。結論からいえば変化ありませんでした。

別なマシンに TeXLive 2017 が入っていたので試してみたら、そちらの pdflatex, latex ではずれが起きませんでした。バージョンはそれぞれ、

TeXLive 2017: pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017)
TeXLive 2015: pdfTeX 3.14159265-2.6-1.40.16 (Web2C 2015)

のようで、この間の変更でずれが起きなくなっているのかもしれません。但し、前に書いたような
事情で、引き続き、もし LaTeX ソースでの対処法があれば教えていただきたいです。

-----
実はこの件は、最近の latex2html (2018.3) で導入された preview package による処理が、環境によっておかしくなる、という問題からわかったものです。LaTeX ソース側での対処ができれば、少しの修正で FreeBSD などにも対応できる可能性があります。だめなら、pdflatex のバージョンにより pdflatex でなく常に platex を使うような対応を考える予定です。



TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
さらにテストしてみたのですが、どうやら preview package は関係ありませんでした。quote 環境にしても同じ問題が起きます (添付ファイル)。
また、別のマシン (Windows) に TeXLive 2016 があったので試してみたら、これも問題は起きませんでした (pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016/W32TeX)。

ということで、TeXLive 2015 の LaTeX (pdfTeX) の setbox を使った場合の問題、ということになるようです。

TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
続報です。一応解決しました。

元のソースは、\newbox, \setbox, \copy という plain TeX の命令で書かれていましたが、それを \newsavebox, \usebox の LaTeX 寄りの記述に変えてみたら TeXLive2015 の latex, pdflatex でも問題が起きずにうまくいきました (特に \newsavebox の方で問題が出なくなりました)。

ということで、元々の話をこのような記述で書き換えられるか検討したいと思います。

どうもありがとうございました。

TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
度々すみません、いけてたと思ったのは勘違いでした。LaTeX よりの \savebox でもやはりずれてしまいます。あらためて情報提供をお待ちします。

TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- 北見 けん の投稿
同じ環境がないので追試できないのですが、
一部の文字がずれるということなら、
dvitype、\showlists、\tracingmacros などで調べると
何かわかるかもしれません。

## pdftex なら dvitype は使えないか。
TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- Z. R. の投稿

「latex(pdfTeX)でずれる、platexではずれない」ということであれば、latexとplatexでの結果(DVIファイルとPDFファイル)が見たいところですね。

Z. R. への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
どうもありがとうございます。pdflatex の結果は上の方にあげてあります (test8-4.pdf)。その同じソースの latex と platex による dvi ファイルを添付します。一度に 2 つ添付する方法がわかりませんので、2 回投稿します。まずは latex の結果 (ずれる)。

Z. R. への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- aminophen の投稿
test8-4-latex.dvi は確かにおかしいですね。

%%% dvitype で見ても,インテグラル (符号位置は"R") の位置が変。

-170: down3 -527932 v:=4134962-527932=3607030, vv:=229
-174: fntdef1 0: cmex10
-196: fntnum0 current font is cmex10
-197: setchar82 h:=5276550+309476=5586026, hh:=354
+170: down2 -3644 v:=4134962-3644=4131318, vv:=262
+173: fntdef1 0: cmex10
+195: fntnum0 current font is cmex10
+196: setchar82 h:=5276550+309476=5586026, hh:=354
[R]

しかし…。

(1) test8-4-latex.dvi と test8-4-platex.dvi は
冒頭のご質問のソースを quote 環境に変えた結果,
という理解でよろしいですか?

(2) 当方の Windows で冒頭の preview の例を
* TeX Live 2017
* TeX Live 2016
* TeX Live 2015
* W32TeX (TL2014付近)
* W32TeX (TL2012付近)
で試しましたが,いずれも latex, pdflatex, platex ですべて正常でした。

=====【テスト内容】=====

%%% TeX Live のバージョンごとに PATH を切り替えて,
%%% 以下の一連のコマンドを実行。
%%% ただし ** には {12,14,15,16,17} の年次を入力する。

$ latex -jobname=tex** 20191106_forum2721_preview
$ dvipdf tex**
$ dvitype tex** >tex**.type
$ platex -jobname=ptex** 20191106_forum2721_preview
$ dvipdf ptex**
$ dvitype ptex** >ptex**.type
$ pdflatex -jobname=pdftex** 20191106_forum2721_preview

添付ファイルがその結果です。
aminophen への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
詳細なテスト、どうもありがとうございます。そちらでは、TeXLive 15 より前のものでも大丈夫だったということは、TeXLive のバージョンの問題、というよりもマシン環境の問題なのかもしれません。

なお、(1) はおっしゃる通り、usepackage{preview} を取り除いて、preview 環境を quote 環境に変えたものです。

私の方のテスト環境は、それぞれでマシン、OS も違うので、単純に TeXLive のバージョンだけが異なるわけではありません。試した環境は以下のとおりです。

・TeXLive 15:
OS は FreeBSD 12.0-RELEASE。2 台の別の FreeBSD 12 のマシンで試しましたが (当然 TeXLive のバージョン等は同じ)、同じ問題が起きます。
・TeXLive 16:
OS は Windows 7。テスト用にインストールしたものが更新されずに残っていました。これは問題は起きません。
・TeXLive 17:
OS は Solaris 10。これもテスト用にインストールしたもので、常用はしてません。これも問題は起きません。

TeXLive 15 での pdflatex, platex のバージョンは以下のとおりです。

% pdflatex --version
pdfTeX 3.14159265-2.6-1.40.16 (Web2C 2015)
kpathsea version 6.2.1
Copyright 2015 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.6.34+apng; using libpng 1.6.37+apng
Compiled with zlib 1.2.11; using zlib 1.2.11
Compiled with xpdf version 3.04

% platex --version
e-pTeX 3.14159265-p3.6-141210-2.6 (euc) (Web2C 2015)
kpathsea version 6.2.1
ptexenc version 1.3.3
Copyright 2015 D.E. Knuth.
There is NO warranty. Redistribution of this software is
covered by the terms of both the e-pTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the e-pTeX source.
Primary author of e-pTeX: Peter Breitenlohner.

FreeBSD の TeXLive15 には、インストール時に FreeBSD 側で用意されているパッチも当たっているのですが、見たところソース本体へのパッチというよりも Makefile やコンパイルオプションなどに関するものがほとんどで、今回の問題に関係がありそうなものはないように思います。

.log ファイルをそちらのものと比較してみましたが、これも特に気がつくことはありません (問題がでる pdflatex のものを添付します)。

とりあえず FreeBSD で起きていて他で起きないということであれば、FreeBSD のフォーラムの方で聞いてみることも考えたいと思います。

どうもありがとうございました。

TAKENO Shigeharu への返信

Re: preview package と box, latex, platex

- TAKENO Shigeharu の投稿
一応結果を報告しますと、昔 FreeBSD の上で install した TeX に関して、随時 FreeBSD でのアップデートを行っていたのですが、latex, pdflatex (のリンク元の pdftex) が更新されておらず、かなり古いままでした。それを含むFreeBSD のパッケージ (tex-base-engines) を更新したら問題は起きなくなりました。
ということで、FreeBSD ローカルの問題でした。どうもお騒がせしました。