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

< 最終更新日: 2022-04-09 >

TeX Live Menu のカンタン起動

TeX Live 専用ランチャである TeX Live Menu を常駐させるには,USB ドライブの texlive\2021\tl-tray-menu.exe を起動しなければなりません. そのための操作を毎回行うのは少し煩雑ですので,WSH (Windows Scripting Host) を利用して,簡単にしてみましょう.

また,USB メモリに割り当てられるドライブレターが変わってしまうと,TeXworks の起動や PDF ファイルのプレビューが極端に遅くなってしまうことがあるようです※1. TeX Live Menu を起動させるついでに,その予防措置も取るようにしてみましょう.

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

' TeX Live Menu 起動用
Option Explicit
Dim objWshShell,objFS,objEnv,objIn,objOut
Dim strDrv,strTLPath,strTmp
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
' カレントドライブを取得
strDrv = objFS.GetDriveName(WScript.ScriptFullName)
' texlive\2022 フォルダが存在するかをチェック
strTLPath = strDrv & "\texlive\2022"
If objFS.FolderExists(strTLPath)=0 Then
    WScript.Echo strTLPath & "が見つかりませんので終了します"
    WScript.Quit 0
End If
' 起動が遅くなる問題の回避(予防策)
If objWshShell.Popup("USBメモリのドライブレター(" & strDrv & ")が変わりましたか?", 0, "TeXworksポータブル設定", vbYesNo) = vbYes Then
    strTmp = strTLPath & "\texmf-config\texworks\TUG"
    objFS.CopyFile strTmp & "\TeXworks.ini", strTmp & "\TeXworks.bak", True
    Set objIn = objFS.OpenTextFile(strTmp & "\TeXworks.bak", 1)
    Set objOut = objFS.OpenTextFile(strTmp & "\TexWorks.ini", 2, True)
    Do Until objIn.AtEndOfStream
        strTmp = objIn.ReadLine
        If InStr(strTmp, "recentFiles=") = 0 Then
            objOut.WriteLine strTmp
        End If
    Loop
    objIn.Close
    objOut.Close
End If
' 環境変数の設定
Set objEnv = objWshShell.Environment("Process")
objEnv.Item("PATH") = strDrv & "\usr\bin;" & objEnv.Item("PATH")
objEnv.Item("PAGER_texdoc") = "wakeTXT.bat -ro"
objEnv.Item("MDVIEWER_texdoc") = "wakeTXT.bat -ro"
objEnv.Item("BROWSER_texdoc") = "wakeHTML.bat"
objEnv.Item("PDFVIEWER_texdoc") = "wakePDF.bat"
' TeX Live Menu を起動
objWshShell.Run strTLPath & "\tl-tray-menu.exe"

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

図1・TeX Liveポータブル設定
図1・TeX Liveポータブル設定

では動作確認をしてみましょう. エクスプローラなどで USB ドライブを開き,ルートフォルダにある wakeTLM.vbs を起動します. そのとき図1が開かれたら,第1段階は成功です. はい をクリックすると TeXworks が素早く起動できるように,設定ファイル TeXworks.ini から過去のファイル履歴に関する項目を削除します. はじめて起動した場合や,いつもと同じドライブレターが割り当てられている環境では いいえ をクリックすればよいでしょう.

すると TeX Live 専用のランチャが起動され,タスクトレイに TeX Live Menu のアイコンが表示されます. Editor を選べば,TeXworks が起動できるはずです. TeX Live Menu については TeX Live ポータブルの動作確認を参照してください.

自分のお気に入りのランチャから TeXworks を起動することも可能です (他のランチャからの利用 参照).

upLaTeX 組版エンジンの選択

TeXworks を使い始める際には,組版 (コンパイル) を行う TeX エンジンを確認し,必要に応じて変更するとよいでしょう.

起動画面 (図2) で,ツールバーの左端にある緑色のタイプセットボタンの隣に,TeX エンジンが表示されています. ここまでの説明通りに TeX Live のインストールを進めてきたのであれば,デフォルトの TeX エンジンは pLaTeX (ptex2pdf) となっているはずです. ドキュメントクラスとして jarticlejsarticle を指定する,標準的な pLaTeX で文書作成を行うのであれば,そのままでよいでしょう.

図2・TeXworksの組版エンジン指定
図2・TeXworks の組版エンジン指定

ところで,従来からパーソナルコンピュータで標準的に利用されてきた シフト JIS コードでは○で囲んだ数字や,いわゆる全角文字のローマ数字などが機種依存文字(環境依存文字) と呼ばれていることはご存じのことと思います. これは,Windows でこれらの文字に割り当てられている文字コード領域に,他の OS では別の文字が格納されるなど,統一がとれていないためにインターネットの情報交換で利用すると文字が抜け落ちたり,文字化けが発生する可能性があるためです.

一方,全世界共通の文字セットを目指して策定された Unicode (UTF-8) に含まれる○囲みの数字などには,もはや機種依存性はないはずです. TeXworks は,デフォルトでは UTF-8 で文字コードを扱うので,直接○囲みの数字を入力できそうに思うユーザもいるかもしれません. しかし,残念ながら TeXworks がデフォルトで利用する pLaTeX (ptex2pdf) による組版では,内部処理を UTF-8 で行っているわけではないために,期待通りの出力が得られません. このため,pLaTeX で○囲みの数字を扱うには,マクロや OTF パッケージを利用しなければならないというわずらわしさが解消できません.

Unicode の恩恵をフルに活用したいのであれば,組版エンジンを upLaTeX (ptex2pdf) に変えるとよいでしょう※2. 組版エンジンは,図2 のように,エンジン表示領域をクリックして表示されるプルダウンメニューから簡単に変更することができます. ただし,この変更は一時的なもので,次に TeXworks を起動すると元に戻ってしまいます. 設定を覚えさせておきたい場合は,メニューバーから 編集-設定 をクリックして,TeXworks の設定ダイアログボックスを表示します. 「タイプセット」タブをクリックすると,図3 が表示されるので「タイプセットの方法」の下にある「デフォルト」の設定項目を変更し,OK をクリックすればよいでしょう※3

図3・TeXworksの設定ダイアログボックス(タイプセット)
図3・TeXworks の設定ダイアログボックス (タイプセット)

upLaTeX では,ドキュメントクラスの宣言を次のどちらかにしなければなりません.

そのほかは,従来の pLaTeX と同じように入力すればよいでしょう. 入力可能な文字 (記号類) が増えることによって利便性は向上すると思いますが,ぜひ TeX 本来の美しい出力が損なわれないように注意してください. たとえばローマ数字は,いわゆる全角文字 1 文字で入力するよりは,直接入力可能なアルファベット (I,V,X など) を組み合わせた方がよいでしょう. 長さや面積の単位も同様です (平方センチメートルを cm$^2$ とタイプするのは面倒に感じるかもしれませんが).

upLaTeX について,より詳しくは texdoc uplatex で表示されるオンラインドキュメントや,ZR (Takayuki YATO) 氏の「upLaTeX を使おう[電脳世界の奥底にて]」を参照することをお勧めします.

なお,これから TeX を学ぼうという人はあまり気にしなくてよいかもしれませんが,これまでに TeX を利用してきた人は TeXworks のエディタでは文字コードとして Unicode (UTF-8) がデフォルトとなっていることに注意しなければなりません. おそらく今まで Windows 環境で TeX を利用してきた方は,TeX のソースファイルをシフト JIS (Shift_JIS) で保存されていることと思いますが,それを TeXworks で開くと,和文の文字が化けてしまいます. TeXworks には文字コードの変換機能が実装されていないようですので,既存の TeX ソースファイルを編集したい場合には,事前に文字コード変換を行わなければなりません.

警告: この作業は,くれぐれも自己責任でお願いします. TeXworks のヘルプファイルには英語版の他にフランス語版が含まれています. フランス語版は不要という方は,U:\texlive\2022\tlpkg\texworks\texworks-help\TeXworks-manualfr フォルダ以下を削除することで約 1.4MB のアキ容量を増やすことができます.

TeXworks の補完機能の有効化

TeXworks には TeX/LaTeX のキーワード入力を補完する機能があるのですが,デフォルトの状態では有効になっていないようです※4

TAB キーによる補完機能を有効にするには,テキストエディタで次の内容を入力します.

actionNext_Completion=Tab

この内容を U:\texlive\2022\texmf-config\texworks\configuration フォルダに shortcuts.ini という名前を付けて保存します※5

TeXworks を起動して動作確認をしてみましょう.

例えば,番号付きリスト環境 (enumerate) を入力したいときには,\begin{en くらいまでタイプしたところで Tab キーをタイプすると,次のように補完してくれるはずです:

\begin{enumerate}
\item

\end{enumerate}

複数の候補がある場合には Tab キーを連続してタイプすると,順次候補が表示されていきます. コマンドや環境名の正しい綴りを覚えきれないという初心者の方や,キー入力を省力化したいというユーザにとっては便利な機能です.

補完機能の詳細については,TeXworks 付属のドキュメント (A short manual for TeXworks) の 4.6 節 Auto-completion (英文) を参照してください.

テンプレートファイルの活用

TeXworks に自前のテンプレートファイルを加えると,新しい TeX 文書を作成するときにドキュメントクラス指定や,定番のパッケージ読み込みの指定を入力する手間を省くことができます. TeX 文書のコメントとして,TeXworks 向けの命令文を書いておくことで,組版エンジンを自動的に選択させることも可能です.

テンプレートファイルの作成

ここでは,ドキュメントクラスとして jsarticle を利用する,upLaTeX 用のテンプレートファイルを加える手順を示します.

  1. エクスプローラなどで,USB メモリ (U:) の texlive\2022 \texmf-config\texworks\templates を開き,自分にとってわかりやすい名前のフォルダ (例えば Japanese TeX documents) を作っておきます.
  2. TeXworks またはテキストエディタを起動して,次の内容をタイプ入力します※6. 正確にタイプする自信がない方は,ブラウザからコピー&ペーストすればよいでしょう.
    % !TEX TS-program = upLaTeX (ptex2pdf)
    %
    \RequirePackage{plautopatch}
    \documentclass[uplatex,dvipdfmx]{jsarticle}
    %
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage{mathtools,amssymb}
    %
    \begin{document}
    %
    \end{document}
    
  3. ファイル-名前を付けて保存 を選び,1 で作成したフォルダに自分にとってわかりやすい名前 (例えば js_uplatex.tex) で保存します.

テンプレートから新規作成

ここでは,upLaTeX 用のテンプレートファイルから新規文書を作成する手順を示します. TeXworks 付属のドキュメント (A short manual for TeXworks) の 4.1 節 Creating a document from a template (英文) も参照してください.

  1. TeXworks を起動し,ファイル-テンプレートから新規作成 を選びます.
  2. 図4 のダイアログボックスが表示されるので,テンプレートファイルの作成 で作成したフォルダを開き,利用したいテンプレートファイルを選択します.
    図4・テンプレートを使って新規作成
    図4・テンプレートを使って新規作成
  3. 図4 のダイアログボックス下部に選択したテンプレートファイルの内容が表示されるので,確認してから 開く をクリックします.

他のランチャからの利用

TeX Live 専用のランチャである TeX Live Menu ではなく,自分のお気に入りのランチャから TeXworks を利用することも可能です. 基礎編・ランチャの利用で紹介しているランチャで,TeXworks を登録・利用する方法を簡単に紹介します. ただし,TeX Live Menu のカンタン起動で述べた,TeXworks の起動が遅くなる問題への対策は組み込んでいません. 必要な方は,wakeTLM.vbs を参考にしてください.

PStart
PStart の基本操作に従い,USB ドライブの U:\texlive\2021\bin\win32\texworks.exe を登録します.
Portable Start Menu (PSMenu)
PSMenu のアプリケーションの登録に従い,USB ドライブの U:\texlive\2021\bin\win32\texworks.exe を登録します.
PortableApps.com Platform (PA-Platform)
PA-Platform は PortableApps.com で配布されるアプリケーション専用ランチャであるため,TeXworks を登録することは簡単ではありません. TeXLive ポータブル化の PA-Platform で説明した Command Prompt Portable から起動すればよいでしょう.
texworks Enter