粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

VisualStudio Codeでマークダウン & Texを書く

VScode結構軽快And綺麗ということで使いはじめているのでメモ。
Markdownはかなり書いていて気持ちが良いです。

VScodeについて

軽快かつ様々なExtensionを組み込める自由度の高いエディタ。
見た目も良い感じ。

Download Visual Studio Code - Mac, Linux, Windows

VScodeMarkdown

数式以外は軽快アンド快適なので,今後も使用する予定。

使用する拡張機能

拡張機能は左下のアイコンをクリックするか,Ctrl+Shift+Xで検索窓を出せます。

f:id:ossyaritoori:20171114212614p:plain

基本設定

画像を貼るPasteImageではCtrl+Alt+Vで画像を貼りますがこれには予め他のTex関係の他のコマンドが設定されているため,
そこでエラーが出てうまくいきません。基本設定のところから割当てを変更するかしましょう。

Markdown機能の改善・知りたいこと

数式マクロを組めない問題

数式でマクロを使いたいんですが以下のようなものを使えば出来るのはわかっているんですけど
macros - Visual Studio Marketplace
面倒。
こんな感じに書きたいのだけれど…
ossyaritoori.hatenablog.com

追記:KaTexにおけるマクロ定義について

Markdown+Math]のパッケージではKaTexを用いています。
これはStackEditやQiita等が用いるMathJaxとは異なり \newcommandなどのコードが使えないという仕様です。

従ってMacroを書く場合はPCの何処かにあるKatexの設定に以下のように書く必要があるそうな。めんど。
add support for macros via \def and \newcommand · Issue #250 · Khan/KaTeX · GitHub

追記2:MathJaxを使うには

以下のパッチを当てればMathjaxを使えるかと。その場合,恐らくプリアンブルは上手く書けると思います。
#vscode Visual Studio Codeのmarkdownでmathjaxを使えるようにするパッチ(仮) · GitHub

pandocを介したPDF化

PDF化するときの問題に,MarkdownPDFはプレビューではなく,そのまま印刷する傾向にあります。
つまり折角数式をきれいに書いてもうまいこと変換をしてくれたりはしないのです。

必要となるものは以下の2つです。

[Visual Studio Code][Windows] MarkdownでPDF/HTML/DOCXファイルへの変換方法とチートシート | Gabekore Garage


VScodeplatexコンパイル

基本的にはTexstudioで書くが,使ってみたかんじそんなに悪くないので乗り換えも検討中。
TexStudioとの違いはLatex Workshopの拡張機能を使うことにより文章の保存とコンパイル,表示を同時に行う点。

使用する拡張機能

  • Latex Language Support:言語サポート。これがないと日本語を満足に打てない。
  • Latex WorkShop:文法に関する知識を入れ込んでいる。ハイライトやエラー検出のお供に。

f:id:ossyaritoori:20171114211852p:plain

他にも便利なのがあったら追加予定。

最低限の基本設定

latexを書いて,コンパイルコマンドプロンプトに投げているのでTexStudioとやっていることは同じです。

流れは以下の通りなのでこれを自動化するようにすれば良いです。

「基本設定」→「設定」で次のように書いちゃいましょう。

{
  "latex-workshop.latex.autoBuild.onSave.enabled": false,
  "latex-workshop.latex.toolchain": [
    {
        "command": "platex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-jobname=\"%DOCFILE%\"",
            "-kanji=utf8",
            "-guess-input-enc",
            "%DOCFILE%.tex"
        ]
    },
    {
        "command": "pbibtex",
        "args": [
            "%DOCFILE%"
        ]
    },
    {
        "command": "platex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-jobname=\"%DOCFILE%\"",
            "-kanji=utf8",
            "-guess-input-enc",
            "%DOCFILE%.tex"
        ]
    },
    {
        "command": "platex",
        "args": [
            "-synctex=1",
            "-interaction=nonstopmode",
            "-file-line-error",
            "-jobname=\"%DOCFILE%\"",
            "-kanji=utf8",
            "-guess-input-enc",
            "%DOCFILE%.tex"
        ]
    },
    {
        "command": "dvipdfmx",
        "args": [
            "-f",
            "yu-win10.map",
            "%DOCFILE%"
        ]
    }
  ]
}

注意:bibtexを使わない場合はエラーが出るので上2つをコメントアウトしてしまった方が安全かもしれません。
注意2:bibtexで引用を一切しない場合もエラーが出ます。なんか適当に引用しておきましょう。
注意3:なお,保存時にコンパイルする設定は負荷の原因になるので無効にしています。

Latexmkを用いた場合

latexmkを使う場合は次のように設定を変更します。
StrawberryperlなどのPerl環境が整っていればlatexmkが使えます。

{
  "latex-workshop.latex.autoBuild.onSave.enabled": false,
  "latex-workshop.latex.toolchain": [
    {
      "command": "latexmk",
      "args": [
        "-e",
        "$latex=q/platex %O -kanji=utf8 -synctex=1 -interaction=nonstopmode %S/",
        "-e",
        "$biber=q/biber %O --bblencoding=utf8 -u -U --output_safechars %B/",
        "-e",
        "$bibtex=q/pbibtex %O -kanji=utf8 %B/",
        "-e",
        "$makeindex=q/mendex %O -o %D %S/",
        "-e",
        "$dvipdf=q/dvipdfmx %O -o %D %S/",
        "-e",
        "$pdf_mode=3",
        "-norc",
        "-pdfdvi",
        "%DOC%"
      ]
    }
  ]
}

追記:latexmkでjarticleがコンパイル出来ない問題。

まだぶち当たっていないのですがこういうこともあるらしいぞと。
タイプセットツールをptex2pdfに変更。
VS CodeでTeXを使う方法 - elechoのぶろぐ

"latex-workshop.latex.toolchain": [{
    "command": "ptex2pdf",
    "args": [
        "-l",
        "-ot",
        "-kanji=utf8 -synctex=1",
        "%DOC%"
    ]
}],