nDiki : LaTeX2e

2004年3月12日 (金)

[ お仕事 ] 久しぶりに TeX打ち

受けとった MS Word ファイルを LaTeX2e に。

ヘッダ・フッタとかもアレンジする。 一時期はかなりTeXのマクロで遊んだのだが(数値計算してそのままプロットとか、有限オートマトン定義を正規表現に展開するとか)、すっかり忘れてしまっている。

[ 3月12日全て ]

2004年7月13日 (火)

久しぶりに TeX (LaTeX2e) のマクロ書き

tkh君から質問を受けたが、最近ずっと書いていなかったのでいろいろ忘れてしまっているので即答できず。

悔しいので帰っていろいろ実験してみたが、うまくいかず。無念。 お題は「\marginpar の環境版」なのだが、CTAN あたり探せば既にあるのかも。

しかし TeXGNU m4 のマクロは面白いと同時に難解。

[ 7月13日全て ]

2005年4月26日 (火)

(p)LaTeX2e 用文書クラスを作る

そろそろきちんとクラスファイルを作りたい。 \LoadClassを使えば他の文書クラスをベースにしたクラスが作れるのか。

とりあえず

 \NeedsTeXFormat
 \ProvidesClass
 \DeclareOption
 \DeclareOption*
 \PassOptionsToClass
 \CurrentOption
 \ProcessOptions
 \LoadClass
 \RequirePackage

あたりを使えば、簡単に他の文書クラスを継承してmy文書クラスを作れる。

[ 4月26日全て ]

2005年4月28日 (木)

LaTeX2e マクロ&クラス プログラミング基礎解説

[ コンピュータ書籍 ]

dtxファイル、insファイルの書き方を知りたかったので「LaTeX2e マクロ&クラス プログラミング基礎解説」を購入。

[ 4月28日全て ]

2005年5月8日 (日)

LaTeX2e クラスファイルを .dtx + .ins 化

書籍や他のクラスファイルでの書き方を参考に、クラスファイルを .dtx 化。 だんだん構成がわかってきた。

  • DocStrip (docstrip.tex) を \input した .ins ファイルが .dtx をフィルタリングするバッチファイルになる。
  • .dtx ファイルは、% の部分に生成されるもののドキュメントを書く。.dtx はコンパイルした時に、もう一度自分自身を読み込むように書く。ここらへんは doc パッケージの機能を使う。

トリッキーだが、うまくできている。

ただマクロの定義順と説明したい順が違うと、悩むな。

[ 5月8日全て ]

2005年12月1日 (木)

Docutils は自分にとっての Python キラーアプリかも

先日 reStructuredText ベースの要求仕様書ファイルから、LaTeX への変換プログラムを Perl で作成した。rst2xml で変換した XML 文書経由で。

欲しいところだけまずは実装して使ったんだけれど、この先使っていくには細かいところを組んでいく必要がある。やっぱりフルスクラッチするのは面倒だな。

本来は Docutils 用の Writer を作成するのが王道。

しかし Python なんだよね。以前に何度か覚えておこうと思ったんだけれど動機付けが弱かったのかいつも途中でフェードアウト。 しかし今回は明確な目的があるので、もりもりやりそう。

まずは既存の docutils.writers.latex2e.py あたりをコピーしていじって遊んでみるかな。 自分の場合この方法が一番覚えるのが早い。 小学生の時に最初にBASICをいじった時も、既存のゲームのパラメータとか改造から入ったし。

さて、その latex2e.py であるが「documentclass がオプションや設定ファイルで変更できるものの、標準の LaTeX2e 用のもののどれかしか駄目」だったりなど、普通に使うにもちょっといじる必要がありそう(jsbook とか使いたいし)。

一旦自分好みの LaTeX2e Writer を作ってから、それを拡張する形で特定文書毎の Writer を作るのがよさそうだ。

[ 12月1日全て ]

2005年12月7日 (水)

DocutilsreStructuredText から LaTeX への Writer は継承しづらい

この間やっつけでPerl で コンバータをちょっと書いたのだが、やはりここは正攻法で Docutils の Writer として書いておきたい。

Docutils に含まれている LaTeX2e Writer (docutils.writers.latex2e) のクラスを継承してカスタマイズ版を作ればいいかなと着手。 この Writer の生成する TeX ファイルがちょっと好みではないので、継承して自分好みの Writer を書いた上で、それを継承してドメイン毎の Writer を書く事にする。

Python でコードを書いたことはほとんどないのだがそれほど迷う点はない。 素直な言語なのかな。$ とか @ が出てこないのはちょっと寂しい。ブロックをインデントで示すので「閉じ」がなく、ちょっと「スースー」する。 わかる? この気持ち。

Docutils はパースした結果 DOM ライクなツリーができて、これに対して visit / depart 式の visitor を使って処理をしていけるようになっている。 そのあたりはフレームワークがあるし、典型的なパターンなので楽ではある。

ただし、docutils.writers.latex2e のクラスが継承されることを意識されている感じがしないので、メソッドをコピーして書き換えてオーバーライドといった事が必要になる箇所が思ったよりあるのがちょっと気になる。 今後バージョンアップした時に内部も変わる可能性があるだろうし、最終的にはごっそり Writer を作ってしまう方が良さそうだ。

[ 12月7日全て ]

2006年10月23日 (月)

LaTeX2e クラスファイルは日付を更新し忘れがち

pLaTeX2e ドキュメントを書くのに、会社用クラスファイルを更新。

クラスファイルの \ProvidesClass や \changes の日付を正しく更新するのを忘れたまま、リリースパッケージを作ってしまいがち。

クラスファイルリリース用パッケージ作成 Makefile でテストできるようにした方がいいかもしれない。

[ 10月23日全て ]

2010年9月9日 (木)

ptexliveUTF-8 pLaTeX2e 文書対応

LaTeX2e 美文書作成入門

また久しぶりに LaTeX2e でドキュメントを作成したくなった。 今まで Linux でも Windows でもコンパイルが通るように ISO-2022-JP で書いていたのだが差分も取りにくいし、そろそろ UTF-8 にしたい。 調べたら Linux なら ptexliveUTF-8 対応の pLaTeX2e が使える模様。Windows については W32TeX が対応済みのようだ。

Debian GNU/Linux では ptexlive がないので、野良インストールした。

~/tmp/ptexlive の下でビルドして /usr/local/texlive/p2009 の下にインストール

以下手順メモ:

依存 Debian パッケージインストール

手元の環境では以下を追加インストールした。

  • libxt-dev
  • libxaw7-dev
  • gs-cjk-resource
  • poppler-data

ptexliveTeX Live をダウンロードしてビルドインストール

~/tmp/ptexlive を作りファイルをダウンロード。 ptexlive アーカイブを展開、TeX Live の方は ISO イメージを展開してマウントする。

 cd
 mkdir -p tmp/ptexlive
 cd tmp/ptexlive
 wget http://tutimura.ath.cx/~nob/tex/ptexlive/ptexlive-20100711.tar.gz
 wget http://www.t.ring.gr.jp/pub/text/CTAN/systems/texlive/Images/texlive2009-20091107.iso.xz
 tar zxvf ptexlive-20100711.tar.gz
 7za e texlive2009-20091107.iso.xz
 mkdir texlive
 mount -t iso9660 -o loop texlive2009-20091107.iso $PWD/texlive

(2010年9月18日追記: ここで TeX live をインストールする)

次に ptexlive を展開してディレクトリに移動して ptexlive.cfg を用意し編集する。

 cd ptexlive-20100711
 cp ptexlive.sample ../ptexlive.cfg
 emacs ../ptexlive.cfg

変更したところは以下。

そしてビルド。なお既存の ~/.texmf-var があると正しくないビルドができる可能性があると警告されるので移動しておく。

 mv ~/.texmf-var ~/.texmf-var-tmp
 make
 make otf

最後にテストがこけるがこれは無視してもよいらしい。

そしてインストール

 su
 make install
 exit

以上で完了。

使用する

環境 PATH を通す。Debian GNU/LinuxTeX 関連パッケージより優先して使うように既存の PATH の前に設定。

 export PATH=/usr/local/texlive/p2009/bin/i686-pc-linux-gnu/@:$PATH

UTF-8 なサンプル pLaTeX2e ファイルを作成して platex、dvipdfmx が通ることを確認。

Happy TeXing!

[ 9月9日全て ]

2010年9月17日 (金)

今日のさえずり: 小学生のとき鉛とスズで、はんだ作った記憶

2010年09月17日

  • 08:40 20年以上前の赤いバンダナ出してきた。
  • 09:35 今日はいい日だ。
  • 09:38 昨日の夜、自転車カバーのかごの窪みにたまった水を向こうに排水しようと持ち上げたら半分は手前にジャー。今日は旧シューズで出勤。コツを掴みたい。
  • 09:58 Android のナビつけながら出勤してる(徒歩)。バックグラウンドでもちゃんと音声案内流れるんだ。
  • 10:05 Windows Update でコンピュータ再起動予告が出ているので、すきま仕事する。
  • 10:09 換気扇もつけてください。 RT @as_tone: 業務連絡:窓開けている人と冷房つけている人がいます…どうしろと。
  • 12:05 デミ豚カツ&海老ピラフ 450円。 (@ ファミリーマート神田佐久間町店) http://4sq.com/biJuCj
  • 13:22 この間いれた ptexliveOS再起動したら mktexnam: Could not map source abbreviation for cmr8. って出るようになった。前回も同様になって再インストールしたら直ったんだけど。
  • 13:51 わかった。 http://bit.ly/b8jAZ7 この手順で ptexlive インストールした状態だと texlive2009-20091107.iso をマウントしっぱなしでないとマズいんだ。ちょっとインストールの仕方が良くなかったっぽい。
  • 14:05 Sumatra PDFPDF ファイルの変更を検知して同じページを表示している状態で再読み込みしてくれるので、LaTeX2e 文書作成時の viewer として良いな。日本語も今のところ表示できてる。
  • 14:08 ただし Sumatra PDFPDF ファイルを開いている間は、Dropbox がサーバから新しいバージョンを取ってきても更新をかけずに待つので、他で PDF ファイルを更新しても閲覧を追随させることはできず。
  • 18:22 Gokuri 100円。
  • 19:22 @as_tone 銀色の糸状のアレを探してゴソゴソしていますね?
  • 19:36 そういえば小学生のとき鉛とスズで、はんだ作った記憶がある。
  • 19:56声優のたまご」祝1周年らしい。
  • 20:22 ああ、もうハロウィンの季節か。ん?
  • 20:39 口笛が吹けない自分には無印良品の音楽がなんとももどかしい。
  • 22:44 桂東さんが怪しいと先々週から思ってる。
  • 22:45 テシテシ。
  • 22:51 さっき Web アクセスが遅かったのは無線 LAN に接続したにもかかわらず、有線 LAN 接続時の DNS サーバIP アドレスが /etc/resolv.conf の筆頭に残っていたからだった。ifdown eth0
  • 23:13 なんか Xperia時計が1分ほど進んでいる。
  • 25:18 熱海の捜査官の復習した。だいたいわかりましたよ。
[ 9月17日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.059979s / load averages: 0.93, 0.69, 0.63
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker