* 古い情報 [#e8f970ff]

このページは TeX Forum のディスカッショントピック [[forum:1477]] を元に作成されました.

TeX Wiki には大勢の皆様のご尽力により「最新の TeX 情報」が多く掲載されています.
ただその反面,古い情報は次々と削除され,あとから参照するには

- [[バックアップ一覧:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?cmd=backup]]
- 各項目の個別ページ上部のバックアップ
- [[TeX Wiki の Internet Archive:http://web.archive.org/web/*/http://oku.edu.mie-u.ac.jp/~okumura/texwiki/]]

を参照するほかありません.しかし,

- 何らかの事情で古い TeX を使っている方
- 古い TeX 環境から新しい環境に乗り換えたい方

にとっては,重要な変更点を効率よく知りたい場合があるかもしれません.

一方,一般の Web 上の情報は時に古い「バッド・ノウハウ」をあたかも最新であるかのように伝承し続けることがあります.

そこで,一つの案として「古い情報」という本項目を作成し,重要な変更点を削除する代わりにこちらへ情報を移動するというご提案です.

- 以前は推奨されていたが,現在の最新の環境では非推奨とされているノウハウと,現行の代替ノウハウの解説
- TeX ディストリの重要な仕様変更

などの情報が集まることを想定しています.

// とりあえず試験的に設置しました.(2015-01-10)

----
#contents
----


** TeX ディストリビューションの重要な仕様変更 [#u592b4c3]

*** [[W32TeX]] のディレクトリ名の変更 [#c4916968]
-2007 年 7 月 31 日以降の W32TeX では,一旦 $TEXMF/ptex に変更されていたディレクトリ名が $TEXMF/tex に戻りました.
このため,それ以前の W32TeX からアップデートする際には,古いものをアンインストールしてから行うか,少なくとも $TEXMF/ptex ディレクトリを消してください.
-2013 年 4 月 8 日以降配布されている W32TeX では,それ以前の
 share/texmf
なるディレクトリ名が
 share/texmf-dist
に変更されています.
これは「TeX Live 2013 で,texmf と texmf-dist が texmf-dist に統一されるため,できるだけ近い状態にするため」です.
このため,それ以前の W32TeX から最新にアップデートする場合は注意してください.

*** extractbb の自動実行を許可 [#rf074b4b]

[[TeX Live]] 2014 以前,[[MacTeX]]-2014 以前では,(u)pLaTeX + dvipdfmx で画像を挿入するために必要な extractbb というプログラムの実行は自動化されていませんでした((これは,TeX Live 2013 までの extractbb が画像ファイルと同じフォルダに .xbb というファイルを出力する仕様であったため,作業ディレクトリでないフォルダを余分なファイルで汚すことは認めないという方針に反したからです.画像ファイルは,作業ディレクトリでないフォルダに存在することもあることに注意して下さい.これは TeX Live 2014 で .xbb ファイルを出力しない仕様に変更されました.)).
このため,graphicx パッケージを用いて画像を挿入するためには

-あらかじめ extractbb を実行して .xbb ファイルを作成する
-texmf.cnf を編集して extractbb の自動実行を許可する設定を行う

のいずれかの作業が必要でした.
TeX Live 2015 では extractbb の自動実行が許可されましたので,特に設定する必要がなくなりました((従来も [[W32TeX]] をお使いの場合や,[[美文書第6版:http://oku.edu.mie-u.ac.jp/~okumura/bibun6/]]からインストールした場合は,texmf.cnf の shell_escape_commands に extractbb が指定されていましたので,特別な作業は不要でした.)).
以下に「自動実行を許可」する方法をアーカイブとして残しておきます.
より詳細には[[外部コマンドの実行]]を参考にしてください.

-Windows の場合は C:\texlive\texmf-local\web2c\texmf.cnf
-OS X, Linux の場合は /usr/local/texlive/texmf-local/web2c/texmf.cnf

というファイルに

 shell_escape_commands = \
 bibtex,bibtex8,bibtexu,pbibtex,biber,\
 kpsewhich,\
 makeindex,mendex,texindy,xindy,\
 mpost,pmpost,upmpost,\
 repstopdf,epspdf,extractbb

を書き足し,管理者権限で

 mktexlsr

を実行します.これで,extractbb を含むコマンドが自動実行されるようになります.
仮に Unix 系で管理者権限のないアカウントをお使いの場合は,以下の記事を参照してください.
-[[管理者権限(sudo)無しで extractbb の自動起動を有効化する:http://qiita.com/zr_tex8r/items/6f6034d04eddb63ac15b]]


** 以前は推奨されていたが,現在の最新の環境では非推奨とされるノウハウ [#nc0a5e50]

*** 図の挿入:graphicx パッケージ・color パッケージのドライバ指定 [#g29113d8]

graphicx パッケージや color パッケージを読み込む場合,昔は「DVI ウェアとして [[dvipdfmx]] を用いる場合は,ドライバ指定(オプション)は “dvipdfm” を指定します」と説明されていました.

 \usepackage[dvipdfm]{graphicx,color}

しかし,現在(2007 年以降)では dvipdfmx 用のドライバが用意されているので,ドライバオプションは “dvipdfmx” とすることが推奨されます.((『LaTeX2ε美文書作成入門』では,改訂第4版から dvipdfmx オプションが登場しており,改訂第5版では dvipdfm オプションのほうは原則として出現していないようです.(ただし,[[Beamer]] のところでは [[hyperref]] の dvipdfmx オプションが安定していなかったか何かの理由で,例外的に dvipdfm が指定されています.)))

なお,ドライバオプションについては,多くの場合,

 \usepackage[dvipdfmx]{graphicx}

のようにパッケージ毎に指定すると説明されています.
しかし実際は,文書クラスのオプション(グローバルオプション)として指定することも可能です.
(この場合,dvipdfmx オプションをサポートするパッケージの全てについて自動的に適用されます.)

 \documentclass[a4paper,dvipdfmx]{jsarticle}

こちらの方がトラブルが起こりにくいため,最近ではこの方法が推奨されています.

画像挿入については[[LaTeX入門/図表]]に基本事項の解説があります.

-参考:[[graphicx と color の危険な関係:http://qiita.com/zr_tex8r/items/442b75b452b11bee8049]]

*** 図の挿入:mediabb パッケージ [#m31e6ff8]

[[dvipdfmx]] の前身である古い dvipdfm を使っていた時代には,現在の「extractbb の自動実行」に相当する機構がなかったため,ユーザが手動で ebb(extractbb の前身)を起動する必要があり,この面倒を解決する手段として,[[mediabb パッケージ>http://www.ma.ns.tcu.ac.jp/Pages/TeX/mediabb.sty.html]]が用いられていました.
これは「TeX プログラムで PDF 文書を簡易解析してそのバウンディングボックス情報を取得する」というものです.

しかし,mediabb パッケージは dvipdfm(あるいはかなり昔の dvipdfmx)での利用を前提としています.
従って,(新しい)dvipdfmx と一緒に使うことは全く考慮されておらず,その場合の動作は未定義です(全般的にかなり不合理な挙動を示します).
また,PDF ファイルの構造によっては mediabb パッケージによる簡易解析が失敗することがあり,特に最近のソフトウェアが出力する PDF ファイルではほとんどの場合失敗してしまいます.

-mediabb.styはW32TeXで使えますか [[forum:1354]]
-[[mediabb パッケージが(あまり)役に立たない話:http://d.hatena.ne.jp/zrbabbler/20140530/1401462549]]
-[[dvipdfmx で mediabb できない件(1):http://d.hatena.ne.jp/zrbabbler/20140803/1407089421]],[[(2):http://d.hatena.ne.jp/zrbabbler/20140804/1407167938]]

mediabb パッケージを使わずに \usepackage[dvipdfmx]{graphicx} とし,extractbb を使ってバウンディングボックスを取得する方法を使ってください.
[[LaTeX入門/図表]]に基本事項の解説があります.

※比較的新しい(2015年に書かれた)ブログ記事等でも,mediabb パッケージを使って PDF 形式の図を pLaTeX + dvipdfmx で挿入するという方法が解説されていることがありますので,注意してください.

*** dvipdfm の使用 [#pe307fc6]

dvipdfm と dvipdfmx は別のものなので,DVI ウェアとして dvipdfm を利用する場合は graphicx・color パッケージのドライバ指定は dvipdfm にする,というのが正しい方法でした.
ところが,現在(2013 年以降)の TeX Live / W32TeX では,(複雑な経緯があって)dvipdfm のドライバが事実上使えない状態になっています.
(TeX Live では実際にドライバファイル dvipdfm.def が削除されています.)

-[[dvipdfm 終了のお知らせ(ただし2年前):http://d.hatena.ne.jp/zrbabbler/20150916/1442413624]]

従って,graphicx・color パッケージを読み込む場合は,dvipdfm 以外の DVI ウェア(dvipdfmx など)を利用する必要があります.

*** 古い形式のコマンド・パッケージ・作法 [#g5e418af]

[[使ってはいけない LaTeX のコマンド・パッケージ・作法:http://ichiro-maruta.blogspot.jp/2013/03/latex.html]]に書かれているものを挙げておきます.
-{\bf ...} や {\it ...} のようなフォントスタイル変更(紛らわしいが,\em は古いコマンドではない)
--\textbf{...} や {\bfseries ...} のように書くのが正しい.
--なお,\bf と \bfseries は等価ではない.
「Microsoft Word の [B] ボタン」に相当するのは後者のほう.
-eqnarray 環境,eqnarray* 環境
--amsmath パッケージが提供する align 環境,align* 環境を使う.
-$$...$$ によるディスプレイ数式,displaymath 環境
--\[...\] を用いる.$$...$$ は「古い」ではなく,そもそも LaTeX では間違い.
--参考 [[1:https://twitter.com/zr_tex8r/status/597749305164759041]] [[2:https://twitter.com/zr_tex8r/status/597766041196867586]]
-figure 環境の中の center 環境
--\centering というコマンドが存在する.
-graphics パッケージ
--graphicx パッケージを用いるべき.
//↑Maruta 氏の記事も l2tabu も「graphics がタブー」とは言っていないのだが?
-EPS 形式の図(完全に不可とまではいえないが,最近なら他の画像形式がベスト)
--[[日本人のための LaTeX タブー集 ~画像読込編~:http://qiita.com/zr_tex8r/items/5413a29d5276acac3771]]
---Adobe Acrobat Distiller DC を持っていないのに dvips を使っている人に: dvips を使う理由はなんですか?
---dvipdfmx を使っているのに EPS 画像を使っている人に: EPS 画像を使う理由はなんですか?
---参考 [[1:https://twitter.com/h_okumura/status/235553029003304960]] [[2:https://twitter.com/h_okumura/status/361278182499954688]] [[3:https://twitter.com/h_okumura/status/355652033468039169]] [[4:https://twitter.com/h_okumura/status/142110946217832448]] [[5:https://twitter.com/h_okumura/status/142107817988460544]] [[6:https://twitter.com/h_okumura/status/83659755138195456]]
[[7:https://twitter.com/h_okumura/status/612792211730608128]]
[[8:https://twitter.com/h_okumura/status/612868673523441665]]
[[9:https://twitter.com/h_okumura/status/613129201596542976]]
-subfigure パッケージ,subfig パッケージ
--subcaption パッケージのほうが互換性に優れるらしい.
-appendix 環境
--\appendix というコマンドが存在する.
-\oddsidemargin などの調整,\hoffset, \voffset の変更
--よほど理解している人しかいじってはいけないパラメータ.[[geometry]] などを推奨.
-article.cls, report.cls, book.cls, jarticle.cls, jreport.cls, jbook.cls
--「古い」わけではないが,余白が広いと感じるなら,ほかのクラスファイルを使う.
--jarticle.cls, jreport.cls, jbook.cls は JIS 組版規則に合わないので,jsarticle.cls や jsbook.cls のほうが好まれる.
// ここから先はどのくらい NG なんでしょう?
-enumerate パッケージ,mdwlist パッケージ
-fancynum パッケージ,SIstyle パッケージ,SIunits パッケージ,units パッケージ,unitsdef パッケージ
-mathptm パッケージ,pslatex パッケージ,times パッケージ

*** DVI ファイルでのプレビュー:dviout や xdvi の利用 [#je1d5241]

TeX 出力をプレビューする場合に,以前は Windows 環境では [[dviout]], Linux 環境では [[xdvi]] による DVI ファイルのプレビューがよく用いられていましたが,dviout には

-挿入した画像が適切に表示されない
-CID に完全対応していない(Adobe-Japan1 の CID 直接参照の機能は無い)
--代わりに CID → Unicode の変換を経由した表示機能があるが,不完全
--このため,[[OTF]] パッケージに完全対応していない
-PDF や PostScript の機能に強く依存するパッケージに未対応
--非対応パッケージ例:[[TikZ]], [[PSTricks]], [[media9]]

などの問題があります.xdvi には日本語が表示されない不具合が生じる場合があります.

また,最終的には dvipdfmx をもちいて PDF ファイルを出力することが多いと思いますが,この場合「編集中は dviout」「最後は dvipdfmx」という二つの dviware を使わなければならず,トラブルが起こりがちです.

こうした問題は,DVI ではなく PDF ファイルでプレビューをすれば解決できます.
「Adobe Acrobat Reader DC ではファイルがロックされてしまって使い物にならなかった」と思われるかもしれませんが,以下に挙げるように Adobe Acrobat Reader DC 以外の多くの PDF ビューワではロックされずに快適にプレビューすることができます.

-Windows の場合:[[SumatraPDF]], [[TeXworks]], [[TeXstudio]]
-OS X の場合:[[TeXworks]], [[TeXShop]], [[TeXstudio]], [[Skim]]
-Linux の場合:[[Evince]], [[Okular]], [[zathura]], [[qpdfview]], [[TeXworks]], [[TeXstudio]]

src-special による相互参照機能についても,同等のことが [[SyncTeX]] によって実現できます.

*** 統合環境:WinShell の利用 [#zc6d6db5]

Windows 環境の統合環境として,以前は [[WinShell]] がよく用いられていましたが,WinShell には

-エンコーディングが UTF-8 の場合に主なTeXプログラムの設定の [LaTeX] と [PDFLaTeX] に設定されているプログラム (初期設定では pLaTeX や pdfLaTeX) を実行すると Runtime Error! が発生する
-エンコーディングが ShiftJIS の場合に,いわゆる「ダメ文字」による文字化けが回避できない
((ダメ文字をファイル名に含む場合に,[[e-pTeX>e-pTeX#p4d23466]] に書かれているように -jobname= で指定してコンパイルする方法がありますが,WinShell でこの方法を用いるとクラッシュします.))

という問題があります.
このため,Unicode 対応の [[upTeX>upTeX,upLaTeX]] を使うことができませんし,日本語での使用にも適していません.
UTF-8 エンコーディングに対応した他の統合環境を利用してください. → [[TeX 用統合環境・エディタ>TeX用エディタ]]

% [[TeX 用統合環境・エディタ>TeX用エディタ]] のページでは,UTF-8 対応かどうかに対応するカラムがないのですよね.「ライセンス」のカラムを作った時点で,「ウェア」のカラムを無くして,UTF-8 対応かどうかのカラムを付ければよかったのですが,編集する時間がなくて,アイディアがお蔵入りになってしまっています.-- kuroky

* 現在使用している TeX のバージョンを確かめる方法 [#c58f91c1]

全ての TeX エンジンは,オプション --version を付けてコマンドラインで実行すると,
バージョン情報を表示します.例えば,
 tex --version
現在配布されている TeX エンジンの主なものには,次のようなものがあります:
 tex, pdftex, (etex は pdftex と同じもの), aleph, xetex,
 luatex, luajittex, ptex, eptex, uptex, euptex,
 jtex (TeX Live, tlptexlive にはなし), ptex-ng (TeX Live にはなし).
沢山ありますが,主として使用されているものは
 pdftex, xetex, luatex, eptex, euptex
です.なお全ての TeX エンジンはオプション --help を付けてコマンドラインで実行すると,
使用法を表示します.使用法を確認するのは良いことです.例えば,
 tex --help

* コメント [#b385028a]
- 「古い形式のコマンド・パッケージ・作法」の項,リンク先の内容の検証はいかがでしょう?(ほんとうに「古い」と言っていいのかどうか) -- アセトアミノフェン &new{2015-01-17 (土) 19:37:05};

#comment