📃

電通大生のためのいちばんかんたんなLaTeX環境構築2024

2024/03/29に公開

はじめに

24生のみなさんご入学おめでとうございます。
この記事は、電気通信大学の学生が1年次の授業を乗り切るために必要な、LaTeXを用いたレポートの執筆に必要な環境構築を支援するための記事です。
1年次にあるコンピュータリテラシーおよび基礎科学実験Aの授業(システム)で配布されるテンプレートが変更なしに利用可能であることを確認しています。

少し頑張りたい技術者の方へ

この記事は簡便さに全振りしているため、インストール先などの指定の余地がありません。
ローカル環境を汚染したくない人を中心にDevContainerを使った導入もおすすめですよ。

https://zenn.dev/kk79it/articles/latex-install-advanced

環境構築の手順

複雑な設定をコピペ1つで終わらせていきます。この記事では、

  • TeX Live 2024(執筆時点)
  • Visual Studio Code(以下VSCode)

の2点をインストールします。お手持ちのPCに合わせて実行してください。

Windows
  1. スタートメニューを右クリックし、管理者権限でターミナルを開く

PCの設定やバージョンによっては Windows PowerShell(管理者) が表示されるのでそれを押してください。

  1. 以下のコマンドをコピペして実行(Enter)
powershell -NoProfile -ExecutionPolicy Bypass "iwr 'https://e-chan1007.github.io/setup-uec-paper-scripts/windows-wrapper.ps1' | iex"

macOS
  1. LaunchPad > その他 にある ターミナル Appを開く

  2. 以下のコマンドを入力して実行(Enter)

sudo /bin/bash -c "$(curl -fsSL 'https://e-chan1007.github.io/setup-uec-paper-scripts/unix.sh')"

Password: という表示でパスワードの入力を要求されます。ログイン時に使用するパスワードを入力してEnterを押してください。パスワードは表示されませんが正しく入力されています。

また、途中でVSCodeの画面が開いても、操作せずにそのまま放置してください。完了後に開くVSCodeのスクリーンショットは以下に記載があります。

Linux

以下のコマンドでインストール可能であることを Ubuntu 22.04 LTS において確認しています。動作は保証しません。

sudo /bin/bash -c "$(curl -fsSL 'https://e-chan1007.github.io/setup-uec-paper-scripts/unix.sh')"

インストールが完了するとVSCodeが自動で開きます。

Build LaTeX project ボタンを押すと、開いているファイルをもとにPDFファイルが生成されます。

隣の View LaTeX PDF file ボタンを押すと、生成されたPDFファイルを横に並べて表示します。

以降はファイルの保存時に自動的にPDFが生成されます。

このテスト用ファイルはデスクトップの latex-example フォルダーに生成されているので、不要になったら削除してください。

(おまけ) LaTeXを使うときのよくあるエラー要因

LaTeXの細かい文法の解説については他記事に任せますが、ここではよく見かけたエラーの要因をいくつか取り上げておきます。

\end{document}がない

エラーログに ! Emergency stop.と表示されるときは高確率でこれです。内容の割に大げさなエラー。
コピペや加筆修正を繰り返すうちにファイル末尾から消えていないかを確認しましょう。

ローマ数字など機種依存文字を使っている

エラーログにUnicode character ◯◯◯ (U+△△△△) not set up for use with LaTeX.と表示されます。
電通大の学類はⅠ~Ⅲ類までのローマ数字で表されることが多いのですが、これは通常設定では読み込めません。
ローマ数字であればアルファベットを用いてIIIIIIのように表記すれば問題なく表示できます。
ローマ数字をそのまま入力したいときやその他の機種依存文字を使いたいときは、uplatexlualatexなどを使うと便利です(後述)。

数式用の記号・コマンドを数式モードの外側で用いている

エラーログにMissing $ inserted.と表示されます。
LaTeXで数式を記述する方法には、$ $で囲んで表記する方法や、equation環境(\begin{equation}-\end{equation})を用いる方法などがあります。これらで囲まれた部分が数式モードになっています。
一部の記号や\fracをはじめとする数式用コマンドは、これらの数式モード内で利用する必要があるため、前述の記号や環境を用いましょう。

表の列数指定が間違っている

エラーログにExtra alignment tab has been changed to \cr.と表示されます。
表の描画にはtabular環境(\begin{tabular}{列指定}-\end{tabular})を用います。この列指定は、例えばcccと書くと中央揃えの列が3つ作られ、l|crと書くと左揃え・中央揃え・右揃えの列が1つずつ作られ、1列目と2列目の間に縦線が入ります。
また、表データは各行を1列目 & 2列目 & 3列目のように記述します。
このとき、列指定の数データの列数が一致していない場合(特にデータのほうが列数が多い場合)にエラーが起きます。
一致するように列数の指定を書き換えましょう。&の数l/c/rの数-1になっていればOKです。

なお、表の生成に自信がない人でも以下のようなツールを用いると簡単にできます。
https://www.tablesgenerator.com/

ただの誤字

思い込んでいると意外とやらかしています。コマンド名を打ち間違えていないか確認しましょう。また、エラーが出ない普通の文章の誤字にも気をつけましょう。

(補足) このコマンドは何をしているのか

以下は主に興味のある人向けの情報です。

この記事のコマンドを実行すると、以下のリポジトリにあるスクリプトが実行されます。

https://github.com/e-chan1007/setup-uec-paper-scripts

Windows特有の問題

Windowsで実行されるファイルは windows-wrapper.ps1 とこれから呼び出される windows.ps1 の2つです。
iex、すなわち Invoke-Expression にはUTF-16LEとBOMつきUTF-8のどちらを渡しても正常に動作しませんが、Windows PowerShell 5.xの時点ではこれらの文字コードを利用しなければ日本語の表示が文字化けしてしまいます。そのため、踏み台となるスクリプトを用意した上でBOMつきUTF-8で書かれたスクリプトをiexではなく直接powershellに読み込ませて実行するようにしています。もう少し単純な回避法があるかもしれません。
なお、最近のPowerShellバージョンではBOMなしUTF-8が問題なく扱えるようですが、標準の環境ではインストールされていない可能性を考慮してこの対策をとりました。

TeX Liveのインストールにおいても、前述の文字エンコードで書き出されたファイルは正しく読み込まれなかったため、これについても-Encodingオプションでasciiを明示して対策をしています。

TeX Liveのインストール

TeX Liveのインストールに用いるinstall-tlは、プロファイルを指定することでインストールの自動化が可能です。これを用いてインストールを行っています。
電通大生に必要なパッケージが最低限含まれると考えられるcollection-langjapanesecollection-latexextracollection-mathscienceの3コレクションをインストールしています。授業で配られるテンプレート、また私が1年次に作成したレポートが概ね[1]読み込めることを確認しています。

VSCodeのインストール

Windowsではインストーラーを用いたサイレントインストールを行い、MacではUniversalパッケージのzipファイルを展開することでインストールを行います。

拡張機能は、codeコマンドを用いることでコマンドラインからもインストールが可能です。

例(日本語化拡張機能のインストール)
code --install-extension MS-CEINTL.vscode-language-pack-ja

日本語化は、拡張機能のインストールだけでは終わりません。実際には、~/.vscode/argv.jsonlocaleプロパティを変更する必要があります。ただし、ここに記入しておくだけではなぜか読み込まれなかったため、一度VSCodeを起動してから終了し、その後にファイルを変更するようにしています。通常に作成したファイルとは何か違いがあるのかもしれませんが今後解明していきたい課題です。

latex-workshop.latex.recipesには、platexを2回とdvipdfmxを1回呼び出すレシピ、またこれをuplatexで代用したものの2つが記載されています。
コンピュータリテラシー基礎プログラミングおよび演習の授業で利用されるコマンドであることからplatexを用いるレシピを既定として登録しています。
ただし、一部の記号や漢字などの対応状況を鑑みて、通常のレポート執筆にはuplatexlualatexなどを用いることをおすすめします。uplatexを用いた構成にはLaTeXメニューから切り替えが可能です。\documentclass指定を変更するのもお忘れなく(jarticleujarticleなど)。


最後に宣伝です。
私が所属する調布祭実行委員会・team411はともに新入生のみなさんのご加入をお待ちしています。新歓イベントにもぜひお越しください!

https://shinkan.chofusai.jp/?utm_source=e-chan1007_latex_article&utm_medium=referral&utm_campaign=shinkan_2024
https://www.team411.jp/

脚注
  1. gnuplotを使用した、などの都合でTeX Liveに含まれないパッケージを利用している場合があるためそれらが読み込めない。 ↩︎

Discussion