Showing posts with label LaTeX. Show all posts
Showing posts with label LaTeX. Show all posts

2013-01-29

LaTeX で履歴書・職務経歴書を書く

最近、就職活動に励んでる。そこで必要になるのが履歴書と職務経歴書。ぼくは TeX な人間なので、履歴書も職務経歴書も TeX で書きたい。探してみると、LaTeX 用の cls ファイルやら sty ファイルが見つかった。サンプルを参考にして記入、git でドキュメントを管理している。Tips を含め、ここにやり方を書いておく。

履歴書

阪大の方が JIS 規格の履歴書クラス・ファイルを作っている。サンプルも揃っているのでありがたく使わせてもらう。

文字コードは JIS (iso-2022-jp)。MacBook に入れた TeX 環境は Unicode なので、クラス・ファイルも utf-8 に文字コード変換して使う。

学歴・職歴、免許・資格リストに aux ファイルを使っているので、platex コマンドは二回実行する必要がある。PDF 化は dvidpfmx で。

Makefile を以下に示す:

LATEX  = platex
DVIPDF = dvipdfmx

pdf: rireki.pdf

%.pdf : %.dvi
 $(DVIPDF) $<
%.dvi : %.tex
 $(LATEX) $<
 $(LATEX) $<

JIS の履歴書は B4 だけど、他の書類 (カバー・レターや職務経歴書) は A4 だったりしてサイズが混在する。サイズが混在すると、管理の手間もかかる。なので、ぼくは気にせず A4 用紙に B4 の PDF を印刷してる。

履歴書に写真を貼る

履歴書を手渡しじゃなくて、メールで送って欲しいという企業も多い。その場合、困るのが写真。先のクラス・ファイルは、写真を印刷した履歴書に糊で貼り付けるタイプ。調べてみると、同クラス・ファイルをベースに写真を includegraphics できるパッチを作ってる人がいた。

このパッチを適用して写真を追加。写真はちゃんとした写真屋さんで、データ渡ししてくれるお店を選んだ。中身が JPEG なので、LaTeX で読める様に EPS ファイルに変換。

$ convert face.jpg face.eps

Tips

履歴書のほとんどは使い回せるけど、一か所だけ使い回せない部分がある。それは「志望動機」。git でバージョン管理しているので、会社ごとに修正・コミットすればいいという話もあるけれど、会社ごとの志望動機は見比べたり、参考にしたりしたいので、いつでも読める様にしたい。そこで、志望動機だけは別ファイルに書いて \input している。

例えば、会社 foo を受ける場合は志望動機だけ foo.tex に書く。そして、rireki.tex の該当部分を次の様に書き直す。

\志望動機{\input{foo}}

これで、foo 社の志望動機をいつでも読める様になった。git に変更をコミットする時、新ファイル foo.tex を add するのを忘れないように!!

職務経歴書

LaTeX のソースコードから PDF を作ってくれるウェブ・サービスがある。サンプル・コードがあるので、ローカルに保存して記入。同ページに戻って、LaTeX ソースコードを貼り付け「PDF 生成」ボタンをクリック。以上。

shokureki.sty ファイルも公開されているけど、Mac でコンパイルしようとしたら必要なスタイル・ファイルが足りなくて、面倒になってやめた。

あとがき

以上、LaTeX で履歴書・職務経歴書を書く方法を紹介した。これより、良いものがあればコメントでお知らせ下さい。

時間があったら、こういうクラス・ファイルは自分で作ってみたいもの。

2013-01-16

MacPorts 2.1.2 をクリーン・インストールした

最近 MacPorts をアップデートしていなかった。久々にアップデートしようとしたら、make の途中でディスク容量が足りなくなった。面倒なので、ディスク内の要らないファイルを掃除して、最新版の MacPorts をクリーン・インストールした。今後のために、メモを残しておく。

旧 MacPorts は 2.0.8。2012-01-16 現在の最新版は 2.1.2。

旧 MacPorts のアンインストール

まず、インストールしたパッケージをアンインストールする。

$ sudo port -f uninstall installed

次に、関連ライブラリーや設定ファイルを削除する。

$ rm -rf /opt/local \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg \
~/.macports

dmg ファイルのインストール

MacPorts のページからリンクを辿り、Lion 用の dmg ファイルをダウンロード。ダブル・クリックで展開してインストール開始。ここいらは、他のアプリと同じなので気が楽。

MacPorts をインストールした後は、下記コマンドで最新版にアップデートする。

$ sudo port -v selfupdate

今回は MacPorts 最新版のリリースから日が経っていなかったので、アップデートする項目はなかった。

利用 Port のインストール

ぼくが MacPorts で必要としているのは、三つだけ。すなわち、git, ImageMagick, LaTeX。これらをインストールした。オプションは以下の通り。

git のインストール
$ sudo port install git-core +doc +svn
ImageMagick のインストール
$ sudo port install ImageMagick +rsvg
LaTeX のインストール
$ sudo port install texlive-lang-cjk texlive-documentation-japanese

あとがき

make に時間がかかったことを除けば、トラブルもなくスムーズに事が進んだ。これも、過去ログを書いておいたおかげかな。各 Port の詳細は過去ログ参照のこと。

ref

2012-05-21

自己紹介 〜 clmemo@aka の中の人間

コグレ・するぷのプロブロガー養成セミナーにおいて、読者は存外ブログを書いてる人のことを知らないもの。自己紹介すると、ブログに興味を持ってもらえることも... なんて話を伺った。

確かに、ぼくは 7 年間ブログを書いていて自己紹介に類する記事を書いたことがない。これを機に自己紹介を書いてみる。

自己紹介

本名・安宅正之 (あたか まさゆき)。香川県高松市生まれ。親が転勤族だったのと、大学を色々と移ったため、愛媛県・東京都・新潟県・広島県・京都府・神奈川県に住む。現在、神奈川県在住。

讃岐 (香川県) 生まれのくせに、麺類はそうめんとスパゲッティが好きで、うどんを食べなかった。大学時代に蕎麦屋でバイト。蕎麦が好きになる。その後、うどんの美味しさが分かる様になった。大学院時代・広島にて、尾道ラーメンを食べてラーメンも食べられるようになった。

ブログは 2 つ。趣味系の life@aka と IT 系/オーディオ系の clmemo@aka (このブログ)。

趣味は、読書と音楽鑑賞。基本インドア派。強いて好きなスポーツを挙げるなら水泳。速く泳ぐよりも、水の中に浸かっているのが好き。見るだけなら、高校野球とゴルフが好き。

読書を好きになったのは、小学二年生。じんましんで 19 日間入院。担任の先生がお見舞いに「エルマーのぼうけん」を持って来てくれた。何度も読んで、本が好きになる。図書館に入っては、ファーブル昆虫記やアシモフの子供向け科学ノンフィクションを読んだ。海外系のファンタジー・SF・ミステリーを好む。大学に入って、ライトノベルにも手を出す様になる。

エルマーのぼうけん (世界傑作童話シリーズ)
ルース・スタイルス・ガネット ルース・クリスマン・ガネット

4834000133
福音館書店 1963-07-15
Amazonで詳しく見る
by G-Tools

音楽に手を出したのは、かなり遅れて高校時代。当時、「クラシック・コレクション」という隔週雑誌があって、付録に CD が付いてきてた。この雑誌をきっかけにクラシック音楽にハマり始める。好きな作曲家はバッハ・モーツァルト・ベートーヴェン。古楽は多少、現代音楽はほんの少し聴く。クラシック音楽の次に好きなのは、ミュージカル、映画音楽。最近はジャズやポップスも手を出す様になってきた。日本人の CD はほとんど持っていない。

会社に入って、オーディオをやってる人達と友達になる。当時、ぼくはポータブル CD プレーヤーとアクティブ・スピーカー (PC 用) で音楽を聴いていたんだけど、本格的なオーディオ・コンポの音を聴き圧倒される。気がつけば、自分自身もオーディオ・システムを組んでいた。

パソコンを始めたのは、大学時代。インターネットがやりたくて、高校時代の親友と一緒に秋葉原へ。NEC の PC-98 CanBe を買う。最初はレポートを書くのがメインで、一太郎と ATOK 最高!! とか言っていた。当時のぼくはプログラミングが苦手で、Fortran 77 の Do ループが理解できない落ちこぼれだった。

大学二年の頃だったか? 論文をより奇麗に書くツールとして、LaTeX の存在を知る。この入力支援に EmacsYaTeX を導入 (当時は、まだ 日本語用の Emacs は Mule と呼ばれていた)。Emacs のカスタマイズに EmacsLisp に手を出して、プログラミングを勉強し始めた。なので、一番得意な言語は EmacsLisp だったりする。大学 4 年の頃に、YaTeX と双璧をなす LaTeX の入力支援 AUCTeX に手を出すも、日本語が通らないバグに遭遇。この修正パッチを送ったことがきっかけで、AUCTeX 派に転向。LaTeX がきっかけになって、今はなき UNIX USER 誌で二回特集を書かせてもらった。

ツールとして Emacs を愛するうちにパソコンも好きになっていった。当時困っていたのは、ATOK の口語入力。「だよ」と入力すると (口語入力モードで!) 「だ世」と変換候補が出てきて嫌気が差した。愚痴をこぼしたら、SKK の存在を教えてもらう。漢字の送り仮名の位置をユーザーが指定できるシンプルな漢字変換ソフト。ただし、シフト・キーを多用するので、小指が痛くてしょうがない。そこで噂を聞いたのが T-Code。漢字直接入力という方式の一つ。三度の挫折を経て、T-Code 派に変身。後に Google の TechTalk でライトニング・トークを行なう。

2002 年 1 月。Unix Magazine 誌に連載された高林哲氏の「横着プログラミング」で ChangeLog メモを知る。このメモ・ツールの検索用 EmacsLisp clgrep.el を作成 (あ、リンク切れしてる。直しておこう)。気がついたことは ChangeLog Memo (clmemo) に書いていく習慣を身に付ける。ChangeLog メモに書いていた「自分用のメモ」を外部に出すことを目的にブログを開始。それが 2005 年 4 月。それから、ずっとブログを書き続けている。

2007 年。当時のぼくはほとんど Linux をメインに使っていた。ノート PC は持っていなかった。ところが、会社の新人研修が 2 か月ほどあるという。この間、デスクトップ PC に触れない。そこで買ったのが MacBook だった。初 Apple 製品。その後、iPhone, iPad と Apple の製品にハマッてゆく。入社して多少財布に余裕が出たことから、ガジェット系にも手を出す様になった。

2011 年 10 月に会社を退職。少し体を壊しちゃった。今は次の就職先を考えながら、身体を治してる。できれば、プロ・ブロガーになりたいものだけれども、月のアフィリエイト収入が一万円を越えない状況なので、無理かなぁ。Kindle Store とかが日本上陸したら、電子書籍でも書いてみたいと思うけれども、まだ来ないかなぁ。身体も治ってきたので、就職活動でも始めようかなぁ。なんて今日この頃。

2012-02-24

Lion に TeX (TeX Live) をインストールする

Mac OS には TeX が入っていない。そこで、Mac Ports を使って TeX Live 2011 をインストールしてみた。TeX Live は TeX のディストリビューションの一つ。

$ sudo port selfupdate
$ sudo port install texlive-lang-cjk texlive-documentation-japanese

上記コマンドで TeX のミニマム・インストールができたはず。

テスト ― 英語編

サンプル・コードは下記。文章・数式・目次・索引を作成。

\documentclass{article}
\usepackage{makeidx}

\title{Install \TeX{} with MacPorts}
\author{Masayuki Ataka}

\makeindex

\begin{document}
\maketitle
\tableofcontents

\section{Hello, World}
This is \LaTeX{} test document.

\section{Math}
\begin{equation}
  \label{eq: Einstein}
  E = mc^2
\end{equation}

\section{Make Index}
Einstein\index{Einstein}'s most famous equation is the equation (\ref{eq: Einstein}).

\printindex
\end{document}

実行コマンドは latex を使用。目次を作るために三回 latex コマンドを実行。索引作成に makeindex を使う。ファイル名は intro-en.tex

$ latex intro-en.tex
$ latex intro-en.tex
$ makeindex intro-en.idx
$ latex intro-en.tex

xdvi コマンドで出来上がった dvi ファイルを見る。

$ xdvi intro-en.dvi

ただ、Mac は PDF を得意としているので、PDF に変換して Finder アプリから PDF ファイルをダブル・クリック。Preview アプリで PDF を見る方が見た目は良い。

$ dvipdfm intro-en.dvi

出来上がった PDF ファイルは 15,554 byte。

そういえば、英語ファイルなら pdflatex を使っていきなり PDF を作成することも出来た。

$ pdflatex intro-en.tex

出来た PDF ファイルのサイズは 75,260 byte。あれ、案外、大きいのね。出来上がりは以下の通り。キレイ。キレイ。

テスト ― 日本語編

ファイルは utf-8 で保存。

\documentclass{jarticle}
\usepackage{makeidx}

\title{MacPorts を使った \TeX{} のインストール}
\author{安宅 正之}

\makeindex

\begin{document}
\maketitle
\tableofcontents

\section{Hello, World}
これは \LaTeX{} のテストです。.

\section{数式}
\begin{equation}
  \label{eq: Einstein}
  E = mc^2
\end{equation}

\section{索引の作成}
アインシュタイン\index{アインシュタイン}の最も有名な数式は数式~(\ref{eq: Einstein}) です。

\printindex
\end{document}

実行コマンドは platex を使用。索引コマンドには mendex を使う。ファイル名は intro-ja.tex

$ latex intro-ja.tex
$ latex intro-ja.tex
$ mendex intro-ja.idx
$ latex intro-ja.tex

xdvi コマンドで出来上がった dvi ファイルを見る。

$ xdvi intro-en.dvi
xdvi-xaw: Fatal error: intro-ja.tex: Not a DVI file.

ありゃりゃ。TeX Live 2011 に入ってる xdvi は日本語対応していない。何か他の日本語対応が必要なんでせう。気にせず PDF 化してしまう。

$ dvipdfmx intro-ja.dvi

PDF ファイルが出来上がった。ファイル・サイズは 10,708 byte。フム。英語版とは文字数が違うしね。まあ、コンパクトにファイルが出来た。Preview アプリで出来上がりも確認。

出来上がりもキレイ。とりあえず、日本語 TeX 環境は整った。ヨシ、ヨシ。

ref

2012-01-14

LaTeX の入力補完ツール「YaTeX」のデモ動画

瀬戸亮平氏が、YaTeX のデモ動画を公開している。

YaTeX は LaTeX の入力補完ツール。Emacs のパッケージとして提供される。LaTeX のコマンドを直打ちしている人達は、是非一度見てもらいたい。環境における「end」文の自動補完、ラベルの自動入力、数式記号のイメージ補完入力等々、素敵な機能がつまっている。

動画

動画は 5 つあり、一本当たり約 30 秒前後。項目は以下の通り:

  • section 型補完
  • begin 型補完
  • コマンド変更機能
  • 自動 label 機能
  • 数式記号イメージ補完、ギリシャ文字補完

画面右に編集画面、画面左にコンパイル後の LaTeX 文書が表示されている。全部見ても 3 分程度。YaTeX の利便性が良く分かる様編集されている。手軽に見れるので、LaTeX を書く人は少し覗いてみて欲しい。

※こういう画面キャプチャーってどうやって撮るんだろ?

2009-09-30

YaTeX が開発を Mercurial に移行

Emacs の TeX 入力支援環境として有名な YaTeX が、利用しているバージョン管理を CVS から Mercurial (hg) に切り替えた。

Mercurial は、git と同じ分散型バージョン管理システム。集中リポジトリーにアクセスしなくても、ローカルだけで開発を進められて、適当なタイミングで本家リポジトリーにコミット (push) 出来る手軽さがウリ。特にネットワークの繋がらない移動中 (電車・地下鉄・飛行機の中) でも、開発できるのがいい。

リポジトリーの取得とアップデート

hg の clone コマンドでリポジトリーの取得を行なう。

$ hg clone http://www.yatex.org/hgrepos/yatex

更新は pull コマンド。

$ cd yatex 
$ hg pull -u

ログの確認は log コマンド。

$ hg log | head -20
changeset:   101:970c50beb4ce
branch:      dev
tag:         tip
user:        [email protected]
date:        Mon Sep 28 13:09:16 2009 +0900
summary:     Change default emacsen from mule to emacs

changeset:   100:948655c12676
branch:      dev
user:        [email protected]
date:        Mon Sep 28 13:07:05 2009 +0900
summary:     Remove ancient expresisons

changeset:   99:b1602e0ff018
branch:      dev
user:        [email protected]
date:        Mon Sep 28 12:26:29 2009 +0900
summary:     Refer to utf-8:4

changeset:   98:707912ab8252

あとがき

最近、git に浮気して Mercurial 本を読み返していた。なので、この YaTeX のニュースはタイムリー。Mercurial をいろいろいじる実験体 (?) になりそう :p

入門Mercurial Linux/Windows対応

2006-12-14

LaTeX2e 美文書作成入門 第 4 版

お昼に、鷹の島さんの「Greasemonkeyスクリプティング TIPS&SAMPLES」を買いに本屋に行った。でも売ってなかった。発売日は明日だった。フライング発売を期待したのだけど、甘かった。明日、出直さう。

で、店内をブラブラしてたら、「LaTeX2e 美文書作成入門」の改訂第 4 版が目に飛び込んできた。いつの間に売られていたのか。Amazon でチェックしてみると、2006-12-12 が発売日みたい。発売ほやほや。第 3 版も持ってるけれど、とりあえず第 4 版をレジに運ぶ。美文書作成入門は、LaTeX の最近の情報をおさえるのに便利だし、他の人が LaTeX でぼくに質問しに来た時に、「とりあえずこれを読んで」って渡せるからね。

ちょこっと見てみた所

  • utf-8 化された (というか現在開発中!?) の ptetex 3
  • LaTeX 文書の PDF 化
  • 新しくなった picture 環境 (pict2e)

といった言葉が目を引いた。後でゆっくり読もう。

第三版から比べると、紙面がカラフルになって、逆に読み難くなったように感じる。章や節に青色のアクセントは要らない。個人的には、LaTeX によるプレゼンのページで、Prosper とか Beamer を紹介して欲しかったなぁ。

大体、三年おきに改訂を重ねるこの美文書作成入門。第 5 版は、2010 年かな。

[改訂第4版] LaTeX2ε美文書作成入門
4774129844
奥村 晴彦


Amazonで詳しく見る
by G-Tools

2006-10-29

TeX Q & A の RSS 配信

日本語TeX情報というサイトがある。「LaTeX2e 美文書作成入門」の作者、奥村晴彦氏が開設しているサイトで、TeX (LaTeX) の情報はおそらく日本一。ここ数年は、サイトが wiki 化されて、より情報が集中し易くなっている。

今回の話題は、日本語 TeX 情報に付属の掲示板「TeX Q & A」。奥村氏をはじめとして TeX のパワー・ユーザーが集う掲示板で、TeX (LaTeX) 全般の話題を扱っている。書き込み総数、4 万 5 千以上 (2006-10-29 現在)。TeX で困ったことがあれば、この掲示板に聞くとほとんどの問題が解決する。というか、FAQ 的な問題は、既に誰かが質問しているので、質問する前に掲示板内を検索しませう。たいてい答えが見つかるはず。

さて、この掲示板。有志の手によって RSS も配信されている (配信開始は 2006 年夏。公式なものではないけれど、掲示板からもリンクが張られている)。

新着書き込みから「リストのみ」「リスト + 要約」「リスト + 要約 + 本文」の三種類のフィードが提供されている。

あとがき

TeX Q & A 掲示板では、奥村氏の好意による「新着書き込み」のメール配信も行なわれていた。けれど、ぼく自身、メールからフィード・リーダーに情報収集のツールを移行してしまい、メールを読むことが少くなった。

最近は、返事が必要なものをなるたけメールに集めている。読むだけで済ませられるものは、フィード・リーダーがいい。それに、Google Reader のようなオンライン型のフィード・リーダーを使ってると、どこでもフィードの既読管理が出来る。メールで読んでた時は、読み飛ばしがちだった TeX Q & A の書き込みを、フィード・リーダーだと全て読んでるのも不思議。

TeX Q & A をチェックするのが大変という人は、一度フィード・リーダー経由での購読を試してみては如何? TeX に興味がある人も、この機会に是非。

2006-09-15

LaTeX 用の PS/EPS ファイルを Gnuplot と m4 で作る

最近、LaTeX に貼り付ける PostScript ファイルを Gnuplot で作る際にやってることをまとめておく。

まずはおさらい。例えば、y = sin x という式を、sin.eps というファイルで保存する場合、

set terminal postscript eps
set output 'sin.eps'

plot sin(x)

上のようなコードを書いて sin.gp というファイルで保存し、次のコマンドを実行するんだった。

$ gnuplot sin.gp

すると、sin.eps というファイルが出来る。

PS ファイルと EPS ファイル

ここで少し脇道に逸れて、set terminal postscript landscapeset terminal postscript eps の違いを説明しやう。前者 (landscape は省略可) は、A4 用紙一杯に横向きで図を描く。後者は、小さめの図を描く。

landscape は印刷するのに向く。その代わり LaTeX に貼るには不向き。図を 90 度回転させたり、小さくする手間がかかるし、図を小さくするとフォントまで小さくなり見難くなる。これを修正する手間が、更にかかる。

一方、eps は図が最初から小さく、landscape のように図を回転させる必要もないので、LaTeX に貼るのに最適。ただし、eps 単体を印刷すると、図の小ささが際立つ。

そろそろ本筋に戻らう。色々と図を作って思ったのは、印刷用の図と LaTeX 用の図を一緒に作っておくと便利ということ。

片方のファイルを先に作っておき、必要に応じてもう一方のファイルを作る、というのは面倒で、しかも、もう一方のファイルが必要になる時に限って、急を要することが多い。最近は、ファイル・ストレージの容量も大きくなってきたので、最初から両方の図を作る方がいいという結論に達した。

そういうわけで、上の sin.gp を、もう少し実戦的に直すと下のやうになる。

#
# sin.gp
#
set xlabel "x label"
set ylabel "y label"
set xrange [0:10]
unset key

# ps
set title 'Sin function'
set size 1.0
set terminal postscript landscape enhanced color
set output "sin.ps"
plot sin(x)
# eps
unset title
set size 0.6
set terminal postscript eps enhanced mono
set output "sin.eps"
replot

landscape/eps に共通な設定を最初に書く。xlabel, ylabel を書いておくのは、図の最低限の嗜み。図によっては、xrange 等の設定を加える。

landscape (#ps 以降) では、title を設定する。印刷した後だと、何のファイル/データを印刷したのか分からなくなりがちなので、ここに情報を書いておき、忘れないようにする。逆に eps (#eps 以降) では、title の設定を無効にする。LaTeX では、そういう情報を caption に書くので、title 部はあるとかえって邪魔。

次にサイズの指定。set size 1.0 はサイズを変えないということ。set size 0.6 は小さめのサイズにするということ。eps のフォントと線は、LaTeX に貼るにはまだ小さく細い。そこで、set size で小さめの図を作る (この時、フォントの大きさと線の太さは変わらない)。そして、LaTeX 側で拡大する。すると、フォントの大きさと線の太さが大きくなるという仕組。縮小率は、0.6 倍位いが適当。

terminal の指定で、enhanced はギリシャ語などを表現する時に使う。color/mono は色付きか白黒か。論文などは白黒がベースなので、eps は白黒で作る。けれど、印刷する時はカラーの方が見易いかな? と思う。ここら辺はお好みで。

m4 を使う

さて、上のコードでは、output ファイル名を sin.ps と sin.eps とした。二つのファイルは、拡張子が違うだけなので、basefile name (拡張子の前の部分) を変数に保存したら、後の編集が楽になる。けれど Gnuplot 4.0 では変数に文字列を代入することは出来ない (4.1 では出来るようになるらしい)。

ぼくは、m4 マクロを使ってこれを解決している。上の例は、m4 を使うと次のように書ける (ここでは、data ファイルをプロットする例を書いた)。

changequote([[,]])dnl
define([[base_filename]],[[sin]])dnl
define([[data_filename]],[['sin.txt','cos.txt']])dnl
define([[PLOT]],[[

# ps
set title 'Sin and Cos'
set size 1.0
set terminal postscript landscape enhanced color
set output "base_filename[[]].ps"
plot data_filename
# eps
unset title
set size 0.6
set terminal postscript eps enhanced mono
set output "base_filename[[]].eps"
replot
]])dnl

dnl --------------------------------------------------------------------------------
#
# sin.gp
#
set xlabel "x label"
set ylabel "y label"
set xrange [0:10]
set style data dots

PLOT

水平線の入るまでが m4 の定義部分。入った後が gnuplot の PS/EPS 共通設定。

m4 から gnuplot 用のファイルを生成し、そこから PS/EPS ファイルを作る Makefile は次の通り。

#
# Makefile for sin
#
all: ps

M4 = m4
M4FLAGS =
GNUPLOT = gnuplot

SRC = sin

ps: $(SRC).ps
$(SRC).ps: $(SRC).gp $(SRC).txt cos.txt
 $(GNUPLOT) $<
$(SRC).gp: $(SRC).m4
 $(M4) $(M4FLAGS) $< > $@

#
# clean
#
RM = rm -f
clean:
 $(RM) *~
distclean: clean
 $(RM) $(SRC).gp
psclean:
 $(RM) *.ps
epsclean:
 $(RM) *.eps
allclean: distclean psclean epsclean

これで、make 一発で ps/eps ファイルが作れる。

2006-09-11

LaTeX でページ番号を消す

LaTeX で、ページ下に表示されるページ番号を表示させないようにするには、プリアンブルに次の一行を加える。

\pagestyle{empty}

特定のページだけ、ページ番号を表示させない場合は、そのページに次の一行を加える。

\thispagestyle{empty}

一ページ目でページ番号が消えない

\pagestyle{empty} をプリアンブルに記入しても、ページ番号が消えないことがある。それは、もしかしたら、一ページ目だけページ番号が消えないで残ってないだらうか? もし、そうなら、次のやうなコードを書いてると思う (そうでないなら、きっとタイポでせう)。

\documentclass{jarticle}
\title{TITLE}
\author{AUTHOR NAME}

\begin{document}
\maketitle

Here continues paragraphes...
\end{document}

原因は、\maketitle。例えば、article.cls の 208 行目を見てみやう。

\newcommand\maketitle{\par
  \begingroup
    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
    \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
    \long\def\@makefntext##1{\parindent 1em\noindent
            \hb@[email protected]{%
                \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
    \if@twocolumn
      \ifnum \col@number=\@ne
        \@maketitle
      \else
        \twocolumn[\@maketitle]%
      \fi
    \else
      \newpage
      \global\@topnum\z@   % Prevents figures from going at top of page.
      \@maketitle
    \fi
    \thispagestyle{plain}\@thanks
  \endgroup
  ...

このように、maketitle の定義に \thispagestyle{plain} が含まれているので、プリアンブルの \pagestyle 命令が無視されちゃう。maketitle は大低、article の一頁目に置くから、一ページしか書かないアブストラクトとかだと、\pagestyle 命令が全然効いてないように見えてハマっちゃう (というか、ハマった)。

解決策

\maketitle の後に \thispagestyle{empty} を置くだけ。

ref

2006-06-06

LaTeX の二重周回積分記号

LaTeX の論文で、二重周回積分記号が必要になった。

LaTeX には周回積分記号として \oint が、二重積分記号として \iint (amssymb package が必要) が用意されている。ここから、二重周回積分記号は \oiint になると予想される。

ところが、\oiint は LaTeX でも amssymb パッケージでも定義されていない! Office の数式エディターには、ちゃんとあるのに... なんか敗北。

諦めかけた所、「The Comprehensive LaTeX Symbol List (LaTeX で用いられる記号類の包括リスト)」という文書を見つけた。2005 年 9 月現在の LaTeX 用シンボル 3300 個を、105 ページにまとめたもの。

これによると、以下の 4 つのパッケージで \oiint 命令が定義されているという (巻末の索引で探すと一発)。

  • wasysym.sty
  • mathabx.sty
  • txfonts.sty / ptxfonts.sty
  • esint.sty

手元の環境 (FC2) には、wasysym.sty と txfonts.sty がインストールされていた。

あとがき

LaTeX/amssymb で定義されていないマイナーなシンボルを探すなら、「The Comprehensive LaTeX Symbol List」。役に立つと思う。

2005-10-02

AUCTeX 11.81 の日本語モード

AUCTeX の日本語モードについて、バージョン 11.81 を対象に解説を書いた。

AUCTeX には日本語 TeX 用に tex-jp.el というファイルが用意されており、この中で japanese-latex-mode が定義されている。 japanese-latex-mode は、tex-jp.el をロードしただけでは有効にならない。ここではメジャー・モードが japanese-latex-mode な時、 AUCTeX は日本語モードに入っているとしよう。

日本語モードに入ると、どうなるか

まず、tex-jp.el をロードした時点で次の設定が加わる。

  • コンパイル・コマンド ( C-c C-c) に日本語 TeX 用のコマンドが追加される。追加されるのは、 pLaTeX, jLaTeX, mendex, jBibTeX など。
  • クラス・ファイルの候補に日本語のクラス (jarticle や jsbook など) が追加される。
  • スタイル・ファイルのサーチ・パスに日本語 TeX の Path (/usr/share/texmf/ptex など) が追加される。
  • 日本語の命令 ( \西歴 など) を理解するようになる。
  • エラー・メッセージが日本語になる。

そして、 AUCTeX が日本語モードに入ると、次の機能が加わる。

  • コンパイル・コマンド LaTeXplatex (or jlatex) が実行されるようになる。
  • BibTeX のデフォールトが、jBibTeX になる。
  • クラス・ファイルのデフォールトに japanese-LaTeX-default-style が使われる。

少し説明が必要なのは、コンパイル・コマンドかな。

AUCTeX では C-c C-c COMMAND で外部コマンドを呼び出し、TeX ファイルをコンパイルできる。デフォールトの COMMAND は LaTeX で、 latex コマンドが実行される。この LaTeX は少し賢くて、クラス・ファイルから実行するコマンドを切り替える。つまり、article クラスなら latex を、jarticle クラスなら platex を、j-article クラスなら jlatex コマンドで TeX をコンパイルする。ちなみに、クラス・ファイルから実行コマンドの推測に失敗した場合に備えて、 pLaTeX, jLaTeX というのも用意されてる。クラス・ファイルを自作でもしてない限り、全て LaTeX でやって大丈夫。

一方、 BibTeX は違う。 AUCTeX は TeX のコンパイルに bibtex コマンドが必要な場合、 C-c C-cBibTeX が候補に挙がる。この時、日本語モードに入っていると、 BibTeX の代わりに jBibTeX が候補に挙がる。つまり、 BibTeX は、クラス・ファイルを見て実行コマンドを切り替えてはくれない、ということ。

日本語モードにどうやって入るか

AUCTeX はファイルをパースして (正確には \documentclass で指定されてるクラス・ファイルを調べて) 日本語モードに入るかどうかを決める。ところが、 AUCTeX はデフォールトで自動パースしない。そのため、ユーザーがパーサーを走らせなきゃいけない。パースの実行は C-c C-n

TeX ファイルを開いた時、自動的にパースするには次の設定を .emacs に追加する。

;;
;; Automatic Parsing of TeX files.
;;
(setq TeX-parse-self t)  ; ファイルを開いた時に自動パース
(setq TeX-auto-save  t)  ; パースしたデータを保存する

さて、問題はもう一つある。新規にファイルを作った時、ファイルは空でクラス・ファイルも \documentclass もない。だからパースしても、日本語モードに入らない。従って、新しいファイルに限っては、\documentclass を書いた後に、明示的に C-c C-n しなくちゃいけない。

それが面倒というなら、次の設定を .emacs に加える。

;;
;; Japanese TeX
;;
(setq TeX-default-mode 'japanese-latex-mode)

これで新しく開いたファイルは日本語モードに (強制的に) なる。

僕は日本語と英語の文章を半々の割で書くから、 TeX-default-mode の設定はしてない。少々面倒だけど、日本語ファイルの場合だけ C-c C-n してる。どうせ、最初の一回だけなので気にしない。

まあ、ほとんどの人は上の設定も加えるようにしとけば、いいんじゃないかしらん。

新しくクラス・ファイルを作った時に

今の AUCTeXC-c C-c LaTeX で、クラス・ファイルから実行する latex コマンドを選ぶ。これはもう書いた。問題は、新しくクラス・ファイルを書いた場合はどうするか? AUCTeX がそのクラス・ファイル知らなければ、日本語モードに入っていても latex でコンパイルされちゃう。

回避策は二つある。一つは、 C-c C-c LaTeX の代わりに C-c C-c pLaTeX を使う。もう一つは、 AUCTeX に自作のクラス・ファイルを教える。

後者の具体的な設定は、自作のクラス・ファイル名が myclmemo.cls だとして、次のようなコードを .emacs に追加する。

(setq LaTeX-command-style
      (append '(("^myclmemo$"
   "%(PDF)platex %S%(PDFout)"))
       LaTeX-command-style))

2005-09-24

dvipng 1.6 を使ってみる |AUCTeX|LaTeX|

dvipng は、TeX の DVI ファイルから PNG (or GIF) 画像を生成するコマンド。今回は簡単な使い方を書いてみる。

先に書いておくけど、dvipng 1.6 はまだ日本語に対応していない。

インストール

インストール方法は、普通の GNU 方式。通常、以下の操作で OK なはず。

$ ./configure
$ make
# make install

必須のパッケージは、 gd と libing, libz, Texinfo。gd 以外、ほとんどのシステムでデフォールト・インストールされてるはず。

dvipng を使ってみる

こんな TeX ソースを試してみよう。

\documentclass{article}
\begin{document}
This is a test of dvipng.
\newpage
\pagestyle{empty}
\begin{equation}
1 + 2 + \cdots + 10 = \sum_{i=1}^{10} i = \frac{10(10-1)}{2}
\end{equation}
\end{document}

ファイル名を dvipng.tex とする。コンパイルは次の通り。

$ platex dvipng.tex
$ ls
dvipng.aux  dvipng.dvi  dvipng.log  dvipng.tex

出来上がった DVI ファイルを dvipng にかけてみよう。

$ dvipng dvipng.dvi
$ ls
dvipng.aux  dvipng.dvi  dvipng.log  dvipng.tex 
        dvipng1.png  dvipng2.png

      

dvipng1.pngdvipng2.png というファイルが出来た。このように、dvipng は、1 ページごとに PNG 画像を生成し file#NUM.png という名前で出力する。

PNG ファイルの中身を見てみよう。

dvipng1.png は、縦長の画像になった。dvipng は基本的に、文字が表示された範囲だけを PNG にする。この場合、ページ番号がページ下にあるため縦長の画像になってしまった。

dvipng2.png は数式の画像。ページ番号を出力させないよう \pagestyle{empty} という命令を使った。今回、サンプルということで改ページ後に入れたけど、本来、このコマンドはプリアンブルに入れるもの。

dvipng のオプション

よく使いそうなものだけ、ピップアップ。詳しいことは、info を読んで下さい。

-T tight
dvipng2.png を見れば分かるが、左上に空白部分が残っている。このオプションを指定すると、できる限り空白部分を除くようになる。
-bg transparent
背景部分を透明にする。
-fg 'rgb 1.0 0.0 0.0'
前景色 (文字の色) を指定する。
--gif
PNG 画像の代わりに GIF 画像を出力する。
-pp firstpage-lastpage
firstpage から lastpage までを dvipng する。

さっきの dvipng.dvi の 2 ページ目を赤色で出力してみませう。

$ dvipng -T tight -bg transparent -fg 'rgb 1.0 0.0 0.0' -pp 2:2 dvipng.dvi

dvipng2.png Webpage やプレゼンなんかで、TeX の数式を PNG で貼り付けたくなることがあると思う。そんな時、dvipng は役に立つ。

ref

2005-07-20

LaTeX でポスターを |LaTeX|

LaTeX でポスターを作る時、一つ注意したいのがフォントの設定。これは「手元で読むテキスト」と「遠目に読むプレゼン資料」の差。一般に、プレゼンテーションで使うフォントはサンセリフ (日本語ならゴシック体) の方が目に優しいという。

というわけで、ポスター用のテキストを LaTeX で書く場合は次のおまじないを入れておこう。

\usepackage{mathptmx}
\usepackage[scaled]{helvet}
\renewcommand{\familydefault}{\sfdefault}
\renewcommand{\ttdefault}{pcr}

日本語のテキストなら、和文もゴシック体に。

\renewcommand{\kanjifamilydefault}{gt}

フォントの種類を変えると、文字の幅が変わる。上の命令を入れたら、レイアウトが崩れてないかチェックを忘れずに。できれば、本文を書くより先に上の命令を入れとくといい。