ナルミヤの備忘録(仮)

ナルミヤが学んだことなどを書き記していくブログ(方向性模索中。)

【ptex2pdf】VSCodeでLaTeXをコンパイルしても目次が表示されない...

はじめに

ハマったのでメモ.

VSCodeでptex2pdfを用いたら, 目次がうまく表示されなくて色々調べました.
はじめは, AtomからVSCodeに乗り移ったばっかりだったから, VSCode側に問題があるのかと思い, その文脈で調べました.

結論からいうと, 目次を出力するには LaTeX を最低2回コンパイルする必要があるという事実を忘れていて, 1回しかコンパイルしていなかったことが原因でした.
1回しかコンパイルしないようなVSCodeの設定にしていたのがミスでした.
VSCodeに問題があるのではなく, 自分に問題があっただけでした.

いやまあ, LaTeXの設定とか久しぶりにやったからさ, 多少はね?(言い訳)

とりあえず, 記していきます.

構成は以下のよう

それではいきましょう

環境

OS: macOS High Sierra Ver10.13.6 エディタ(IDE): VSCode, バージョン: 1.40.0

問題

以下のコードをptex2pdfコンパイルしても図1のようになる.

\documentclass[11pt,dvipdfmx]{jarticle}

(細かい設定略)

\begin{document}

\begin{center}
\vspace*{6mm}
{\Large タイトル}\\
\vspace*{4mm}
学籍番号 **-*******\\
氏名 **** ****
\end{center}

\tableofcontents
% \newpage

\section{hoge}
  \subsection{hogehoge}
    hogehogehoge

\section{fuga}

\end{document}

f:id:buddasls54:20191113034016p:plain
図1. 目次掲載失敗

コンパイルの方法

なお, コンパイルの方法は,

  1. Command+Shift+P
  2. LaTeX Workshop: Build with recipeを選択
  3. ptex2pdfを選択

という順で行う.
この時点で, LaTeXに関わるVSCodeの設定(setting.json)は以下のよう.

    "latex-workshop.latex.tools": [
     {
        "name": "ptex2pdf (platex)",
         "command": "ptex2pdf",
         "args": [
             "-l",
             "-ot",
             "-kanji=utf8 -synctex=1",
             "%DOCFILE%.tex"
         ]
     }, 
     {
        "name": "latexmk",
        "command": "latexmk",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "%DOC%"
        ]
    },
 ],
     {
         "name": "ptex2pdf",
         "tools": [
            "ptex2pdf (platex)"
         ]
     }
 ],

 "latex-workshop.synctex.afterBuild.enabled": true, //コンパイル時に PDF をカーソル位置で表示
"latex-workshop.view.pdf.viewer": "tab", //pdfの表示。"tab"でタブ表示
"latex-workshop.chktex.enabled": true, // 構文チェック
"latex-workshop.latex.autoClean.run": "onBuilt", //補助ファイルの自動削除
 "latex-workshop.latex.autoBuild.run": "never", //"onFileChange",

原因

1回しかLaTeXコードをコンパイルしていなかったこと.

対処法

2回コンパイルすればいい. つまり,

{
        "name": "ptex2pdf * 2",
        "tools": [
           "ptex2pdf (platex)",
           "ptex2pdf (platex)"
        ]
    }

というようなコンパイル設定をVSCodesetting.jsonに, 以下のように変更する.

    "latex-workshop.latex.tools": [
     {
        "name": "ptex2pdf (platex)",
         "command": "ptex2pdf",
         "args": [
             "-l",
             "-ot",
             "-kanji=utf8 -synctex=1",
             "%DOCFILE%.tex"
         ]
     }, 
     {
        "name": "latexmk",
        "command": "latexmk",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "%DOC%"
        ]
    },
 ],
     {
         "name": "ptex2pdf",
         "tools": [
            "ptex2pdf (platex)"
         ]
     }, 
// ここを付け足した
     {
        "name": "ptex2pdf * 2",
        "tools": [
           "ptex2pdf (platex)",
           "ptex2pdf (platex)"
        ]
    }
 ],

 "latex-workshop.synctex.afterBuild.enabled": true, //コンパイル時に PDF をカーソル位置で表示
"latex-workshop.view.pdf.viewer": "tab", //pdfの表示。"tab"でタブ表示
"latex-workshop.chktex.enabled": true, // 構文チェック
"latex-workshop.latex.autoClean.run": "onBuilt", //補助ファイルの自動削除
 "latex-workshop.latex.autoBuild.run": "never", //"onFileChange",

そうして, 以下のようにコンパイルの手順を変更する.

  1. Command+Shift+P
  2. LaTeX Workshop: Build with recipeを選択
  3. ptex2pdf * 2を選択

以上で解決して, 晴れて, 図2のように目次が正常に出るようになった.
やったねたえちゃん!!

f:id:buddasls54:20191113034512p:plain
図2. 目次掲載成功

最後に

これを解決するまで, 2-3時間かかりました...
俺の睡眠時間を返せ....

久しぶりに備忘録っぽい使い方ができて満足.

というわけで, 夜も更けまくっているので, もう寝ます.
さいなら.

追記

bibtexも含めてコンパイルするならさらに回数が必要らしいということを知りました.
というわけで, bibtexを含むLaTeXコードのコンパイルは以下のようにします.

VSCodeの設定(setting.json)の変更

    "latex-workshop.latex.tools": [
     {
        "name": "ptex2pdf (platex)",
         "command": "ptex2pdf",
         "args": [
             "-l",
             "-ot",
             "-kanji=utf8 -synctex=1",
             "%DOCFILE%.tex"
         ]
     }, 
     {
        "name": "latexmk",
        "command": "latexmk",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-pdf",
            "%DOC%"
        ]
    },
// ここを追加
    {
        "command": "pbibtex",
        "args": [
            "%DOCFILE%",
            "-kanji=utf8"
        ],
        "name": "pbibtex"
    },
 ],
 "latex-workshop.latex.recipes": [
    {
        "name": "latexmk",
        "tools": [
            "latexmk"
        ]
    },
     {
         "name": "ptex2pdf",
         "tools": [
            "ptex2pdf (platex)"
         ]
     }, 
     {
        "name": "ptex2pdf * 2",
        "tools": [
           "ptex2pdf (platex)",
           "ptex2pdf (platex)"
        ]
    },
// ここも追加
    {
        "name": "toolchain",
        "tools": [
            "ptex2pdf (platex)",
            "pbibtex",
            "ptex2pdf (platex)",
            "ptex2pdf (platex)"
        ]
    }

コンパイル実行手順

  1. Command+Shift+P
  2. LaTeX Workshop: Build with recipeを選択
  3. toolchainを選択

以上!これで本当に終わり!バイバイ!!

参考