2007年09月13日(木曜日)

ラテック・ビーマー [ TeX ]

明後日のプレゼン(?)のために、泥縄で作業中。前回は自前でHTMLをがしがし書き、ブラウザで表示という、いささか原始的にやったのだが、今回は LaTeX Beamer (ラテック ビーマー) を使う予定。参考にしたのは次のページ。
LaTeX Beamerでプレゼンテーション - 外圏Wiki
LaTeX-Beamerのススメ

普段使っているLaTeXの、いちスタイルとして実現されているので、非常に使いやすい。数式もきれいに出るし。出力はPDFなのでAbobe Readerだけ用意してもらえば、プラットフォームも関係ない。うーん、これで個人的には、なんとかポイントはまったくの無用の長物ということだな。いや、まだ使ったことすらないが(笑)。

投稿者 sukarabe : 23:31 | この記事の固定URI | コメント (0) | トラックバック (0)

2007年06月14日(木曜日)

おお、二十年前のファイルが [ TeX ]

探し物をしていたら、随分と前に書いた文書が出てきた。手書きではなく、TeXで印刷したもの。プリントアウトの日付は、1988年。おお、約20年も前である。内容は、まあ、大したものではないのだが、当時、TeXでは日本語処理ができなかったので、苦労した記憶が蘇る。

そのころ使っていたコンピュータはMacintosh Plusというもの。メモリーが1メガバイトになり、少しは実用的になったかな、という頃。TeXをマックに移植したTeXtureというソフトを7万円も出して購入した。このテクスチャー、単なる移植ではなく、テキストエディターとプレビューアーが一体となっていて、非常に使いやすいものであった。コンパイル中にエラーがあると、エディターに戻って、エラー箇所にカーソルが移動したり、Previewerに至っては、マウスポインター部分が虫眼鏡の形に変わり、クリックすると、その部分が拡大表示されるという優れものだった。現在のテック関係のフリーソフトも、それなりに使いやすくなってきたが、それらは基本的にはすべてテクスチャーで実現されていた。

そんな便利なテクスチャーであったのだが、当然とはいえ、日本語が使えなかった。だって、もともと想定してないんだからね。テックそのものはアスキーの開発部により日本語化されていたが、当時はUNIXでしか動作していなかった。仕方がないので、日本語の文書をテックが処理できるように前処理するプログラムを自分で書いた。確か、Lightspeed Pascalというマック用のパスカル処理系を使ったと思う。そして、マックの日本語フォントが使えるように、フォント・メトリック・ファイルを作成し、リソース・エディターであれやこれや作り、と、思えばよくやったものである(笑)。

そんな思い出に浸りながら(笑)、当時のフロッピーディスクを探してみると、ファイルがまだ残っていた。今と違って、ラテックではなくプレイン・テックのマクロを自分で作って文書を書いていたのだが、当時のファイルを今使っているコンピュータに移して、久しぶりにプレイン・テックで処理してみると(日本語処理の関係で、1行コメントアウトしたけど)、何の問題もなく処理できて、きれいなPDFが出来上がったのには驚いた。いや、出来て当然なんだけど、そうは行かない現実を色々と知っているものだから。20年前のマックのファイルがそのまま一発でコンパイル通るなんて、なかなか感動的なのである。個人的には。

投稿者 sukarabe : 03:32 | この記事の固定URI | コメント (0) | トラックバック (0)

2007年05月20日(日曜日)

文書共有サイトScribdでKnuthのLiterate Programmingを読む [ Blogツール, TeX, コンピュータ&インターネット ]

YouTubeの文書版とでも言うべきScribdなるサイトを偶然に発見。単に共有するだけでなく、FlashPaparなるFlashの一形式により、PDF Readerのような補助プログラムなしでブラウザー上から見ることができる。もっともFlashのPlug-Inが必要という点では同じようなものだが。さらに、PDFを初めとしていろんなファイルフォーマットでダウンロードすることもできる。YouTubeと同様に、自分のサイトにコードを埋め込むこともできる。

とりあえず関心のある項目について検索したところ、数式組版プログラム TeX(テック)の開発者として(も)有名なDonald E. Knuth大先生の「文芸的プログラム(Literate Programming)」があった。プログラム本体とその解説を同時に記述することにより、プログラムの可読性が増し、品質も向上するというものだった。例えばhogehoge.webという名前でそれを記述したとする。プログラム本体はtangleというプログラムで抽出されてhogehoge.pasなるPascalプログラム(これはCなどに変更することも可能)が作られる。一方、weaveというプログラムを通すとhogehoge.texというTeXファイルが出来て、それをTeXで処理すれば、プログラムが解説と共に美しく印字される。現実的にどうなのか、という声も出てきそうだが、何とTeX自身がこのWebシステムで記述されているのだった。TeXプログラムの元のファイルはtex.webなのである。現在のシステムはこれをWeb2CでCに変換したあとC Compilerで機械語にコンパイルされているはず。

もう随分前になるが、bit誌(当時はほとんど唯一の計算機関係の月刊誌だった)でこの論文の翻訳を読んだことがある。なつかしいなあ。原文を読めるのは嬉しい。

Scribdのサイトで見るには、下の埋め込みの右下のClick Hereという部分をクリックすれば良いのだが、画像が縮小されていて見づらい。http://www.scribd.com/doc/26908/knuthwebが元のファイルの場所。縮小せずに埋め込むことはできないのかな?

投稿者 sukarabe : 10:25 | この記事の固定URI | コメント (0) | トラックバック (0)

2007年02月22日(木曜日)

簡易版の代替リスト環境 [ TeX ]

とりあえず、enumerate環境の代わりとなるEnumerate環境をリストを使わずに \leftskipの変更と \item の再定義で実現してみた。環境が終わると元の値に戻すために、全体をグループで包んでおく。

\newcounter{Enum}
\newenvironment{Enumerate}%
{\begingroup
  \leftskip=2zw\parindent=-1zw%
  \setcounter{Enum}{0}%
  \def\item{\par\stepcounter{Enum}\arabic{Enum}.\enskip}%
}%
{\par\endgroup}

投稿者 sukarabe : 18:35 | この記事の固定URI | コメント (0) | トラックバック (0)

久々にラテックで苦労する [ TeX ]

TeXBook & LaTeX Companions

家庭内印刷所として(苦笑)かみさんのレポートのラテック(LaTeX)入力、レイアウト、等々をやっているのだが、図版を入れたいというので一苦労。スキャナーで読み取り、編集してJPEGあるいはEPSとして保存し、 \includegraphics で読み込むまでは順調だったのだが、文章を回り込ませるあたりでトラブル発生。

図版は wrapfigure環境なるもので取り込んでいるのだが、これってリスト環境と相性悪いのかなあ。そのまま使う分には問題なかったのだけど、回り込みの行数を直接指定するオプションを試したところ、うまく動作しない。どちらもTeXのプリミティブ \hangindent , \hangafter あるいは \parshape を直接いじっているのかも知れない。しばらく試したあと、あきらめて、リスト環境を使わずに、パラグラフの形状を \leftskip , \parindent で決めることで、とりあえず目的は果たした。ラテック流じゃないというか、まるで機械語(アセンブラ)を直接書き込みしたみたいな感じだが。

こういう時、ラテックは嫌だなと感じる。プレイン・テック(クヌース先生のテックブックに書いてあるマクロ)であれば、マクロの定義を含めてほとんどを把握しながら作業できるが、いかんせんラテックのマクロのすべてを読んで理解して使うのは現実的に無理だ。(以前、amsmathおよびリスト環境あたりを読んだことあるが。) しかし、こういうトラブルというか、思い通りにならないときは、ラテック・コンパニオンを引っ張り出し、それでも分からないと、ソースを読む羽目になる(苦笑)。勘弁して欲しいよな。

投稿者 sukarabe : 13:38 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年05月22日(月曜日)

さらに数式フォントを追加 [ TeX ]

Garamondベースの数式フォントのインストールに続いて、Fourier-GUTenbergプロジェクト(?)の数式フォント、さらにFourier-NewCenturySchoolbook(fouriernc)をインストールした。

まずはfourier-GUT.zipをダウンロードして説明を読む。本文用のフォントはAdobe Utopiaを使用するので、それを別途用意せよ、とある。そこで、UtopiaのType1フォントをCTANからダウンロードして、texmf/fonts/type1/adobe/utopia 以下にコピーする。続いてtfmやらstyやらを移動させるのだが、このfourier-GUT.zipはディレクトリー構造がteTeX互換になっているもののそのままunzipすると、fourier-GUTなるディレクトリー以下に解凍されてしまう。ターミナルからなのに。うーん、これでは大量のファイル群を引っ越しさせるのが面倒だなあ、と、ふと思いついてダメもとであることを試してみた。展開したファイル群をファインダーからアーカイブしてみる。それをターミナルからunzipすると、思惑通り、既存のディレクトリーに追加される形で展開された。あとは、例によって、texhashしてからupdmap --enable Map fourier.map としてマップをアップデートする。

続いてfourierncをインストール。前もってFourier-GUTをインストールしておくことが必要。追加のファイルはそうは多くなく階層構造の形ではなくフラットに配布されているので、手動で適切なディレクトリーへと移動させる。こちらもtexhashのあとupdmap --enable Map fouriernc.map として終了。

fourierncは結局、New Century Schookbookがベースとなり、数式サポートの部分をFourier-GUTenbergプロジェクトに依存した、という感じ。New Century Schoolbookというのは穏やかなタイプフェースで日本の教科書で使われているものに近い感じを受ける。案外これが一番違和感なく受け入れられるかも。

投稿者 sukarabe : 18:06 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年05月21日(日曜日)

Garamondベースの数式フォント [ TeX ]

最近 A Survey of Free Math Fonts for TeX and LaTeX というページを見つけたのだが、そこにGaramondをベースにした数式フォントセットのことが書いてあった。Garamondは大好きな活字(笑)なので、さっそく導入してみた。このGaramondはURWが無償で提供しているバージョンらしく、CTANで入手できる。まずはこれをインストールする。

CTANの http://ctan.tug.org/tex-archive/nonfree/fonts/urw/garamond/ に行き、garamond.zip をダウンロードする。これを解凍するとインストールの方法が書いてあるので、それに従う。フォント自体は拡張子 .pfb および .afm のもので、これらをそれぞれ texmf ディレクトリー以下の texmf/fonts/type1/urw/garamond および texmf/fonts/afm/urw/garamond ディレクトリーにコピーする。この部分は手動でやることになる。このあとメトリックファイル(.tfm)やらマップファイルやら、大量のファイルを所定のディレクトリーに移さねばならないが、幸いにしてteTeXベースのシステムはディレクトリーの配置が標準化されていて、配布物もそれに準じているため、ugm.zipを texmf ディレクトリーで解凍すればよい。ところが、マックの解凍ソフトというか、Stuffit のことなのだが、ファインダーから解凍すると、ugm folderという名のフォルダーを新たに作ってそこに解凍してしまう。ああ、これじゃあ意味無い。既存のディレクトリーに追加して欲しいのに。ということで、こういう場合にはShellのお世話になる。ターミナルを起動して、texmfディレクトリーに移り、unzip ugm.zip とするだけ。ああUNIXってホントに良くできているよな(笑)。このあと、texhash として追加されたファイルを登録し、さらにマップファイルを更新するために、updmap --enable Map ugm.map とする。これで、updmap.cfgファイルにMap ugm.mapという行が追加され、それに従って、dvipsやらdvipdfmxやらの設定ファイルが更新される。これでGaramondは終了。

引き続いて、http://ctan.tug.org/tex-archive/fonts/mathdesign/ に行き、mathdesign.zipをダウンロードする。mdcore.zipをtexmfディレクトリーにコピーして、そこでさっきと同様にターミナルからunzipする。今回インストールするのはGaramondベースのものなので、mdugm.zipファイルを同様にtexmfでunzipする。そしてtexhashして、updmap --enable Map mdugm.mapとして終了。

さて、実際に使ってみる。LaTeXで使うには、\usepackage[urw-garamond]{mathdesign} と指定すれば良い。既存のファイルで試してみると、エラーではないが警告が出た。amssymb, amsfonts と一緒には使うな、ということらしく、これらの読み込みを止める。すると問題なくコンパイルされて、Garamond独特のシャープな字体が現れる。おお、素晴らしい!

投稿者 sukarabe : 23:43 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年05月17日(水曜日)

新たな数式フォント [ TeX ]

仕事の息抜きにちょっと検索していたら、A Survey of Free Math Fonts for TeX and LaTeXなるページを発見。txfonts, pxfonts, mathabx 以外にも数式用のフォントセットが開発されているようだ。もっとも新規にタイプフェースを開発するというのではなく、既存のPostScriptフォントなどを数式で使うための設定ファイル群というものが多い。それだって作るのは面倒だ。いろんなタイプフェースから必要なものを選んでvirtual fontを作ったりとか。

ちょっと気になるのが、fourierncというもの。Fourier-GUTenbergをベースにして、ラテン文字の部分をNew Century Schoolbook に変更したものらしい。

投稿者 sukarabe : 18:38 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年04月26日(水曜日)

TeXの書き方が人によってこんなに違うなんて [ TeX ]

数日前から原稿を取りまとめている。TeXなど電子媒体で書く人にはソースファイル付きで出してもらうようにお願いしているのだが、書き方が人により様々なのに驚く。というか、ソースファイルをもらえば、後はちょこちょこっと修正するだけで楽勝だと思っていたのに、そうではないことが分かり愕然とする。ああ、楽はできないようになっているのかなあ(嘆息)。

一番参ったのが、独自マクロを山のように定義してあるもの。それにインデントや改行もなく、一行がものすごく長いのも読むのに苦労する。かと思うと、変なところで改行してあったりとか・・・。TeXってある意味プログラム言語なのだから、一行は短く、読みやすくインデントして書くものだ、と思いこんでいたのだけどなあ。

投稿者 sukarabe : 23:00 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年04月05日(水曜日)

PDF作成備忘録 [ TeX ]

[備忘録] dvipdfmxとps2pdfの比較を見つけたので、メモ。
ps2pdf/dvipdfmx で日本語 PDF を作る

dvipdfmxはPSTrickを処理できないため、これを利用しているprosperクラスが使えないことが分かる。これ以外にも、プレゼン用のPDFを作るためのヒント、しおりの文字化けを防ぐための方法など、いろいろと便利な情報が書かれている。

投稿者 sukarabe : 10:17 | この記事の固定URI | コメント (0) | トラックバック (0)

TeXShopと井上版pTeXでprosperを使う [ TeX ]

[備忘録] 普段使っているTeXシステムは、Mac OS X上のTeXShopで、井上版のpTeXを使用している。TeXShopでパーソナルスクリプトを選び、そこにpdfmplatexを指定すれば、pdfmplatexというシェルスクリプトがコンパイルを行う。正確にはpdfmplatexはpdfmtexというスクリプトへのシンボリックリンクであり、pdfmtexがシェルスクリプトの本体。bashで書かれたこのスクリプトは様々なオプションを取ることができる。通常はdvipdfmxによりdviからPDFへの変換を行うが、プレゼン用のprosperクラスを用いると、dvipdfmxではPDFを作ることができない。しかし、dvips(k)とps2pdfを使うことによってPDFが作られるので、こちらを使う指示を出せばよいことになる。

井上さんのpdfmtexでは、TeX文書の冒頭にコンパイル・オプションを書くことができる。この部分を、
%%pdfmplatex -- -tA4 -- -sPAPERSIZE=a4
とすることにより、上記の指示が出せる。種明かしをすれば、コンパイル・オプションが、
%%pdfmplatex (option1) -- (option2) -- (option3)
の形の場合は、dvips+ps2pdfが呼び出され、TeXには(option1)が、dvipsには(option2)が、ps2pdfには(option3)が、それぞれ渡される仕組みになっているようだ。

ただし、パーソナル・スクリプトとして、pdfmplatexにオプションを付けたものを使用していると、上のコンパイル・オプションは無視されるので注意!実は、ここで引っかかってしまった!shell-escapeオプションを付けていたものだから、いくらやっても無視されていたのだった。

とりあえず、これでprosperクラスを利用したプレゼン用PDFが作れる。

投稿者 sukarabe : 00:44 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年04月03日(月曜日)

LaTeXベースのプレゼン用パッケージ prosper [ TeX ]

脱ローテクを目指し、ではないが、普段から慣れているLaTeXでprosperクラスというものを用いると、所謂プレゼンテーション用のPDFが簡単に作れるらしい。Mac OS X で prosper を使う なるページを参考にして、インストールしてみた。

インストール自体は簡単。prosperの最新版をダウンロードして、TeXが読めるところ(今回は、自分のルート以下、/texmf/tex/latex/prosper/ 以下)にクラスファイル( .cls)とスタイルファイル( .sty)をコピーして、ターミナルからtexhashを行うだけ。ところが、TeXShopでPDFファイルを作ってみると、ページが真っ白。うーむ。

どうやら、TeXShopで普段使用しているdvipdfmxではうまく行かないみたいだ。hoge.texをコンパイルしたhoge.dviをdvipsで一旦PostScriptファイルにして、それからps2pdfでPDFにすると、ちゃんと表示された。おお、これで一躍、時代の最先端だ(嘘)。

しかし、このような見栄え重視のツールと手書きの図版(図版をわざわざMetaPostなどで作る気はさらさらないので、手で描いてスキャナーでJPEGにするつもり)とは、いかにも不釣り合いだ。どうしたもんだろうか・・・。

投稿者 sukarabe : 16:13 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年02月05日(日曜日)

TeXでしおり付きのPDFを作る [ TeX ]

偶然見つけたので、備忘録として記録。次のページに書いてあった。
Mac OS X Tips : Fink Packages

プリアンブルに次のコードを書けば良いらしい。

\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}
\usepackage[dvipdfm,%
  bookmarks=true,bookmarksnumbered=true,bookmarkstype=toc]{hyperref}
%% hyperref-dvipdfm fix - make bookmarks working with Preview.app
\makeatletter
\def\@pdfm@dest#1{%
  \Hy@SaveLastskip
  \@pdfm@mark{dest (#1) [@thispage /\@pdfview\space @xpos @ypos null]}%
  \Hy@RestoreLastskip
  }

投稿者 sukarabe : 17:08 | この記事の固定URI | コメント (0) | トラックバック (0)

2006年01月28日(土曜日)

TeXShop + dvipdfmx でB5サイズのPDFを作る [ TeX ]

普段はA4サイズの文書しか作ってないが、B5サイズで印刷する必要になったので、今後のためにも備忘録として記録。

Mac OS X 上のTeXShopで、dvipdfmxによりPDFを作成する shell script を使用している。TeXのコンパイル時に用紙サイズを b5paper とオプション指定しても、最終的にできるPDFはA4サイズになってしまう。自分で印刷するぶんには、用紙サイズをA4にしてB5の紙にそのまま印刷すればいいのだが、今回は人に送るものなのでそれはちょっと・・・というわけ。案の定、試しに送ってみたら、B5の紙に縮小されて印刷された模様。

ということで、B5サイズのPDFを作るために情報収集する。dviファイルには、紙のサイズの情報はないことが判明。うーん、知らなかった(笑)。そこで、source special として拡張命令を埋め込んで、それを dvipdfmx などのドライバーが解釈できるようにする。とりあえずの応急措置として、
  \AtBeginDvi{\special{pdf: pagesize width 182truemm height 257truemm}}
をプリアンブル部分に書くことで、dvipdfmxは、B5サイズのPDFを生成する。用紙サイズを指定するときに、このコードを吐くようにクラスファイルのマクロを変更すれば良いかな?ああ、でもドライバー依存は良くないからなあ・・・うーむ、どうしたらスマートだろうか?

投稿者 sukarabe : 08:17 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年12月08日(木曜日)

TeXでヒラギノをPDFに埋め込むには [ TeX ]

【備忘録】Mac OS X で井上版のpTeXシステムを使っている。dvipdfmxでPDFを作るときに,日本語フォントの埋め込みなどをどうしているか理解できていない。dvipdfmxが参照するファイルが何かをまず調べる必要有り。さらにそのファイルは直接編集すべきではないらしい。updmapというシェル・スクリプトを実行すると,様々な設定ファイルを見てdvipdfmxが参照するファイルを生成するらしい。何と面倒なことよ!

ということで,多分これを編集すればよいと思われるファイルを発見。cid-x.mapというファイルで
/usr/local/share/texmf/fonts/map/dvipdfm/base/
にあった。現在の内容は次の通り。

%% This file 'cid-x.map' is read by dvipdfmx for default
%% dvipdfmx.cfg setting.  Please append fontmap entries here.
%% Ryumin and GothicBBB found in PostScript printers:
rml  H Ryumin-Light
gbm  H GothicBBB-Medium
rmlv V Ryumin-Light
gbmv V GothicBBB-Medium

スクリプトで自動生成されるファイルには冒頭に「このファイルを直接編集すべからず」的な注意書きが付いているので,多分このcid-x.mapは編集して大丈夫なのだろう。上記の GothicBBB-Medium とかを HiraKakuPro-W6.otf とかに変更すれば,ヒラギノが埋め込まれるのだろうか?

投稿者 sukarabe : 10:21 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年11月03日(木曜日)

mt-mimetexの修正 [ MovableType, TeX, プログラミング ]

このところ自家製のmt-mimetex.plを使ってmimetexによる数式表示をやっている。案の定というかバグが露呈。別組数式の部分で,改行文字がマッチしないものだから複数行に渡って書いた数式が変換されない。オプションとして「s」を付けると任意の1文字が改行でもマッチするという説明を見つけたので,置換部分を
$_=~s/(\\\[.+\\\])/&latex2mimetex($&)/seg;
と変更してみた。すると何と最長マッチになってしまい大失敗。うーむ,困った。あれこれ調べて,
「.+?」とすれば1個以上の任意の文字でしかも最短マッチになるらしい。ということで,
$_=~s/(\\\[.+?\\\])/&latex2mimetex($&)/seg;
に修正。何とかうまく行っているみたい。しかし正規表現は難しい。

投稿者 sukarabe : 22:21 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年10月08日(土曜日)

MT用mimetexプラグイン [ MovableType, TeX, プログラミング ]

誰かが作ってくれているはずだとGoogleで検索したのだが,結局見つけることができなかった。mimetexのサイトには誰かプラグイン作ってくれ〜と書いてある始末(笑)。

ということで仕方なくMovableType用のmimetexプラグインを自作することにした。 しかし,本当に無いのかなあ・・・。PukiWiki用とかHatenaダイアリーとかWordPressとか主だったブログツールにはあるのだから,MovableType用が無いとはにわかには信じがたいのだが。

ともかくMovableTypeのプラグインの仕様を知らねばならぬ。ということで,itex2MMLのソースを読んでプラグインのインターフェースを学ぶ。肝心の変換部分だが,以前,LaTeX文書をHTMLに変換するPerlプログラムを自作したことがあるので,そのコードを流用することにした。

どうせ自作なのだから自分好みにしてみた。PukiWikiなどのプラグインでは,&mimetex(数式)と書けば数式が画像で表示されるようになっている。&記号がプラグインのトリガーになっているのかも知れないが,できれば普通のLaTeX文書と同じく, ドル記号ではさんで$\frac{1}{\sqrt2}$などとする方が好みだ。ということで,そのようにしてみた。ついでに,\[ と\]ではさめば別組数式になるようにした。その場合,できれば数式をセンタリングしたいのだが,どうすれば良いのか分からなかったので,とりあえず一定のマージンを左側にとることで妥協。

では実験。

mimetexは数式をその場で画像に変換するcgiである。美しさではLaTeXRenderに劣るが,サーバーにLaTeXやImageMagickなどがインストールされてなくとも,スタンドアローンで動作するのがメリットだ。簡単に\frac{1}{\sqrt{2}}とかx=\frac{-b\pm\sqrt{b^2-4ac}}{2a}などと数式が書ける。別組数式(display math)も
e^x=\lim_{n\to\infty}\left(1+\frac{x}{n}\right)^n
のように書ける。

投稿者 sukarabe : 08:16 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年07月07日(木曜日)

dvipng [ TeX ]

TeX(テック)で作成した数式を画像に変換する dvipng というプログラムがあることを最近知った。EmacsのTeX支援プラグイン AUCTeX に組み込まれる予定の preview-latex から派生したものらしい。preview-latex はEmacsで編集中に数式をプレビューするためのもので,実際には,編集中のバッファーの一部をLaTeXに渡して組版させ,それをdvipng(あるいはその組込版)で画像に変換するという仕組みのようだ。その画像変換部分だけを独立させた dvipng であるが,すでに /usr/local/bin に入っていた(笑)。どうもTeXの配布システムに含まれていた模様。

さっそく試してみた。どうせなら面白い式ということで,例のラマヌジャンの連分数(笑)。

ramanujan-continued-fraction.png

何のオプションも付けずに変換してみたが,mimeTeXに比べて綺麗だと思う。濃度やいろんな補正ができるらしいが,それはまた別の機会に。

これで原理的には数式を含む文書をHTML+数式の画像に変換してWEBにアップすることができる。しかし現実的には,それらをバッチ処理してくれるプログラムが必要だ。多分こういうことはPerlとかRubyとかのスクリプト言語というのが得意なのであろう。文字列処理もあるからね。誰か次のようなPerlスクリプトを書いていないだろうか。自分はPerl知らないので。

以下,CとPascalも忘れたやつの適当コード(ってコードにもなってないが)。

ファイル全体を読み込む。
$...$および\[...\]というパターン(数式の部分)を探して,そのたびに次の処理をする。
  適当なプリアンブルを付けて,それをLaTeXに渡す。
  出来た dvi を dvipng で画像に変換する。
  数式の部分を画像へのリンクで置き換える。
その他,\section{...}を<h2>...</h2>へとか,適当に。
出来上がったら,数式画像もろともサイトにftpする。

多分Perl知っている人からすれば,簡単だと思うんだけどな。

投稿者 sukarabe : 03:19 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年05月23日(月曜日)

便利になると悩みが増える [ TeX ]

Win XPのフォルダーを共有フォルダーにして,書き込みも可能にしてみた。すると Mac OSX からも読み書きできる。Mac OSX上でTeXShopを使って,Win上にあるTeXファイルを編集したりコンパイル,プレビューなど自由にできる。なかなか便利だ。TeXShopは良くできているとは思うが,miも使い慣れたエディターなのでmi上でのTeX統合環境も試してみた。ところが,こちらでは,Win上のファイルがコンパイルできない。ファイルが保存されていません,というメッセージが出てします。うーむ。TeXShopに慣れるしかないか・・・。それにしても,どれで作業するか悩ましい。画面がきれいなのは Mac OSX なのだが,TeXShop のエディターとしての機能は,Win XPの xyzzy に劣ると言わざるを得ない。xyzzyとKaTeX(花鳥, TeX用に書かれた,Emacs LispプログラムであるYaTeX 野鳥 のxyzzyへの移植版)に体が慣れすぎているのかもしれない。

投稿者 sukarabe : 00:55 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年05月15日(日曜日)

mathabxフォントのインストール [ Mac OS X, TeX ]

先日,yhmath のインストールに(最後のPSフォントの読み込みの部分で)失敗したのだが,いくら考えても理由が分からない。そこで他のフォントで実験することにした。手順が悪いのであれば,同じように失敗するはずである。

ところが井上氏のサイトには,yhmath 以外に数式関係のフォントのパッケージがあまりない。ということで,実用性も考えて,mathabx フォントのインストールを試みた。便利なパッケージがない分,手間がかかったが結局インストールに成功。うーん,やっぱりやるべきことは間違ってないと思うんだけどなあ・・・。

ということで,備忘録として,インストールの手順を記録しておく。

まず,mathabxフォントの配布サイトに行き,必要なファイルをダウンロードする。mathabx.zip にはMETAFONTのソースコード,abxtype1.zip にはmftraceを利用して生成されたType1 PS Font が入っている。これらを解凍してから,しかるべき場所に移動させる。

Mac OS X にインストールするには,基本的にはLinux用の設定と同じでよいはずだが,ディレクトリーの構成が (teTeX3.0だからなのか,井上氏のパッケージだからなのか不明だが)サイトに書いてあるものと若干違うようなので,適当に修正しながら作業した。

解凍すると,sourceというサブフォルダーができる。この中のメタフォントのソースを
/usr/local/share/texmf/fonts/source/public/mathabx
に移動させる。ファインダーからはここが見えないので,ターミナルを起動する。このディレクトリーが存在しないので,
sudo mkdir -m 777 /usr/local/share/texmf/fonts/source/public/mathabx
のようにして作る。メタフォントのソースがある場所に移動して,
sudo cp *.mf /usr/local/share/texmf/fonts/source/public/mathabx
と,今作ったばかりのディレクトリーにすべてをコピーする。次に,スタイル・ファイルなどを移動させる。texinputs というサブフォルダーに mathabx.tex, mathabx.sty, mathabx.dcl の3個のファイルがあるが,LaTeXで用いるのは,mathabx.sty とこれが呼び出している mathabx.dcl の2個。これらを
/usr/local/share/texmf/tex/latex/mathabx
にコピーする。サイトの解説には,mathabx.tex もここに移動させるように書いてあったが,そしてそれでも動くのかもしれないが,mathabx.tex は plain tex 用みたいだから,ここに置くよりも,
/usr/local/share/texmf/tex/plain
以下にmathabxなるフォルダーを作って,そこに移す方が良いと思う。その際,mathabx.texもmathabx.dclを呼び出しているので,この2つを移動することになる。うーん,mathabx.dclが2カ所にあるのは良くないか?シンボリック・リンクを張っておく方がよいかな?

とにかく,以上で LaTeXでコンパイルするための作業は終わり。あ,texhash あるいは mktexlsr をして追加したファイルが読めるようにしておこう。(ls-R を使っている場合)

次に abxtype1.zip を解凍すると,pfb と map の2つのサブフォルダーができる。pfb の中にあるのが,PostScript のフォント。これらを
/usr/local/share/texmf/fonts/type1/public/mathabx
にコピーする。map フォルダーの中の mathabx.map は,
/usr/local/share/texmf/fonts/map/dvips/mathabx
の中にコピーする。ここがサイトの解説を大きく違うところなのだが,他のmapファイルの配置から考えて,これが良かろうと思う。最後に,このmathabx.map を読み込ませるために,updmap.cfg というファイルの末尾に,Map mathabx.map という一行を追加する。ちなみに,この updmap.cfg は
/usr/local/share/texmf/web2c
にあった。

以上で準備完了。updmapコマンドを実行させる。あれ?エラーだ。mathabx.map が見つからない,だって。そうか,ここでも texhash が必要だったか・・・。texhash コマンドにつづいて updmap コマンドを実行させると,dvipdfm, dvips, などなどのconfiguration がアップデートされる。これで作業終了。

エディターで簡単な文書を作り実験する。\usepackage{mathabx} と書けば,このスタイルファイルが読み込まれる。コンパイルさせると,METAFONTが起動してフォントのmetric file を生成している。そうか・・・tfmもまだ無い状態だものね。しばらくするとtfmファイルも生成されて,dviファイルが作られる。そしてこれをpdfに変換・・・してくれるかな?どきどきしながらコンソールのログを見ていると,無事にpdfに変換されている。ビットマップでなくちゃんとType1で埋め込まれていることを確認する。ふ〜,やっと終わったよ〜。

さてさて,mathabx が無事にインストールされたということは,作業内容に間違いはない,ということだよね,多分。どうして,yhmath だと駄目なんだろうか?インストーラを使わず,上と同じ作業を手でやってみれば良いかも知れないが,今日はもう疲れた(笑)ので,また何時かに。

投稿者 sukarabe : 16:59 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年05月12日(木曜日)

yhmathのインストールに失敗 [ Mac OS X, TeX ]

Mac上でもTeX(テック)の環境を作ろうといろいろとダウンロードしているのだが,yhmathのインストールでつまずいた。これは数式で用いる括弧類の形状を標準のものから変えるためのパッケージ。躓いたのは,dviからpdfへの変換。ここで
** ERROR ** Reading PFB (BINARY part) file failed.
と言われてしまう。つまりType1のフォントを読めないってことか・・・。TeXからdviまでのコンパイルは問題ないので,なんとかなるはず・・・と思うんですがね。うーむ。

いろいろ調べて yhmath.map というファイルを用意して, /usr/local/share/texmf/web2c/updmap.cfg の最後に MixedMap yhmath.map という行を書き加えて,updmap なるコマンド(スクリプトかな?)を実行する。これが必要なファイルを生成してくれるはず。texhash も自動でやってくれるので,ファイルを探せないこともないはずだよね。(それとも mktexlsr はやっぱり必要なんだろうか?) これでOKと思ったんだが,相変わらずのエラー。うーん。

しかし,必要に迫られたとはいえ,久し振りにターミナルからコマンド打ちまくりした。ついでに mi (エディター)から不可視ファイルを編集できることも発見した。というか,パミッションが書き込む不可なのに無理矢理編集していいのか(^^;)。いったいどうなっているんだ,Mac OS X は(笑)。

投稿者 sukarabe : 05:56 | この記事の固定URI | コメント (0) | トラックバック (0)

2005年02月16日(水曜日)

itex2MMLのテスト [ MovableType, TeX, コンピュータ&インターネット, 数学 ]

とりあえずテストをしてみる。ソースコードはこれ。

\frac{1}{2}+\frac{1}{3}+\frac{1}{7}+\frac{1}{42}=1

それで出力結果は,次の通り。 1 2 +1 3 +1 7 +1 42 =1

WindowsのIEで見るには,MathPlayerをインストールする。Firefoxならデフォルトで見れるが,数式フォントが無いと表示がおかしくなるので,Mozilla/MathML/FontsあるいはMITが配布している数式フォントを一式ダウンロードしてインストールしたほうが良いのかな?

投稿者 sukarabe : 17:19 | この記事の固定URI | コメント (0) | トラックバック (0)

itex2MML Plugin for MovableTypeを導入する [ MovableType, TeX, コンピュータ&インターネット, 数学 ]

itex2MMLはLaTeX風に書いた数式表現をMathMLに変換してくれるプログラムである。現時点ではJacques Distlerという方が開発・保守されているようだ(最初は別の人だったみたいだが)。そして,このitex2MMLをMovableTypeで使うためのText Filter Pluginもある。これを導入してみた。

itex2MML Plugin for MovableTypeの導入手順

まずJacques DistlerさんのWebLogにあるitex2MML Pluginのページに行く。Source distribution とあるところをクリックして一式をダウンロードする。解凍すると,itex2MMLのソース・コードとMacOSX用にコンパイルしたバイナリー,それからMovableTypeで使うための itex2mml.pl がある。自分でコンパイルできる人はそうすればよいが,そうでない場合(つまり僕の場合)はバイナリーをどこかで調達する必要がある。

ローカルで使うのではなく,サーバー上で使いたいわけだから,サーバーのOSに合わせる。ここのようにLINUXであれば,James GrahamさんのところにLinux/x86用のバイナリーがあるので,そこからダウンロードさせてもらう。それから,自分のサイトのサーバー上でのフルパスを調べておく。ロリポップだと,
/home/sites/lolipop.jp/users/....../web/
のようになっていると思う。以上で準備はOKだ。

準備ができたら作業に入る。

  • itex2MMLの本体,つまり実行ファイルを適当な場所にアップロードする。僕の場合は,自分のサイトのホーム直下にbinというフォルダーを作ってそこに入れた。そして,属性を755などの実行可能なものに変更する。

  • MovableType用のプラグインであるitex2MML.plをテキスト・エディターで開く。ここで,/usr/local/bin/itex2MMLと書かれているところが2カ所ある。これを自分がアップロードした場所に変更する。僕の場合だと,
    /home/sites/lolipop.jp/users/......../web/bin/itex2MML ということになる。

  • 編集が終わったitex2MML.plをMovableTypeのプラグイン・フォルダーにアップロードする。

  • MovableTypeのエントリー編集画面で,テキスト・フォーマットの選択肢に,itex to MathML と itex to MathML with parbreaks の2つが増えているはず。

以上で作業は終了,と言いたいのだが,MozillaがMathMLを表示するには,HTMLではなくXMLにしておかねばならないらしい。ここいらになると良く分かってないので困るのだが,付属の解説やWeb上の説明を読むと,ページの情報みたいな所に,Content-Typeはapplication/xhtml+xml だよ,ということを書いておけということらしい。

良くは分からないなりに,XHTML1.1+MathML2.0の文書という宣言をすることにした。とりあえずトップページだけだが。そして,Content-Typeをtext/htmlからapplication/xhtml+xmlに変更する。W3Cに行ってチェックすると,いきなりNOT VALIDと表示されてしまう。対処療法で,駄目と言われたところをコメントアウトする。(検索のフォームが文法違反と言われたので,現在削除中です。)とりあえずなんとかValid XHTML1.1+MathML2.0をクリアーする。

さあ,実験だ,ということで,簡単な数式を書く。

 \frac{1}{2}+\frac{1}{3}+\frac{1}{7}+\frac{1}{42}=1 
というLaTeXコードでテストしてみる。これがMathMLに変換されると, 1 2 +1 3 +1 7 +1 42 =1 と表示されるはず。 これが全然駄目。いろいろ試みるうちに,ファイルの拡張子を.htmlから.xhtmlに変更すれば,ちゃんとレンダリングされることを発見した。しかしなあ・・・.htmlのままでもMathMLが表示されているページはいくつもあるのになあ・・・。このページも.htmlのままだから,多分表示されないだろう。あー,疑問だらけだ!

さらに具合の悪いことに気づく。出力をindex.htmlからindex.xhtmlに変更し,古いindex.htmlを削除したところ,フォルダーのURLでアクセスした場合に,ファイルが存在しません,というエラーメッセージが出てしまう。え~index.phpとかindex.cgiはOKなのになあ・・・。ということで,これも見よう見まねで,.htaccessファイルを書く羽目になる。
DirectoryIndex index.xhtml と設定する。index.htmlにアクセスされたときのために,リダイレクトもした方が良いだろうか。うーむ。

これだけ頑張ったのだが,十分とは言えないなあ。もう少し勉強しないと。それに,Mozilla系はちゃんとMathMLをレンダリングするが,Internet Explorerが全然サポートできてないので,大多数の人はそのままでは数式が見れない。WindowsであればDesign Science社からInternet Explorer用のMathMLレンダリング・プラグイン MathPlayer が無償で配布されているから,それをインストールすれば見られるんだけどね。

追記

結局,ブロッグのトップのディレクトリーで .htacess に次のように書き加えることで一応の解決を見た。これは,Jacques Distlerさんの解説にあったものをほとんどコピーしたものだが,一カ所だけ変更してある。それは,index.shtml とあったところを index.html と変えたところ。だって,shtmlファイルはうちにはないから。それから RewriteBase のところは,ドメイン名というかサイトの直下をルートと考えたときのパスを書くと良いみたい。うちは直下に mt フォルダーを作って,そこにブロッグのトップがあるので,そのパスを書いた。

RewriteEngine On
RewriteBase /mt/
RewriteRule ^$ index.html
RewriteCond  %{HTTP_USER_AGENT} Gecko|W3C.*Validator|MSIE.*MathPlayer
RewriteRule \.html$|\.shtml$   - [T=application/xhtml+xml]
RewriteCond  %{HTTP_USER_AGENT} Chimera|Camino|KHTML
RewriteRule \.html$|\.shtml$   - [T=text/html]
RewriteCond  %{HTTP_USER_AGENT} Camino.*MathML-Enabled
RewriteRule \.html$|\.shtml   - [T=application/xhtml+xml]

ちなみにドル記号は itex2MML を使うときは数式の始まりと認識されてしまうので,全角文字の$で表記した。使うときは半角に。というかドル記号の実体参照ってないのかな?

投稿者 sukarabe : 15:50 | この記事の固定URI | コメント (2) | トラックバック (0)

2005年01月06日(木曜日)

mimeTeXをインストール [ TeX, コンピュータ&インターネット ]

mimeTeX をインストールしてみた。これはCで書かれたCGIで,LaTeXにほとんど同じ形式の数式を「前もって画像にすることなく」HTMLファイルが読み込まれたときにサーバー上で画像に変換して表示するというもの。従ってHTMLファイルにはLaTeXもどきのソースしかなく,画像ファイルを保存する必要がないという優れものである。さっそく数式が表示できるかテストしてみよう。

\zeta(2)の値

ちなみにこのサンプルは次のHTMLコードで出力されたもの。

<div style="text-align: center">
<img src="http://njet.oops.jp/cgi/mimetex.cgi?
\Large\zeta(2)=\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+
  \frac{1}{4^2}+\cdots=\frac{\pi^2}{6}"
  alt="\zeta(2)の値" border="0" align="middle" /> 
</div>

実は最初上手く表示できなくってあせった。FTPでアップロードしたものとファイルサイズを比べたら1バイト(?)違っていた。ん?なんだ?念のためバイナリーモードで mimetex.cgi をアップし直す。今度はファイルサイズも同じだ。パーミッションを755にし,さあこれでだめなら今日はもう寝よう(笑)ということでお祈りしながら再びトライ。なんとか表示できたみたいですね。でもなんだかレンダリングがあまり美しくないなあ・・・。

投稿者 sukarabe : 20:51 | この記事の固定URI | コメント (0) | トラックバック (0)

2004年10月19日(火曜日)

TeX数式フォントmathabxをインストール [ TeX ]

先日の日記の続き。
TeX数式フォントmathabx

今日,mathabxの配布サイトからダウンロードしてきた。マニュアルは同梱されていない,ということなので,サイトの説明を読みながらファイルをそれぞれ指定のディレクトリーに配置する。配布ファイルは,メタフォント・ソース,PostScript Type 1 フォント,スタイル・ファイル,そして,DVIドライバー用のmapファイルの4種類。

現在編集中の文書で試してみると,あっさりと成功する。オイラー・フォントやtxfontのようにドラスティックな変化はないが,違和感がなく良い感じだ。

投稿者 sukarabe : 21:51 | この記事の固定URI | コメント (0) | トラックバック (0)

2004年10月18日(月曜日)

TeX数式フォントmathabx [ TeX ]

久し振りにTeX関係のサイトを見ていたら,mathabxなる数式フォントがあることを知った。
mathabx
サンプルのPDFファイルを見たが,なかなか美しい。こんどダウンロードして使ってみよう。

投稿者 sukarabe : 23:44 | この記事の固定URI | コメント (0) | トラックバック (1)