TeXノウハウの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!! misc

! 定理環境

\usepackage{amsthm} と宣言する.
{{ref amsthdoc.pdf,TeXノウハウ,ドキュメント}}

使用例:
 \theoremstyle{plain}% default
 \newtheorem{theorem}{Theorem}[section]
 \newtheorem{lemma}[theorem]{Lemma}
 \newtheorem{proposition}[theorem]{Proposition}
 \newtheorem*{corollary}{Corollary}
 \newtheorem*{KL}{Klein's Lemma}
 
 \theoremstyle{definition}
 \newtheorem{definition}{Definition}[section]
 \newtheorem{example}{Example}[section]
 
 \theoremstyle{remark}
 \newtheorem*{remark}{Remark}
 \newtheorem*{note}{Note}
 \newtheorem{case}{Case}
 
 \renewcommand{\proofname}{{\bf 証明}}

! enumerate環境での番号の振り方

 1   \renewcommand{\labelenumi}{\theenumi}
 (a) \renewcommand{\labelenumi}{(\alph{enumi})}
 (i) \renewcommand{\labelenumi}{(\roman{enumi})}
 (1) \renewcommand{\labelenumi}{(\arabic{enumi})}

など.そのほか,\roman, \arabic, \alph, \Alph, \Roman など.

! tabular環境での太線

 \noalign{\hrule height 1pt}

! list環境の縦方向の空白を取り除く

art10.sty などの \@listI, \@listn, \small, \footnotesize の定義をコピーして,
\parsep や \itemsep などのパラメタを 0pt に設定する.

 \def\@listI{\leftmargin\leftmargini
            \partopsep=0pt \parsep=0pt \topsep=0pt \itemsep=0pt \relax}
 
 \def\@listii{\leftmargin\leftmarginii \labelwidth\leftmarginii
              \advance\labelwidth-\labelsep
              \topsep=0pt \parsep=0pt \itemsep=0pt \relax}
 
 \let\@listi\@listI \@listi

! uplatex
UTF-8で書ける.shift jis でもよい.jsarticle を使用するときには,オプションに uplatex を指定する.例: 
 \documentclass[12pt,uplatex]{jsarticle}

! アンダースコア underscore
* バックスラッシュとアンダースコアを並べるのが基本
 a\_b  $a\_b$
* 長さが短いような気がする.フォントを適当に選べばよいのかもしれないが,安直にするには,
 \newcommand{\myunderscore}{\leavevmode\kern.06em\vbox{\hrule width.5em}}

! Comprehensive LaTeX Symbol Guide -- 数学記号など

* [オリジナル|http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-a4.pdf]
* [このホスト上のコピー|http://gcg00467.xii.jp/2008/symbols-a4.pdf]


! 画像をテキストの上に重ねる.

* 基本的には,普通に llap, rlap を使って重ね打ちをすればよい.
* latex の raisebox マクロが便利.\raisebox{x}[y][z]{contents} とすると,x (正なら上,負なら下)だけ移動して contents を組むほか,できあがったボックスの高さがy, 深さがzとみなしてくれる.

enumerate環境で,いくつかの番号の上に○をつけてみた例:

 \item \mbox{}\llap{\raisebox{-1.7ex}[0pt][0pt]{\includegraphics{circ.eps}\hspace{.3em}}}%
       ここから本文

! 改ページの抑制
\samepage

! マクロを調べる.

* [日本語pLaTeX2e|http://gcg00467.xii.jp/2008/pldoc.pdf] (pldoc.pdf)
* [pLaTeX2e|http://gcg00467.xii.jp/2008/source2e.pdf] (source2e.pdf)
* [plain TeX|http://gcg00467.xii.jp/2008/teximpat.pdf] (''TeX for the impatient'')

! パッケージやフォントのインストール

[Managing a one-person TeX system|http://www.ctan.org/installationadvice/]

! カラムが狭い時,数式を含む文の改行

\sloppy を試してみる.元に戻すには \fussy

! 数式用のフォント
 ローマン\mathrm, サンセリフ\mathsf, タイプライタ\mathtt, 太字\mathbf, イタリック\mathit, ドイツ文字\mathfrak, 黒板\mathbb, 花文字\mathcal

! 特殊文字

 例: バックスラッシュ \char`\\ ,  中括弧開き  \char`\{

これらは,タイプライタフォントでも機能する.

!!! ポスターの分割印刷

まず,[epssplit|http://home.clara.net/nox/software/epssplit/]
をインストールする.これはperl scriptである.
tar-ballをもってきたら,/usr/local/lib あたりで展開して,
スクリプト epssplit を /usr/local/bin に持って行く.
最初の行に 
-I/usr/local/lib/epssplit-1.1.0
を追加する.

次に,
ポスターの dvi ファイルを普通に作成する.
ここでは poster.dvi という名前だとする.

あとは以下のような感じ.印刷したいページを,for 文の引数で指定する.
split1.ps, split2.ps, ... といったファイルができる.

  #!/bin/sh
  
  base=poster
  
  # for B1 poster
  #   width   728mm / 25.4 mm/inch * 72 pspt/inch = 2064 pspt
  #   height 1030mm / 25.4 mm/inch * 72 pspt/inch = 2920 pspt
  width=2064
  height=2920
  # for A0 poster
  #   width   841mm / 25.4 mm/inch * 72 pspt/inch = 2384 pspt
  #   height 1189mm / 25.4 mm/inch * 72 pspt/inch = 3370 pspt
  #width=2384
  #height=3370
  
  pcom="s/^%%BoundingBox:.*/%%BoundingBox: 0 0 ${width} ${height}/"
  
  platex $base.tex
  dvipsk $base.dvi
  for num in 1 2; do 
    psselect -p${num} ${base}.ps page${num}.ps
    gswin32c -dNOPLATFONTS -dWINKANJI -q -sDEVICE=epswrite -sOutputFile=page${num}.eps -r600 -q - < page${num}.ps
    perl -i -p -e"$pcom" page${num}.eps
    epssplit -o split${num}.ps -O Potrait --scale 0.99 -mar 5mm page${num}.eps
  done
  
  rm -f $base.dvi $base.aux $base.log $base.ps page*.ps page*.eps page*.eps.bak

その他のオプションなどは
[マニュアル|http://home.clara.net/nox/software/epssplit/epssplit.html]
を参照




!!! 描画

! いろいろ

* PSfrag - EPSファイルの中の文字列をLaTeXコマンドに置き換える。
** [日本語の解説|http://www.interq.or.jp/mars/cherry/tex/psfrag-how-to.html]
** [別の日本語の解説|http://www.cityfujisawa.ne.jp/~huzinami/tex/g-pack1.html#PSfrag]
* PSTricks - 座標指定で図をかいていく。
** [日本語の解説|http://www.cityfujisawa.ne.jp/~huzinami/tex/g-pack2.html#PSTricks]



! powerpointとwmf2epsで

* powerpointで絵を描く.TeXに取り込みたい部分全体をcopyする.
* wmf2eps で pasteする.その後 eps に変換する.

ただし,この方法だと,powerpoint の中でTeXpointを使った場合に,
背景を透明にできない.これをなんとかするには:

* TeXPointでコンパイルを行うとき,dialog box の transparent にチェックを入れる.色は (字自体が白黒なら) monochrome で良い.
* 通常と同じようにpowerpoint上でcopyをする.
* wmf2eps で paste する.このとき,必ず EMF を選ぶ.epsには変換しない.
* imagemagick を使ってコマンドラインから
 $ convert -density d1 clip000.emf -density d2 clip000.eps
などと変換する.-density を2回指定しているが,d1は EMF を
どの解像度とみなすかを決めるもので,d2は epsの解像度をどれだけ
にするか決めるもの.したがって,きめ細かさ (ファイルサイズ)
は d1 だけで決まる.見た目の大きさは,比 d1/d2 で決まる.
この値が大きいほど,見た目の大きさは大きい.
とりあえずは d1 = 72, d2 = 600 くらいで始めて,試行錯誤を
する.(後で\includegraphicsのwidthで調整できるので,d2 は
あまり気にしなくても良いかもしれない.)