0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[研究室向け]texの導入と設定方法・Q&A

Last updated at Posted at 2023-10-27
更新履歴(2024/5/2)

【2023.9.12】
少なくともmidterm_preamble.texでは動作することを確認済.
時間があるときに追記していきます.

【2023.9.25】
preample.tex(卒業論文用2段組プリアンブル)を修正し,動作することを確認.
各ファイルをzipファイルにまとめてQ&Aに内容追加.

【2023.10.26】
WSLでのビルド方法を追記.

【2024.4.30】
2024年版のtexで動作することを確認したため,旧バージョンのインストール方法を格納しました.

【2024.5.2】
texやVSCodeのインストール方法を追記しました.

このページは?

このページは藤波研究室で各種ドキュメント(プロポーザル,月例報告,中間発表,卒論...)を記述するときにほぼ必須となるtexやVSCodeの導入方法と,プリアンブルの使い方をまとめたページです.
「そもそもtexを入れられない」や「プリアンブルを使ってビルドできない」などの際に解決の一助になれば幸いです.

インストール方法はステップごとに記載しています.texやVSCodeを全く触ったことが無くても導入できるよう写真を多めに添付していますが,バージョンなどによって違いがあるかもしれません.
また,既にインストールや設定している場合は,必要に応じて読み飛ばしてください.

★texもVSCodeも入ってないよ!->1. texの導入
★texやVSCodeだけは入ってるよ!->2.2 拡張機能のインストール
★VSCode上でtexのビルドができるよ!->3.2 setting.jsonを編集

プリアンブルを使う上でよくある質問やトラブルはQ&Aにまとめてあるので,困ったときは一読してみてください

1. texの導入

※本章は【大学生向け】LaTeX完全導入ガイド Windows編 (2022年)を参考にしています.

TeX Users Group1からtexのインストーラーをダウンロードし,実行します.

image.png

インストールを進めていくと,TeX Liveインストーラーというウィンドウが表示されます.しばらく待っているとTeX Live 20**インストーラーという画面に切り替わりますが,もし切り替わらない場合は右下の特定のミラーを選択>Asia>Japanと選択し,いずれかのURLをクリックしてみてください.

image.png

TeX Live 20**インストーラーという画面ではtexのインストールにあたって設定を変更することができますが,特に変える必要はありません.右下のインストールを押しましょう.

image.png

これでインストールは終わり...かと思いきやパッケージのインストールが始まります.回線速度によらず,パッケージのインストールは数十分~数時間以上掛かるので気長に待ちましょう.

image.png

※更新日時点では最新版で動作することを確認していますが,万が一不具合が発生した場合は旧バージョンをインストールしてみてください.

旧バージョンのインストール方法はこちら(クリックすると開きます)

1.1 既存のtexを消去(推奨)

2022年バージョン以外のtexが導入されている場合,並行して旧バージョンをインストールすることで不具合を起こす可能性が高いため,先行して削除することをおすすめします.

削除はスタートメニューから「Tex Live ****」->「Uninstall TeX Live」をクリックすることで行えます.くれぐれも保存されているフォルダーを直接削除しないでください

スクリーンショット 2023-09-28 141409.png

1.1 旧バージョンのtexを導入

現行バージョン(2023)のtexだとコンパイルが回らない可能性あるため,まずは旧バージョン
(動作が保証されているバージョン)のtexをインストールします.

  1. ここ2からインストーラーをダウンロード3.リンクから直接ダウンロード出来ない場合は日本語 TeX 開発コミュニティにアクセスし,2022/tlnet/install-tl.zipをダウンロード.
  2. ダウンロードしたファイルを展開し,PowerShellにて以下のコマンドを実行.
    .\install-tl-windows.bat -repository ftp://tug.org/texlive/historic/2022/tlnet-final/
    
  3. 設定は特に変更せずインストール.現行バージョンと違ってバックアップサーバーからデータをダウンロードするため,インストールに半日程度掛かります.余裕を持って作業しましょう.

2. VSCodeのインストール・拡張機能の設定

2.1 VSCodeのインストール

Download Visual Studio Codeを開き,Windowsをクリックしてインストーラーをダウンロードし,実行します.

image.png

インストールが完了したら,ソフトを起動してみましょう.恐らく言語が英語に設定されていると思うので,画面上部のView>Command Palletteをクリックします.

Windows 10 x64-2024-05-02-19-27-14.png

続いて,上部中央に表示されたダイアログにConfigure Display Languageと入力し,表示された設定項目をクリックします.クリック直後はEnglishしか表示されないと思いますが,少し待っていると日本語という項目が表示されるので,クリックし,VSCodeを再起動します.

Windows 10 x64-2024-05-02-19-27-28.png

2.2 拡張機能のインストール

画面左側の拡張機能ボタン(四角形が4つ表示されたボタン)をクリックし,拡張機能ウィンドウに切り替えます.

Windows 10 x64-2024-05-02-19-28-29.png

Marketplaceで拡張機能を検索すると表示されたボックスにtex workshopと入力し,一番上に表示されたLaTeX Workshopをインストールします.

Windows 10 x64-2024-05-02-19-28-41.png

3. VSCodeの設定

3.1 setting.jsonを開く

VSCodeを開き,画面左下の設定ボタン(歯車マーク)から設定をクリックします.

スクリーンショット (53).png

表示された設定画面の右上,設定(jsonを開く)ボタン(矢印のついたファイルマーク)をクリックし,setting.jsonファイルを開きます.

スクリーンショット (50).png

スクリーンショット (51).png

3.2 setting.jsonを編集

setting.jsonに以下の内容を追記します.
なお,既にtexの設定がされている場合は上書きすることをおすすめします.

setting.json(クリックすると開きます)
setting.json
    // Latexの設定ここから
    "latex-workshop.latex.recipes": [
        //bibtexを使用する場合
        {
            "name": "toolcain_bibtex",
            "tools": [
                "Step 1: ptex2pdf",
                "Step 2: pbibtex",
                "Step 3: ptex2pdf",
                "Step 4: ptex2pdf"
            ]
        },
        //==============================
        //==============================
        //bibtexを使用しない場合
        {
            "name": "toolchain_no_bibtex",
            "tools": [
                "Step 1: ptex2pdf",
                "Step 3: ptex2pdf",
            ]
        },
        {
            "name": "lualatex",
            "tools": [
                "lualatex",
            ],
        },
        {
            "name": "lualatex twice compile",
            "tools": [
                "lualatex",
                "lualatex",
            ]
        },
        {
            "name": "lualatex with reference",
            "tools": [
                "lualatex",
                "upbibtex",
                "lualatex",
                "lualatex",
                "lualatex",
            ]
        },
        {
            "name": "ptex2pdf",
            "tools": [
                "ptex2pdf"
            ]
        },
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "ptex2pdf",
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOC%"
            ]
        },
        {
            "name": "lualatex",
            "command": "lualatex",
            "args": [
                "--cmdx",
                "-file-line-error",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-halt-on-error",
                "%DOC%",
                "-shell-escape",
            ],
        },
        {
            "name": "upbibtex",
            "command": "upbibtex",
            "args": [
                "%DOCFILE%"
            ],
        },
        {
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                //下の文がないと構文を間違えた時に永遠に回り続ける
                "-interaction=nonstopmode",
                //構文を間違えている箇所に赤波線を引く
                "-file-line-error",
                "%DOCFILE%.tex"
                //===============================================================
                //%DOCFILE%.texではなく↓を使うと構文エラーがあるときに永遠に回り続ける
                //"%DOC%"
                //===============================================================
            ],
            "name": "Step 1: ptex2pdf"
        },
        {
            "command": "pbibtex",
            "args": [
                "%DOCFILE%",
                "-kanji=utf8"
            ],
            "name": "Step 2: pbibtex"
        },
        //======================================
        //ptex2pdfを2回やるのはbibtexを適用するため
        {
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%.tex"
            ],
            "name": "Step 3: ptex2pdf"
        },
        {
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%.tex"
            ],
            "name": "Step 4: ptex2pdf"
        }
        //======================================
    ],
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        "*.out",
        "*.toc",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.fls",
        "*.log",
        "*.fdb_latexmk",
        "*.snm",
        "*.synctex(busy)",
        "*.synctex.gz(busy)",
        "*.synctex.gz",
        "*.nav"
    ],
    "latex-workshop.latex.autoClean.run": "onBuilt",
    "latex-workshop.latex.autoBuild.run": "onSave",
    "latex-workshop.latex.autoBuild.interval": 0,
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.intellisense.package.enabled": true,
    // Latexの設定ここまで

4. プリアンブルを配置

下記リンクから各ファイルを作業フォルダにダウンロードします.

※各ファイルは研究室内でのみダウンロード可能です.
ファイル名を直接クリックすると上手くダウンロードできないことがあります.このときはファイル名を右クリック→「名前をつけてリンク先を保存」を選択してください.

基本的にプリアンブルは体裁を整えるためのstyファイルと必要なライブラリを読み込むためのtexファイルから構成されているので,他のプリアンブルを利用するときも最低限この2つがあればビルドできます(たぶん).

5. おわりに

ここまでの作業が終わったらVSCodeにて先ほど各ファイルをダウンロードした作業フォルダを開き,左側メニューにてmidterm_temp.texをクリックしてみましょう.

スクリーンショット 2023-09-12 162235.png

この状態でファイルの上書き保存を行うと,自動的にファイルのビルドが始まり,しばらく待つとmidterm_temp.pdfというファイルが生成されるはずです.
ここでもし画面右下に「Recipe terminated with error. Retry building the project.」や「Recipe terminated with error.」というメッセージが表示された場合は,何らかの設定が上手くできていません.

6.(発展編)WSLでビルドできるようにする

ここまではWindows上でビルドをするための環境構築手順を紹介してきましたが,実際に実行してみるとビルド開始~PDFのエクスポートまでおよそ数十秒程度かかるかと思います.
この章ではビルドを高速にするため,「Windows Subsystem for Linux(WSL)」という機能の設定をしていきます。

手順1: WSLのインストール

PCやWindowsのバージョンによって若干手順が変わってきます.ここで紹介した手順で上手く動かなければ「WSL 設定」などをキーワードに検索してみてください.

  1. Windowsの機能を有効化
    コントロールパネルを開き,プログラム>Windowsの機能の有効化または無効化の順にクリックし,「Windowsの機能」ウィンドウを表示します.
    表示されたウィンドウで「Hyper-V」「Linux用Windowsサブシステム」という項目にそれぞれチェックをつけ,「OK」をクリックします.
    スクリーンショット 2023-10-26 135801.png
    しばらくすると再起動を求められるので,指示通りにPCを再起動します.

  2. Linuxイメージの入手
    ここから「Ubuntu」アプリ(イメージ)をインストールします.

  3. Ubuntuの初期設定
    スタートメニューから「Ubuntu」アプリを起動するとユーザー名とパスワードの設定を求められるので,指示通りに設定します.このとき設定するパスワードは後ほど使用するので,忘れないものを設定するか,何かにメモするようにしてください.
    なお起動後,以下のように「Error: 0x800701bc WSL 2 ????...」というメッセージが表示される場合はここから更新パッケージをダウンロード,インストール後に再度アプリを起動するとエラーが解消されるはずです.4
    Desktop Screenshot 2023.10.25 - 22.23.42.50.png

  4. 確認
    ここまでの手順が正しく適用されていればアプリを立ち上げることで以下のように設定したユーザー名@PC名が表示されるはずです.
    スクリーンショット 2023-10-26 145756.png
    以上の画面が表示されない場合は何らかの手順を間違えているか,必要な設定がされていない可能性があるので,表示されたエラーメッセージなどをキーワードに検索してみてください.

  5. texのインストール5
    アプリ起動後,表示されたウィンドウに下記のコマンドを入力します.

sudo apt-get update
sudo apt install texlive-lang-japanese texlive-latex-extra 

途中でパスワードの入力が求められるので,先ほど設定したパスワードを入力します.

手順2: setting.jsonの更新

2章で設定したsetting.jsonを開き,以下のように内容を書き換えます.

setting.json(クリックすると開きます)
setting.json(WSL対応版)
    // Latexの設定ここから
    "latex-workshop.latex.recipes": [
        //bibtexを使用する場合
        {
            "name": "toolcain_bibtex",
            "tools": [
                "Step 1: ptex2pdf(WSL)",
                "Step 2: pbibtex(WSL)",
                "Step 3: ptex2pdf(WSL)",
                "Step 4: ptex2pdf(WSL)"
            ]
        },
        //==============================
        //==============================
        //bibtexを使用しない場合
        {
            "name": "toolchain_no_bibtex",
            "tools": [
                "Step 1: ptex2pdf(WSL)",
                "Step 3: ptex2pdf(WSL)",
            ]
        },
        {
            "name": "lualatex",
            "tools": [
                "lualatex",
            ],
        },
        {
            "name": "lualatex twice compile",
            "tools": [
                "lualatex",
                "lualatex",
            ]
        },
        {
            "name": "lualatex with reference",
            "tools": [
                "lualatex",
                "upbibtex",
                "lualatex",
                "lualatex",
                "lualatex",
            ]
        },
        {
            "name": "ptex2pdf",
            "tools": [
                "ptex2pdf"
            ]
        },
    ],
    "latex-workshop.latex.tools": [
        {
            "command": "wsl",
            "args": [
                "ptex2pdf",
                "-u",
                "-l",
                "-od",
                "-V7",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOCFILE%"
            ],
            "name": "ptex2pdf(WSL)"
        },
        {
            "command": "wsl",
            "args": [
                "pbibtex",
                "%DOCFILE%",
                "-kanji=utf8"
            ],
            "name": "pbibtex(WSL)"
        },
        {
            "name": "ptex2pdf",
            "command": "ptex2pdf",
            "args": [
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "%DOC%"
            ]
        },
        {
            "name": "lualatex",
            "command": "lualatex",
            "args": [
                "--cmdx",
                "-file-line-error",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-halt-on-error",
                "%DOC%",
                "-shell-escape",
            ],
        },
        {
            "name": "upbibtex",
            "command": "upbibtex",
            "args": [
                "%DOCFILE%"
            ],
        },
        {
            "command": "wsl",
            "args": [
                "ptex2pdf",
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                //下の文がないと構文を間違えた時に永遠に回り続ける
                "-interaction=nonstopmode",
                //構文を間違えている箇所に赤波線を引く
                "-file-line-error",
                "%DOCFILE%.tex"
                //===============================================================
                //%DOCFILE%.texではなく↓を使うと構文エラーがあるときに永遠に回り続ける
                //"%DOC%"
                //===============================================================
            ],
            "name": "Step 1: ptex2pdf(WSL)"
        },
        {
            "command": "wsl",
            "args": [
                "pbibtex",
                "%DOCFILE%",
                "-kanji=utf8"
            ],
            "name": "Step 2: pbibtex(WSL)"
        },
        //======================================
        //ptex2pdfを2回やるのはbibtexを適用するため
        {
            "command": "wsl",
            "args": [
                "ptex2pdf",
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%.tex"
            ],
            "name": "Step 3: ptex2pdf(WSL)"
        },
        {
            "command": "wsl",
            "args": [
                "ptex2pdf",
                "-l",
                "-ot",
                "-kanji=utf8 -synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%.tex"
            ],
            "name": "Step 4: ptex2pdf(WSL)"
        }
        //======================================
    ],
    "latex-workshop.latex.clean.fileTypes": [
        "*.aux",
        "*.bbl",
        "*.blg",
        "*.idx",
        "*.ind",
        "*.lof",
        "*.lot",
        "*.out",
        "*.toc",
        "*.acn",
        "*.acr",
        "*.alg",
        "*.glg",
        "*.glo",
        "*.gls",
        "*.fls",
        "*.log",
        "*.fdb_latexmk",
        "*.snm",
        "*.synctex(busy)",
        "*.synctex.gz(busy)",
        "*.synctex.gz",
        "*.nav"
    ],
    "latex-workshop.latex.autoClean.run": "onBuilt",
    "latex-workshop.latex.autoBuild.run": "never",
    "latex-workshop.latex.autoBuild.interval": 0,
    "latex-workshop.view.pdf.viewer": "tab",
    "latex-workshop.intellisense.package.enabled": true,
    // Latexの設定ここまで

書き換えたsetting.jsonを保存し,適当なtexファイルを上書き保存するとWSL経由でビルドされるようになるはずです(ビルド時に「Step 1: ... (WSL)」と表示されていれば正しくビルドできるようになっています.)
スクリーンショット 2023-10-26 151528.png

Q&A

参考文献などに下線が引かれてしまう

ulemパッケージによるものです.このパッケージは本来取り消し線などを引くためのパッケージですが,そのまま使用すると斜字(イタリック体)に下線を引いてしまう設定になっています.
これを解消するには,midterm_preample.pdfを次のように修正します.

- \usepackage{ulem}
+ \usepackage[normalem]{ulem}

これにより参考文献など,斜字(イタリック体)に下線が自動的に引かれなくなるはずです.

bibファイルを使わないでビルドしたいです(参考文献を挿入しない,あるいは本文中で記述したい)

ファイルの保存後自動的に行われるビルドでは,必ずbibファイルを読み込む必要があります(本文中にciteコマンドが無いとエラーになります).そこで参考文献を挿入しない,あるいはbibファイルを使わずに本文中で記述したい場合は,VSCodeの左側メニューにて「tex」→「Build LaTeX project」→「Recipe: toolcain_no_bibtex」の順にクリックすると正常にビルドできるはずです.

スクリーンショット 2023-09-12 162832.png

「Cannot find LaTeX root file」やプリアンブル自体がビルドされてしまうとき

VSCodeにおいてビルドするファイルを明示的に宣言することで解決します.
編集中のtexファイルの1行目に下記コードを書き加えてください.

% !TEX root = 編集中のファイル名.tex
  1. https://www.tug.org/texlive/acquire-netinstall.html

  2. https://texlive.texjp.org/

  3. https://acetaminophen.hatenablog.com/entry/2016/05/18/221948

  4. https://qiita.com/hali/items/bf04a1e4012025a38d6b

  5. https://qiita.com/kiy_at_dev/items/75aa8a13b97d2115f4de#%E8%A6%81%E7%B4%84

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?