memo/TeX

個人用覚え書きです. ここに書いてある各種情報を利用するのは自由ですが, 情報が 正しいこと/最新であること を保証しません. また,万人向けでない情報も含まれます.


C:\w32tex\ と書いてあるところはご自身の TeX 環境に応じて適当に読み替えてください.

Links

ある種の文字を PDF に埋め込む方法

一部の人の名前を正確に書きたい場合など用.森鷗外みたいな. 以下に述べる方法が どの範囲の文字に/どの環境で 適用可能かは調べていません. また,以下のように PDF を作ることおよびそれを利用することが合法であると保証するわけではありません.

OTF パッケージを用いる方法(リンク先は TeX Wiki) もあるのかもしれませんが,私はうまく使えなかったので分かりません.

なお,PDF にフォントが埋め込まれているかは例えば次のようにして確認できる: Adobe Reader で PDF を開き,ファイル → プロパティ を開き,フォント タブを開くと,使用しているフォント一覧が表示されるが, すべてに対し「埋め込みサブセット」と書かれていれば埋め込まれている.

uplatex が使えることを確認する(私の環境(Windows 8 で,2013年初頭に w32tex を あべのり氏のTeXインストーラ を用いて導入した)では使えた). ドキュメントクラスを \documentclass[uplatex]{jsarticle} のようにする. 問題の文字をテキストエディタに直接コピペして保存する(文字コードは UTF-8 にする). これを uplatexplatex ではなく)でコンパイルすることで dvi ファイルを得る. この dvi ファイルは dviout では開けない(開こうとするとフォント関連(推定)のエラーが出る)がそこは諦める. これを dvipdfmx することで PDF ファイルを得る.このときに
** WARNING ** CMap has higher supplement number than CIDFont: Ryumin-Light
** WARNING ** Some chracters may not be displayed or printed.

のようなエラーが出るが特に気にしない. この時点でできる PDF ファイルは問題の文字のフォントが埋め込まれていない. Acrobat(私の環境では Acrobat 7)を開き,印刷を選び,印刷先を(通常のプリンタではなく)「Adobe PDF」にすることで新しい PDF を作る(ファイル名は変更しよう). こうしてできる PDF ファイルは問題の文字を含めてフォントが埋め込まれている.

「俺は dviout を見ながら編集したいんだ!」という場合は,一時的に platex でコンパイルすれば, 問題の文字が欠けた状態の dvi ファイルを dviout で確認できます.ただし文字がなくなった分のずれが生じます.それも嫌なら一時的に「普通の」文字で置き換えましょう.

misc

インストール
あべのりページのインストーラが楽.(「あべのり」でググるのが速い).
秀丸使いは同サイトから祝鳥を取ってくるのが楽.
他の高機能エディタのいくつかも TeX 用マクロ(なりなんなり)が用意されている,こともある.
Xy-pic
amscd より高機能な,可換図式等を描くためのパッケージ. やはりあべのりページに詳しい.
注意点として,これを用いて作った dvi ファイルを,これをインストールしていない場所の dviout で開くと, 矢印などが(フォントがインストールされていないので)化けるor消える. インストールしている場所のみで開くか,あるいは PDF にしてしまえば問題ない.
別の注意として,単に \usepackage[all]{xy} と書くと TeX が重くなりがちなので, \usepackage[arrow,matrix]{xy} のように限定することであまり重くならない.かも.
[added 2016/03/15]: [all] を追加.
Xy-pic で使える矢印各種(このリストは網羅的ではありません)
\ar@{->}[r] :普通の矢印.デフォルト.
\ar@{=>}[r] :二重線矢印.\Rightarrow のような.可換図式でこれを何に使うかって,そりゃスペクトル系列
\ar@{=}[r] :イコール
\ar@{-->}[r] :点線.「……のときこのような射が存在する」みたいな.
\ar@{_{(}->}[r] :いわゆる単射記号.上下逆にしたければ \ar@{^{(}->}[r].分野によっては \ar@{>->}[r] も使われるようですね.
\ar@{_{(}-->}[r] :点線と単射記号の組み合わせ
\ar@<-.5ex>[r] \ar@<.5ex>[r] :二重矢印.\rightrightarrows もどき. 参考ページ
\ar[r]^(0.2){f} :矢印に乗せる式の位置指定.[r] の場合 0 ほど左,1 ほど右. ただよっぽど重なったりしない限り執筆者はあまり気にしない方がいいかも.
スペルチェッカ GNU Aspell
TeX ソースファイルを扱える. 参考ページ. Windows 版だと実行方法は aspell -c -t hoge.tex .自分で追加した単語の保存先はホームディレクトリにある en.pws で,ホームディレクトリがどこかは aspell config と聞くと分かる.
cygwin 版だと単に aspell hoge.tex でよい.保存先は .aspell.en.pws
ラベル名を表示してくれるパッケージ showkeys
\usepackage{showkeys} とすると,\label, \bibitem, \ref, \eqref, \cite を用いた際にラベル名が表示される.
\usepackage[notref,notcite]{showkeys} とすると \ref \eqref \cite では表示されなくなる.
自明な注意として,このパッケージは執筆中のみ用い,最終版ではコメントアウトすること.
A0 でポスターを作るためのクラスファイル a0poster
名前がそのままですね.CTAN から zip を落として解凍してフォルダごと c:\w32tex\share\texmf\tex\latex\ に置いておけば使えるようになる. 書き方はこれから勉強します.
参考:たとえばここ
なお,某所にあるプリンタで印刷する際は(「A0」でなく)「A0ノビ」にするとよかった気がする.横幅が 91cm であることを確かめる.
AMSRefs
(p)LaTeX 以外のコマンドを走らせる必要がないという点(など)で BibTeX に勝る.この項後で書き足す. なお,MathSciNet では書誌情報を BibTeX 形式でも AMSRefs 形式でも出力可能.
ただ一部の雑誌では BibTeX 式じゃないと投稿を受け付けてないようにも見える.
AMSRefs から BibTeX に変更する場合
[14, Theorem 1] のように参照したい場合の書式の変換:正規表現で
\\cite\{([^\}]*)\}\*\{([^\}]*)\}」→「\\cite\[\2\]\{\1\}
と置換するとだいたいよいのだが, \begin{theorem}[ \cite{Serre--Tate}*{Theorem 1} ] みたいなものにこれを適用するとおかしなことになる (\begin{theorem}[ \cite[Theorem 1]{Serre--Tate} ] となって [ ]の中に [ ] が入るのが問題)ので, このうえさらに
\[([^\]]*)\[([^\[\]]*)\]([^\]]*)\]」→「\[\{\1\[\2\]\3\}\]
と置換するとほとんどの場合よい.
というか,[ ]を使っているために発生するこの種のトラブルを回避できるのが AMSRefs の利点の一つだと思う.
書誌ファイルの変換方法は知りません.
各種参照をハイパーリンクにするパッケージ hyperref
なのだがよく分からん不具合が起こって使用中止したのでよく知らないです. 使用する dviware によって \usepackage のオプションを変える必要があるので注意.
arXiv に投稿する場合はこちらが何もしなくても勝手につくもよう?
よく使う関数名はいちいち mathrm とかで書かずに定義しよう
\sin とか \log のようなものは \DeclareMathOperator を使っていくらでも自作できます.
\DeclareMathOperator{\charac}{char} ... $ \charac K = p > 0 $ (ちなみに \char にしようとすると衝突します.)
こうすることでコードの数学的意味も分かりやすくなり,スペーシングとかもいい感じになってくれる(と思っている).
よく使う括弧類も定義しよう(要 mathtools パッケージ)
\DeclarePairedDelimiter{\norm}{\|}{\|} ... $ \norm{\alpha} = 1 $
こうすることでコードの数学的意味も分かりやすくなり,スペーシングとかもいい感じになってくれる(と思っている).
コンパイル日 [2015/04/20]
\today と書くとコンパイルした瞬間の日付が出力される. 書式が気に入らない人は \the\year/\the\month/\the\day なり何なりと.
で,これをタイトルとか著者とか申請者名の欄に入れておくことで,毎ページに日付が出力されるわけで, 何度もプリントアウトして見直す場合にどの紙がいつのものか分かるようになるわけですよ. 私の現在の設定は:
\makeatletter \renewcommand{\氏名}{氏名 {\small \the\year/\two@digits\month/\two@digits\day\ \two@digits\hour:\two@digits\minute}} \makeatother
[added 2015/04/21]: 素の article だと \hour \minute がうまくいかない.何ならうまくいくのかは調べてない.
label コマンドの場所に注意? [2015/04/21]
label コマンドを下手な場所に置くと妙な空行が発生することがある.原理はよく分かっていない.
サンプル: label.tex label.pdf [2015/04/21 21:20 修正,2015/04/22 09:05 微修正,いずれも本質部分は変えていない]
[added 2015/04/21 21:20]: ZR-TeXnobabbler(既定値)さんに指摘いただいた (ツイートツイート). まだよく分かっていないが TeX の空白文字の取り扱いに関する仕様のようだ.
チルダ ~ の出し方(URL の場合)
TeX で ~ をそのまま書くと空白になってしまいます. \textasciitilde でチルダが出力できますが, URL の中のチルダを書くときこれを使うと URL コピペ時に失敗します,というのは実はチルダではなく別の文字だから.
ではどうすればいいかというと,url パッケージを入れて \url{...} の中に ~ をそのまま書くのが楽そうです.
あるいは,URL 中のチルダは \%7E と書くことにすればブラウザがうまくやってくれます(肉眼での可読性は落ちますが).
あと hyperref パッケージを使うとどうにかなるという話も聞きますが確かめてません.
便利な(らしい)環境・パッケージ・ドキュメントクラス
伝聞です.列挙に留めます.
「enumitem」箇条書き環境を強くする気がする.
「comment」comment環境(コメントアウトされる).だって % を毎行書くの面倒じゃないですか.
「easylist」箇条書き環境用.解説ページ
「TikZ」可換図式関連.
「Beamer」スライドを作るためのドキュメントクラス.
その他
アスタリスクの出し方,アルファベットのフォント,ギリシャ文字 (この項後で書き足す)

dviout

PDF化
メニュー > File > Dviprt で PDF 化できる.自分が TeX ソースを持っていない場合(web から DVI を落とした場合とか)にとくに有効.
紙サイズの変更は(dviout での表示をそれにしておき)Setup ボタンを押して設定する.
表示倍率
メニュー > Option > Setup Parameters > Display で表示する倍率を設定してお(き Save してお)くと 起動時ないしキー 1/2/3/4 を押したときにその倍率になる.
Help TeX
メニュー > Help > Help TeX で表示される青い文字をクリックすると,それを出力するための TeX ソースがクリップボードにコピーされる.
起動時に最大化する方法
(ファイルの所在は手元の環境では C:\w32tex\dviout\dviout.par
ショートカットキー(上下移動)
P(revious)/N(ext) または Pageup/Pagedown で 1 ページ前へ/先へ. U(p)/D(own) で 1 画面分上へ/下へ. Shift+↑/Shift+↓ で 前ページ最下部へ/次ページ最上部へ.
P/NShift+↑/Shift+↓ を無意識に使い分けられると強いかも?
ショートカットキー(その他)
/ (slash) でページ番号入力欄にフォーカスする.

執筆時チェック表(英語)

[added 2017/10/20]

最終更新日: 2017/10/20
ページ管理者:松本雄也
(matsumoto.yuya AT math.nagoya-u.ac.jp)