96016


xyパッケージを使ってuplatexでビルドすると以下のような警告がでます。

> The produced DVI file is NOT PORTABLE. Convert it with  
>  dvipdfm(x) to the PDF format but do not expect the DVI file itself to be  
>  displayed correctly.

実行したソースファイルは以下の通りです。

[code]

    \documentclass[uplatex, dvipdfmx]{jsarticle}
    \usepackage[all]{xy}
    \begin{document}
      \xymatrix{
                X \ar[r]^f & Y \ar[r]^g & Z   
            }
    \end{document}
    
[/code]

\documentclass{article}にすると警告は出ないので、xyと日本語環境の何かの相性が悪いようです。  
PDFは期待通りに出力されますし、エラーではないので無視し続けても構わないのですが、可能なら警告が出ないようにしたいです。どうするのが良いでしょうか？


CC BY-SA 4.0
2023-08-22T14:20:49.130
96015
2023-08-22T15:11:55.167
47192
question
latex
xyパッケージを使うと警告がでてしまう


エンジンは uplatex を使ってそのあと dvipdfmx を使っていると想定します。警告の内容は「DVI がドライバ依存で dvipdfmx
専用になっているので注意せよ」ということですが，結論としては「気にしなくて良い」と思います。警告を消す手段はないので，諦める・あるいは・xy
パッケージ著者に警告を消す手段を要求する（直接メール）等になります。

  * uplatex + dvipdfmx という組み合わせを使う限り，問題は起きません。
  * もしも途中の DVI を dviout (Windows) あるいは xdvi (Unix) などのビューアで見ようとすると，あるいは dvips で PostScript に変換しようとすると，不都合が起きるでしょう。しかし，dvipdfmx で PDF にしてしまえば関係ありません。

昔は DVI といえば DeVice-Independent
すなわちドライバ非依存でしたが，下記の理由により最近は形骸化してしまっています：というのも，ユーザの皆さんが各自で決めた一定の手順（今回ならば
uplatex + dvipdfmx）で TeX → PDF に変換することが多くなったためです。

* * *

「xyと日本語環境の何かの相性が悪い」というよりは「documentclass に dvipdfmx オプションをつけると xy
パッケージが警告を出す」ということのようです。例えば

[code]

    \documentclass{article}
    
[/code]

では警告が出ず

[code]

    \documentclass[dvipdfmx]{article}
    
[/code]

では警告が出ます。逆に

[code]

    \documentclass[uplatex]{jsarticle}
    
[/code]

でも警告は出ません。

なぜ xy パッケージが警告を出すのかというと，xy パッケージが「dvipdfmx オプションを指定すると，dvipdfmx
にしか解釈できない調整コード（中身の意味は難しいので割愛するが，例えば PDF に変換した時の線の太さなどの指示）を DVI
ファイルに出力する」といういわゆるドライバ依存の挙動をするからです。graphicx, color, hyperref
といった有名かつよく使われるパッケージが，ドライバ依存の代表格です。さらに言えば，今の時代（2020年以降）は「何もパッケージを読み込まない普通の
LaTeX」すらドライバ依存性があります。そんな 2020 年代に xy パッケージ（最終更新は 2013
年なので割と古い）だけが警告を出すのはうるさく見えるかもしれませんが，気にしないのが得策でしょう。

参考：[Online.tex 2020](https://connpass.com/event/188075/) 講演資料[「最近の LaTeX
は○○」](https://aminophen.github.io/slide/hytexonline20.pdf)


CC BY-SA 4.0
2023-08-22T15:05:40.450
96016
2023-08-22T15:11:55.167
2023-08-22T15:11:55.167
27160
27160
96015
answer