USBメモリー上で動く欧文版LaTeXシステム

いろいろ調べていたら,次のページを見つけた。

ExOmatiK.net : LaTeX – Complete LATEX environment on a USB stick

MikTeX+Ghostscript+GSView をポータブル化した統合環境というふれ込みだが・・・。実現方法を読むと,レジストリーを全く使わないのではなく,終了時にレジストリーを元に戻すらしい(多分)。うーん,これは純粋なポータブルなんだろうか。汚さないのではなく,汚すけど清掃して終了するという・・・ 😕 。

Windows版TeXをポータブル化してUSBで使う

今のところdvioutのポータブル化には挫折してはいるが、Macと同じく platex + dvipdfmx + Adobe Reader という組み合わせならなんとかなった。もっとも、Adobe Reader は今なら何処にでもインストールしてあると思い、特にポータブル版で試していないのだが。

利用するのは「ぷちらんちゃ」と「WinShell 3.2」。まず、WinShellのバージョン3.2をダウンロードして、解凍。WinShell.exeがあるフォルダーにSettingsというフォルダーを作り、ポータブル化する。次に、WinShellを「ぷちらんちゃ」から起動するときに、パスを通せるように、次のようなファイルを作り、例えば WinShell.bat という名前で保存する。

set PATH=%USBDRIVE%:\Applications\Win32TeX\bin;%PATH%
start WinShell.exe

ここで、%USBDRIVE% というのは、このあと「ぷちらんちゃ」で設定する自前の環境変数。パーセントで囲めば何でもよい。ここでは、USB HDD に割り当てられたドライブ(アルファベット一文字)に対応する。うちの環境だと、H という文字になる。うちでは、USB HDDのルート直下にApplicationsというフォルダーを作り、そこにWin32TeXをすべて解凍してインストールしてあるので、上のような設定になっているが、ここは環境に合わせて変更が必要。

次に、ぷちらんちゃ の設定。プログラムのアイコンボタン以外の所で右クリックすると、設定というメニューがあるので、そこから初期設定を行う。初期というタブを選び、「ぷちらんちゃ起動時にインストール先情報を環境変数に設定する」なるボタンをチェックし、環境変数名を例えば(上記に合わせるとすれば) USBDRIVE とし、これが表すものとして選択肢から「インストールドライブ」という値を選ぶ。これで、ぷちらんちゃ から起動したプログラムには、この変数の値が渡されるという仕組み。最後に、ぷちらんちゃにWinShell.batを登録する。アイコンはWinShell.exeのものを登録するが、プログラムとしては WinShell.bat の方を登録。そうすることで、バッチファイルの1行目によって \Win32TeX\bin に Path が通る。

WinShellに戻る。これで、ぷちらんちゃから起動したときはパスが通っているはずだから、WinShellのオプション設定で、TeX関連プログラムの設定では、LaTeX組版は単に platex.exe でよい。次に、DVIからPDFへの変換プログラムを dvipdfmx にする。何故かメニューが固定化されていて、DVI->PS というのしかない。他に適当なメニューもないので、ここに dvipdfmx を登録することにした。できればメニューを DVIー>PDF と変更したいのだが。あとはPDFViewerの設定だが、Adobe Readerは多分大丈夫だろうということで、まだ設定していない。今のところ本体のプログラムが起動しているようだ。

使い方は、まず、ぷちらんちゃを起動し、そこからWinShellをクリック。あとはWinShellの中で文書を編集する。コンパイルするには、LaTeXでdviを作ったあと、DVIー>PS (実はDVIー>PDF)でPDFファイルに変換。PDFViewerからAdobe Readerで出来上がりを読む、という手順。

今のところ、USB接続の外付けハードディスクで作動中。TeXシステムは富豪版というか全部入れてしまったため、合計で600メガバイトにもなってしまった。ディスク上では1.2GBを占有している。小さなファイルが沢山あるから、ディスクの効率が悪いなあ。これでは1GBのUSBフラッシュには入らない。標準版か最小版を今度試してみようと思う。

[ 追記 ] Foxit Reader というのを見つけたので、PDF Viewer に設定してみたが、動作も軽くて快適。USBでポータブルに使うために Zip圧縮してあるものをダウンロードして解凍。最初は日本語フォント類がないので、ネットに取りに行く。ダイアログが出るので、OKすると fpdfcjk.bin というファイルをダウンロードする。最初、Cドライブ以下のテンポラリーな場所にダウンロードされるみたいだったので、あせったが、ちゃんと Foxit Reader と同じフォルダーに保存されていた。次回からはこれがあるので、普通に日本語も表示される。というか、Adobe Reader よりもずっと快適。こっちをデフォルトのPDFリーダーに変更したいくらいだ。

Windows版TeXをUSBメモリーで使う(簡易版)

とりあえず動作したので,メモ。

まずは最新のTeXシステムをダウンロードして解凍。現時点でのバージョンでは,以前のようなTeXMFなどという環境変数は使用しないため,単にパスが通ればよい。USBのポータブルHDDは今のところ Hドライブになっているため,H:\Applications\Win32TeX 以下にTeXシステムをインストール。プログラム類は H:\Applicaions\Win32TeX\bin に入っている。パスを通さずとも,コマンドラインにフルパスを記述すれば使える。例えば,H:\Documents\tex\sample.tex というファイルをコンパイルするには,そのディレクトリーに移り,

H:\Documents\tex > H:\Applicaions\Win32TeX\bin\platex sample.tex

とコマンドラインから入力すればよい。ついで,これを dvipdfmx にてPDFに変換すればAdobe Readerで読めるようになる。

以上で,最低でもコマンドラインから使えるが,統合環境の WinShell を使うと簡単。ちなみに,現在のバージョン WinShell 3.2 では,WinShellプログラムが入っているフォルダーに Settings というフォルダーを作ると,ポータブル化できるらしい。おそらくはレジストリーなどに書き込んでいた初期設定などをこのフォルダーに書くことでポータブル化が実現したと思われる。

さて,WinShellの設定だが,オプションからフォント,エンコード(Shift JIS)などを決めていく。LaTeXプログラムとして H:\Applications\Win32TeX\bin\platex,DVIをPS (ホントはPDFなのだが,ここの名称が何故か変更できないので・・・) に変換するプログラムとして H:\Applications\Win32TeX\bin\dvipdfmx を選ぶ。あとはLaTeX文書をWinShellで開き,アイコンあるいはメニューからコンパイルなどの動作をさせればよい。

これで,とりあえずは何とかなった。まだ,dviout や GhostScript 関係の設定が済んでないが,一応はコンパイル&プレビューできる。問題は,よそのパソコンを借りるとき,ドライブが H: になるとは限らないこと。この部分だけ毎回変更しなくてはならないかも。ドライブ文字を取得できる方法が次の課題。WinShellをランチャーなどに登録すれば何とかなるのだろうか。

Windows用TeX ポータブル化 メモ

USB接続のポータブルHDD、あるいは USB フラッシュ・メモリー に Windows用の TeX システムを丸ごと入れて、ポータブル化できないか、という話。Windowsの場合、レジストリーとか、ややこしい話があり、単にプログラムをメモリーにインストールしただけでは済まないらしい。

まず、TeX コンパイラー本体については、レジストリーなどは使わない。しかし、環境変数 PATH の設定が必要。要するに、プログラムがあるディレクトリーにパスを通しておかないと、シェルにフルパスを与えないとプログラムが起動できないのである。シェルから起動する分には、自分で指定すれば良いが、普通はエディターから呼び出したり、統合環境を使うだろうから、PATHを通す部分で問題が起こる。よそのパソコンでPathの設定を毎回するのはどうも・・・ねえ。よそのパソコンには一切影響を及ぼさないというのが、ポータブル化するということでもあるし。

あれこれ検索したところ、次のページを発見。

あべのりページ(阿部紀行さん)>TeXの話>TeXを持ち出す

パスを通す部分は適当なランチャーにより環境変数を設定すればよいらしい。ランチャーを使えば、割り振られたディスク記号(E: とか H: とか)を取得できる模様。これに対して、dvioutを使うところは一筋縄では行かないみたいだ。

もう一つ見つけたのは、次のページ。

PortableApps.com » Forums » General Forums » Request Apps » WinShell – LaTeX IDE

WinShellという統合環境を使えばポータブル化できるらしきことが書いてあるが、MikTeXという欧文用TeXシステムの話だから、日本語の通る角藤版のASCII pTeX (=W32TeX) ではどうなんだろうか。

レジストリーを使うソフトをポータブル化する「Schwertkreuzi」

マカー :mrgreen: のはずなのに、何故かWindows関係の話 😉

Schwertkreuzi

USBにソフトを入れて、出先のパソコンで使おうとしても、レジストリーやら環境変数やらで、なかなか上手く行かない。この Schwertkreuz の下でアプリケーションを起動させると、レジストリーへの書き込みなどをバイパスさせて管理できるという。結果としてパソコン本体には影響を及ぼさないらしい。Firefoxも動作確認ずみとのこと。

もっとも、FirefoxやThunderbird(メールソフト)なら、PortableApp.com という強力なやつがある。TeX (数式組版に特化した組版プログラム) がこれで持ち運べれば素晴らしいのだが。

TeXで漢文組版するためのメモ

TeXで漢文を組版する準備としてメモ。現時点では,JIS第2水準(多分)に収まらない漢字はユニコードの16進表示で \UTF{****} などと入力しないとTeXが処理できない。ユニコードに対応したpTeXの拡張版も試作されているみたいではあるが。

また,訓読のために,一つ一つの漢字に対して \Kundoku{漢字}{振り仮名}{送り仮名}{返り点}{なんかかんか} というマクロを書くのも手間である。これらを一括して処理したい。マクロは何とかなると思うが,問題はUnicode表示の部分。次のページで配布されているPerlスクリプトが参考になると思うのでメモ。

kcode – 各種文字コードを表示する

適当な関数が分かれば全体は難しくない。

while (まだファイルが終わってない) do
begin
 1文字読み込む。
 if (それが第2水準までにある) then 
    「\Kundoku{漢字}{}{}{}{}{}」 みたいに出力。
 else
 begin
    漢字に対するユニコード(UTF8)を調べて16進に変換。
    「\Kundoku{\UTF{****}}{}{}{}{}{} %元の漢字をコメント」みたいに出力。
 end
end

別組数式前後での改ページ

TeX/LaTeXメモ。意外な所というか不本意な所で改ページされてしまい,うまく所定のページ数に収まらなくなってしまった。テックブック(TeXbook)を本棚から取り出して,行分割アルゴリズムの所を調べてみる。

ああ,やはりそうだ。\predisplaypenalty, \postdisplaypenalty といったペナルティがあって,それぞれ別組数式の前後に置かれている。欧文の伝統的数式組版では別組数式(display math)の直前でのページ分割は避けるようになっているらしく,\predisplaypenalty の値がある程度大きくとってある。とりあえず,この値を0に設定することで解決。ページの冒頭が数式になってしまい,いささか体裁は悪いのだが。

文字数を数えるLaTeXマクロ

自前の漢文組版ルーチンのための準備。ルビや送り仮名の文字数に応じて印字の位置などを微妙に変えるために、文字数を数えるマクロが役に立つ。幸い、LaTeXには組み込みのループ処理マクロがある。
\@tfor というのがそれである。

\@tfor 変数 :=トークンリスト \do{処理の内容}

の様に使う。例えば、次のように \WordCount を定義しておくと、\WordCount{長い文字列} は 5 となる。

\def\WordCount#1{%
  \@tempcnta\z@
  \@tfor \@tempa:=#1\do{\advance\@tempcnta\@ne}%
  \the\@tempcnta
}

僕が持っている版のLaTeX Companionには、こういう内部マクロの情報がなかった。今回参考にしたのは、
 LaTeX2e マクロ&クラス プログラミング基礎講座
LaTeXだけでなくTeXの内部構造から丁寧に解説してある。素晴らしい本だと思うが、リンク先を見ると在庫無しとのこと。残念である。こういう需要は少ないのかなあ。

漢文の組版

漢文名作選4「文章」170頁 (大修館書店)

LaTeXで漢文を組むためのスタイルは、既存のもので満足できるものがそろってはいるが、大修館書店の「漢文名作選」のシリーズを見て、組版の美しさにちょっと感動。

感動とはおおげさでなのだが、大きめの活字で縦横両方向の升目にぴったり収まる組版になっている。これを実現しているマクロ集はまだないと思う。

実現方法はおぼろげながら分かる。長さが一定のボックスに漢字と送りがな、そして返り点などを付随させ、あとはそれを積み重ねればいいだろう。送りがなが長いと二段に分割してあるなど、難しい点もある。やり方は理屈では分かるのだが、送りがなの位置など、微妙な点もある。暇を見つけてマクロを作ってみたい。

LaTeXで漢文

年年歳歳花相似、歳歳年年人不同

高校の教科書や先日買った大修館書店の「漢文名作選」シリーズは字が大きくて気分が良いが、それ以外は総じて本文の文字サイズが小さく物足りない。そこで、大きく印刷してはどうだろうか、というわけである。

こういうときに頼りになるのが組版ソフトのTeX/LaTeXである。数学の文書で本領を発揮するソフトではあるが、数式がなくても、というか、普通のワープロとしても優秀なのは言うまでもない。漢文の返り点などは、それ専用にマクロを作る必要があるが、検索してみると、既にいくつか開発されているではないか。素晴らしい :mrgreen: 。今回は藤田眞作さん作成のマクロパッケージを利用させてもらい、実験してみた。ソースコードは次の通り。

\documentclass{tarticle}
\usepackage{sfkanbun}
\usepackage{jdkintou}
\usepackage{utf}

\begin{document}

\begin{kanshi}
\noindent
年年歳歳花
\kundoku{相}{あい}{}{}
\kundoku{似}{}{タリ}{} \\
歳歳年年人
\kundoku{不}{}{}{レ}
\kundoku{同}{}{ジカラ}{}
\end{kanshi} 

\end{document}