2012/12/23

スタイルファイルを作ろう("TeX & LaTeX Advent Calendar")

1. はじめに
本投稿は "TeX & LaTeX Advent Calendar" の参加記事です (http://atnd.org/events/34318)。
はじめに書きましょう。
22日目,遅くなりまして申し訳ありません。
帰宅後更新するつもりでいたのですが,いろいろあって遅くなったため,日付が変わってから書き始めるという失態…。

さて,今日は初心者向けの話の第二弾として,スタイルファイルについて書きます。
ひとまず,すごく大雑把なことしか書きませんが,頑張って加筆修正します。

2. スタイルファイルの作り方
スタイルファイルはいわばマクロ集であったり,文書の書式が書き込まれたファイルのことです。
"***.sty" という名前なのですが,これを作るために特別な知識は必要ありません。
テキストエディタを開き,次の1行をとりあえず書き込んで "my-macto.sty" という名前で保存しましょう。
\ProvidesPackage{my-macro}
これは入れなくても大丈夫なコマンドですが,あなたがプリアンブルでもしも同じ名前のスタイルファイルを "\usepackage" したときにエラーメッセージで教えてくれます。
少し便利ですね。
もしあなたが作ったスタイルファイルはLaTeXでしか使われてほしくないとき(TeXにはないコマンドを使っている時)は
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{my-macro}
と書いておくといいでしょう。これでLaTeX以外でこのスタイルファイルを読み込んだ文書を組版しようとするとエラーが出ます。

3. スタイルファイルに入れるもの
さて,スタイルファイルにはどんなものを入れればいいのか初心者にはよく分からないのではないかと思います。
一般的?には,スタイルファイルには次のようなものを入れておくといいでしょう。
自作のマクロ(図,表,式のラベル参照のマクロなど[1])
書式の設定(余白,文書の幅,タイトルの書式等)
などなど…
まとめてしまいますと,"他の文書でも使いまわすようなマクロ,設定" をスタイルファイルに書き込んでしまいましょう。
一例として,私が授業で教員に例として示された "my-report.sty" というのをgistにアップしました。
https://gist.github.com/4362214
から見れます。
これは,文書の余白を設定するためのコマンドが書かれただけのスタイルファイルです。

これを使いたい時,使いたい文書のプリアンブルにこのように書きましょう。
\usepackage{my-report}
これであなたが "my-report.sty" に書かれた余白の設定で文書を作ることができます。

4. スタイルファイルを使う前に(2012/12/23追加)
さて,大事なことを忘れていました。
新しく作ったスタイルファイルを使うためには,それがTeXにわかる場所に置かれていなければなりません。
一番簡単な方法は,そのスタイルファイルを使うソースコードと同じフォルダに入れておくことです。
でもこれはそのスタイルファイルを使うソースコードのフォルダを作るたびにコピーする必要があるので,面倒くさいと思うかもしれません。

このことについてはTeX Wikiの次のページを見るといいでしょう。
TeX入門/各種パッケージの利用 - TeX Wiki
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%E5%85%A5%E9%96%80%2F%E5%90%84%E7%A8%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E5%88%A9%E7%94%A8#tc299bdb

5. 終わりに
スタイルファイルはわざわざマクロ定義や書式の設定をコピペする手間を減らしてくれる便利なツールです。
是非自作マクロや書式設定があるなら,スタイルファイルに書き込んでしまいましょう。
そうすることで,わざわざテンプレートをコピペする必要だってなくなります。

2 件のコメント:

  1. thank's regard for your information and i like this post ^___^

    返信削除
  2. Your information is very helpful to me, especially your contribution to git
    will help me a lot in writing style files.

    返信削除