nDiki : DocStrip

DocStrip

TeX で書かれたテキストファイルフィルタプログラム。docstrip.tex というファイルで実装されている。

  • TeXコメント形式部分を削除
  • 条件指定による抽出

等の機能がある。

対象テキストファイルには .dtx という拡張子を、フィルタ処理手順を書くファイルには ins という拡張子を一般的につける。

1つのソースファイルから2つの LaTeX ソースファイルを生成する例

DocStrip はクラスファイルやスタイルファイルのパッケージングによく利用されるが、通常の LaTeX ソースファイルの生成にももちろん利用できる。

TypeA と TypeB という名前の2つの optional code を持つソースを書く。

manual.dtx

 \documentclass{jarticle}
 %<TypeA>\title{マニュアル -- Type A 用}
 %<TypeB>\title{マニュアル -- Type B 用}
 \begin{document}
 \maketitle
 この文書は○○のマニュアルです。

 %<*TypeA>
 Type A は水陸両用です。
 %</TypeA>
 %<*TypeB>
 Type B は水中専用です。
 %</TypeB>
 \end{document}

フィルタ処理手順ファイルとして以下のファイルを書く。

manual.ins:

 \input docstrip.tex
 \generate{\file{manual-type-A.tex}{\from{manual.dtx}{TypeA}}
           \file{manual-type-B.tex}{\from{manual.dtx}{TypeB}}}
 \endbatchfile

manual.ins を処理すると、manual-type-A.tex と manual-type-B.tex という2つのファイルが生成される。

 platex manual.ins

条件によってファイルを含めるかどうかを切り替える

条件によってファイルに含めるかどうかを切り替える部分は下記のように書く。

1行の場合

 %<bool>内容

ブロックの場合

 %<*bool>
 内容
 %</bool>

条件の指定

前述で bool の部分は式を指定できる。

 %<X>オプション X が指定してある場合この行が有効。
 %<X|Y> オプション X または オプション Y が指定してある場合この行が有効。
 %<X&Y> オプション X とオプション Y が指定してある場合この行が有効。
 %<X&!Y> オプション X が指定してあってオプション Y が指定されていない場合この行が有効。

スポンサード リンク

2005年5月8日 (日)

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

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

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

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

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

スポンサード リンク
[ 5月8日全て ]

2005年6月21日 (火)

LaTeXプレゼンテーション

提案資料の作成作業。 今後の事も考えて、自分流プレゼンテーション資料のつくり方を用意したい。

  • ソース
    • ソースは LaTeX で。
    • スライドショーと、配布資料は同一ソースから生成したい。
  • スライドショー
    • ダイナミックなスライドはほとんど作らない。
    • LaTeX からだと、やっぱり PDF + Adobe Redear か。全画面表示可能だし、簡単な動きも表現できるから機能的には問題なさそう。Linux でも動くし。
  • 配布資料
    • 配布資料はPDF化。
    • 配布資料は PowerPoint みたいにスライドショーそのままの紙芝居になるのではなくて、追加の説明文が加えられたA4縦のレポートになるようにしたい。PowerPoint で作った紙芝居の配布ってなんか安っぽい感じがする。

TeXPower

最初にチェックしたパッケージ。 文書クラスとして powersem というのが含まれているけれど、ちょっと地味らしい。 もともと動的な表現をするための texpower パッケージが中核で、レイアウト関連は他のプレゼンテーション用文書クラス(FoilTeX など)に頼ることになりそうだ。

使うかどうか保留。

Prosper

PowerPoint ライクなスタイル(テンプレート)があり、比較的簡単に見栄えのするスライドが作れる。 ただし dvipdfmxでは PDF化できない。 dvips + ps2pdf などで PDF 化する必要がある。

まずはこれで、ちょこちょこと作ってみる。dvips + ps2pdf だと、PDF しおりの文字化け対策やフォントまわりの設定など dvipdfmx とは違ってくるので面倒だな。

さらに PNG画像を貼りつけるところではたと困る。dvipdfmx じゃないから、簡単に貼れない。 困った。

スクリーンキャプチャを簡単に貼りつけられないと面倒だ。

今回は普通に jsarticle?

たぶん今回はプリントアウトを配ってテーブルを囲む形ですすめるんじゃないかと思うので、jsarticle で普通にレポートにしてしまうかなぁ。 あまり時間がとれないし。

使い勝手を考えると Prosper ではなく、やはり dvipdfmx が使えるスライド系の文書クラスで作っていく方がよいか。

配布資料の方は? DocStrip あたりを使って自分で生成しわける方が簡単か?

[ 6月21日全て ]

2008年7月10日 (木)

今日のさえずり - 吉徳、今の時期は提灯屋

2008年07月09日

2008年07月10日

  • 18:27 1つのソースから外部向けと内部向けの文書を作ることにしたので、久しぶりに DocStrip 使うようにした。
  • 19:10 Edy のシェアが落ちているらしいので、いったんヨドバシカメラで使い切ってきた。[mb]
  • 19:12 最近レンズが話題になっているので、久しぶりにニコンレンズ総合カタログ貰ってきた。[mb]
[ 7月10日全て ]

2009年12月18日 (金)

今日のさえずり - Twitter やってるとネットストーカーされている感じがしない?

naney:4200291664

2009年12月18日

  • 09:50 FeedBurnerTwitter 投稿機能は2重投稿される場合があるな。フィードのアイテム更新してしまったかどうか記憶ないので今度チェックだな。
  • 09:54 アキヨドにトランスフォーマー。 #Akihabara http://movapic.com/...
  • 10:40 GetHashCode が return 1 とか極悪。 #csharp
  • 12:34 ニコンFペーパークラフト。ちょっと高く感じるけど紙質とかどうなのかな。 http://bit.ly/4DoQvl
  • 13:35 @3_DaiMe_Yoshi F オーナーですか、うらやましいです。自分の持っている一桁機種は Nikon F3/T です。F3 のペーパークラフトならもうちょっと魅かれたところです。
  • 13:36 委任状作成に時間食われている。
  • 14:21 @nyafuru 帰宅中って直帰?
  • 14:24 おやつにはちょっと早いけれどナボナ。
  • 18:11 勉強がてら欲しいというので仕様書pLaTeX2e ソース送った。自作クラスファイル + nkfmendex 辞書エンコーディング変換 + DocStrip で複数ドキュメント生成とかやっているいきなりガツンなやつだけど大丈夫かな(Makefile はつけてる)。
  • 18:15 押忍。久しぶりの会社の飲み会参加っす。がんがん飲むっす(烏龍茶以外に素敵なメニューがありますように)。
  • 18:35 七味や。 L:浅草橋
  • 19:50 鍋食ってる。
  • 19:59 .@nyafuru 超オタク疑惑。
  • 20:28 目を閉じて。 http://movapic.com/...
  • 21:20Twitter やってるとネットストーカーされている感じがしない?」って聞かれた。みんなどう?
  • 21:21 飲み会終わったのでアイスクリーム食べたい。
  • 21:27 @nyafuru 心は酔ってる。
  • 21:31 tweet は自分でコントロールしてるから自分は気にならない。むしろ見て。 RT @Naney: 「Twitter やってるとネットストーカーされている感じがしない?」って聞かれた。
  • 21:38 「昨日イトーヨーカドー行きましたよね?」キターって感じ。そこから話がはずむ。 RT @Naney: tweet は自分でコントロールしてるから自分は気にならない。むしろ見て。
  • 21:39 オリオン座キレイ。
  • 23:10 Twitterパスワード変更した。これからケータイMovaTwitter ブックマークかたっぱしから登録しなおす作業。
  • 23:29 MovaTwitter 個別アクセス URLブックマーク更新完了。一段落。
  • 24:43 Windows 7 64ビット バージョンで動く Google 日本語入力リリースされているの気づいてなかった。まあもういっか。
  • 24:54 歯磨いている最中に地震とかやめてほしい。
[ 12月18日全て ]

About Me

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

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

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

follow us in feedly

月別インデックス
Process Time: 0.188365s / load averages: 0.51, 0.77, 0.61
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker