VisualStudio Codeでマークダウン & Texを書く
VScode結構軽快And綺麗ということで使いはじめているのでメモ。
Markdownはかなり書いていて気持ちが良いです。
VScodeについて
軽快かつ様々なExtensionを組み込める自由度の高いエディタ。
見た目も良い感じ。
VScodeでMarkdown
数式以外は軽快アンド快適なので,今後も使用する予定。
使用する拡張機能
拡張機能は左下のアイコンをクリックするか,Ctrl+Shift+Xで検索窓を出せます。
- Markdown All in One:基本機能が詰まってる
- Markdown PDF:PDFで吐き出す用
- Markdown+Math:数式を書く用
- Paste Image:クリップボードの画像を貼れる。鬼便利。
基本設定
画像を貼る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つです。
- Pandoc(Release pandoc 2.0.2 · jgm/pandoc · GitHub)
- vscode-pandoc (拡張機能)
[Visual Studio Code][Windows] MarkdownでPDF/HTML/DOCXファイルへの変換方法とチートシート | Gabekore Garage
VScodeでplatexコンパイル
基本的にはTexstudioで書くが,使ってみたかんじそんなに悪くないので乗り換えも検討中。
TexStudioとの違いはLatex Workshopの拡張機能を使うことにより文章の保存とコンパイル,表示を同時に行う点。
最低限の基本設定
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%"
]
}],