天地有情

[LaTeX][l2tabu] LaTeX2e タブー集

[LaTeX][l2tabu] LaTeX2e タブー集

 <l2tabuen.pdf(英語版)(2007年版)> を基本に要約して記述しています.
 7年前の情報ですので古い情報が含まれているかも知れません.
 和文関係もいくつか追加したりしています.

タブー集の入手先:http://www.ctan.org/pkg/l2tabu-english

Title: An essential guide to LATEX2e usage
    (Obsolete commands and packages)

Author: Original German version by Mark Trettin
     English translation   by Jürgen Fenn

─────────────────────────────────────────────────
§1. "大罪”-- LaTeX2eのを使用して,最も深刻な過ち
─────────────────────────────────────────────────
このセクションでは恐らく,de.comp.text.tex に幾たびも掲載された,最も深刻な間違いを集めました.

1.1 a4.sty, a4wide.sty は使わない

これら2つのパッケージは,もはや使用しないでください.代わり a4paper class オプションを使用します.

補足:
タイポグラフィの観点からいえば,これらのパッケージは,適切なレイアウトを提供していません.
さらに悪いことには,これらには,パッケージの複数のバージョンがあり,それらのパッケージの異なるバージョンでは,
ページの余白のための逸脱設定を提供し,相互に互換性がありません.

1.2 ページレイアウトの変更

標準クラス(article.cls,report.cls,book.cls)によって生成されたページの余白は,
多くの場合,欧州のユーザー達の間では広すぎると見なされています.
代わりに KOMA-Script バンドルから対応するクラス(scrartcl.cls,scrreprt.cls,scrbook.cls)の使用が好まれています.
これらのクラスは,欧州のタイポグラフィのビューがなされています.
また,他の文書クラスでも,KOMA-Script の一部である typearea.sty を使用してページ余白の調整ができます.

typearea.styによって生成されるものとはまったく異なるページ余白を使用する必要がある場合は,
geometry.sty または vmargin.sty を利用する必要があります.

ページレイアウトを変更するための \oddsidemargin または同様のコマンドを使用しないでください.
あなたは本当に TeX はここに何をしているか理解するまでは \hoffset,または \voffset を変更しないでください.

補足:
(1)KOMA-Script や typearea.sty などについて,概要を知るには,次が参考になるでしょう.
   http://konoyonohana.blog.fc2.com/blog-category-12.html

(2)和文クラスの場合には 奥村晴彦先生の jsclasses(jsarticle,jsbook)を推奨します.

1.3 パッケージとドキュメントクラスを変更するには

パッケージとドキュメントクラスを変更したい場合には,
直接に,LaTeXクラスファイル(例えば,article.cls,scrbook.cls)またはパッケージ(スタイルファイル,例えば,
varioref.sty,color.sty)を変更しないでください.
クラスファイルあるいは,スタイルファイルをコピー,編集して別のファイルとして保存するようにしましょう.

これらのクラスファイル,またはパッケージは [texmf-local]に インストールし,TeXディストリビューションを
アップグレードする場合に上書きされないようにします.

1.4 \baselinestretch を使用した行間スペースの変更

ライン間のスペースをリセットしたいのであれば,あなたは3つのレベルで,これを行うことができます.

1.setspace.sty パッケージを使用するか.
2.LaTeXコマンドの \linespread {} を使うこともできます.
3.\baselinestretch で再定義することができます.

\linespread コマンドは,\baselinestretch をいじるよりも,ライン間のスペースを得るためのより良い方法です.
「Computer Modern」以外のフォントを使用したい場合は,\linespread {} を使用することができます.

1.5 段落のインデントと段落のスプレッド(\parindent,\parskip)

段落の最初の行のインデントを変更する場合,意味があります.(\parindent)
その場合,次の点に注意してください.

●段落のインデントを変更するために絶対的なサイズ(例えば,'mm')を使用しないでください.
 例えば, 'em'などのフォントサイズに依存するサイズを使用してください.
●常にLaTeXコマンドを使用します.保守が容易になります.
 他のパッケージとの互換性に関する問題を回避することができる.

Replace: \parindent=1em → \setlength{\parindent}{1em}

新しい段落(「ゼロ段落インデント」)の開始をマークするために,段落のインデント,段落の間にいくつかの追加のスペースを
好みます.

\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}

リスト環境,目次など,および見出しの設定を変更に\parskipを使用するべきではありません.

1.6 $$...$$ は使用しない

$$...$$ は Plain TeXコマンドです.それは,一貫性のない数式内の垂直方向の余白間隔を変更します.
それがLaTeXでは避けなければならない理由です.しかも,クラスオプション fleqn はもはや機能しません.

Replace: $$...$$ →  \[...\]
            or
            \begin{displaymath} ... \end{displaymath}

1.7 \def 対 \newcommand

マクロを定義するためには常に,\newcommand{\}{...} を使用します.
\def\{...} を使用することはありません.

\defの主な問題は,すでに同じ名前の別のマクロが存在するかどうかのチェックが行われないことです.
だから先に定義されたマクロは,すべてのエラー,警告なしに上書きされる可能性があります.

\renewcommand{\}{...} を使用して再定義することができます.

あなたが\defを使用する必要がある理由を知っている場合は,おそらく,
このコマンドの長所と短所を知っているはずです.

1.8 \sloppy 使用する必要がありますか?

率直に言って,\sloppy スイッチは全く使用してはなりません.
最も顕著なのは,ドキュメントの前文には使用しないでください.
TeXが行分割のために使用するパラメータ,および page-breaking を変更してください

─────────────────────────────────────────────────
§2. いくつかの廃止されたコマンドやパッケージ
─────────────────────────────────────────────────

Markus Kohmは,最も一般的なミスのために,オンラインであなたのファイルをテストすることができる
Perlスクリプトを書いています.
http://kohm.de.tf/markus/texidate.html

最初にファイルをテストしてみてください.

2.1 廃止されたコマンド
2.1.1 フォントスタイルの変更

Table 1は,フォントスタイルを変更するために廃止されたコマンドと対応するLaTeX2eの側の「適切な」コマンドです.

Table 1: フォントスタイル変更のコマンド

tabu01.png


■■なぜ廃止されたコマンドを使用しない?■■

廃止されたコマンドはLaTeX2eのの新しいフォント選択方式,または NFSS をサポートしていません.
例えば {\bf foo},それは太字での foo をプリントする前に,先に設定されていたすべてのフォント属性をリセットします.

その理由は,単に {\it \bf Test} のみで bold-italics styleを定義することはできません.
一方,新しいコマンド \textbf{\textit{Test}} は予想通り動作します:

tabu03.png


2.1.2 数学の分数 (\over 対 \frac)

\overコマンドは避けてください.
\over に起因して,LaTeXの異なる構文に解析するか,すべてに解析できない場合でも,より複雑なTeXコマンドです.

amsmath.sty パッケージには,\over 使用した場合,エラーメッセージが表示されるように \frac{}{} を再定義します.

\frac{}{} を使用することの有利なもう一つのポイントは,それが,特により複雑な分数を,分数の分子と分母の両方を
記入することが容易であるということです.

Replace: $a \over b$ → $\frac{a}{b}$


2.1.3 \centerlineを使用したテキストの中央揃え

\centerline コマンドは TeX コマンドです.使用しないでください
\centerline は,いくつかの LaTeX パッケージと互換性がありません.
一方でパッケージが予期しない結果をもたらす可能性があります.

tabu02.png


Replace: \centerline{...} →  {\centering ...}
                 or
                 \begin{center} ... \end{center}

2.2 クラスファイルとパッケージ

2.2.1 scrlettr.cls 対 scrlttr2.cls

KOMAスクリプトバンドルから scrlettr.cls が廃止され,それは scrlttr2.cls に置き換えられました.
旧KOMA-Scriptのクラスに似たレイアウトを生成するために互換モードを提供するクラスオプション KOMAold を
使用します.

Replace:
\documentclass{scrlettr} → \documentclass[KOMAold]{scrlttr2}


2.2.2 epsf.sty, psfig.sty, epsfig.sty 対 graphics.sty, graphicx.sty

epsf.sty と psfig.sty パッケージは graphics.sty と graphicx.sty に置き換えられています.
graphics.sty または graphicx.sty は新規ドキュメントで優先されるべきです.

Replace: \usepackage{psfig}    →  \usepackage{graphicx}
     \psfig{file=image,...}     \includegraphics[...]{image}

2.2.3 doublespace.sty 対 setspace.sty

doublespace.sty は廃止されています.それは setspace.sty に置き換えられました.
ライン間のスペースを変更するために setspace.sty パッケージを使用します.

Replace: \usepackage{doublespace} → \usepackage{setspace}

2.2.4 fancyheadings.sty, scrpage.sty 対 fancyhdr.sty, scrpage2.sty

fancyheadings.styパッケージは fancyhdr.sty に置き換えられました.
見出しを変更するもう一つの方法は,KOMAスクリプトバンドルから scrpage2.sty パッケージで提供されています.

Replace: \usepackage{fancyheadings} → \usepackage{fancyhdr}
Replace: \usepackage{scrpage}    → \usepackage{scrpage2}


2.2.5 caption.sty パッケージのファミリー

caption.sty の新バージョン(バージョン3.x)があるので,caption2.sty パッケージは,もはや使用する必要がありません.
このような caption.sty をロードすることによって,このパッケージの最新バージョンを使用していることを確認してください.

Replace: \usepackage{caption} → \usepackage{caption}[2004/07/16]

2.2.6 入力エンコーディング

入力エンコーディングを設定するため,isolatin1.sty, isolatin.sty,またはumlaut.sty パッケージを使用しないでください.
これらのパッケージは,いずれか廃止され,またはそれらは任意の与えられたシステムでは利用できません.

inputenc.sty 使用します.利用可能な 4つ のオプションがあります.

● latin1/latin9 ----- Unixライクなシステム用(latin1は,MS WindowsとMac OS X上で動作します)
● ansinew    ----- MS Windows用
● applemac    ----- Macintosh用
● cp850     ----- OS/2用

Replace: \usepackage{isolatin1} → \usepackage[latin1]{inputenc}
Replace: \usepackage{umlaut}   → \usepackage[latin1]{inputenc}


補足:
(1)特に便利なエンコーディングは,UTF-8(8bitのUnicode)です.これを指定するには,
    \usepackage[utf8]{inputenc} とします.
(2)オプションの種類は texmf-dist/tex/latex/base/*.def を参照してください.

2.2.7 t1enc.sty 対 fontenc.sty

t1enc.styは廃止され,したがって fontenc.sty に置き換えなければならないということです.

Replace: \usepackage{t1enc} → \usepackage[T1]{fontenc}

2.2.8 natdin.bst 対 dinat.bst

スタイルファイル natdin.bst は dinat.bst に置き換えられました.

Replace: \bibliographystyle{natdin} → \bibliographystyle{dinat}

2.3 フォント

'Fonts and LaTeX’は面倒な話題です.
de.comp.text.tex のほとんどの議論はフォントは,Adobe Acrobat Readerで「fuzzy」と表示された理由の質問で始まります.
ほとんどの答えは times.sty または psLaTeX.sty パッケージを指しています.
しかし,これらのパッケージは,フォントの完全に異なるセットを使用しています.

2.3.1 times.sty

times.styは廃止されています.
それは,次のようにセットされています.

\renewcommand{\sfdefault}{phv} %Helvetica
\renewcommand{\rmdefault}{ptm} %Times
\renewcommand{\ttdefault}{pcr} %Courier

しかし,それは対応する数学的なフォントを使用していません.
しかも,Helveticaは,それが比較して大きすぎる見えます.これは正しくスケーリングされません.

Replace:
\usepackage{times} → \usepackage{mathptmx}
            \usepackage[scaled=.90]{helvet}
            \usepackage{courier}


Note: timesとhelvet.styためのスケーリング係数は0.90と0.92の間のどこかである必要があります.

補足:
(1)LaTeX で本文と数式をTimes系フォントにするパッケージでお薦めできるものとして,
    txfonts, newtx, mathptmx があります.
(2)newtx.sty は数式部分と本文で別のスタイルファイルになっており
    \usepackage{newtxtext,newtxmath}のようにして使います.

2.3.2 mathptm.sty

mathptm.sty は mathptmx.sty の以前にあったものです.
Times に数式を組版するために,mathptmx.sty を使用してください.

Replace: \usepackage{mathptm} → \usepackage{mathptmx}

2.3.3 psLaTeX.sty

psLaTeX.sty は内部で mathptm.sty + helvet.sty(scaled)のように動作します.
しかし,あまりにも狭いスケーリングの Courierフォントを使用しています.

psLaTeX.sty を使用する際の主な欠点は,T1 および TS1エンコーディングで動作しないということです

Replace:
\usepackage{psLaTeX} → \usepackage{mathptmx}
             \usepackage[scaled=.90]{helvet}
             \usepackage{courier}


2.3.4 palatino.sty

palatino.sty は times.styのように動作します.
palatino.sty も廃止されています.これ以上,使用してはならない理由です.

Replace:
\usepackage{palatino} → \usepackage{mathpazo}
              \usepackage[scaled=.95]{helvet}
              \usepackage{courier}


Note: Palatinoとの組み合わせでhelvet.styのスケーリング係数は0.95に設定する必要があります

補足:
(1)古いpplファミリでは機械的な変形によるものでしたが,今のpplxやppljファミリでは美しく再デザイン
   されました.
(2)\usepackage{mathpazo} あるいは,\usepackage{newpxtext,newpxmath}とすれば新しいPalatinoとなります.

2.3.5 mathpple.sty

mathpple.sty は,mathpazo.sty の以前にあったものです.これは,いくつかの記号フォントを欠いています.
代わりに Euler fonts から取得されます.
フォントメトリックが正しくないなどの他の記号は,Palatino での使用には向いていません.

2.3.6 euler.sty 対 eulervm.sty

数学的な組版のため euler.sty の代わり eulervm.sty を使用してください.

eulervm.sty は eulervmフォントを使用するための LaTeXパッケージです.
これらは,EulerとCM fontsの両方に基づいた,仮想数学フォントです.

TeXリソースの少ない消費と,いくつかの改良された数学記号を供給します.
改善された \hslash と \hbar 定数の記号も供給されています.

Replace: \usepackage{euler} → \usepackage{eulervm}

──────────────────────────
§3. その他雑件
──────────────────────────

3.1 フロート環境 —‘figure’, ‘table’

フロート環境の中央配置のために,\begin{center} ... \end{center} の代わりに 余分な空白を取り除きくため,
\centering をお勧めします.

Replace:
\begin{figure}        \begin{figure}
\begin{center}        \centering
\includegraphics{bild}  → \includegraphics{bild}
\end{center}         \end{figure}
\end{figure} 
        

3.2 付録(\appendix)

付録は\appendix コマンドが導入されています.これは環境ではないことに注意してください.

Replace: \begin{appendix}
\section{Blub}      → \appendix
\end{appendix}        \section{Blub}

3.3 数学的な組版

一般的に言えば,eqnarray に代わる新しい環境を提供し,高度な数学的な組版のため amsmath.sty を使用する必要があります.
パッケージの主な利点は以下のとおりです.

●環境内での周りのスペースは,より一貫性があります.
●式末尾に式番号が配置されます.
●いくつかの新しい環境を提供します.例えば,簡単に長い式を分割する(e.g., split)ソリューションを提供します.
●新しい演算子を定義することは容易です.( \sin, etc.)

警告:amsmath.sty 使用している場合,eqnarray,またはeqnarray*環境 を使用しないでください.
   それらは amsmath.sty でサポートされていないためです

\[...\] はamsmath.styによって正しく処理されます.また,displaymath環境 を用いてもよいです.
eqnarray,およびeqnarray* は align あるいは align* で置き換えられてもよいです.

Replace:
\begin{eqnarray}    \begin{align}
a &=& b \\     → a &= b \\
b &=& c \\       b &= c \\
a &=& c         a &= c
\end{eqnarray}     \end{align}

スポンサーサイト
  1. 2014/04/28(月) 10:10:22|
  2. latex-tabu
  3. | トラックバック:0
  4. | コメント:0
<<[LaTeX] vmargin.sty の備忘録 | ホーム | [LaTeX][LuaLaTeX]  PDF「日本語しおり」の作り方 ~備忘録~>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://konoyonohana.blog.fc2.com/tb.php/69-a9d29d02
この記事にトラックバックする(FC2ブログユーザー)