数式を含むTeX文書からPukiWikiにローカルで変換する方法. サーバー上でTeXが使えるならば,

などが使えるが,TeXがない+自分で管理しているサーバでない場合用に, ローカル上で作成したTeX文書を変換して数式画像とPukiWikiフォーマットに変更された文書を生成する方法を記述する.

全体の流れ

  1. TeXで文書を生成(例えば,test.tex)し,それがTeXを通ることを確かめておく.
  2. rx_tex2wikiで数式用TeXとPukiWiki用テキストを抽出する(test.eq.texとtest.wiki.txt).
  3. test.eq.texをTeXに通して,dviファイル生成.
  4. dvipngでdviファイルをgif画像に変換する.
  5. PukiWikiで新規ページを作って,test.wiki.txtの内容をコピー, 4で生成した画像ファイルを添付する.

2,4については以下参照.

数式用TeXとPukiWiki用テキストの抽出

TeXの数式はインライン要素(文章中で"$"に囲まれた部分)とブロック要素の2種類がある. ブロック要素は例えば,

\begin{equation}
  〜
\end{equation}

のように囲まれた領域である.

手動でやる場合は,これらの数式環境を抽出して,下で紹介する方法で画像化,当該部分を

#ref(equation.gif,,100%)

のように変更すればよい. ただ,長いTeXだととても面倒なので,ある程度自動化するプログラム(rx_tex2wiki)を実装した. rx_tex2wikiのダウンロードは以下.

  • 変更履歴
    • v1.07 : quote環境を引用">"で置き換える機能追加,同じインライン数式が同じ行にあったときのバグ修正
    • v1.05 : verbatim環境に対応,改行記号を変換するように変更,複数ファイルのD&Dに対応
    • v1.03 : "\["の後にスペースなどがあっても認識するように変更
    • v1.02 : パラメータ指定を追加・変更
    • v1.0 : とりあえずひととおりの機能を作ったバージョン
  • rx_tex2wikiの使い方
    ダウンロードしたzipファイルを解凍すると,rx_tex2wiki.exeというファイルのみが入っている. これに*.texファイルをD&Dするだけ. D&D後,*.texファイルと同じフォルダに,*.wiki.txtと*.eq.texが作成される. それぞれ,
    • *.wiki.txt : いくつかのTeXの命令をPukiWikiのフォーマットに変更したもの.基本的にはdocument環境内のみを対象としている.数式の画像名は連番が自動的につけられ,その順番は*.eq.texでの記述順と対応している.
    • *.eq.tex : 数式のみ取り出した数式画像生成用TeXファイル.下記の方法で画像化すれば,*.wiki.txt内のrefに指定された画像名と対応するものを生成できる.ただし,dviファイルは手動で生成する必要あり.
  • 変換表 : 対応する命令
    TeX命令名・環境名TeXの例対応するPukiWikiフォーマット備考
    数式環境(インライン)$数式$&ref(*.eq*.gif,パラメータ,スケール,タイトル);このPukiWikiの設定だと解像度150で70%ぐらいがちょうどいい.
    画像タイプとスケールの設定は下参照
    数式環境(ブロック)\[
     数式
    \]
    #ref(*.eq*.gif,パラメータ,スケール,タイトル)
    equation環境\begin{equation}
     数式
    \end{equation}
    #ref(*.eq*.gif,パラメータ,スケール,タイトル)数式番号なし版(equation*)でも可
    section環境\section{セクション名}*セクション名
    subsection環境\subsection{セクション名}**セクション名
    subsubsection環境\subsubsection{セクション名}***セクション名
    paragraph環境\paragraph{セクション名}-セクション名
    enumerate環境\begin{enumerate}
     \item〜
    \end{enumerate}
    +〜各\itemが連番になる
    itemize環境\begin{itemize}
     \item〜
    \end{itemize}
    -〜各\itemが箇条書きになる
    figure環境\begin{figure}
     \includegraphics[〜]{画像ファイル名}&br \caption{キャプション}
    \end{figure}
    | &ref(*.eq*.gif,,100%); |
    |CENTER:キャプション|
    tabular環境などを使って画像を複数指定していても最後の1つのみ対応
    キャプション無しの場合は単純に#ref(*.eq*.gif,,100%)
    verbatim環境\begin{verbatim}

    \end{verbatim}
    #code(C){{〜}}私がverbatim環境を基本的にCのコードを載せるために使っているので,C,C++用のpukiwiki環境で囲むようにしている

数式の重複チェックはしているので,同じ数式画像が出力されることはないはず.ただし,厳密に同じである必要がある(例えば,x^nとx^{n},xyとx yなどは違うものとして認識する).

  • 設定
    元のTeXファイルのプリアンブルに"%%TEX2WIKI"で始まる行を書くことで,変換のプロパティを設定できる. 設定できる項目は以下.
    • 画像のスケール(パーセント,ピクセル数)
      %%TEX2WIKI_EQUATION_SCALE=70%
      %%TEX2WIKI_EQUATION_SCALE=100x100
    • 画像のタイプ(拡張子で指定)
      %%TEX2WIKI_EQUATION_TYPE=gif
    • 参照パラメータ(nolink,around,centerなど)
      %%TEX2WIKI_EQUATION_PARAMETER=nolink,zoom
    • 画像のタイトル
      %%TEX2WIKI_EQUATION_TITLE=title

パラメータを指定しなかった場合は,#ref(*.eq*.gif,,70%) となる.

dvipngを使った数式の画像化

dvipngを使うことで,dviファイルから画像を生成する.複数ページのdviファイルはそれぞれのページごとに画像化され,連番付のファイルとして保存される.上記の*.eq.texでは1つのページに1つの数式のみとなるようにしてあるので,これをTeXに通して,dviを生成,*.eq.dviをdvipngに通すことで,PNGかGIFファイルを生成できる.数式にフルカラーは必要ないので,ここではGIFを生成する.GIFを生成するためのコマンドは以下.

dvipng %1 -T tight -D 150 -bd 1000 --freetype1 -Q 5 --gamma 1.1 --gif

%1にdviファイル名を指定する.各オプションの意味は,コマンドラインで単純に

dvipng

とすれば出てくる.上記のコマンドではできる限り空白を削除,解像度150,背景色白,FreeTypeフォント使用,アンチエリアシング精度5,ガンマ補正1.1,GIF出力を設定している. 複数ファイルのD&Dに対応したバッチファイルを以下に置く.


添付ファイル: filerx_tex2wiki_v1.05.zip 764件 [詳細] filerx_tex2wiki_v1.07.zip 2289件 [詳細] filedvi2gif.bat 2137件 [詳細] filerx_tex2wiki_v1.02.zip 816件 [詳細] filerx_tex2wiki_v1.03.zip 855件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-03-08 (金) 18:06:07