USB メモリ活用講座
【実践編・WinShell ポータブル化】

< 最終更新日: 2019-09-30 >

はじめに

Windows 7/8.1/10 でインストール作業を行なうには,管理者 (Administrator) 権限を持つユーザで作業を行うとよいでしょう.

ここでは USB メモリを PC に挿入したときに,認識されるドライブレターが U: であるものとし,このドライブのことを USB ドライブと呼びます.

まだ W32TeXdviout for Windows をポータブル化していない方は,先にその作業を行なってください. また,WinShell については,TeXWiki の WinShell で詳しい説明がされていますので,そちらを先に一読することを推奨します.

WinShell は WinShell のサイトからダウンロードできます. Ring サーバの CTAN ミラー でも配布されていますが,2016 年 8 月現在では最新バージョンは置かれていないようです.

WinShell のサイトから,拡張子が zip の最新のファイル WinShell332Portable.zip を,ローカルハードディスクの適切なフォルダ (C:\temp など) にダウンロードしましょう.

WinShell の展開 (解凍) と設定

WinShell を USB ドライブの usr\WinShellPortable フォルダにインストールすることにします. 別のフォルダにインストールしたい人は,適宜読み替えながら作業を進めてください.

  1. WinShell332Portable.zip を USBドライブの usr フォルダに展開 (解凍) します (zip ファイルを展開すると WinShellPortable というサブフォルダが作成されます). Windows エクスプローラから展開を行うには,zip ファイルを右クリックして表示されるメニューから「すべて展開」を選び,「圧縮フォルダの展開」を利用すればよいでしょう. unzip.exe コマンドでも展開可能ですし,基礎編のファイル圧縮・展開 (解凍) ツールで紹介した 7-Zip Portable や PeaZip Portable でも展開可能です.
  2. USB ドライブの WinShellPortable フォルダの下に Settings というサブフォルダがあることを確認します (以前のバージョンでは自分で作成する必要がありました). この Settings サブフォルダが事前に存在すれば,WinShell の設定は全て Settings サブフォルダ以下に保存されます.
  3. 警告: この設定は,くれぐれも自己責任でお願いします. USB ドライブに少しでも多くのアキを作りたい方は,usr\WinShellPortable\Translations フォルダの translations.txt を参考にして,使用しないつもりの言語ファイルを削除します. en_US.txt (英語),ja_JP.txt (日本語),translations.txt だけを残すようにすると約 700KB アキが増えます.
  4. WinShellPortable フォルダの中の WinShell.exe を起動します. 初めて起動するときは,図1 のような言語選択のダイアログボックスが表示されますので,Japanese を選んで OK をクリックします.
    図1・WinShellの言語選択
    図1・WinShell の言語選択
  5. WinShell が起動されたら,バージョン情報のダイアログボックスが表示されますので,OK をクリックします (このダイアログボックスは ヘルプ-WinShellについて から開かれるものと同じです).
  6. 続いて図2 のようなアップデートの確認のダイアログボックスが表示されるかもしれません. Local version が現在のバージョン,Release version が最新バージョンを表していますので,確認したら Update をクリックすると自動アップデートが行われます. アップデートが完了したら再起動を促すダイアログボックスが表示されますので OK をクリックし,WinShell をいったん終了させて,起動しなおします.
    図2・WinShellのアップデート
    図2・WinShellのアップデート
  7. Windows 8 以降の OS では図3 のような Windows SmartScreen による警告が表示されるかもしれません. これは WinShell の実行ファイルに発行元のデジタル署名が付いていないためです. 「PC に問題が起こる可能性」がとにかく心配であれば 実行しない をクリックして,WinShell を使うことをあきらめましょう (WinShellPortable フォルダを削除すればアンインストール完了です). このまま WinShell を使ってみようという場合は,「詳細情報」をクリックして表示される 実行 ボタンをクリックします. さらに「不明な発行元からのアプリが PC に変更を加えることを許可しますか」といった警告のダイアログボックスが表示されたら,はい をクリックします.
    図3・Windows SmartScreen による警告
    図3・Windows SmartScreen による警告
  8. WinShell が起動されたら,オプション-フォント を選択します. 図4のようなダイアログボックスが表示されますので,「文書」のフォントを確認します. 「フォント」が「MS ゴシック」などの和文フォントで,「スクリプト」が「日本語」,「エンコーディング」が「ShiftJIS」になっているか確認し,違っていたら適宜変更します. 終わったら OK をクリックします.

    注意: WinShell ではエンコーディングとして「UTF-8」も選択できるのですが,現在の Ver.3.3 系では問題があるようです. さらに詳しい情報はTeXWiki の WinShell から「不具合」の項を確認してください.

    図4・WinShellのフォント選択
    図4・WinShell のフォント選択
  9. 次に,オプション-主な TeX プログラムの設定 を選択します. 図5のようなダイアログボックスが表示されますので,次のように変更 (確認) して OK をクリックします (自分が利用する予定のない機能の設定は省いても大丈夫です).
    • プログラム「LaTeX」:exe ファイル名を「platex.exe」に変更します.
    • プログラム「BibTeX」:exe ファイル名を「pbibtex.exe」に変更します.
    • プログラム「DVIView」:exe ファイル名を「dviout.exe」に変更します (dviout.exe の前にパス名が付いていたら削除してください). dviout を多重 TEXMF ツリーに対応させて利用する場合は,dviout の呼び出し (多重 TEXMF ツリー対応) に従ってください.
    • プログラム「DVI → PS」:exe ファイル名を「dvips.exe」に変更します
    • プログラム「GSView」:GSview の呼び出し に従ってください.
    • プログラム「PDFLaTeX」および「PDFView」:SumatraPDF との連携 (SyncTeX 機能を使う) に従ってください.
    図5・WinShellのTeXプログラム設定
    図5・WinShellのTeXプログラム設定
  10. ここでいったん WinShell を終了します. USB ドライブの WinShell\Settings フォルダに WinShell.iniWinShell.macrosWinShellMacros.bmpWinShellTools.bmp などのファイルができていれば,ポータブル化は成功しています.
  11. dviout for Windows のポータブル化のための設定で編集した texenv.vbs を編集して PATH の設定に usr\WinShellPortable を加えます (該当部分だけを示します):
' 環境変数PATHの設定(17~23行目を以下のように修正)
Set objEnv = objWshShell.Environment("Process")
objEnv.Item("PATH") = strTeXPath & "\bin;" _
  & strDrv & "\usr\dviout;" _
  & strDrv & "\usr\WinShellPortable;" _
  & strGSPath & ";" _
  & strGSPath & "\gs9.19\bin;" _
  & strGSPath & "\gs9.19\lib;" _
  & objEnv.Item("PATH")

WinShell の使い方

USB メモリの bin フォルダに保存した texenv.vbs を起動して開かれるコマンドプロンプトから WinShell とタイプして Enter キーを入力すれば WinShell が開かれます※1. WinShell フォルダの WinShell.exe を直接起動してしまうと,コンパイルやプレビューが期待通りに動作しません.

WinShell が起動されたら,ファイル-新規-TeX 文書 を選ぶと「TeX 文書 1」というペインが表示されますので,そこに TeX ソースを入力します. 入力し終えたら ファイル-保存 を選んで,適切なフォルダに適切な名前を付けて保存します (1 バイト文字の空白が入らないフォルダ名・ファイル名にしましょう). コンパイルやプレビューは,ツールバー (図6) の TeX (LaTeX) ボタンを利用すれば呼び出せます.

図6・WinShellのツールバー
図6・WinShell のツールバー

WinShell には,矢印,二項演算子,アクセント,関係子,ギリシア文字などの TeX キーワード入力を支援する機能があります. ツールバー (図6) で該当するボタンをクリックしていくと,入力支援ツールバーが表示されます. 全ての入力支援を ON にすると 図7のような画面になります. TeX ソースに入力したい記号や文字に該当するボタンを押せば,それに対応する TeX キーワードがソース入力ペインに入力されます. ただし,数式モードの ON/OFF などは自分でしっかり管理しましょう.

図7・WinShellの画面
図7・WinShell の画面

WinShell には LaTeX2e に関するドキュメントも付属しています. 英文ですが読めるようになると,とても便利だと思います. その他,WinShell の機能や,より進んだ使い方については,WinShell の英文ヘルプファイル (ヘルプ-ヘルプトピック) や,TeXWiki の WinShell で詳しく解説されていますので,参考にして自分で調べていってください.

WinShell のアップデート

インターネット接続された PC からであれば,WinShell は簡単に最新版にアップデートできます. WinShell の起動画面 (図7) から ヘルプ-Check for Updates とたどると,図2のようなダイアログボックスが表示されます. 最新版が存在するときには,Release version にその番号が表示され,Update ボタンが有効になります. Update ボタンをクリックすると,自動的にアップデートが実行されます.

注意: アップデートを行うには WinShell を「管理者として実行」する必要があるかもしれません.

ダウンロードされたファイルは,WinShellPortable\Download に保存されています. アップデートが完了したら,ここに保存されているファイルは削除しても問題ないようです.

dviout の呼び出し (多重 TEXMF ツリー対応)

dviout を多重 TEXMF ツリーに対応させて利用したい場合は,コマンドラインで TEXROOT を指定する必要があります. しかし,図5 で「DVIView」の exe ファイル名に wakedvi.vbs を指定しても,うまく dviout を起動することができません. そこで,次のような設定を行いましょう.

  1. 次のようなバッチファイル wakedviout.bat を作成し,パスの通った (U:\bin など) フォルダに保存します.
    @echo off
    setlocal
    set PATH=%~d0\usr\dviout;%PATH%
    start dviout.exe -TEXROOT=%~d0\usr\w32tex\share\texmf-dist\fonts;%~d0\usr\w32tex\share\texmf-local\fonts %*
    endlocal
    
  2. 図5 で「DVIView」の exe ファイル名に wakedviout.bat を指定します.

この設定を行うと,WinShell で DVI 閲覧 ボタンをクリックするたびに新たに別の dviout が多重起動されてしまいます. dviout の多重起動を避けるには,次のどちらかの手段があります:

文章で書くと後者の方が面倒な印象になりますが,キーボード操作では F5Alt+Tab だけで簡単です.

GSview の呼び出し

図5 で「GSView」の exe ファイル名に wakegsv.vbs を指定しても,うまく GSview を起動することはできません. そこで,次のような設定を行いましょう.

  1. 次のようなバッチファイル wakegsview.bat を作成し,パスの通った (U:\bin など) フォルダに保存します.
    @echo off
    setlocal
    set PATH=%~d0\usr\gsview\gs9.19\bin;%~d0\usr\gsview\gs9.19\lib;%PATH%
    set GS_LIB=%~d0\usr\gsview\gs9.19\Resource\Init;%~d0\usr\gsview\gs9.19\Resource;%~d0\usr\gsview\gs9.19\lib;%~d0\usr\gsview\gs9.19\kanji
    set GS_FONTPATH=~d0\Resource\fonts
    start %~d0\usr\gsview\gsview\gsview32.exe -a %*
    endlocal
    
  2. 図5 で「GSView」の exe ファイル名に wakegsview.bat を指定します.

この設定を行うと,WinShell で GSView ボタンをクリックするたびに新たに別の GSview が多重起動されてしまいます. GSview の多重起動を避けるには,WinShell の操作で,GSview が起動されていないとき (だけ),GSView ボタンから GSview を起動します. GSview が起動済みの場合は DVIPS ボタンをクリックし,GSview をアクティブにすればよいでしょう. 文章で書くと面倒な印象になりますが,キーボード操作では F8Alt+Tab だけで簡単です.

SumatraPDF との連携 (SyncTeX 機能を使う)

基礎編・PDF ビューアのポータブル化で紹介した SumatraPDF を TeX のプレビューアとして使用するための設定法を紹介します. WinShell の ヘルプ-ヘルプトピック から Menus→Execute→PDFView→Sumatra PDF とたどると,参考になる説明が書いてあります (英文ですが).

以下では,TeX ソースのエンコードを Shift_JIS にしていて,pLaTeX で組版を行いたい場合の設定法を説明します.

  1. W32TeX をインストールしたフォルダ (U:\usr\w32tex) の下にある,bin にある pdfplatex.batpdfplatexsj.bat という名前でコピーします. コマンドプロンプトから作業するのであれば U:\usr\w32tex\bin をカレントディレクトリにしてから,次のようにタイプします.
    copy pdfplatex.bat pdfplatexsj.bat Enter
  2. テキストエディタで pdfplatexsj.bat を開き,次のような内容に書き換えて上書き保存します (SumatraPDF では和文フォントを埋め込む必要はないため,マップファイルとして noembed.map を指定しています).
    @echo off
    platex -synctex=1 -jobname="%~n1" -kanji=sjis -guess-input-enc "%1" && dvipdfmx -f noembed.map "%~n1"
    
  3. WinShell を起動し,オプション-主な TeX プログラムの設定 を選択します. 図5のダイアログボックスが表示されるので,表1のように変更して OK をクリックします.
    表1・TeX プログラムの設定
    プログラム exe ファイル名 コマンドライン 備考
    PDFLaTeX pdfplatexsj.bat "%s.tex" 「DOS」にチェック
    PDFView SumatraPDF.exe -reuse-instance -inverse-search "\"WinShell.exe\" -c %f -l %l" "%s.pdf" 「PDFLaTeX を先に実行」にチェック

以上で設定は終了です. 図6のツールバーの PDFLaTeX ボタンを押せば pdfplatexsj.bat が呼び出され,編集中の TeX ソースファイルが platex によってコンパイルされます. そして,エラーがなく無事に dvi ファイルが生成されれば,dvipdfm によって PDF ファイルへの変換が行われます. また,図6のツールバーの PDFView ボタンを押せば,必要に応じて PDF ファイルへの変換が行われた後,SumatraPDF が起動されて PDF ファイルが表示されます.

SyncTeX 機能により,ソースファイルを編集する WinShell と,PDF ファイルを出力する SumatraPDF の間で同期処理が行われますので,次のようなことが可能になっているはずです: