nDiki : LaTeX2e

LaTeX2e

メモ。

角度(°)

 \newcommand{\degree}{^\circ}

textcomp パッケージ

 \textdegree

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日全て ]

2010年10月1日 (金)

今日のさえずり: そういえば乳がん検診を受けたことがない

rimage:/nDiki/Flickr/5043752173.jpg

2010年10月01日

[ 10月1日全て ]

2010年10月6日 (水)

今日のさえずり: レンズ付きフィルム握ってる若者見つけてホッコリした

2010年10月06日

  • 09:23 今日も電車冷房入ってる。
  • 09:30 1週間限定のウチカフェ「苺のロールケーキ」が大変気になる。
  • 09:46 久しぶりにレンズ付きフィルム握ってる若者見つけてホッコリした。
  • 12:08 弁当 350円。
  • 14:13 コードリーテディングした内容のまとめを Word 使って書いているけど、やっぱ使い慣れないなあ。LaTeX2e? _ とか面倒だな。reStructuredText にするか。まあこちらは今度は画像の管理が面倒なんだけど。
  • 14:37 やっぱり reStructuredText にした。圧倒的に速く書ける。
  • 16:21 Samba で外部へのシンボリックリンクが辿れなくなっていた。Samba アップデートしたからか。[global] unix extensions = No にして、必要なセクションに wide links = Yes を追加。
  • 17:23 コーヒー飲料 100円。
  • 19:17 工数見積もり中。バッファとデバッグを10%ずつ盛ると結構な時間数になっちゃった。
  • 19:34 ああ、そうだ国際化も考慮しないといけないんだっけ。
  • 20:12 RT @zerobase: 成果物ベースで見積を出して一括請負する能力がなくて、人月見積で客先常駐で顧客の朝令暮改につきあい続けて現場が疲弊してるSIerって、いくつかの点に注目すればわりとアジャイルに近いところにいる。経営者が賢ければ変えられるんじゃないかな。
  • 22:41 YAPC::Asia Tokyo 2010 会場の東京工業大学「70周年記念講堂」「百年記念館 フェライト記念会議室」「東工大蔵前会館 ロイアルブルーホール」って電源取れるとこないのかな? #yapcasia
  • 24:11 Xperia電池パックもう1個買い足すか迷ってる。手持ちの2個と合わせて3個必要なシチュエーションって滅多にないからなあ。
[ 10月6日全て ]

2010年11月1日 (月)

今日のさえずり: 「最初女性だと思っていました」

2010年11月01日

  • 09:59 面接1箇所目10:00になった。
  • 11:13 今日新しく入社されている人に思いっきりアカばれしてた。というかモロに会社名も実名も出していて全然隠してはいないので、今まで新しくきた人が何も言ってこなかった方が不気味。
  • 11:14 「最初女性だと思っていました」ゴメンナサイ、オトコで。ネカマでもないです。
  • 11:19 2つ目の面接は15:00に決定。そして要安全ピン。
  • 11:24 Norton Internet Security 2010 で 2011 へのアップデート案内ダイアログが出たのでアップデート。何かマップがスパイ基地みたいで楽しい。
  • 12:16 安全ピン入手した。
  • 12:23 ついでにトミカも入手。
  • 12:41 ヨド Edy 初チャージした。
  • 12:49 幕の内弁当 398円。
  • 15:46 「勧告的ロック」を検索しようとして「韓国的ロック」で検索してしまったが、それなりにヒットした。
  • 17:08 \index{親!子}って毎回書くの面倒臭い。なんかいいマクロはないものか。 #LaTeX2e
  • 17:15 idx ファイルを書き換えるスクリプト書けばいいか。
  • 18:12 YAML ファイルとして書いておいた索引語変換辞書を読み込んで idx ファイルを置換する Perl スクリプト書いた。 RT @Naney: \index{親!子}って毎回書くの面倒臭い。なんかいいマクロはないものか。 #LaTeX2e
  • 19:32 spモードメールアプリがシビレるぐらい重くなってきた。
  • 22:44 目の前に広辞苑第六版があるので「たほいや」など調べてみた。
[ 11月1日全て ]

2010年12月17日 (金)

今日のさえずり: 最初に手に入れたのが PC-88VA2 だったのを当てられて震えてる

2010年12月17日

  • 09:49 Androidモバイル Google マップについにコンパスモードが入った。しかも 3D バードビューでたまげた。 #Xperia
  • 10:32 今日 18:00 から来客か。掃除当番、来週の月曜日かな。
  • 11:24 ちょっとパフォーマンス エクスプローラ走らせたら、あっという間に vsp ファイルが 7GB 超えて HDD 残り容量 1GB 切ってしまったので残念停止。
  • 11:36 さくらのレンタルサーバで1ファイルの最大サイズの制限ってあるのって質問された? あるの?
  • 11:45 Movable Type でのアップロード制限にかかったっていう話らしい。mt-config.cgi が CGIMaxUpload 400000000 になってる。
  • 12:11 弁当 350円。
  • 12:12 消化器のところに「雑布」って書かれたブツがあって気になる。いちおう「ぞうきん」ってルビが書かれているけど……。
  • 12:33 ペプシネックス2本冷蔵庫に入れておかないと。
  • 12:45 Evernote の毎月のアップロード容量 1GB までになったんだ。これだけあるとサイクルの始めでも数十 MB レベルのファイルを気にせずにアップロードできるな。 #Evernote
  • 14:19 msconfig による対処方法をマスターした。
  • 16:43 今回のミーティングでの成果は、グループ長が元一太郎ユーザだということがわかったことだ。
  • 17:05 LaTeX2e で文書を作っているのに対して「Word でも2つの文書の比較と反映できますよ」って言われた。へぇ!
  • 17:06 (で、GitSubversion 上での diff や merge は?)
  • 17:13 Git だと diff アトリビュートを設定するという手があるのか。
  • 17:37 Movable Type で構築してあるサイトのトップページが更新されないって話、更新はされているけど Last-Modified が古いままっぽい。
  • 17:48 中の方は実際に変更が反映されていないページがあるみたい。Movable Type 使ったことないんだけれど、これ再構築っていうのが必要なのかな。
  • 17:55 トップページは新着情報のところ JavaScript コードで生成しているのか、それで Last-Modified が古いままだと。
  • 21:59 ConnectBot でキーボードが出ないと思ったら ATOK だと駄目みたい。POBox Touch なら OK だった。 #Android #Xperia
  • 22:11 駄目なんです。ブルッとはするけどせり上がってこない。 RT @indigomode: ATOKはメニューキー長押しでもダメでしたか? RT @naney: ConnectBot でキーボードが出ないと思ったら ATOK だと駄目みたい。
  • 22:46 俺は、中学の頃『@NaneyにはPC-88VA2が似合う』と言われ、電波の移植ソフトと一緒に買ったんだが、その時の思い出を語ろうと思う http://shindanmaker.com/69826
  • 22:50 最初に手に入れたのが PC-88VA2 だったのを当てられて震えてる。
  • 22:55 ベーマガはたまに読んでたけど、移植ソフトウェアって何があったっけ。
[ 12月17日全て ]

About

Naney Naneymx

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

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

Process Time: 0.04295s / load averages: 0.10, 0.18, 0.21