Powered by SmartDoc

TeX Memo

目次

自分用のメモの要素が強い.けど少し解説的な部分もある.殆どウェブ上のどこかからとってきたものだが,面倒なのでネタもとは割愛.ていうか忘れた.ウェブ上に情報を公開されている皆様に感謝します.

Setting up

latexmk

インストール

ここからダウンロード.BibTeXなど必要な回数だけコンパイルしてくれる.Perlスクリプトなので,Perlが必要.まあINSTALLファイルを見ればよいけど一応.

unzip latexmk-307a.zip
cd latexmk
mv latexmk.pl latexmk
chmod 755 latexmk
sudo cp latexmk /usr/local/bin/latexmk
sudo cp latexmk.1 /usr/local/man/man1

オプション

たくさんあるけど,とりあえず:

-bm <message>
PSファイルに変換するときに,<message>をページの対角線上に印刷する.メッセージは一つだけの引数でなければならないので,スペースなどに気をつけねばならない.また,-bmを使ったときには-psが仮定される.
-bi <intensity>
-bmで印刷される文字の濃さ.0から1の十進数.0が黒で1が白.
-bs <scale>
十進数でメッセージの大きさを指定する.試行錯誤が必要.だいたい1100をメッセージ文字列の長さで割った数が目安.デフォルトは220.0.
-c
dvi, ps, pdf以外の,latexあるいはbibtexにより生成可能なファイルを削除.
-pdfdvi
dvipdfによりdviファイルからpdfを生成.
-pdfps
ps2pdfによりpsファイルからpdfを生成.
-ps
psファイルを生成.
-r <rcfile>
初期化ファイルを指定.

ほかにも,印刷関係やプレビューワ関係のオプションがあります.

初期化ファイルについて

以下の順序で初期化ファイル("RC"ファイル)を探す.

  1. システムの初期化ファイル
  2. ユーザの初期化ファイル:$HOME/.latexmkrc.Unixでは$HOMEの値はシステムにより設定される.Windowsではユーザが任意で設定する(つまり,Windowsでは環境変数で指定しないといけないようです).
  3. カレントディレクトリにあるlatexmkrcという名前のファイル.
  4. -rオプションで指定されたRCファイル.

RCファイルはPerlのコマンドの列を含むファイル.基本的には変数への値設定を行う.いろいろあるが,上のオプションに関わる/日本語を使う場合に変えるのはたとえば([]内はデフォルト値):

$banner [0]
ゼロでない場合メッセージがPSファイルへの変換時に印刷される.
$banner_intensity [0.95]
メッセージの濃さ.-biと同様
$banner_message ["DRAFT"]
メッセージ文字列.-bmと同様
$banner_scale [220.0]
メッセージの大きさ.-bsと同様.
$bibtex ["bibtex"]
bibtexコマンド.
$dvipdf ["dvipdf"]
dviからpdfへ変換するときのコマンド.
$dvips ["dvips"]
dviからpsに変換するときのコマンド.
$latex ["latex"]
latexコマンド.
$ps2pdf ["ps2pdf"]
psからpdfへの変換コマンド.

日本語環境なら,たとえば,

$latex="platex";
$dvipdf="dvipdfmx";

という内容のファイルを.latexmkrcとしてホームディレクトリに保存しておきます.

(注)普段-pdfpsにしてるから気づかなかったが,-pdfdviはdvipdfとdvipdfmの引数の取り方の違いからうまくいかないようだ.どうしてもdvipdfmxがよければ,latexmkをかけてからdvipdfmxをかけるようなシェルスクリプトを書かなければならないかも.

野鳥

本家のページ

.texファイルを開いたら野鳥に.

(setq auto-mode-alist
       (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)

コンパイルコマンドをlatexmkにする.

(setq tex-command "latexmk -pdfps")

TeXShopでプレビューすると更新をキャッチしてくれるので便利.

(defvar 
  YaTeX-dvi2-command-ext-alist
  '(("Mxdvi" . ".dvi")
    ("ghostview\\|gv" .".ps")
    ("TeXShop" . ".pdf")))

(setq dvi2-command "open -a TeXShop")

野鳥をメジャーモード,RefTeXモードをマイナーモードにすると,コメントアウトがなんか変になる.とりあえず下の様にすればよいらしい(reftex-modeをマイナーモードにする設定含).

(add-hook 'yatex-mode-hook
	  #'(lambda ()
	      (reftex-mode 1)
	      (define-key reftex-mode-map
		(concat YaTeX-prefix ">") 'YaTeX-comment-region)
	      (define-key reftex-mode-map
		(concat YaTeX-prefix "<") 'YaTeX-uncomment-region)))

数式補完を少し変える.

(defvar 
  YaTeX-math-sign-alist-private
  '(
    (">"         "rangle"        (">"           ">"))
    ("<"         "langle"        ("<"           "<"))
    ("=<"        "leqslant"      ("<\n-"        "≦"))
    (">="	 "geqslant"	 (">\n-"	"≧"))
    (">>"	 "gg"		 (">>"		">>"))
    ("("         "subseteq"      ("(\n-"        "⊆"))
    (")"         "supseteq"      (")\n-"        "⊇"))
    ("(-"        "subset"        ("("           "⊂"))
    (")-"        "supset"        (")"           "⊃"))
    )
  "User defined math sign "
  )

簡易リファレンス

コマンド 補完
C-c b \begin...\end型
C-c l {\large ...}型
C-c s \section{...}型
C-c m \maketitle型
C-c a アクセント補完
C-c > コメントアウト
C-c < コメントを外す
C-c . \begin{}と\end{}のみコメントアウト
C-c , \begin{}と\end{}のコメントを外す
C-c t j コンパイル
C-c t p プレビュー

BibTeX

BibTeX mode

C-jで次のかっこに飛ぶ.C-c C-cで仕上げ.本家のページ

最近はもっぱらBibDeskに頼り切っている.フィールドにTeXのコマンドを入れるとき,円記号はOpt-\でバックスラッシュを入れる様にする.

bstファイルのカスタマイズ

記法がよくわからないのでmakebstを使う.ターミナルで

unzip custom-bib.zip
cd custom-bib
tex makebst.ins

でインストール.それから

tex makebst

とすると対話式にどういうbstファイルが欲しいかと訊かれるので,質問に答えていけばよい.この対話が終わると**.bdjというファイルができてそのまま「***.bstをつくる?」と訊かれるのでyを押すとbstファイルを作ってくれる.

注意すること(?).

INTERNAL LANGUAGE SUPPORT (if no external language file)
(*) English words used explicitly
(b) Babel (words replaced by commands defined in babelbst.tex)
  Select:

というところでBabelのほうを選ぶと,実際にbstを使う段になってbabelbst.texがないと言われたので,英語にしておくのが良いだろう(どっかから落とせば良いのだろうけど).

後で知ったことだが逆ポーランド記法らしい.

引用していない文献を参考文献に含める

BibTeXを使っている時に,引用していない文献を参考文献に入れたい時は\nociteをつかう.

\nocite{<key>}
\bibliographystyle{plain}
\bibliography{mybib}

で<key>をキーとする文献が(本文中に引用されていなくても)参考文献に現れる.

RefTeX

RefTeX mode

C-(で\label, C-)で\ref, C-[で\cite. C-=でアウトライン表示.本家

定理型環境の追加

(setq reftex-label-alist
      '(("definition" ?d "def:" "\\refdef{%s}" nil ())
        ("proposition" ?p "prop:" "\\refprop{%s}" nil ())
        ("theorem" ?h "thm:" "\\refthm{%s}" nil ())
        ("lemma" ?l "lem:" "\\reflem{%s}" nil ())
        ("corollary" ?c "cor:" "\\refcor{%s}" nil ())
        (nil ?e nil "\\refeq{%s}" nil nil )))

ファイルを分割したとき

複数に分けたファイルのばあいファイルの末尾に

%%% Local Variables: ***
%%% mode: yatex ***
%%% TeX-master: "master.tex" ***
%%% End: ***

と書いておけば(master.texは親ファイルの名前),C-(で通し番号にしてくれるし,C-)で他のファイルから参照できる.

bibファイルの場所

Emacsの設定.bibファイルを探すところを指定.

(setq reftex-bibpath-environment-variables  '("./:<どっか>/bib"))

Font

palatino

palatinoを使うにはpalatino, mathpple, pxfonts, mathpazoの4つがある.mathpazoが一番オプションが豊富.

\usepackage[
sc,%本物のsmall capitalを使う
noBBpl%\mathbbをpalatinoにしない
]{mathpazo}

で使っている.osfを使うと数字が古めかしくなる.osfオプションを選ばなくても,\oldstylenums{n}というコマンドが使える(のはべつにパッケージのおかげではないかもしれない).

slshapeがitalicになってしまようだ.とりあえずpxfontで代用するには\usefont{T1}{pxr}{m}{sl}.

luximono

ダウンロード.タイプライタ体の,ユーロ記号とかも使えるType1フォント.パッケージオプションscaledで小さめになる.

Fourier-GUTenberg

T1エンコーディングがサポートされたフォント.こちらを参照.

システムフォントをインストールする

ここを参照.

なんだかよくわからないけど,

\usepackage[T1]{fontenc}

としないと,Small capitalが使えなかった.

eulervm

Euler数式フォント.

オプション一覧:

small
通常の95%の大きさで読み込む
euler-digits
数式モードにおいて,数字,コンマおよびピリオドをEuler Romanを使用する.
euler-hat-accent
Euler Frakturの\hatアクセントを使用する.
OT1
OT1エンコーディングを使用する
T1
T1エンコーディングを使用する
LY1
LY1エンコーディングを使用する

コマンド:

\mathbold
ボールドのEuler数式アルファベット
\hslash
Eulerスタイルのスラッシュのはいったh

もっと細かいこと

eqnarray環境での改ページ

{\allowdisplaybreaks
\begin{eqnarray}
...
\end{eqnarray}
}

ぼやけた影をつける

pst-blurをつかう.

目次などからのハイパーリンク

hyperrefパッケージがやってくれる.マニュアル@CTAN.とくにオプションのまとめ(PDF)が便利.

\usepackage[dvips,ps2pdf,colorlinks,linkcolor=blue,citecolor=blue,]{hyperref}
colorlinks
リンクテキストを色付ける.
breaklinks
リンクテキストの途中で改行.pdftex以外ではデフォルトはfalse.dvipdfm(x)なら有効だが,dvipsだと指定しても途中で改行されない(らしい).
citecolor, filecolor, linkcolor, pagecolor, urlcolor
それぞれのタイプのリンクのテキストの色.色名で指定
citebordercolor, filebordercolor, linkbordercolor, pagebordercolor, urlbordercolor
それぞれのタイプのリンクの周りの枠のいろ.RGBで{0 0 0}のように選択.
dvipdfm, dvipdfmx, dvips, pdftex, ps2pdf
pdfへの変換に使うもの.

titlesec

sectionなどのフォーマットを変える.とりあえずプレアンブルで

\usepackage{titlesec}

下の様にすると,フォントがComputer Modern Sans-serifのボールドになる.\titleformat*が使えるのはsectionやsubsectionだけ.display以外にもいくつかオプションがある.詳しくはここドキュメント参照.

以下では"1.1 section"における"1.1"を「ラベル」,"section"を「タイトル本体」と呼ぶ.

\titleformat{\chapter}%再定義されるコマンド
[display]%ほかにはhang, block, dispay, runin, leftmargin, rightmargin, drop, \
    wrap, frame
{\LARGE\fontfamily{cmss}\selectfont\bfseries}%タイトル全体のフォーマット
{\chaptertitlename\ \thechapter}%ラベル
{20pt}%ラベルとタイトル本体の間のスペース
{\Huge\raggedright}%タイトル本体の直前で実行されるコマンド
[]%タイトル本体の直後で実行されるコマンド
\titleformat*{\section}{\Large\fontfamily{cmss}\selectfont\bfseries}
\titleformat*{\subsection}{\large\fontfamily{cmss}\selectfont\bfseries}

ヘッダ

本みたいな両面の場合のヘッダの付け方.デフォルトでどうなるのか知らない.

\documentclass[twoside]{report}

として,

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\renewcommand{\chaptermark}[1]{\markboth{\chaptertitlename\ \thechapter.\ \
    #1}{}}
\fancyhead[RE]{\slshape\rightmark}
\fancyhead[LO]{\slshape\leftmark}
\fancyhead[RO,LE]{\thepage}

とする.RE=Even pageのRight,LO=Odd pageのLeft.他も同様.\renewcommandはreportクラスではデフォルトで全部大文字にしてしまうのをやめさせるため.

プレゼン

Prosperが有名だけど,powerdotのほうが新しいので,いろいろ改善されている.解説を書いてみました.殆どドキュメントの翻訳ですが.

他のツール

目次の制御

\chpater*を使うと章番号が出なくなるのは周知の通りだけど,その場合目次にはいらなくなる.例えば\thebibliographyなどは内部で\chapter*を使っている.単に目次に入れるには

\addcontentsline{toc}{chpater}{Bibliography}%\bibnameのほうが良いのかな

とすればよいが,これだとhyperrefパッケージを使っている時に,ページへのハイパーリンクが張られない.ので,リンクを張りたい時は\addcoontentslineを使わず,次の様にプレアンブルで唱えてthebibliographyを再定義する.

\makeatletter
\renewenvironment{thebibliography}[1]{%
     \chapter*{\bibname
        \@mkboth{\bibname}{\bibname}}%
     \phantomsection
     \addcontentsline{toc}{chapter}{Bibliography}
      \list{\@biblabel{\@arabic\c@enumiv}}%
           {\settowidth\labelwidth{\@biblabel{#1}}%
            \leftmargin\labelwidth
            \advance\leftmargin\labelsep
            \@openbib@code
            \usecounter{enumiv}%
            \let\p@enumiv\@empty
            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
      \sloppy
      \clubpenalty4000
      \@clubpenalty \clubpenalty
      \widowpenalty4000%
      \sfcode`\.\@m}
     {\def\@noitemerr
       {\@latex@warning{Empty `thebibliography' environment}}%
      \endlist}
\makeatother

また,bookクラスでは\frontmatterと\backmatterでは\chapterと書いても章番号がはいらないようになっている.たとえばAcknoledgmentsという章を番号を振らずに作るのは

\frontmatter
\chpater{Acknoledgments}

と素直に書けばよい.\phantomsectionを使うとエラーが起こる.

amsthmパッケージ

定理型の環境.

基本

\usepackage{amsthm}
\newtheorem{prop}{Propostion}
\newtheorem{thm}{Theorem}[section]% Theorem <sectionの番号>.<定理の番号>のように番号を振る.
\newtheorem{lem}[thm]{Lemma}%Theoremと同じカウンタを使う.

\theoremstyle{definition}
\newtheorem{definition}{Definition}

\theoremstyle{remark}
\newtheorem*{rmk}{Remark}%番号を振らない

\theoremstyleを指定しないとplainが使われる.デフォルトではplain, definition, remarkの3つのスタイルがある.

theoremstyle 見出し 本文
plain Bold Italic
definition Bold Normal
remark Italic Normal

カスタマイズ

\newtheoremstyleを使う.

\def\qedsymbol{\ding{111}}%proof環境の最後に入れる記号を変える場合.
\renewcommand{\proofname}{\textsc{Proof}}
%proof環境の最初に出る文字列(例えば,日本語なら"\textsc{Proof}"を「証明」にすればよい)

\newtheoremstyle{mydef}%スタイルの名前
{\topsep}%(このスタイルの)定理型環境の上にはいる空白
{\topsep}%同じ様に,下にはいる空白
{\normalfont}%本文のフォント
{2pt}%見出し(「定理」とか「補題」とか)の前にはいる空白
{\fontfamily{phv}\selectfont\bfseries}%見出しの書体.ここではHelveticaでボールド.
{}%見出しの後にはいる句点("."を入れたければここに"."を書く)
{.5em}%見出しの後にはいるスペース
{}%後述
\theoremstyle{mydef}%このスタイルを使って
\newtheorem{definition}{Definition}%definition環境を作る.

これでそんなに困らないけど,見出しのフォントを変えたとき上のスタイル定義だと

\begin{theorem}[Zorn's Lemma]
....
\end{theorem}

という風に定理におまけをつけたとき(ここでは"Zorn's Lemma")にそのフォントが変わってくれない(Computer Modernのまま).よくわからないけど,次の様に書くと見出しのフォントと同じフォントが使われる

\newtheoremstyle{mythm}%name
{\topsep}%space above
{\topsep}%space below
{\itshape}%body font
{2pt}%indent
{\fontfamily{phv}\selectfont\bfseries}%headstyle
{}%punctuation after head
{.5em}%space after head
{\thmname{#1} \thmnumber{#2}\thmnote{ (#3)}}%ここで見出しの指定
\theoremstyle{mythm}
\newtheorem{theorem}{Theorem}

より詳しい解説はamsclass.dtxをコンパイルして出てくるファイルにある.

\maketitleと\pagestyle{empty}

プレアンブルに\pagestyle{empty}しても\maketitleをつかうとそのページにはページ番号が出てしまう(\maketitleがページスタイルを変更するから).\maketitleのすぐあとで\thispagestyle{empty}すればよい.

定理型環境直後の箇条書き

(環境のスタイルがbreak相当のものになっていない場合)次の様に書くと見出しのすぐ後に箇条書きの項目が来てしまって不格好(だとおもう).

\begin{theorem}
\begin{itemize}
\item hoge
\item fuga
\end{itemize}
\end{theorem}

これを避けるには\begin{theorem}のあとに適当に\hskip5ptとかおいて空白を入れる.

tabularの色分け

長いtabular環境だと行が読みにくい.一行ごと(でなくてもよいが)に色が変わるとみやすい.xcolorパッケージを使う.

\usepackage[table]{xcolor}
\begin{document}
\begin{center}
\rowcolors{1}{white}{lightgray}
%一つめの引数は何番めから始めるか.2つめは奇数行のいろ,3つめは偶数行の色.奇数/偶数は一つめの引数と無関係に最初から数える.
\begin{tabular}{cc}
....
\end{tabular}
\end{center}
\end{document}

xcolorパッケージ

いろんな色.とりわけ色を"混ぜる"ことが出来るのが特徴.マニュアルから抜き書き.

コマンド:

\definecolor{<名前>}{<色モデル(のリスト)>}{<色の指定(のリスト)>}

%例:
\definecolor{red}{rgb}{1,0,0}
\definecolor{red}{rgb/cmyk}{1,0,0/0,1,1,0}
\definecolor{red}{hsb:rgb/cmyk}{1,0,0/0,1,1,0}%コロンの前(hsb)はコアモデル.この色モデルに変換される.


\providecolor{red}{rgb}{1,0,0}%引数などは\definecolorと同じ.色が未定義のときだけ定義を行う.

%10パーセントに薄めた赤
\colorlet{paleRed}{red!10}%

%二色混ぜる.緑が40%で黄色が60%
\colorlet{myGreenYellow}{green!40!yellow}

%この色の補色
\colorlet{myGYcomp}{-green!40!yellow}

%三色混ぜる.赤:緑:青=1:2:3
\colorlet{myColor}{rgb: red,1; green, 2;blue,3}
%何色でも,また定義に「混ざった」色も使える
\colorlet{myColor2}{rgb: -green!40!yellow, 3; red, 2; blue, 1; \
    green!50!yellow, 2}


%この先のテキストの色を変える.
\color{<色の名前>}

%<テキスト>を指定の色で出力.
\textcolor{<色の名前>}{<テキスト>}

色列の定義と表での使用.下のソースでこんな感じのが出来る.

\colorlet{tblhdclr}{gray!20}

上も参照のこと.
{
\rowcolors{2}{white}{lightgray}%
\begin{tabular}{cc}
\rowcolor{tblhdclr} odd & odd \\%この行の色はtblhdclor
even & even \\
odd & odd \\
\hiderowcolors even & even \\ %ここから色づけをやめる.
 odd & odd\\
even & even\\
 odd & odd\\
\showrowcolors even & even\\%また色づけを始める.
 odd & odd\\
\end{tabular}
}


%色列を使って着色

\begin{minipage}[c]{30pt}
 \definecolorseries{test}%名前
 {rgb}%色モデル
 {last}%step, grad, lastのどれか
 [rgb]{1,1,1}%スタートする色モデルと色の指定
 [rgb]{0,0,1}%たぶんこの引数の意味は以下のような感じ
 %lastの場合,最後の引数が意味するのは最後の色.
 %stepの場合,このべクトルがワンステップ(!!+)で加えられる
 %gradの場合,このベクトルを\resetcolorseriesのオプション引数で割ったものがワンステップで加算されるべクトル.

 %\color{test!!+}%現在の色列に置ける色を表示して,ワンステップ進める.
 %\color{test!![3]}%色列の3番目

 \resetcolorseries[6]{test}%色列の初期化

 {\rowcolors[\hline]{1}{test!!+}{test!!+}%オプション引数は各行の前に実行される命令
 \begin{tabular}{c}
 \number\rownum\\\number\rownum\\\number\rownum\\\number\rownum\\
 \number\rownum\\\number\rownum\\\number\rownum\\\number\rownum\\
 \end{tabular}%\rownumで行番号を取得できる
 }

\end{minipage}
\begin{minipage}[c]{30pt}
\definecolorseries{test}
{rgb}
{step}
[rgb]{0,0,0}
[rgb]{.2,.2,.2}

\resetcolorseries[6]{test}%
{\rowcolors[\hline]{1}{test!!+}{test!!+}
\begin{tabular}{c}
\number\rownum\\\number\rownum\\\number\rownum\\\number\rownum\\
\number\rownum\\\number\rownum\\\number\rownum\\\number\rownum\\
\end{tabular}
}

 
\end{minipage}
\begin{minipage}[c]{30pt}
\definecolorseries{test}
{rgb}
{grad}
[rgb]{1,1,0}
[rgb]{2,2,0}

\resetcolorseries[2]{test}%色列の初期化
{\rowcolors[\hline]{1}{test!!+}{test!!+}
\begin{tabular}{c}
\number\rownum\\\number\rownum\\\number\rownum\\\number\rownum\\
\number\rownum\\\number\rownum\\\number\rownum\\\number\rownum\\
\end{tabular}
}
\end{minipage}

パッケージオプション:

オプション 説明
natural (デフォルト)色モデルの変換をしない.例外:RGB (rgbに変換), HSB (hsbに変換), Gray (grayに変換).
rgb rgbモデルに変換.
cmy cmyモデルに変換
cmyk cmykモデルに変換.
hsb hsbモデルに変換
gray 全ての色をgrayモデルに変換.白黒印刷のシミュレーションに便利.
RGB RGBモデルに変換(その後rgbに変換).
HTML HTMLモデルに変換(その後rgbに変換).
HSB HSBモデルに変換(その後hsbに変換).
Gray Grayモデルに変換(その後grayに変換).
dvipsnames,dvipsnames* 定義済みの色を読み込む.(*有無の違いはマニュアル2.4.2)
svgnames,svgnames* SVG 1.1.1に従って定義済みの色を読み込む.
x11names, x11names* Unix/X11.1に従って定義済みの色を読み込む.
table colortblパッケージを読み込み,表の列,行,あるいはセルの色づけを可能にする.
fixpdftex pdfcolmkパッケージを読み込み,pdftexの色の振る舞いを改善する.
hyperref hyperrefパッケージのサポート.
showerrors (デフォルト)未定義の色が使われたらエラーを出す.
hideerrors 未定義の色が使われたら警告を出して黒で置き換える.

色モデルについて:

名前 ベースの色 パラメータ デフォルト範囲
rgb red, green, blue [0, 1]×[0,1]×[0,1]
cmy cyan, magenta, yellow [0, 1]×[0,1]×[0,1]
cmyk cyan, magenta, yellow, black [0, 1]×[0,1]×[0,1]×[0,1]
hsb hue, saturation, brightness [0, 1]×[0,1]×[0,1]
Hsb hue?, saturation, brightness [0, H] × [0, 1]×[0,1] H = 360
tHsb hue?, saturation, brightness [0, H] × [0, 1]×[0,1] H = 360
gray gray [0, 1]
RGB Red, Green, Blue {0, 1, ..., L}×{0, 1, ..., L}×{0, 1, ..., L} L = 255
HTML RRGGBB {000000, . . . , FFFFFF}
HSB Hue, Saturation, Brightness {0, 1, ... , M}×{0, 1, ... , M}×{0, 1, ..., M} M = 240
Gray Gray {0, 1, ..., N} N = 15
wave lambda (nm) [363, 814]

XeTeX

Mac OSXのフォントをネイティブに使えるTeX.zee-TeXのように読むらしい.

インストール

TeXWikiのなかの記事を見た方がよいかも.メーリングリストもある.

本家からXeTeX_version.dmgをおとしてきてマウントする.XeTeX.pkgの中身を次のようにして取り出す.

zcat .../XeTeX.pkg/Contents/Archive.pax.gz | pax -r

binディレクトリの中身をすべて/usr/local/teTeX/binにいれ,xetexへのシンボリックリンクxelatexをつくる.

cp bin/powerpc-apple-darwin../* /usr/local/teTeX/bin/
cd /usr/local/teTeX/bin
ln -s xetex xelatex

texmf以下をtexmf-localにコピー.

fmtutil.cnfに次の行を足す.

  xetex xetex - *xetex.ini
  xelatex xetex language.dat *xelatex.ini

texmf.cnfを必要なら書き換える.とくに必要なかった.texmf-dist/tex/generic/config/language.datを(必要ならコピーして)以下のように書き換えてtexmf-local/tex/generic/configあたりに置く(下で,ファイル名はそのままコピペしたものなので,不整合になってるけど).

$ cd ~/src/XeTeX/share/texmf.local/tex/generic/config
$ diff -u /sw/share/texmf-dist/tex/generic/config/language.dat language.dat
--- /sw/share/texmf-dist/tex/generic/config/language.dat 2005-01-13 \
    09:40:02.000000000 -0500
+++ language.dat        2005-12-01 16:43:54.000000000 -0500
@@ -66,13 +66,13 @@
 irish  gahyph.tex
 italian        ithyph.tex
 latin  lahyph.tex
-magyar huhyphn.tex
+magyar huhyph.tex %% XeTeX change
norsk nohyphbx.tex % see \
    http://home.c2i.net/omselberg/pub/nohyphbx_intro.htm (in Norwegian)
 polish plhyph.tex
 portuges       pt8hyph.tex
 romanian       rohyphen.tex
russian ruhyphen.tex % note: edit ruhyphen.tex for your encoding!
-serbian        srhyphc.tex     % Serbian Cyrillic Hyphenation Patterns
+%%serbian srhyphc.tex % Serbian Cyrillic Hyphenation Patterns %% XeTeX \
    change
 slovak skhyph.tex      % depends on csplain being installed
 slovene        sihyph23.tex
 spanish        eshyph.tex
@@ -81,7 +81,7 @@
 
% For Ukrainian, either use ukrhyph.tex (and edit that file for the \
    encoding
 % that you need) or use one of the ukrhyph.ENC files.
-ukrainian      ukrhyph.tex
+%% ukrainian   ukrhyph.tex %% XeTeX change
 %! ukrainian   ukrhyph.t2a
 %! ukrainian   ukrhyph.lcy
 %! ukrainian   ukrhyph.ot2

フォーマットファイルを作る.

sudo mktexlsr
sudo fmtutil-sys --enablefmt xetex
sudo fmtutil-sys --enablefmt xelatex
sudo fmtutil-sys --missing

psfonts.mapの場所を教える.これがよくわからない.

cd /usr/local/teTeX/share/texmf-local/
sudo ln -s $HOME/.texmf-var/fonts/map/dvips/updmap dvips

.texmf-var/fonts以下はupdmapを一度かけるとできるようだ.なんかウォーニングは出ている.

たしかこのバグ(psfonts.mapが見つからない云々)は現在のバージョンでは起こらない.

アップデート

よく覚えてないが,バイナリの部分,texmf以下をそれぞれ入れ替えて

sudo fmtutil-sys --byfmt xetex
sudo fmtutil-sys --byfmt xelatex

とかやればよかった気がする.というかインストールのときもこれでいいような気がする.

使い方

plain TeXはよく知らないので実際にはxelatexを使う.

野鳥を使っているなら

%#!xelatex

をファイルのどこかに書いておくとよい.TeXShopを専用エディタにするのもいいけど,補完が….あと,現在のバージョンならば

(setq YaTeX-kanji-code 4)

でutf-8に出来る.

fontspecパッケージのドキュメントを見るのがよいと思う.

横置き

\documentclass[a4paper, landscape]{article}

これだけだとTeXShopでプレビューしたときに紙の向きがおかしい.以下を最初の方に書いておく.

\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}

tabularに斜線を入れる

...
\usepackage{slashbox}
...
\begin{tabular}{ccc}
 \backslashbox{lower}{upper}& & \\
\end{tabular}
...