USB メモリ活用講座
【TeX2img ポータブル化】

< 最終更新日: 2023-12-07 >

はじめに

TeX2img を動作させるには W32TeX および Ghostscript が必要です. まずは,これらが正常に動作する環境を構築してください. さらに,.NET Framework 4.5.2 以降が必要となります※1

Windows 10 でインストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう. 以下では USB メモリを PC に挿入したときに,認識されるドライブレターが (U:) であるものとし,このドライブのことを USB ドライブと呼びます.

  1. 北海道大の阿部紀行さんのサイトから「TeX2img 2.X.X」(ZIP ファイル, X.X はバージョン番号に関連する数字) をローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードします※2
  2. ダウンロードした ZIP ファイルを USB メモリの適当なフォルダに展開 (解凍) します. ここでは U:\usr\TeXimg に展開したものとして説明を続けます.

Windows 版の TeX2img はレジストリを使わないので,TeX や Ghostscript 用の環境設定を行ったコマンドプロンプトウィンドウ (dviout のポータブル化設定参照) から,次のようにタイプすれば起動できるはずです:

U:\usr\TeX2img\TeX2img Enter

図1 のようなダイアログボックスが表示され,platexdvipdfmxgswin32c.exe へのパスが正しく表示されていたら OK をクリックします. 図1 が表示されずに,アプリケーションエラーを通知するダイアログボックスが表示された場合は,.NET Framework がインストールされていない環境かもしれません※1

図1・パスの確認ダイアログボックス
図1・パスの確認ダイアログボックス

図2 の起動画面が表示されたら,「TeX コードを直接入力」という領域に適当な TeX ソースコード (数式) を入力します (図2 では 2 次方程式の解の公式を入力しています). そして,「出力先ファイル」に生成したい画像ファイル名を指定します. デフォルトではデスクトップに equation.eps という EPS ファイルを生成することになっているようです. 画像ファイル生成 をクリックすると,コンパイルと指定した画像ファイルへの変換処理が開始されます.

図2・TeX2img 起動画面
図2・TeX2img 起動画面

処理の進捗状況は「出力」ダイアログボックスに表示されます. この図は省略しますが,表示内容を見ると TeX2img が行っている内部処理 (platex でコンパイル → dvipdfmx で PDF ファイルに変換 → Ghostscript で EPS に変換 → Ghostscript で指定された画像フォーマットに変換) の様子を確認することができます※3. 一連の変換処理に成功すれば,図2 の「出力先ファイル」で指定した画像ファイルが生成され,その拡張子に関連付けられたビューアが起動されます. ただし,Windows が標準ではサポートしない形式の画像 (EPS ファイルなど) を生成するような場合には,関連付けされたアプリケーションが見つからないというダイアログボックスが表示される場合もあります (TeX2img の設定を参照). 画像ファイルが生成されない場合は,TeX や Ghostscript の環境設定に問題がないかを確認しましょう.

TeX2img のポータブル化

TeX2img はレジストリを使用していないので,上で述べた方法だけでポータブル利用が可能です. しかし,設定情報をホスト PC の特定のフォルダに保存するため,ホスト PC に全く痕跡を残さずクリーンに使えているわけではありません. そこで,TeX2img を起動し,使い終わった後に設定情報を消去する VB スクリプトを作成してみることにします (WSH について興味がある方は,こちら をご覧ください).

テキストエディタを起動して,次のような VB スクリプトを入力しましょう. 先頭がアポストロフィ (') の行はコメント (注釈) となりますので,飛ばしてもかまいません. 正確にタイプする自信がない方は,Web ブラウザからエディタへコピー&ペーストすればよいでしょう※4

' TeX2img起動スクリプト
Option Explicit
Dim objWshShell,objFS,objEnv,strDrv,strDir,intRet
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' カレントドライブのドライブレターを取得する
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
' TeX2imgを起動(終了後にスクリプト続行)
objWshShell.Run strDrv & "\usr\Tex2img\TeX2img.exe", 1, True
' TeX2imgの設定情報がローカルファイルシステムに残っているか確認
Set objEnv = objWshShell.Environment("Process")
If Len(objEnv.Item("LOCALAPPDATA")) = 0 Then
    ' Windows XPの場合
    strDir = objEnv("HOMEDRIVE") & objEnv("HOMEPATH") _
    & "\Local Settings\Application Data\TeX2img"
Else
    ' Vista以降の場合
    strDir = objEnv("LOCALAPPDATA") & "\TeX2img"
End If
If objFS.FolderExists(strDir)<> 0 Then
    intRet = objWshShell.Popup("TeX2imgの設定情報を削除しますか", 0, "Clean Up", vbYesNo)
    If intRet = vbYes Then
        ' フォルダを強制的に削除
        objFS.DeleteFolder strDir, False
        If Err Then
            WScript.Echo strDir & "を削除できませんでした"
        Else
            WScript.Echo "TeX2imgの設定情報は削除されました"
        End If
    Else
        WScript.Echo strDir & "にTeX2imgの設定情報が残っています"
    End If
End If

入力し終えたら tex2i.vbs と名前をつけて,USB ドライブ上の適当なフォルダ (U:\bin など) に保存しましょう.なお,保存するときには文字コード (エンコード) をシフト JIS (Shift_JIS) にする必要があるようです. 「メモ帳」でこのスクリプトを作成する方は,保存時の文字コードを ANSI に指定するとともに,ファイル名が tex2i.vbs.txt となってしまわないよう気をつけてください (失敗したらリネームすればよいだけですが).

TeX や Ghostscript 用の環境設定を行ったコマンドプロンプトウィンドウ (dviout のポータブル化設定参照) から,次のようにタイプして VB スクリプトを起動します:

U:\usr\bin\tex2i Enter
図3・設定情報削除の確認
図3・設定情報削除の確認

TeX2img が自動的に起動されるはずです. TeX2img を終了させると,図3 のダイアログボックスが表示されます. はい をクリックすれば,ローカル PC に保存されている TeX2img の設定情報が削除されます.

なお,この VB スクリプトは TeX や Ghostscript 用の環境設定を行ったコマンドプロンプトウィンドウ (dviout のポータブル化設定参照) から起動しないと,正常に変換動作を行ってくれません. VB スクリプトをダブルクリックしたり,ランチャに登録するなどして,単体で起動した場合でも正常に変換動作を行ってくれるようにするには,この VB スクリプト内で環境変数 PATH などを正しく設定しなければなりません. 具体的には,dviout のポータブル化設定で作成した texenv.vbs の環境変数設定を行っているあたりを,tex2i.vbs にも組み込んでやる必要があります. 完全なスクリプトは長くなってしまうので省略しますが,興味がある人は自分なりに工夫してみてください.

TeX2img の設定

TeX2img の起動画面 (図2) のメニューバーから ツール-オプション を選択すると,図4のような TeX2img のオプション設定ダイアログボックスが表示されます. 5 つのタブがありますが,それぞれについて簡単に説明します (最近のバージョンで追加された項目は動作確認が追い付かず,省かれているものもあります※3).

図4・TeX2img のオプション設定
図4・TeX2img のオプション設定
基本設定
platexdvipdfmx,Ghostscript (gswin32c) の実行ファイルへのパスを確認し,必要に応じて設定・変更することができます.
環境設定がうまくできているはずなのに,画像ファイルが生成できないような場合は,「少々のコンパイルエラーは無視して画像化を強行する」にチェックしてみるとよいかもしれません.
Ghostscript のバージョンによって出力 DEVICE は epswrite (gs9.14 以前),eps2write (gs9.15 以降) から自動判別されるはずですが,「バージョン 9.14 以前のGhostscriptを使う」をチェックすることで手動で epswrite を指定することもできるようです.
低解像度での処理については,※3 の「TeX2img (Windows/Mac) の動作の詳細 (改訂版)」で詳しく説明されています.
文字コードについては,「指定しない (入力 UTF-8)」とする方がよいかもしれません. 詳しくは,TeX2img を展開したフォルダの TeX2img-ja.txt を開き,Tips を参照してください.
出力画像設定 (図4)
解像度レベル:数値を大きくすると,出力される画像の解像度 (画素数) が大きくなります. 図2 の 2 次方程式の解の公式について,JPEG 画像を生成してみたところ,デフォルトの 6 では 528×134 画素,12 では 1055×269 画素の画像が出力されました.
余白:上下左右に加える余白を設定します. 余白の単位は px (ピクセル) と bp (ビッグポイント, 1bp は 1/72 インチ) から選べます. ビットマップ系の画像 (BMP/JPEG/PNG) では px を選ぶとよいでしょう.
背景色:「透過」にしておくと PNG ファイルなどの透過色 (透明化) に対応した画像フォーマットで出力する場合に,背景色を透明に設定します. ボタンをクリックすることで,カラーパレットを表示させて背景色を選ぶことも可能です.
画像形式ごとの設定
アンチエイリアス処理する※5: オンにしておくと,JPEG/PNG/BMP/TIFF などのラスタ画像を生成するときに高品質な出力が得られるようなアンチエイリアス処理を行ってくれます.
テキスト保持する:PDF/SVG(Z) ファイルへ出力する場合にチェックしておくと,テキスト情報が保持されます. オフの場合には,数式のアウトライン画像だけが出力されます. 読み上げや検索,コピー&ペーストなどの処理で数式部分も対象に含めたい場合はチェックしておいた方がよいかもしれません. PDF に出力したものを,他のソフトで素材として利用 (インポート) する場合に,オンにしておくと文字化けすることがあるようです.
寸法情報を削除:SVG ファイルへ出力する場合にチェックしておくと,寸法情報が削除されるようです. Web ページに SVG ファイルを貼り付ける場合には,チェックしておいた方がよいかもしれません.
単一ファイルで出力: オススメの使い方 (2) を参考にしてください.
コンパイル後処理
コンパイル後出力ウィンドウを自動的に表示: チェックをオフにすると,図2画像ファイル生成 をクリックしたときに出力ダイアログボックスが表示されなくなります.
コンパイル後生成ファイルを開く: チェックをオフにすると,画像ファイルが生成された後で,拡張子に関連付けられたビューアを起動しなくなります. Windows が標準ではサポートしない EPS を生成するような場合には,オフにしておく方がよいでしょう.
コンパイル後作業ファイルを削除する (推奨): TeX2img は環境変数 TEMP (など) で指定されたフォルダ (作業ディレクトリ) 上で一連の変換処理を行います. この項目がオンであれば,最終的な出力ファイルの生成に成功したときに,途中で中間的に生成されたファイルは削除されますが,オフだと削除されずに残ってしまいます. 何らかの問題が発生してトラブルシュートを行う場合でなければ,オンにしておきましょう.
生成したファイルからソースを復元できるようにする: NTFS ファイルシステムでフォーマットされたドライブに画像ファイルを保存するときに,TeX ソースファイルの情報を付加したい場合にチェックしておきます. 詳しくは TeX2img のインポート/エクスポート機能 をご覧ください.
生成したファイルをクリップボードにコピーする: オススメの使い方 (1) を参考にしてください.
作業ディレクトリ: TeX2img の TeX コード部分で外部ファイルを読み込むような場合には,ここで調整できそうです.
エディタの設定
TeX2img Ver 1.2.3 以降で新設されたタブで,エディタ部分のフォントを変更したり,キーワードの色付けをカスタマイズすることができます. USB ポータブル環境で利用する場合にはあまり変更しない方がよいでしょう.

オプションダイアログボックス (図4) で設定した内容は,設定情報として保存されます. TeX2img のポータブル化で作成した VB スクリプトで,TeX2img 終了時に設定情報を削除すればクリアされてしまいます. 従って,お気に入りのエディタの設定を行っても,それをポータブル環境で持ち運ぶことはできません (VB スクリプトを自分で改造して,設定情報を USB メモリにバックアップできるような工夫をすれば可能になるはずです).

オススメの使い方

このページを開設した頃の TeX2img Ver 1.2.6 に比べて,最新の TeX2img には様々な機能が追加されました.

これらの機能をどう活用するのか,工夫のしどころと思います. ここでは,古いバージョンの TeX2img でも利用可能で,たくさんの数式画像を順次生成したいような場合や,数式を修正して画像を作り直すことがある場合に効率的と思われる方法を紹介します.

オススメの使い方 (1):既存の TeX ソースからの画像生成

  1. TeraPad などのテキストエディタや TeXworks で,画像に変換したい TeX ソースファイルを作成し,コンパイルしてもエラーが発生しない状態に仕上げておきましょう. その際,TeX のコメント機能などを使って,出力したい画像ファイル名を書いておくとよいでしょう. 例えば,\begin{document}\end{document} の間は次のような感じで書くとよいでしょう.
    % equation1.png
    \[
      x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
    \]
    
  2. 完成させた TeX ソースファイルをテキストエディタで開き,TeX2img も起動します. 画像を挿入したいアプリケーション (プレゼンテーションソフトなど) も起動します.
  3. TeX2img のコンパイル後の処理で「生成したファイルをクリップボードにコピーする」にチェックをつけておきます.
  4. テキストエディタで画像に変換したい部分を範囲選択して 編集-コピー (Ctrl + C) でクリップボードにコピーします.
  5. TeX2img をアクティブにします. 「TeX コードを直接入力」の領域をクリックしてカーソルが表示されたら,Ctrl+V で貼り付けを行います.
  6. 出力先ファイル名を設定 (ここもコピー&貼り付けを利用するのが確実です) して,画像ファイル生成 を行います.
  7. 画像を挿入したいアプリケーション (プレゼンテーションソフトなど) をアクティブにして,Ctrl+V で貼り付けを行います.

上記の操作は,ショートカットキーを覚えることで,効率よく作業できるようになります. ちなみに,アクティブなアプリケーションは Alt+TAB や,ウィンドウズキー+TAB で切り替えることができます. また,TeX2img のウィンドウをアクティブにしているときには,TAB をタイプすると入力欄等を切り替えることができます.

オススメの使い方 (2):画像の一括生成

TeX Wiki の TeX2img FAQ の「複数の画像を一括生成したい」の項によると,TeX2img は TeX の組版結果のページごとに画像ファイルを生成するそうです. 実際に \newpage コマンドによる改ページを含む TeX コードを入力して,出力ファイルを equation.png のように指定し,画像ファイル生成を行ってみると,equation-1.pngequation-2.png のようにファイル名の後ろにハイフンと数字 (連番) が追加された複数 (ページ数分) の画像ファイルが生成されました.

なお,上記の画像ファイル生成を行う際に,コンパイル後の処理の「生成したファイルをクリップボードにコピーする」にチェックを付けておくと,1回の貼り付け操作 (Ctrl+V) で全ての生成された画像が一度に貼り付けられます. あまりに多くの画像を一括生成してクリップボード経由の貼り付けを行うと,その後の編集操作が煩雑になりそうですので,注意が必要です.

ところで,出力画像の形式を PDF/TIFF/SVG(Z) とする場合には,1 ページ 1 ファイルで出力するか,全ての出力を 1 ファイルにまとめるかを選択可能です. ページごとにファイル生成したい場合はコンパイル後の処理の「単一ファイルで出力」のチェックをオフにします. 1 ファイルにまとめたい場合にはコンパイル後の処理の「単一ファイルで出力」にチェックを付けます. SVG(Z) 形式の場合は,さらにアニメーションの設定も可能です.

TeX2img のインポート/エクスポート機能

TeX2img の Ver.1.3.2 以降では,入力された TeX コードを保存するエクスポート機能と,予め作成してある TeX ソースファイルを読み込むインポート機能が備わっています. エクスポート機能は ファイル-エクスポート から TeX ソースファイルの保存先を指定するだけですので,詳しい説明は省きます. エクスポートしたファイルや,テキストエディタなどで作成した TeX ソースファイルは,ファイル-インポート から読み込めば再利用可能です. 一度,エクスポートした TeX ソースファイルをテキストエディタで開き,中身を確認すれば,インポートするファイルをテキストエディタで作成するような場合の参考になることでしょう.

TeX2img の Ver.1.4.0 以降では,さらに機能が強化され,一定条件下であれば TeX2img から生成された画像ファイルをインポートすることで,その数式画像の TeX ソースを読み込むことが可能となりました. これにより,類似した数式画像を作成する場合や,作成した数式画像の手直しが必要となった場合などにおける再利用性が格段に向上しました.

画像のインポート機能を利用するには,TeX2img の設定において,「コンパイル後処理」タブの「生成したファイルからソースを復元できるようにする」にチェックを付けておく必要があります. さらに,画像ファイルを保存するドライブのファイルシステムが NTFS である必要があります (ファイルシステムについては USB メモリの準備 を参照). NTFS ファイルシステムでは,1 つのファイルに格納される本来のデータ (メインデータ) の他に,別の補助的なデータ (代替データ) を持たせることができます. これを利用して,TeX2img は画像ファイルをメインデータに,TeX ソースを代替データとして保存します. このようにして作成された数式画像ファイルをインポートするには,次のように操作します.

  1. TeX2img の ファイル-インポート をクリックします.
  2. 図5 のダイアログボックスが開かれるので,右下の赤枠部分を「画像ファイル」に変更します.
    図5・TeX2img のインポート画面
    図5・TeX2img のインポート画面
  3. 数式画像ファイルを選んで「開く」をクリックします.
  4. 「現在のプリアンブル及び編集中のソースファイルは破棄」されるといった確認のためのダイアログボックスが表示されるので はい をクリックします.

繰り返しになりますが,数式画像のインポート機能は HDD のファイルシステムとして一般的に用いられる NTFS 限定です. USB メモリで一般的に用いられる FAT/FAT32/exFAT では利用できません. どうしてもポータブル環境でこの機能を利用したければ,USB メモリを NTFS でフォーマットしておく必要があります (USB メモリの準備 を参照).

また,テキストを保持して NTFS のドライブに出力した画像ファイルを,FAT/FAT32/exFAT などのドライブへコピー/移動しようとすると,図6 のようなダイアログボックスが表示されます.

図6・ファイルコピー時の警告
図6・ファイルコピー時の警告

図6はい をクリックすると代替データとして保持されている TeX ソース情報が取り除かれ,メインデータである画像ファイル本体だけがコピーされます. いいえ をクリックすると,コピー/移動操作がキャンセルされます.

【参考】ImageMagick のポータブル化

注意: この項では以前の TeX2img で,生成するビットマップ画像にアンチエイリアス処理を行いたい場合に必要であった ImageMagick のポータブル化について説明しています. 最新の TeX2img は,標準でアンチエイリアス処理機能が利用可能となり,ImageMagick をインストールする必要はなくなりましたが,ImageMagick は有用で強力な画像処理ツールですので,参考として残してあります.

ImageMagick は画像フォーマットの変換や,画像サイズの変更,画像の回転,減色処理など,基本的な画像処理として必要と思われる機能はほとんど提供してくれているツールです. コマンドラインから利用する方法と,他のプログラミング言語から呼び出して使う方法があります.

ImageMagick にはポータブル版があるので,簡単にインストールすることができます. しかし,約 290MB のアキ容量が必要であること,コマンド操作に慣れないユーザにとっては使いにくいと思われること,GUI 環境で操作できる IrfanView でも多くの画像処理機能が提供されていることなどから,どのレベルのユーザにも推奨できるツールとはいえません.

以下では ImageMagick のポータブル版を USB メモリにインストールする手順を解説しますが,他の箇所にくらべてかなり大雑把な説明となります. この説明が難しいと感じられる方は,自分にとって ImageMagick が本当に必要なツールなのか再検討してください.

インストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう. 以下では USB メモリを PC に挿入したときに,認識されるドライブレターが (U:) であるものとし,このドライブのことを USB ドライブと呼びます.

  1. ImageMagick のオフィシャル Web サイト (英文です) を開き,Binary Releases の Windows のリンクを開きます.
  2. Description の欄に Portable Win32 といった記述のある配布ファイル (ZIP ファイル) を見つけ,ローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードします.
  3. ダウンロードした ZIP ファイルを,USB ドライブの適当なフォルダ以下 (U:\usr など) に解凍 (展開) します.
  4. 環境変数 PATH に展開先のフォルダ (U:\usr\ImageMagick-X.X.X-XX はバージョン番号) を加えるような設定を行います.

ImageMagick の基本的な使用方法は,展開先のフォルダのサブフォルダ www にある index.html を開くと調べることができます (英文のオフィシャルサイトの内容をローカルにコピーしたものです).