メインコンテンツへスキップ
見出し画像

VSCodeのMarkdownで数式が書けてPDFにもできた!

    コード書いとる?

    VSCode 1.58でMarkdownのプレビューが数式に対応していたのでメモ。ここはnote。

    Markdownのプレビュー機能

    VSCodeにはいつの頃からか、編集中のMarkdownのリアルタイムプレビュー機能がついていました。

    スクリーンショット 2021-07-21 22.48.14

    プレビューボタンをポチッとすると画面を2分割して右側にプレビューを表示してくれる。書類の見た目を常に確認しながら書けるのはありがたい...!

    スクリーンショット 2021-07-21 22.48.34

    で!このプレビュー画面がversion 1.58からKaTeX対応を果たしたので数式が書ける!機能拡張でもありましたが...素のVSCodeでこれができるのありがたい。

    スクリーンショット 2021-07-21 22.58.32

    KaTeX公式サイト

    ついでにコードブロックは言語指定ができるのね。言語に合わせたシンタックスハイライトありがたい...!

    スクリーンショット 2021-07-21 22.59.42

    PDFに書き出す

    機能拡張のMarkdown-PDFで書き出す場合、テンプレートに少し手を入れる必要がありました(これ以外の方法があったら知りたい!)

    コマンドパレットで「Open Extension Folder」して、yzane.markdown-pdf-x.x.x → template → template.html を編集します。

    スクリーンショット 2021-07-22 8.47.51

    このファイル内で、

    {{{style}}}
    {{{mermaid}}}

    直後に、次のテキストを挿入しておきます(KaTeXを使ったレンダリング用の指示)

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
    <script>
     document.addEventListener("DOMContentLoaded", () => {
       renderMathInElement(document.body, {
         delimiters: [
           { left: "$$", right: "$$", display: true },
           { left: "$", right: "$", display: false }
         ]
       });
     });
    </script>

    これで準備完了!PDFとかHTMLで書き出した時に数式もいい感じにレンダリングされていると思います!

    行列を書く時の注意点

    $$
    \begin{pmatrix}
    a & b \\
    c & d
    \end{pmatrix}
    \begin{pmatrix}
    x \\
    y
    \end{pmatrix}
    $$

    こんな感じで書いてプレビューを確認してPDFに書き出すと... なぜか数式のレンダリングに失敗します。これ理由はよくわかりませんが、改行を別の書き方にしたらうまくいきました。

    $$
    \begin{pmatrix}
    a & b \cr
    c & d
    \end{pmatrix}
    \begin{pmatrix}
    x \cr
    y
    \end{pmatrix}
    $$

    原因はわかりませんが...うまくレンダリングされたのでヨシ!

    個人的にはこれで技術書が書けるぜー!ってテンション上がってますw

    ではまた次回!


    この記事が参加している募集

     
     
    ゲーム作って36年のぼっちゲームデベロッパ / 作ったゲームはソースも公開するよ / GitHib http://github.com/tek-nishi / 非常勤講師少々 / 左利き / 東ゲ部部長

    あなたへのおすすめ