*[[dvipdfmx/xdvipdfmx:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/]] [#x9826408]
*[[dvipdfmx:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/]] [#x9826408]

&color(White,#5F2F2F){  ''◆CONTENTS◆''  };&br;
dvipdfmx は DVI を PDF へ変換するソフトウェアです.
元々 [[Mark A. Wicks:https://twitter.com/mawicks0930]] 氏によって開発された [[dvipdfm:http://web.archive.org/web/20160801211444/http://gaspra.kettering.edu/dvipdfm/]] というソフトウェアがあり,dvipdfmx は主に CJK 対応を強化した拡張版 (e''X''tended version) です.
現在では dvipdfm コマンドは dvipdfmx へのシンボリックリンクとなっており,dvipdfm として実行した場合は互換モードで動作するようになっています((ただし,完全に同じというわけではありません.)).

----
#contents
----

*dvipdfmx/xdvipdfmx とは [#ia9746cb]

dvipdfmx は DVI ファイルを PDF ファイルに変換するソフトウェアです.~
xdvipdfmx は XDV ファイルを PDF ファイルに変換するソフトウェアです.~
[[XeTeX, XeLaTeX>XeTeX]] を -no-pdf オプションを指定しないで実行すると xdvipdfmx が自動的に実行されます.~
**特徴 [#ia9746cb]

**License [#w1524716]
元となった dvipdfm の主な特徴としては,[[Dvipdfm User's Manual Version 0.12.4b:http://mirrors.ctan.org/dviware/dvipdfm/dvipdfm.pdf]] に次に示す項目などが挙げられています.

[[GPLv3, GPLv2:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/COPYING?view=markup]]~
-アウトラインやアノーテーション(注釈機能)など Adobe Acrobat Distiller の pdfmark に対応した多くの機能を提供します.
-[[HyperTeX]] (HTML),[[TPIC>pic]],カラー,PSFile,その他 [[PostScript]] special など "標準的な" DVI special 機能を提供します.
-MetaPost 出力を PDF に取り込む際のネイティブな対応と,任意の PostScript ファイルを外部プログラムの助けを借りて取り込む機能を提供します.
-サムネイル埋め込み機能([[Ghostscript]] を利用します)を提供します.
-組版結果に対する任意のネストした線形変換 (変形) 機能を提供します.テキストを含む,すべてのページ上の描画物に対し伸縮や回転の操作を行えます.
-PDFの最初のページを(ページを描画するのに必要な)フォントなどのリソースとともにカプセル化し取り込むことができます.
-JPEG と PNG 画像を取り込むことができます.
-内部カラー・スタック.色設定に対するスタック操作 (push, pop) が可能です.これは例えば,ヘッドラインなどで一時的に色を変えたりするのに役に立ちます.
-ファイル・サイズを小さくするためにフォントの部分埋め込みと Flate 圧縮に対応しています.
-Acrobat 製品群では不完全な(dvipdfm マニュアルが書かれた当時)エンコーディングの問題に対処するために,フォントの再エンコーディングの機能を提供します.
-ページとデスティネーション・ツリーに対する平衡木の利用により,巨大な文書における PDF ビューアのアクセスを高速化します.

**ChangeLog [#he60a3d0]
dvipdfmx での主な変更・拡張は [[The Dvipdfmx User's Manual:https://github.com/shirat74/dvipdfm-x-doc/blob/master/dvipdfmx.pdf]] に次に示す項目などが挙げられています.

-[[[texlive] Index of /trunk/Build/source/texk/dvipdfm-x:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/]]
--[[log:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/?view=log]]
--[[ChangeLog:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/ChangeLog?view=markup]]
-[[[texlive] Contents of /trunk/Master/texmf-dist/tex/latex/dvipdfmx-def/dvipdfmx.def:http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/dvipdfmx-def/dvipdfmx.def?view=markup]]
--[[log:http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/dvipdfmx-def/dvipdfmx.def?view=log]]
-[[[latexfmxdef] Index of /trunk:http://svn.gnu.org.ua/viewvc/latexfmxdef/trunk/]]
--[[log:http://svn.gnu.org.ua/viewvc/latexfmxdef/trunk/?view=log]]
--[[ChangeLog:http://svn.gnu.org.ua/viewvc/latexfmxdef/trunk/ChangeLog?view=markup]]
-OpenType/TrueType に対するより完全な対応,特に2バイトフォントとしての利用や縦組み用のグリフ置換機能を提供します.
-Subfont Definition ファイルへの対応.CJK-LaTeX を使う際のフォントの問題を解消します.
-PostScript CMap リソースを利用して多様な旧来のエンコーディングに対応します.
-入力エンコーディングとしての Unicode への対応や ToUnicode CMap の自動生成など Unicode 関連の機能の強化を提供します.
-アスキー pTeX 拡張への対応.
-pdfTeX 互換 special などいくつかの special コマンドを追加します.
-Type1 フォントの CFF (Type1C) への変換や オブジェクト・ストリーム対応などファイル・サイズ削減のための様々な機能を提供します.
-アルファ・チャンネルや埋め込み ICC プロファイル対応などの改善されたラスタ画像への対応.

*不具合 [#mb96765c]
**dvipdfmx Version 20130624 で TikZ を使用した DVI ファイルを処理すると ** ERROR ** Invalid object type: 10 → TeX Live 2014 (dvipdfmx Version 20140317) 以降にアップデート [#m3330a51]

TeX Live 2014 (dvipdfmx Version 20140317), TeX Live 2013 (dvipdfmx-20130405) では大丈夫です~
TeX Live 2014 (→ [[Revision 31738:http://www.tug.org/svn/texlive?view=revision&revision=31738]], [[Revision 31739:http://www.tug.org/svn/texlive?view=revision&revision=31739]] を参照) で修正されました~
**xdvipdfmx [#b22e1172]

-[[[dvipdfmx] tikz のパターン描画でエラー:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1081]]
似たような名前のプログラムとして xdvipdfmx というものがあります.
これは [[XeTeX]] が出力する XDV ファイルを処理するための dvipdfmx の拡張版です.
通常は XeTeX の裏で自動的に呼ばれるので,意識する必要はありません.
// ただし,dvipdfmx と同様の不具合を生じる場合があるので,PDF がうまく出力できない場合は xdvipdfmx の不具合も疑って下さい.

**dvipdfmx Version 20130624 で しおりを作成するとジャンプできない → TeX Live 2014 (dvipdfmx Version 20140317) 以降にアップデート [#x496f09a]
XeTeX であえて XDV ファイルを出力したい場合は -no-pdf オプションをつけます.

TeX Live 2014 (dvipdfmx Version 20140317), TeX Live 2013 (dvipdfmx-20130405) ではジャンプできます~
TeX Live 2014 (→ [[Revision 31386:http://www.tug.org/svn/texlive?view=revision&revision=31386]], [[Revision 31672:http://www.tug.org/svn/texlive?view=revision&revision=31672]], [[Revision 31691:http://www.tug.org/svn/texlive?view=revision&revision=31691]], [[Revision 31759:http://www.tug.org/svn/texlive?view=revision&revision=31759]] を参照) で修正されました~
*使い方 [#qabeb774]

-[[hyperref パッケージの hyperlink が機能しない(OS X10.9.1, MacTeX,TeXworks ):http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1225]]
-[[hyperref.styによる目次からのリンクが無効:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1078]]
変換したい DVI ファイル名を引数として与えると,デフォルトの設定で PDF ファイルへの変換が行われます.

**dvipdfmx Version 20130624 で PDF 変換した場合に A5 サイズ (148mm×210mm) で出力できない → TeX Live 2014 (dvipdfmx Version 20140317) 以降にアップデート [#r12477d0]
 $ dvipdfmx foo.dvi
 foo.dvi -> foo.pdf
 [1]
 14514 bytes written

TeX Live 2014 (dvipdfmx Version 20140317), TeX Live 2013 (dvipdfmx-20130405) では出力可能です~
TeX Live 2014 (→ [[Revision 31398:http://www.tug.org/svn/texlive?view=revision&revision=31398]] を参照) で修正されました~
なお,拡張子は省略できます.
上の場合,単に foo としても foo.dvi が変換されます.
ただし,別に foo という(拡張子のない)ファイルが存在する場合は明示的に foo.dvi と書く必要があります. なお,遅くても TeX Live 2019 から別に foo という
ファイルが存在する場合にも,単に foo とした場合,まず foo.dvi を優先して探します.

-[[dvipdfmxでPDF変換した際に紙のサイズが異なる:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1073]]
なにも設定しなくともとりあえず動く場合がほとんどだとは思いますが,フォントなどはそれぞれの OS にあった設定がなされていることを確認しましょう.
特に Windows 10 や macOS では収録文字数が大幅に増え,また多ウェイト化なども進んで来ているため古い習慣にとらわれず新しいものを使いましょう.
フォントは PDF へ埋め込むことを基本としてください.
非埋め込みで PDF を作成することは推奨されません.

**dvipdfmx-20120420 で IPAexフォント (Ver.002.01) を使うと ** ERROR ** Could not obtain necessary font info. → TeX Live 2013 (dvipdfmx-20130405) 以降にアップデート [#z5173081]
例えば,TeXLive/Windows 10 で標準搭載の游明朝・游ゴシックを埋め込むように設定するにはコマンドラインで([[tlmgr]] で ptex-fontmaps パッケージをインストールしておきます)

TeX Live 2013 (→ [[Revision 28787:http://www.tug.org/svn/texlive?view=revision&revision=28787]] を参照) で修正されました~
  kanji-config-updmap yu-win10

-[[dvipdfmxでipaexフォントを使うと** ERROR ** Could not obtain necessary font info.:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/56967.html]]
-[[QA: dvipdfmxでipaexフォントを使うと** ERROR ** Could not obtain necessary font info.:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=917]]
とします.
macOS ではヒラギノを使うとよいかもしれません(設定については [[TLContrib]] を参照してください).

**dvipdfmx-20120420, xdvipdfmx-0.7.8 で [[Lucida>Wikipedia.en:Lucida]] や [[Bitstream Charter>Wikipedia.en:Bitstream_Charter]] のアクセント記号 (発音記号) が表示できない → TeX Live 2013 (dvipdfmx-20130405) 以降にアップデート [#za070e82]

TeX Live 2013 (→ [[Revision 27479:http://www.tug.org/svn/texlive?view=revision&revision=27479]], [[Revision 27480:http://www.tug.org/svn/texlive?view=revision&revision=27480]] を参照) で修正されました~

dvipdfmx-20120420 (修正前) と xdvipdfmx-0.7.8 (修正前) と dvipdfm, version 0.13.3TL-j-p1d で [[Lucida>Wikipedia.en:Lucida]] や [[Bitstream Charter>Wikipedia.en:Bitstream_Charter]] のアクセント記号 (発音記号) が表示できません.~

 \documentclass{article}
 \usepackage[T1]{fontenc}
 \usepackage{charter}
 \begin{document}
 chass\'e du G\"obe
 \end{document}

以下のように \' や \" の直後に {}$\!\!\!$ を追加すれば表示できるようになりました.

 \documentclass{article}
 \usepackage[T1]{fontenc}
 \usepackage{charter}
 \begin{document}
 chass\'{}$\!\!\!$e du G\"{}$\!\!\!$obe
 \end{document}

↑ Type1 フォントの合成済字形(←これが seac を使っている)でなくて、TeX 上の合成で事足りるのであれば、アクセント自動置換をごまかして TeX 上の合成を強制することにすればよいでしょう。([[アクセント合成済文字を避ける:http://d.hatena.ne.jp/zrbabbler/20120609/1339257531]] を参照)

 \documentclass{article}
 \usepackage[T1]{fontenc}
 \usepackage{charter}
 \begin{document}
 chass\'{\empty e} du G\"{\empty o}be /
 CHASS\'{\empty E} DU G\"{\empty O}BE
 \end{document}

-[[Lucida fonts (T1) and dvipdfm.:https://groups.google.com/group/comp.text.tex/browse_thread/thread/429dd838fe75ea40/d26feb9baf78f9d6]]
-[[Diacritics from Bitstream Charter are not translated to PDF:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639373]]
-[[dvipdfmxがBitstream Charterでバグる!:https://twitter.com/h_okumura/status/209849248987090945]]
-[[seac のバグは「構成要素の文字(例だと \'{} e \"{} o)を文書のどこかに紛れ込ませる」と逃げられる、はず。:https://twitter.com/zr_tex8r/status/209880317023109120]]
-[[dvipdfm(x)のseacバグ:https://twitter.com/golden_lucky/status/209924362785140736]]

*注意点 [#n8c7de22]

**upLaTeX + dvipdfmx で波ダッシュ「〜」(U+301C) が 全角チルダ「~」(U+FF5E) で表示される → map ファイルの UniJIS-UTF16-H を unicode に変更または \AtBeginDvi{\special{pdf:mapline uprml-h unicode :0:msmincho.ttc}} を追加 [#n5909871]

-[[upLaTeX + dvipdfmx で波ダッシュ「〜」(U+301C) が 全角チルダ「~」(U+FF5E) で表示される:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1218]]
-[[qa:49109]]
-https://twitter.com/zr_tex8r/status/422752198724825090
-https://twitter.com/zr_tex8r/status/422763693202350080
-[[pLaTeX + dvipdfmx で PUA 文字を何とかする話:http://d.hatena.ne.jp/zrbabbler/20130420/1366451325]]

**dvips, dvipdfm, dvipdfmx で \scalebox を使用した場合に dvipdfmx の縦組時のみ他のドライバと挙動が異なる → [[pxtatescale パッケージ:https://gist.github.com/zr-tex8r/5237259]] を使用する [#he8e8e71]

-[[\scaleboxの縦組時挙動に付いて:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=961]]

*使い方 [#qabeb774]

-[[Dvipdfm マニュアル:http://gaspra.kettering.edu/dvipdfm/dvipdfm-0.12.4.pdf]] をまず読んでください。

**コマンドラインオプション [#tc481bdb]

  $ dvipdfmx -h

  Usage: dvipdfmx [options] [dvifile[.dvi|.xdv]]
         dvipdfmx --extractbb|--xbb|--ebb [options]     "extractbb" になる
         dvipdfmx --help|--version

  Options:
    -c            カラースペシャルを無視する (モノクロ印刷用)
    --dvipdfm     DVIPDFM 互換モードを有効にする
    -d 数値       PDF 出力の小数点以下の桁数を設定 (0-5) [2]
    -f ファイル名 マップファイル名を設定 [pdftex.map]
    -g 寸法       アノーテーションの余白 [0.0in]
    -h | --help   このメッセージを表示し終了
    -l            ランドスケープモード
    -m 数値       追加の拡大率を設定 [1.0]
    -o ファイル名 出力ファイル名を設定, "-" で標準出力 [dvifile.pdf]
    -p 用紙サイズ 用紙サイズを設定 [a4]
    -q            静かに
    -r 解像度     ビットマップフォントの解像度を DPI で指定 [600]
    -s ページ範囲 ページ範囲を指定 (-)
    --showpaper   使用可能な用紙形式を表示して終了
    -t            PNG 形式のサムネイルを埋め込む [dvifile.1]
    --version     バージョン情報を出力し終了
    -v            うるさく
    -vv           よりうるさく
    --kpathsea-debug 数値       kpathsearch デバッグフラグを設定 [0]
    -x 寸法       水平方向のオフセットを指定 [1.0in]
    -y 寸法       垂直方向のオフセットを指定 [1.0in]
    -z 数値       zlib の圧縮レベルを指定 (0-9) [9]
    -C 数値       様々なオプションフラグ [0]:
                    0x0001 予約済み
                    0x0002 TPIC シェーディングコマンドに不透明なグレーの代わりに
                           半透明な塗りつぶしを使う (PDF 1.4 が必要)
                    0x0004 CID フォントを固定幅として扱う
                    0x0008 重複したフォントマップエントリーを置き換えない
                    0x0010 PDF デスティネーションの最適化を抑制する
                  正の値は常に前に与えられた値と OR される
                  負の値を指定すると前の値を置き換える
    -D 文字列     PS->PDF 変換コマンドラインテンプレート [none]
    -E            フォントライセンスフラグに関わらず常にフォントを埋め込む
    -I 数値       画像キャッシュの寿命 [-2]
                   0: すべての古い画像を消去し新しい画像を残す
                  -1: すべての古い画像を消去し新しい画像も消去する
                  -2: 画像キャッシュを無視する
    -K 数値       暗号化キー長 [40]
    -M            MetaPost PostScript 出力を処理
    -O 数値       開いたブックマークアイテムの最大深度 [0]
    -P 数値       暗号化の許可フラグを設定 [0x003C]
    -S            PDF 暗号化を有効に
    -V 数値       PDF のマイナーバージョンを設定 [5]

  コマンドラインから入力されるすべての寸法は "True" 付きと解釈される。
  "-s" の引数はコンマで分離されたページレンジを列挙したものです、
          例えば、"-s 1-3,5-6".
  コマンドラインから入力されるすべての寸法は "True" 付きと解釈される.
  "-s" の引数はコンマで分離されたページレンジを列挙したものです,
          例えば,"-s 1-3,5-6".
  ページサイズは用紙フォーマット (例: "a4")
          あるいは w<unit>,h<unit> (例: "20cm,30cm") で指定。
          あるいは w<unit>,h<unit> (例: "20cm,30cm") で指定.

  バグ報告は電子メールで: tex-k@tug.org.


**フォントの設定 [#tbddb566]
**マニュアル [#da69bb5d]

フォントの設定はマップファイルで行います。マップファイルの役割は、TeX が認識するフォント名と実際に PDF 出力に使うべき実フォントとを対応付けることです。このファイルの書式は
dvipdfmx には The dvipdfmx project team によるマニュアルが存在します.

  tfm[@SFD@] enc font options
-https://github.com/shirat74/dvipdfm-x-doc/blob/master/dvipdfmx.pdf
-http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/doc/dvipdfmx/dvipdfmx.pdf

のようになります。ここで '''tfm''' は TeX において使われるフォント名、'''enc''' は使用すべきフォントのエンコーディング、'''font''' は PDF 出力に用いられる実フォント名(通常はファイル名)で ''' options''' で様々なオプションを指定します。[@SFD@] の項は CJK パッケージで用いられるフォントの分割方法の指定で、pLaTeX などでは通常不要です。
コマンドラインから

TeX Live などの通常のインストールではおそらく各 OS で利用可能なフォントのマップファイルは既にインストールされているでしょう。ない場合は jfontmaps パッケージ (TeX Live の場合) を導入します。使用するマップファイルの切り替えには updmap プログラムを使います。マップファイルが用意されていないフォントを使いたい場合は自分で用意しなければなりません。
 texdoc dvipdfmx

以下にマップファイルの書き方について簡単に解説します。
を実行することで dvipdfmx のマニュアルを読むことができます.

***TeX フォント名 [#ua7d8a2c]
dvipdfm のマニュアルも参考になります.

マップファイルの '''tfm''' の項には TeX で使用されるフォント名、あるいは Virtual font から最終的に辿り着く TeX フォントがきます。cmr10 や rml などです。オプションとして @ SFD@ をつけることができます。ここで SFD は Subfont Difinition ファイル名です。このオプションは '''SFD''' の規則にしたがい分割されたサブフォントを一つのフォントにまとめあげるときに指定します。
-[[Dvipdfm User's Manual:http://mirrors.ctan.org/dviware/dvipdfm/dvipdfm.pdf]]

  min@Unicode@  unicode  Mincho

は、Unicode.sfd の規則にしたがって分割されたサブフォント群 min00, min01, ... を逆にひとつの Unicode フォントにまとめ上げます。その後このひとつに束ねられた仮想的なフォントは Mincho というフォントにマップされます。
**フォントの設定 [#tbddb566]

***エンコーディング [#y16b9bc3]
フォントの設定は TeX 関連プログラムを使う際に大きな困難となる部分です.
TeX とその関連プログラムがどのようにフォントを取り扱うのか,あまり理解していない場合は各ディストリビューションのデフォルト設定に従うのが賢明です.
dvipdfmx で使用するフォントの設定方法は,[[dvipdfmx/フォントの設定]]を参照してください.

'''enc''' を正しく指定しないと正しい出力は得られません。dvipdfmx でサポートされているものは

  dvips の .enc 名
  PostScript CMap リソース名
  unicode
**画像や PDF のとりこみ [#a1cabace]

の3種類です。dvips の .enc ファイルは 8-bit エンコーディング用のエンコーディングファイルで、どのコードポイントにどの文字 (グリフ) が割り当てられているかを PostScript の書式で記述します。例えば、8r.enc では
dvipdfmx がサポートする画像フォーマットは PNG,JPEG,BMP,JPEG 2000(2014/08/11 より)および MetaPost が出力した EPS (MPS) です.
これに加えて PDF のページもとり込めます.
dvipdfmx を使用して画像をとりこむ方法の詳細は,[[dvipdfmx/画像のとりこみ]]を参照してください.

   /TeXBase1Encoding [
   % 0x00
     /.notdef /dotaccent /fi /fl
     /fraction /hungarumlaut /Lslash /lslash
     ...(略)...
     /udieresis /yacute /thorn /ydieresis
   ] def

のような記述が見られます。コード 0x00 に /.notdef (未定義) 文字を、0x01 に /dotaccent を、0x02 に /fi (f と i のリガチャ) を...割り振っています。文字の識別は PostScript グリフ名で行われます。OpenType/TrueType フォントでは Unicode値を使って /uniXXXX (XXXX は 4 桁の 16 進数 Unicode 値) という形での文字の指定も可能です。必要な .enc ファイルは通常のインストールでほぼすべてインストールされています。
**special 命令 [#p133bd5e]

  foo 8r Foo
本来 DVI ファイルは名前のとおり device-independent なものですが,さまざまな拡張機能を [[\special 命令>special 命令]]によって実現することができます.
文書やページの設定を行うもの,描画や画像のとりこみを行うもの,HTML 形式のハイパーリンクを付加するもの,出力 PDF のバージョンや文書情報を指定するもの等があります.
これらの機能のうちほとんどはユーザーが直接意識することはありません.
通常はパッケージの製作者が LaTeX 等の為の使い易いインターフェイスを提供しているでしょう.
しかし,これらの機能を用いて作成された DVI ファイルはデバイス依存であることに注意が必要です.
dvipdfm(x) でこれらの \special 命令を利用する方法については,[[dvipdfmx で用いることができる \special 命令>special 命令#specials-dvipdfmx]]を参照してください.
ただし,dvipdfm(x) 独自の機能を使う場合は,それにより他の DVI ドライバとの互換性を酷く損なうという事に注意してください.
いくつかの機能は DVI の設計思想に反することもあります.

というマップエントリは TeX フォント foo を Foo に対応付けます。その際 TeX で用いられたエンコーディングは 8r.enc に記述されてあるものとします。

PostScript CMap リソースは dvipdfmx が文字を CID と呼ばれる文字の識別番号で識別する場合に用いられます。CMap ファイルは一般的に用いられるエンコーディング (Shift-JIS など) からの CID への対応付けを記述したファイルです。例えば、UniJIS-UCS2-H は Unicode の JIS サブセットの範囲で UCS2 でエンコードされた文字列を Adobe-Japan1 で定められた文字集合の CID 値の並びに変換するのに用いられます。拡張子が ".otf" の 和文 OpenType フォントでは通常これを使います。pTeX/pLaTeX でよく用いられる設定は:
**その他 [#dcc9a8c9]

  rml  H Ryumin-Light
  gbm  H GothicBBB-Medium
***PDF のバージョンを指定する [#b272a636]

などです。CMap ファイルは通常は Adobe によって管理されたものが一式インストールされているはずです。
-[http://d.hatena.ne.jp/zrbabbler/20140705/1404540914 出力 PDF のバージョン(とか)を指定する], [http://d.hatena.ne.jp/zrbabbler/20140706/1404618797 出力 PDF のバージョン(とか)を指定する(補足)]
-https://github.com/zr-tex8r/BXpdfver
-[https://okumuralab.org/tex/mod/forum/discuss.php?d=690 pdfの図が表示されない]
-[http://d.hatena.ne.jp/zrbabbler/20140530/1401462549 mediabb パッケージが(あまり)役に立たない話]

最後に unicode は OpenType/TrueType フォントに内臓の Unicode マッピングテーブルを使って Unicode 値からフォント内の字形データを得ることを指定します。upLaTeX や Omega など DVI ファイル内のエンコーディングが Unicode となる場合にはこれが使えます。
例えば,PDF 1.4 で出力したい場合はプリアンブルに
 \special{pdf: minorversion=4}
と書きます(minorversion とは 1.x の 'x' のことです).
もしくは,ZR さんによる [[bxpdfver:https://github.com/zr-tex8r/BXpdfver]] パッケージを使用して
 \usepackage[dvipdfmx,1.4]{bxpdfver}
としてもよいです.
1.4 以外に,1.5, 1.6, 1.7, 2.0 が指定できます.

  uprml-h unicode ipaexm.ttf
コマンドラインオプションで指定することもできます.

エンコーディングに unicode を指定する場合は追加の外部ファイルを必要としません。
 -V number     Set PDF minor version

***実フォント名 [#he05780d]
***画像キャッシュで高速化 [#y11c4b43]
-TeX Live 2013 以降で使用可能です (→ TeX Live [[Revision 29495:http://www.tug.org/svn/texlive?view=revision&revision=29495]], [[Revision 29512:http://www.tug.org/svn/texlive?view=revision&revision=29512]] でコミットされました)
-[[Image cache in (x)dvipdfmx by Tsuchimura-san:https://okumuralab.org/tex/mod/forum/discuss.php?d=1153]]
-[[dvipdfmx を画像キャッシュで高速化:https://okumuralab.org/tex/mod/forum/discuss.php?d=958]]

'''font''' の項には出力 PDF で使用されるフォント名がきます。これは通常フォントファイル名です。
デフォルトでは有効にならないようになっています.
有効にするにはコマンドラインオプション
 -I number
において,number を正整数にします.
この数値は,キャッシュが有効な時間を表しています.
デフォルトで有効にしたい場合,dvipdfmx.cfg の I セクションで
 I 24
のように設定しておきます.
この場合,一日以内ならキャッシュにイメージがある場合,それを使用することを意味しています.

  ugoth10  unicode  Gothic.ttf
***extractbb などの名前でシンボリックリンクを作成する [#k882a214]
-[[#美文書 115ページ,「TeX Liveではextractbbやebbは実はdvipdfmxへのシンボリックリンクです」?:https://twitter.com/ti5942/status/273700405341483008]] → [[extractbbのプロパティ:https://twitter.com/ti5942/status/273742359915794432]]

は TeX フォント ugoth10 を TrueType フォント Gothic.ttf に結びつけます。また、フォントファイルが TrueType Collection の場合は
dvipdfmx はコマンドの名前によって機能を変えることができます.
[[dvipdfmx.c:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/dvipdfmx.c?view=markup]] の main 関数を見るとコマンド名によって処理を変えています.
UNIX ではプログラムに複数の機能を実装してシンボリックリンクを使用して別の名前をつけることで機能を変えることは普通に行われます.

  ugoth10  unicode  :1:GothicB.ttc
***PDF/X について [#e2cc950a]

のようにファイル名の前に :n: を付けることで n 番目のフォントを選べます。
今のところ dvipdfmx は PDF/X 出力には対応していませんが,\special コマンドを駆使して PDF/X 準拠を謳った PDF を作成することはできます.ここではその方法を示しますが,'''自分が何をやっているのかよく理解したうえで行ってください'''.

***オプション [#d4922a30]
  \usepackage{bophook}
  \AtBeginDocument{
    \special{pdf:minorversion=3}
    \special{pdf:put @docinfo <<
      /Title (タイトル)
      /Author (著者)
      /CreationDate (D:20150124111528+09'00')
      /ModDate (D:20150124111528+09'00')
      /Trapped /False
      /GTS_PDFXVersion (PDF/X-1:2001)
      /GTS_PDFXConformance (PDF/X-1a:2001)
    >>}
    \special{pdf:put @catalog << /OutputIntents [ <<
      /Type /OutputIntent
      /S /GTS_PDFX
      /OutputConditionIdentifier (JC200103)
      /OutputCondition (JC200103 (Japan Color 2001 Coated))
      /RegistryName (http://www.color.org)
    >> ] >>}
  }
  \AtBeginPage{\special{pdf:put @thispage <<
      /BleedBox [0 0 595.28 841.89]
      /TrimBox [0 0 595.28 841.89]
  >>}}

"変形" オプション
dvipdfmx には'''出力結果が PDF/X 準拠かどうか検証したり,準拠するように適切に処理したりする機能はありません'''.少なくとも以下の点をよく検証してください:

  -s .167
  -e 1.2
  -b 1.0
-色空間: X-1/X-1a では RGB は使用禁止です.CMYK やグレースケールなどを使います.
-フォント: 必ずすべて埋め込みます.
-しおりやハイパーリンク: 基本的に禁止です.hyperref は切りましょう.
-境界ボックス: MediaBox と TrimBox が適切に設定されていることを確認します.

"s" は斜体に、"e" は横に伸縮し、"b" は太字にするオプションです。"b" の利用は推奨されません。
外部画像はトラブルの元なので特に要注意です.また PostScript と PDF \special は何を引き起こすか分からないので使われていないことを確認しましょう (dvitype で DVI ファイルを検証するとよいでしょう).

フォントオプション

  -i 2
  -w 1
*よくある問題 [#d092ab9c]
**EPS 画像 [#wc8e72e0]

"i" は TrueType Collection インデックスの指定 (フォント名の前の :2: と同じ) で "w" は縦書き/横書きの指定です。"w" はエンコーディングが unicode のときのみ有効で、値が 1 のときは縦書き用であることを示します。オプション "w" の値が 1 のとき縦書き用の OpenType グリフ置換機能が有効になります。
 
***フォント関連のよくあるエラーと警告 [#p3025758]
EPS の画像が表示されない,位置がずれるなどの問題は頻発します.
Dvipdfmx は EPS (PostScript) には対応していません.EPS 画像を取り込む際には,EPS を PDF へ変換する外部プログラムが呼ばれ,それが行われます.この際に不具合が起こります.

フォントとエンコーディング関連、PostScript ファイルの取り込みではエラーが多発します。よくあるエラー・警告とその原因です:
**用紙サイズと向き [#ma6fa008]

  Could not locate a virtual/physical font for TFM “gbm-jis”.
  There are no valid font mapping entry for this font.
  Font file name “gbm-jis” was assumed but failed to locate that font.
  Cannot proceed without .vf or “physical” font for PDF output…
LaTeX で用紙サイズや向きを指定したのに,生成された PDF ファイルに反映されないと悩む人がいます.それもそのはずで,LaTeX (TeX) が処理結果として出力する DVI フォーマットには,用紙サイズや用紙の向きという概念はないのです.Dvipdfmx の入力である DVI ファイルにそのような情報が記載されていない以上,どうにもならないので,何らかの方法でそれを与えてやる必要があります.

この種のエラーは mktexpk が実行され失敗した後表示されます。TeX フォント "gbm-jis" にはなんら実フォントとの対応付けがなされておらず、"gbm-jis" という名のフォントを試そうとして失敗しました。おそらくフォントの設定が適切になされてません。類似のエラーとして:
Dvipdfmx のオプションや,用紙サイズ・向きの情報を無理やり埋め込む \special コマンドを利用します.詳しくは「使い方」の項や「special コマンド」の項を参照してください.

  Could not locate a virtual/physical font for TFM "hgothr-h".
  This font is mapped to a physical font "HiraKakuProN-W3.otf".
  Please check if kpathsea library can find this font: HiraKakuProN-W3.otf
  Cannot proceed without .vf or "physical" font for PDF output...
**処理が遅い [#m56055d3]

のようなメッセージが出る場合は、フォント "HiraKakuProN-W3.otf" がインストールされていないか dvipdfmx が見つけられる場所にありません。
EPS ファイルを使っていないか確認しましょう.EPS を PDF へ変換する外部プログラムが呼び出され,その処理に時間がかかります.EPS の使用を辞めるか,前述の画像キャッシュ機能を使うかで対応します.

  Could not find encoding file "H".
**PDF 画像のバウンディングボックス判定に関する問題 [#b5c7c5ee]

pTeX/pLaTeX で通常必要な PostScript CMap リソース "H" が見つかりませんでした。これらのファイルが正しくインストールされていない可能性があります。
//dvipdfmx は,PDF 画像のバウンディングボックス判定は独自のルールに従います.
//→仕様上決まったルールがあるわけではありません。それぞれのアプリケーションはそれぞれ独自のルールに従います。dvipdfmx だけが特別おかしなことをやっているような印象操作は不適切です。
// ↑
// いえ,PDF Reference version 1.7 Section 10.10 に
// -CropBox のデフォルト値は MediaBox(Table 10.46)
// -ArtBox,BleedBox,TrimBox のデフォルト値は CropBox
// -上記4つはいずれも MediaBox をはみ出してはいけない(はみ出したらクリップ)
//   (... should not ordinarily extend beyond the boundaries of
//   the media box. If they do, they are effectively reduced to
//   their intersection with the media box.)
// と書かれています。
// つまり,明示されていなければデフォルト値にフォールバックされる,
// さらにはみ出しがあればクリップされるべきです。
// (デフォルト値があるということは,非明示の場合にその値が使われる
// べきであるから,ではないでしょうか? デフォルト値があるのにそこに
// フォールバックされないのであれば,デフォルト値の存在意義は何?)
// dvipdfmx はこの点において仕様と異なるという認識です。
// しかし互換性のために敢えて現在でも旧来の挙動を維持してあります。
//→MediaBox はあくまで紙への印刷を前提としたものなうえ、 ordinarily や effectively
// などの語を使ってあるんですが…
// ↑
// 上記引用前半の記述から,一般の PDF ははみ出していないはずだと留保して
// おきながら,敢えて後半の記述があるということは「一般にははみ出して
// いないはずだが,もし仮にはみ出している PDF があった場合には,実際に
// 使う値はこうあるべきだ(=クリップすべきだ)」とわざわざ指示している
// のだと解釈するのが正しいと思います。実際,pdfinfo などはわざわざこの
// チェックを行って忠実にクリップしています。解釈が自由といわれればそれ
// までですが,妥当な解釈は pdfinfo のほうでしょう。
// dvipdfmx が(余計な)おかしなことをやっているというよりは,むしろ
// dvipdfmx が必要と思しき処理をやっていないというほうが合致します。

  No character mapping available.
  CMap name: H
  input str: <7c>
TeX Live 2016 以降では,\includegraphics に pagebox オプションによって “意図どおりの Box” を指定することができるようになりました.

CMap "H" での文字コード変換に失敗しました。おそらくエンコーディングの指定が誤っています。自身が DVI への出力にどのようなエンコーディングを使っているか把握する必要があります。H (JIS) で未定義の文字コードを使っている可能性もあります。
-[[graphicx パッケージの仕様変更(dvipdfmx オプション)>forum:2211]]
-[[graphicxパッケージでのPDF画像挿入の仕様が変わってヤバイ件:http://qiita.com/zr_tex8r/items/a0516f211831a3fc2c0e]]
-[[ナントカ Box の話(2):http://d.hatena.ne.jp/zrbabbler/20140629/1404010741]](PDF における 5 つの“ナントカBox”)
-[[dvipdfmx で画像する時に色々とアレな話:http://d.hatena.ne.jp/zrbabbler/20140814/1408040710]]
-[[LaTeX で PDF の一部だけ表示したい(1):http://acetaminophen.hatenablog.com/entry/2015/07/18/233500]],[[(2):http://acetaminophen.hatenablog.com/entry/2015/07/19/074258]],[[(3):http://acetaminophen.hatenablog.com/entry/2015/10/19/211705]]

  Glyph missing in font. (CID=19141, code=0x4e23)
// ↑深刻な問題とは何ですか?
// (あれ,やっと http://acetaminophen.hatenablog.com/entry/2015/10/19/211705 で
// 解決したと思ったのだけど.)

お使いのフォントには CID 19141 に対応する文字データがありません。フォントを代えるなどの対処が必要です。
//FIXME
// (※この項目は書きかけです。)

  Failed to load AGL file "glyphlist.txt"...
// ↑ ここに移したかたへ
// たしかにバグと言ってもよいほどナントカ Box の問題は深刻です.
// しかし,いままでの組版結果が変わってしまう可能性
// (例:Illustrator で図版を作成すると毎回 artbox が使われ,余白が
// 勝手にカットされる.この事実を “知っていて” この仕様を逆利用して
// いた場合に,pdfTeX との互換を求めて変更すると cropbox が使われる
// ことになる.ところが Illustrator は cropbox を描かないので
// ある日突然余白が現れるようになったという現象が起きうる)
// を考慮すると,「従来の挙動」は変えられないのです.
// だから pagebox オプションを新設することが決定しました.
// // 確かに.今まで警告を出してこれからサポートしますと言っていたなら
// // それは fix したほうがいいけれど,いきなり変えるのはよくないでしょうね
//
// ↑「従来の挙動」を変えないのは意図された仕様であり,「不具合」ではありません.
// 実際,dvipdfmx とソース基盤を共有している xdvipdfmx では,\XeTeXpdffile を正しく機能させるために,後方互換性を捨てて pdfTeX と互換のバウンディングボックス判定ルーチンが導入されました.
// dvipdfmx のソースを見ると,バウンディングボックス取得ルーチンとして,あえて「互換モード」が用意されていることが分かります.
//「dvipdfmx であってかつ pagebox オプション未指定の場合」にのみあえて「互換モード」が発動するように設計されています.
// ですから,この仕様は今後も変わる予定はないと思われます.
// // 補足説明,ありがとうございます.
// // 「不具合」のところに誰かが記述を移したようなので困っていたのですが,適切なところに移していただいて助かります.

PostScript グリフ名と Unicode との対応を記述したファイル "glyphlist.txt" が読み込めませんでした。(主に欧文フォントで) 稀に文字が欠落したり、生成された PDF ファイルで文字列の検索やコピー & ペーストがうまくいかなくなるかも知れません。

  CMap has higher supplement number than CIDFont: Ryumin-Light
  Some chracters may not be displayed or printed.
*不具合 [#f5e1d97d]

使用している CMap が新しい改訂版であるため、フォント "Ryumin-Light" に含まれない文字が使用される可能性があります。文字が欠落する可能性があり、"Glyph missing in font." の警告が出ないか注意する必要があります。
**dvipdfmx Version 20240305 でのみ起こる不具合 [#a8a0635d]

以下の不具合は TeX Live 2024 (dvipdfmx Version 20240305) に特有のものです.
TeX Live 2023 (dvipdfmx Version 20230429) では問題ありません.
[[dvipdfmx Version 20240407:https://tug.org/svn/texlive?revision=70880&view=revision]] で修正されました.

***ファイルが見つからない場合の対処法 [#x37a3e64]
***dvipdfmx Version 20240305 で PDF ファイルサイズが肥大化する [#le72b5c5]
-[[dvipdfmxのバージョンでPDFファイルサイズが肥大化する>forum:3743]]
-[[dvipdfm-x: fix issue when including the same image multiple times #169:https://github.com/texjporg/tex-jp-build/pull/169]]

ファイルが見つからないというエラーが出た場合は、dvipdfmx がどこを探していてるかを知る必要があります。TeX 関連の多くのプログラムは kpathsea というライブラリにファイル検索を依頼しており、dvipdfmx も kpathsea ライブラリを利用しています。kpsewhich というコマンドラインプログラムがファイルを置くべき場所を知るのに利用できます。例えば、PostScript CMap "H" が dvipdfmx に見える場所にあるか確かめるには
**dvipdfmx Version 20130624 でのみ起こる不具合 [#j774c931]

  kpsewhich -progname=dvipdfmx -format=cmap H
以下の不具合はいずれも TeX Live 2014 (dvipdfmx Version 20140317), TeX Live 2013 (dvipdfmx-20130405) では問題ない,Version 20130624 に特有のものです.
最新のバージョンにアップデートして下さい.

とします。ファイルが存在する場合はその場所が出力されます。空行しか出力されない場合は dvipdfmx の検索パスにファイルが存在しません。CMap ファイルがどこにインストールされているべきなのか知るには
***[[TikZ]] を使用した DVI ファイルを処理すると ** ERROR ** Invalid object type: 10 [#m3330a51]

  kpsewhich -progname=dvipdfmx -show-path=cmap
TeX Live 2014 ([[Revision 31738:http://www.tug.org/svn/texlive?view=revision&revision=31738]], [[Revision 31739:http://www.tug.org/svn/texlive?view=revision&revision=31739]]) で修正されました.

のようにします。区切り文字 (Windows では ";") で区切られたフォルダのリストが出力されます。検索パス等は
-[[[dvipdfmx] tikz のパターン描画でエラー:https://okumuralab.org/tex/mod/forum/discuss.php?d=1081]]

  kpsewhich -a -format=cnf texmf.cnf
***[[hyperref]] で作成したリンクやしおりが機能しない [#x496f09a]

で示されるファイルで設定されています。kpsewhich の使い方については
TeX Live 2014 ([[Revision 31386:http://www.tug.org/svn/texlive?view=revision&revision=31386]], [[Revision 31672:http://www.tug.org/svn/texlive?view=revision&revision=31672]], [[Revision 31691:http://www.tug.org/svn/texlive?view=revision&revision=31691]], [[Revision 31759:http://www.tug.org/svn/texlive?view=revision&revision=31759]]) で修正されました.

  kpsewhich -help
-[[hyperref パッケージの hyperlink が機能しない(OS X10.9.1, MacTeX,TeXworks ):https://okumuralab.org/tex/mod/forum/discuss.php?d=1225]]
-[[hyperref.styによる目次からのリンクが無効:https://okumuralab.org/tex/mod/forum/discuss.php?d=1078]]

などを参照してください。
***A5 サイズ (148mm×210mm) で出力できない [#r12477d0]

**画像の取り込み [#a1cabace]
TeX Live 2014 ([[Revision 31398:http://www.tug.org/svn/texlive?view=revision&revision=31398]]) で修正されました.

dvipdfmx がサポートする画像フォーマットは PNG、JPEG、BMP、JPEG 2000 (2014/08/11 より) および MetaPost が出力した EPS (MPS) です。これに加えて PDF のページも取り込めます。通常の EPS はサポートされていないことに注意してください。通常の EPS ファイルの取り込みでは外部プログラムを呼び出し、dvipdfmx が扱えるフォーマットに変換してから取り込みます。
-[[dvipdfmxでPDF変換した際に紙のサイズが異なる:https://okumuralab.org/tex/mod/forum/discuss.php?d=1073]]

dvipdfmx はダウンサンプルは行いません。画像を埋め込むとファイルサイズが異様に大きくなるような場合は画像加工ソフトで適切な解像度になるように画像のサイズを調整してください。
**dvipdfmx-20120420 で IPAexフォント (Ver.002.01) を使うと ** ERROR ** Could not obtain necessary font info. [#z5173081]

***PostScript ファイルの取り込み [#q1c3abbe]
TeX Live 2013 ([[Revision 28787:http://www.tug.org/svn/texlive?view=revision&revision=28787]]) で修正されました.

PostScript ファイルを取り込む際には通常は GhostScript が自動的に起動し、PDF へ一時的に変換したうえで取り込みます。具体的には dvipdfmx.cfg のオプションの記述を見ましょう:
-[[dvipdfmxでipaexフォントを使うと** ERROR ** Could not obtain necessary font info.:https://okumuralab.org/~okumura/texfaq/qa/56967.html]]
-[[QA: dvipdfmxでipaexフォントを使うと** ERROR ** Could not obtain necessary font info.:https://okumuralab.org/tex/mod/forum/discuss.php?d=917]]

  kpsewhich -progname=dvipdfmx -format=othertext dvipdfmx.cfg
**dvipdfmx-20120420, xdvipdfmx-0.7.8 で [[Lucida>Wikipedia.en:Lucida]] や [[Bitstream Charter>Wikipedia.en:Bitstream_Charter]] のアクセント記号 (発音記号) が表示できない [#za070e82]

で示されるファイルに
TeX Live 2013 ([[Revision 27479:http://www.tug.org/svn/texlive?view=revision&revision=27479]], [[Revision 27480:http://www.tug.org/svn/texlive?view=revision&revision=27480]]) で修正されました.

  D  "rungs -q -dNOPAUSE -dBATCH -dEPSCrop \
          -sDEVICE=pdfwrite ...(略)... -sOutputFile='%o' '%i' -c quit"
dvipdfmx-20120420, xdvipdfmx-0.7.8, dvipdfm, version 0.13.3TL-j-p1d では,[[Lucida>Wikipedia.en:Lucida]] や [[Bitstream Charter>Wikipedia.en:Bitstream_Charter]] のアクセント記号 (発音記号) が表示できません.

のような一行があるはずです。("%" で始まる行はコメント行です) この部分の指示により dvipdfmx は PostScript の図を埋め込むように指示されたとき、自動的に rungs (gs へのラッパー) を起動し PDF へ変換するように動作します。"D" オプションの基本的な書式は
 \documentclass{article}
 \usepackage[T1]{fontenc}
 \usepackage{charter}
 \begin{document}
 chass\'e du G\"obe
 \end{document}

  D command %i %o
以下のように \' や \" の直後に {}$\!\!\!$ を追加すれば表示できるようになりました.

のような形です。ここで "%o"、"%i" はそれぞれ出力 (dvipdfmx が定める一時ファイル名)、入力ファイル名に置き換わります。取り込まれた PostScript の図に問題があるようでしたらこのオプションを見直してください。PostScript ファイルはトラブルの大きな原因です。フォントをすべて埋め込んだはずなのに埋め込まれていないフォントがある。和文フォントを使わないようにしたはずなのに実際は使ってある。など、取り込まれた PostScript ファイルが原因となっている場合があります。また変換が失敗する場合はまず "D" オプションで指定されたコマンドを直接実行してみて、どのようなエラーがでるのか調べてください。dvipdfmx が
 \documentclass{article}
 \usepackage[T1]{fontenc}
 \usepackage{charter}
 \begin{document}
 chass\'{}$\!\!\!$e du G\"{}$\!\!\!$obe
 \end{document}

  Filtering file via command -->rungs -q ...(略)... failed.
  Image format conversion for "./foo.eps" failed...
なお,Type1 フォントの合成済字形(これが seac を使っている)でなくて,TeX 上の合成で事足りるのであれば,アクセント自動置換をごまかして TeX 上の合成を強制することにすればよいでしょう.([[アクセント合成済文字を避ける:http://d.hatena.ne.jp/zrbabbler/20120609/1339257531]] を参照)

のようなエラーメッセージを出力する場合は PostScript の変換プログラムが変換に失敗しています。
 \documentclass{article}
 \usepackage[T1]{fontenc}
 \usepackage{charter}
 \begin{document}
 chass\'{\empty e} du G\"{\empty o}be /
 CHASS\'{\empty E} DU G\"{\empty O}BE
 \end{document}

***SVG を取り込む [#o8c48aab]
-[[Lucida fonts (T1) and dvipdfm.:https://groups.google.com/group/comp.text.tex/browse_thread/thread/429dd838fe75ea40/d26feb9baf78f9d6]]
-[[Diacritics from Bitstream Charter are not translated to PDF:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639373]]
-[[dvipdfmxがBitstream Charterでバグる!:https://twitter.com/h_okumura/status/209849248987090945]]
-[[seac のバグは「構成要素の文字(例だと \'{} e \"{} o)を文書のどこかに紛れ込ませる」と逃げられる,はず.:https://twitter.com/zr_tex8r/status/209880317023109120]]
-[[dvipdfm(x)のseacバグ:https://twitter.com/golden_lucky/status/209924362785140736]]

"D" オプションは EPS ファイルを取り込むためだけのものではありません。これは dvipdfmx がサポートしない形式のファイルを処理するための一般的なものです。Inkscape などに SVG から PDF への変換を依頼して図を取り込むこともできます:

  D "inkscape -z -A %o %i"
*注意点 [#n8c7de22]

**upLaTeX + dvipdfmx で波ダッシュ「〜」(U+301C) が 全角チルダ「~」(U+FF5E) で表示される [#n5909871]

**special コマンド [#p133bd5e]
map ファイルの UniJIS-UTF16-H を unicode に変更するか,ソース中に \AtBeginDvi{\special{pdf:mapline uprml-h unicode :0:msmincho.ttc}} を追加することで解決できます.

dvipdfmx は様々な special 拡張をサポートしています。文書やページの設定を行うものとして
-[[upLaTeX + dvipdfmx で波ダッシュ「〜」(U+301C) が 全角チルダ「~」(U+FF5E) で表示される:https://okumuralab.org/tex/mod/forum/discuss.php?d=1218]]
-[[qa:49109]]
-https://twitter.com/zr_tex8r/status/422752198724825090
-https://twitter.com/zr_tex8r/status/422763693202350080
-[[pLaTeX + dvipdfmx で PUA 文字を何とかする話:http://d.hatena.ne.jp/zrbabbler/20130420/1366451325]]

  papersize landscape pdf:pagesize pdf:encrypt pdf:minorversion
**PNG 画像を取り込むと色が変わってしまうことがある [#g4474796]

や、dvips 由来のもの、HTML 形式のハイパーリンクなど様々です。dvipdfmx 自身も独自の special による拡張機能を持ちます。
Photoshop 等のバグです.
PNG ファイルを一度 [[ImageMagick]] の magick コマンドを通しておくことで回避できます.
問題の画像を foo.png とするとき,

***\special で遊ぶ [#a807a6c0]
 $ magick foo.png foo_c.png

-http://www2.hyo-med.ac.jp/~tanimura/LaTeX/dvipdfmx.html あたりに dvipdfm/dvipdfmx 用の \specail の様々な使用例があります。
として,できた foo_c.png の方を取り込みます.

ファイルを添付:
現在わかっているこの現象の発生条件は「取り込む PNG 画像が cHRM チャンクを持ちかつ gAMA チャンクを持たないこと」です(正確にはこれに加えて iCCP, sRGB チャンクも持たないこと).
Adobe 製品で出力した PNG が該当することがあるようです.

  \special{pdf:fstream @fileobj (ファイル名をここに)}%
  \special{pdf:ann width 5bp height 10bp
             << /Type /Annot
                /Subtype /FileAttachment
                /FS <<
                      /Type /Filespec
                      /F    (ファイル名をここに)
                      /EF   << /F @fileobj >>
                    >>
                /Name /Paperclip
                /C    [0.8 0.4 0.4]
                /T    (タイトルをここに)
             >>
           }%
チャンクの情報を調べるには,ImageMagick の identify コマンドが便利です.

上の例ではまず最初の special で外部ファイルを取り込み、それを fileobj と名付けます。次の special で "添付ファイル" アノーテーションを作ります。出来上がった PDF には小さなグリップが表示され、その上で右クリックするとメニューから添付ファイルを保存できるようになるはずです。(ビューアーによって操作は異なります) このようにして TeX のソースを埋め込んでおくこともできます。
 $ identify -verbose foo.png
 Image: foo.png
   Format: PNG (Portable Network Graphics)
   Mime type: image/png
 ...
   Properties:
     date:create: 2015-05-18T08:31:39+09:00
     date:modify: 2015-05-18T08:31:39+09:00
     png:bKGD: chunk was found (see Background color, above)
     png:cHRM: chunk was found (see Chromaticity, above)
     png:gAMA: gamma=0.45454544 (See Gamma, above)
 ...

ページの開始時に任意の PDF 描画コードを挿入することもできます:
このように,埋め込まれているチャンクの情報が表示されます.
もし png:cHRM がありかつ png:gAMA がない場合は発生条件にあてはまるため,色が変わる可能性があります.
一度 magick を通すと gAMA チャンクが付加されるため,正しく取り込まれるようになります.

  \special{pdf:bop 0.4 0.4 0.6 rg 0 0 596 842 re 72 72 452 700 re f*}
(注意)sRGB チャンクについては,
     png:sRGB: intent=0 (Perceptual Intent)
という表示があっても実際には埋め込まれていないことがあるようです(詳細要調査).

これは余白の部分を塗りつぶします。"bop" はページの開始時に指定された PDF 描画コードを埋め込みます。
問題の背景には,PNG 画像のガンマ補正機能があります.
PNG には制作環境の情報を埋め込むことで,異なるディスプレイ環境でも色の変化を軽減するように補正する機能があります.
この補正のための情報が cHRM チャンクと gAMA チャンクに書き込まれます.
PNG の仕様書では,ガンマ補正値のデフォルト値は規定されず,cHRM チャンクがある場合は gAMA チャンクも書き出すべきとなっているのですが,ソフトウェアの設定によっては cHRM チャンクだけが書き込まれることがあります.
この場合,デコードの際に予期しないガンマ値で補正されてしまうことがあります.
実際に,Adobe 製品などでは PNG のガンマ値のデフォルトが 2.2 (一般的な CRT モニタの値で Windows や最近の Mac の標準)であると仮定して出力しますが,dvipdfmx では gAMA チャンクがない場合にガンマ値を 1.0(PDF のデフォルト値)として出力してしまいます.
このため,色調に変化が生じてしまいます.

Watermark 風のものを入れます:
なお,ICC プロファイルや sRGB チャンクが埋め込まれている場合はそちらの情報が優先されるため,この問題は発生しません.

  \documentclass[]{article}
  \usepackage{bophook}
  \AtBeginDocument{
    \special{pdf:obj @Courier-Bold
      <<
        /Type /Font
        /Subtype /Type1
        /BaseFont /Courier-Bold
        /Encoding /WinAnsiEncoding
      >>
    }
    \special{pdf:eop BT 1 Tr /_Fn01 200 Tf
                     0.707 0.707 -0.707 0.707 72 216 Tm (Sample) Tj ET}
  }
  \AtBeginPage{
    \special{pdf:put @resources << /Font << /_Fn01 @Courier-Bold >> >>}
  }
  \begin{document}
  Hello, world.
  \end{document}
-32bit画像の色がおかしくなる [[forum:1579]]

(bophook.sty が必要です) やや複雑な例です。"obj" はオブジェクトを定義するコマンドでここでは Courier-Bold というフォントを定義しています。"eop" は "bop" とは違って、ページの終了時に指定された PDF 描画コードを挿入します。"put" の部分では resources で識別される辞書オブジェクト (ここではページリソース) に与えられたオブジェクトを追加します。ここではフォントリソースに先ほど定義したフォント Courier-Bold を "_Fn01" という名前で追加しています。

**PDF のバージョンを指定する [#b272a636]
**PDF 画像が意図しない方向に回転してしまう(原因は /Rotate に非対応であること) [#rc8c320a]

-[http://d.hatena.ne.jp/zrbabbler/20140705/1404540914 出力 PDF のバージョン(とか)を指定する], [http://d.hatena.ne.jp/zrbabbler/20140706/1404618797 出力 PDF のバージョン(とか)を指定する(補足)]
-https://github.com/zr-tex8r/BXpdfver
-[http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=690 pdfの図が表示されない]
-[http://d.hatena.ne.jp/zrbabbler/20140530/1401462549 mediabb パッケージが(あまり)役に立たない話]
Adobe Acrobat Pro や Preview.app を使用して PDF を回転させた場合や,Acrobat Distiller や Ghostscript を使用して作成した PDF ファイルの一部で

PDF 1.4 で出力したい場合はプリアンブルに
 dvipdfmx:warning: << /Rotate 90 >> found. (Not supported yet)

 \special{pdf: minorversion=4}
bxpdfver パッケージを使用する場合は
 \usepackage[dvipdfmx,1.4]{bxpdfver}
という警告が出て,ビューアで見た場合と異なる向きに回転して PDF 画像が取り込まれることがあります.
これは,PDF の中に書かれている /Rotate という回転の命令に dvipdfmx が非対応であるためです.
バージョン 20170806 以降では /Rotate に対応しています.XeTeXも
xdvipdfmx-20170806 に対応したものであれば,/Rotate に対応します.
TeX Live では TeX Live 2018 になります.

PDF 1.5 で出力したい場合はプリアンブルに
現状で有効な対処法として

 \special{pdf: minorversion=5}
bxpdfver パッケージを使用する場合は
 \usepackage[dvipdfmx,1.5]{bxpdfver}
-[[pdfcrop]] や [[PDFjam]] などの [[pdfTeX]] 系ツールで前処理する
--たとえば pdfjam なら
 $ pdfjam --fitpaper true in.pdf out.pdf
--たとえば pdfcrop なら
 $ pdfcrop in.pdf out.pdf
-[[Ghostscript]] を使って前処理する
// $ gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dAutoRotatePages=/None -sOutputFile=out.pdf -c .setpdfwrite -f in.pdf
 $ ps2pdf -dAutoRotatePages=/None in.pdf out.pdf   (UN*X 系の場合,または TeX Live (windows) に付属の Ghostscript を使用する場合)
 $ ps2pdf -dAutoRotatePages#/None in.pdf out.pdf   (Windows で別途インストールした Ghostscript を使用する場合)

PDF 1.6 で出力したい場合はプリアンブルに
が考えられます.

 \special{pdf: minorversion=6}
bxpdfver パッケージを使用する場合は
 \usepackage[dvipdfmx,1.6]{bxpdfver}
-[[LaTEXでの画像の表示がうまくできません。:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10151715500]]
-[[dvipdfmx は /Rotate に対応していないという話:http://d.hatena.ne.jp/acetaminophen/20151022/1445516748]]
-[[dvipdfmx は /Rotate に対応していないという話、への対処法:http://d.hatena.ne.jp/acetaminophen/20151023/1445533508]],[[補足編1:http://d.hatena.ne.jp/acetaminophen/20151026/1445828831]],[[補足編2:http://d.hatena.ne.jp/acetaminophen/20151029/1446177917]]

PDF 1.7 で出力したい場合はプリアンブルに

 \special{pdf: minorversion=7}
bxpdfver パッケージを使用する場合は
 \usepackage[dvipdfmx,1.7]{bxpdfver}
**PDF-1.5 以上の図を取り込めない場合がある(2014/08/14 以前の dvipdfmx の場合;原因は /DecodeParms) [#v624328c]

と記述すれば OK です.~
TeX Live 2014 以前の dvipdfmx では,PDF-1.5 以上の一部のファイルについて

コマンドラインオプションで指定することもできます.~
 ** WARNING ** Streams with DecodeParams not supported.
 ** WARNING ** Cannot parse cross-reference stream.
 ** WARNING ** Error while parsing PDF file.
 ** WARNING ** ./hoge.pdf does not look like a PDF file…

 -V number     Set PDF minor version
という警告を吐いて取り込みに失敗することがありました.
これは「dvipdfmx が解釈する必要のある領域に /DecodeParms がある PDF ファイル」に dvipdfmx が未対応だったことによるものです.
2014/08/14 の修正でそのような PDF ファイルにも対応しましたので,TeX Live 2015 以降では問題なく取り込むことができます.

**dvipdfmx を画像キャッシュで高速化 [#y11c4b43]
-TeX Live 2013 以降で使用可能です (→ TeX Live [[Revision 29495:http://www.tug.org/svn/texlive?view=revision&revision=29495]], [[Revision 29512:http://www.tug.org/svn/texlive?view=revision&revision=29512]] でコミットされました)
-[[Image cache in (x)dvipdfmx by Tsuchimura-san:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=1153]]
-[[dvipdfmx を画像キャッシュで高速化:http://oku.edu.mie-u.ac.jp/tex/mod/forum/discuss.php?d=958]]
-図の挿入について [[forum:1588]]
-[[美文書6版で PDF-1.5 の取り込みに関する問題:http://d.hatena.ne.jp/acetaminophen/20150530/1433009781]],[[(続):http://d.hatena.ne.jp/acetaminophen/20150531/1433042929]]

デフォルトでは有効にならないようになっています。~
有効にするにはコマンドラインオプション
 -I number
において、number を正整数にします。~
この数値は、キャッシュが有効な時間を表しています。~
デフォルトで有効にしたい場合、dvipdfmx.cfg の I セクションで
 I 24
のように設定しておきます。~
この場合、一日以内ならキャッシュにイメージがある場合、それを使用することを意味しています。~

**dvipdfmx に extractbb などの名前でシンボリックリンクを作成する [#k882a214]
-[[#美文書 115ページ、「TeX Liveではextractbbやebbは実はdvipdfmxへのシンボリックリンクです」?:https://twitter.com/ti5942/status/273700405341483008]] → [[extractbbのプロパティ:https://twitter.com/ti5942/status/273742359915794432]]
**dvips, dvipdfm, dvipdfmx で \scalebox を使用した場合に dvipdfmx の縦組時のみ他のドライバと挙動が異なる [#he8e8e71]

dvipdfmx はコマンドの名前によって機能を変えることができます.~
[[dvipdfmx.c:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/dvipdfmx.c?view=markup]] の main 関数を見るとコマンド名によって処理を変えています.~
UNIX ではプログラムに複数の機能を実装してシンボリックリンクを使用して別の名前をつけることで機能を変えることは普通に行われます.~
これは,graphics/x パッケージの dvipdfm ドライバでは dvips 互換な PostScript specials を用いるのに対し,dvipdfmx ドライバ は PDF 用 specials を用いるように改良されていることが原因です.
ZR さんによるパッチ([[pxtatescale パッケージ:https://gist.github.com/zr-tex8r/5237259]])を読み込むと解決できます.

**DVI ファイルが存在しない PDF ファイルを削除する [#i282b26a]
-[[\scaleboxの縦組時挙動に付いて:https://okumuralab.org/tex/mod/forum/discuss.php?d=961]]

dvipdfmx には DVI ファイルが存在しない PDF ファイルを削除する機能があります.

 PS C:\Users\$Env:USERNAME> dvipdfmx test
 test.dvi -> test.pdf
 
 ** ERROR ** Could not open specified DVI file: test.dvi
 
 Output file removed.

*関連リンク [#me536d1a]
-[[Unofficial LaTeX graphics drivers - 概要 [Puszcza]:http://puszcza.gnu.org.ua/projects/latexfmxdef]]
-[[Newest &#39;dvipdfmx&#39; Questions - TeX - LaTeX:http://tex.stackexchange.com/questions/tagged/dvipdfmx]]
-[[Dvipdfmx - MyTeXpert:http://mytexpert.sourceforge.jp/index.php?Dvipdfmx]]
-[[「dvipdfmx」の検索結果一覧 - マクロツイーター:http://d.hatena.ne.jp/zrbabbler/archive?word=dvipdfmx]]
-[[PXchfon パッケージ ~pLaTeX文書のフォントを簡単に変更~ [電脳世界の奥底にて]:http://zrbabbler.sp.land.to/pxchfon.html]]
-[[dvipdfmx : いわにぃのブログ:http://blog.livedoor.jp/ti5942/tag/dvipdfmx]]
-[[dvipdfmx は括弧入り eps がお嫌いのようです:http://d.hatena.ne.jp/naga_sawa/20130115/1358217658]]
-[[dvipdfmxのみを用いたpdfファイルサイズの圧縮:http://yonishi.cocolog-nifty.com/weblog/2011/05/dvipdfmxpdf-ebe.html]]
-[[standalone クラスは dvipdfmx でも使えるような気がする:https://gist.github.com/zr-tex8r/3845085]]
-[[LCDF TypetoolsでOpenTypeフォントを使う(DVIPDFMXで):http://dev.activebasic.com/egtra/2012/12/18/522/]]
-[[The DVIPDFMx Project:http://project.ktug.org/dvipdfmx/]]
-[[DVI specials for PDF generation:http://project.ktug.org/dvipdfmx/doc/tb94cho.pdf]] (PDF)
//-[[EPS の負座標が欠ける問題:http://emath.a.la9.jp/xdir/bbs/treebbs.cgi?kako=1&all=8805&s=8840]]
//-[[dvipdfm(x)にはご注意を:http://emath.a.la9.jp/xdir/bbs/treebbs.cgi?kako=1&log=5586]]
// ↑これらは単に dvipdfmx.cfg の設定が悪かったというだけの話のようです.設定が悪いのを dvipdfmx に責任転嫁するのは考えものです.
//-[[いかなる意味の印刷もしないのならばdvipdfmxの利用は考えてもいいかもしれない:https://twitter.com/p_typo/status/624638576509059072]]
// ↑これはどういう意味ですか?背景説明なくこのリンクだけでは意味が分かりません.

**ライセンス [#w1524716]

[[GPLv2:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/COPYING?view=markup]]

**ChangeLog [#he60a3d0]

-[[[texlive] Index of /trunk/Build/source/texk/dvipdfm-x:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/]]
--[[log:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/?view=log]]
--[[ChangeLog:http://www.tug.org/svn/texlive/trunk/Build/source/texk/dvipdfm-x/ChangeLog?view=markup]]
-[[[texlive] Contents of /trunk/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def:http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def?view=markup]]
--[[log:http://www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/graphics-def/dvipdfmx.def?view=log]]