LaTeX

  • LaTeX2e を使う
  • 日本語のドキュメントには platex を使う
  • 海外だと pdftex や luatex が増えてきているのかも?
  • 体裁にこだわりすぎちゃいけない。ドツボにはまる。それより本文を書くことに集中したほうがよい。
  • ただし、最近は LaTeX文書をガリガリ書くことはしていない
    • Org文書のLaTeX出力+YaTeXでPDF出力、SphinxのPDF出力などは主な使い方
  • TeXは「TeX処理系」というプログラミング言語、LaTeXは「TeXのマクロ体系」という文書作成のためのラッパーみたいなもの、と理解した
  • pTeXは和文の組版に対応したTeX処理系
  • pLaTeXはpTeXに対応したLaTeXマクロ体系
  • 世界の流れ:TeX → pdfTeX(現在) → LuaTeX(予定)
  • 日本の流れ:pLaTeX(現在)

インストール

  • MacTeXをそのままインストールする方法と、MacPortsやHomebrewを使う方法がある
  • いま僕はHomebrewでインストールしたものを使っている
  • MacOSを使ってる人は、MacTeX(本体はTeXLive)を入れるとよい
  • インストールは MacTeX 参照
  • MacPortsの場合は、TeXLiveを入れるとよい

$ sudo port install texlive +full    ## variants は +full にしておけばよい

  • Homebrewの場合はHomebrew Caskを使ってmactexを入れる

$ brew cask install mactex

$ brew cask info mactex
mactex: 20161009
https://www.tug.org/mactex/
/usr/local/Caskroom/mactex/20160603 (2.7G)
From: https://github.com/caskroom/homebrew-cask/blob/master/Casks/mactex.rb
==> Name
MacTeX
==> Artifacts
mactex-20161009.pkg (pkg)

  • TeXLiveを探してみると、MacTeXの利用をオススメされた

$ brew search texlive
Installing TeX from source is weird and gross, requires a lot of patches,
and only builds 32-bit (and thus can't use Homebrew dependencies)

We recommend using a MacTeX distribution: https://www.tug.org/mactex/

You can install it with Homebrew-Cask:
  brew cask install mactex

アップデート

  • TeXLive自身やパッケージをアップデートするときは tlmgr コマンドを使う
  • tlmgrが古い場合は、パッケージのアップデート/インストールができないはず
  • そのときは、以下のコマンドを入力する

$ sudo tlmgr update --self

$ tlmgr update --self
tlmgr: package repository http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet (verified)
You don't have permission to change the installation in any way,
specifically, the directory /usr/local/texlive/2016/tlpkg/ is not writable.
Please run this program as administrator, or contact your local admin.
tlmgr: An error has occurred. See above messages. Exiting.

$ tlmgr update --list
$ sudo tlmgr update --all

  • –list で、アップデートが必要なパッケージの確認をしている。sudo不要。
  • –all で、一括アップデートしてる。要sudo。

バージョンを知りたい

  • LaTeXにはいろんなコマンドがあるので、自分が使うコマンドがなんであるのか、とりあえず知っておくとよい
  • platex の場合、TeXLive2016 の e-pTeX となる
  • パスを確認すると eptex へのエイリアスになってる

$ platex --version
e-pTeX 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016)
kpathsea version 6.2.2
ptexenc version 1.3.4
Copyright 2016 D.E. Knuth.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the e-pTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the e-pTeX source.
Primary author of e-pTeX: Peter Breitenlohner.

$ which platex | xargs ls -l
/Library/TeX/texbin/platex -> eptex

  • pdfLaTeXの場合は pdfTeXへのエイリアス

$ pdflatex --version
pdfTeX 3.14159265-2.6-1.40.17 (TeX Live 2016)
kpathsea version 6.2.2
Copyright 2016 Han The Thanh (pdfTeX) et al.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.21; using libpng 1.6.21
Compiled with zlib 1.2.8; using zlib 1.2.8
Compiled with xpdf version 3.04

$ which pdflatex | xargs ls -l
/Library/TeX/texbin/pdflatex -> pdftex

$ ptex2pdf -v
This is ptex2pdf[.lua] version 0.8.

PDFを出力したい

  • 和文を使う場合は、ptex2pdf コマンドを使う
  • 英文のみの場合は pdfLaTeX を使ってもよいかも
  • ドキュメントクラスは jsarticle を指定する
  • オプションは -l (platex) を使えばよい
  • DVIからPDFへの変換には dvipdfmx を使う

$ ptex2pdf -l TEX.tex
This is ptex2pdf[.lua] version 0.8.
Processing TEX.tex
This is e-pTeX, Version 3.14159265-p3.7-160201-2.6 (utf8.euc) (TeX Live 2016) (preloaded format=platex)
 restricted \write18 enabled.
entering extended mode
... (略)...
Output written on TEX.dvi (1 page, 1928 bytes).
Transcript written on TEX.log.
TEX.dvi -> TEX.pdf
[1]
31116 bytes written
TEX.pdf generated by dvipdfmx.

  • pdfLaTeXを使って日本語PDFを作成したい場合は、以下のようにします
  • ドキュメントクラスに bxjsarticle を使う
  • コンパイル(&PDF生成)に pdflatex を使う

日本語フォントの設定

$ sudo tlmgr update --self -all
$ tlmgr info jfontmaps
$ cd /usr/local/texlive/2016/texmf-dist/scripts/cjk-gs-integrate 
$ sudo perl cjk-gs-integrate.pl --link-texmf --force
$ sudo mktexlsr
## (ヒラギノの N なしを埋め込む場合)
$ sudo updmap-sys --setoption kanjiEmbed hiragino-elcappitan
## (ヒラギノの N ありを埋め込む場合)
$ sudo updmap-sys --setoption kanjiEmbed hiragino-elcapitan-pron

Nなし/Nありの違い

  • ProNとかStdNのNとは? などを参考にした
  • Nなし=JIS90字形、Nあり=JIS2004字形、の違いのこと
  • JIS第1水準の漢字で168字が異なる
  • とりあえず「Nあり」使っておけばOK

パッケージを使いたい

参考サイト

三重大学 奥村さんのTeXWiki TeX と言ったら奥村さん
滋賀大学 熊沢さんのTeXサイト TeX:Part1, Part5 によくお世話になっている
サンプルが豊富なので、とりあえずダウンロード → typeset して確認
文字コードが shift JIS なので、nkfでutf8に変換する必要あり
latex-cmd 私のページをみるくらいなら、ここを参考にしたほうがよい
YaTeX YaTeXの使い方。困ったらココ。クイックリファレンスは便利。
http://www.jaist.ac.jp/~chiba/yatex/ YaTeXの使い方。さっくりまとめてある。

使い方

参照

\section{第1章} \label{sec:one}

文字の単位

cm センチメートル
mm ミリメートル (1cm=10mm)
in インチ (1inch=約2.54cm)
pt ポイント (72.27pt=1 inch)
pc パイカ (1pc=12pt)
em “M”の幅
ex “x”の高さ
zw 和文フォントの幅
zh 和文フォントの高さ
  • 和文の時はzw、英文の時はemで幅を指定したらいいと思う

改ページ

\newpage      % 改ページ
\clearpage    % 図・表があるときの改ページ
\cleardoublepage    % 図・表があるときの改ページ

\\[長さ]      % 長さ分の強制改行
\newline      % 強制改行
\linebreak    % 強制改行
\nolinebreak  % 改行禁止

文字数カウント

\makeatletter
\def\WordCount#1{%
  \@tempcnta\z@
  \@tfor \@tempa:=#1\do{\advance\@tempcnta\@ne}%
  \the\@tempcnta
}
\makeatother

  • LaTeXコマンドがあると数えてくれないみたい
  • ココを読むと難しいみたい

括弧の出力

(x)        %% ==> (x); 小括弧
\{ x \}    %% ==> {x}; 中括弧
[x]        %% ==> [x]; 大括弧(?)

  • 中括弧はエスケープが必要

\bigl( x \bigr)
\Bigl( x \Bigr)
\biggl( x \biggr)
\Biggl( x \Biggr)

\left( x^2 \right)    %% \left(, \right) はペアで使わないとエラーがでる

\left( x^2 \right.    %% ペアで使わない場合は、\right. \left. を使う
\left. y^2 \right)

フォントの設定

\mathcal{ABCDEFG}

\usepackage{mathrsfs}    %% RSFS : Ralph Smith's Formal Script
\mathscr{H}    %% ハミルトニアン
\mathscr{L}    %% ラグランジアン

  • これだとまきまきしていてうるさいと感じたら以下のようにする

\usepackage{rsfso}
\mathcal{h}

\usepackage{pxrubrica>
\ruby{強敵}{と|も}

YaTeX