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

noteに数式でテーブル(表)を表示する

    2021/12/11現在、noteではテーブル(表)の表示には対応していません。
    noteでは、Githubのgist を埋め込むことが出来るため、gist側でテーブルを表示する方法を考えて、以前に下記の記事を書きました。

    新エディタのMarkdown

    noteでは、エディタを改良しており、新エディタを試すことができます。
    新エディタではMarkdownショートカットが追加されたので、テーブルが使用出来るのかと期待したのですが、機能は一部に限定したものでした。

    • ## 大見出し

    • ### 小見出し

    • __強調__

    • **強調**

    • > 引用

    • ```コード```

    • ~~取り消し線~~

    新エディタの数式表現

    新エディタでは数式表現の機能が追加されます。2021/12/12現在ではプレビュー版ですが、新エディタを試すことが出来ます。
    https://note.com/info/n/nfa4a65bd08ea
    noteの数式表示は、KaTeXで表現されています。他ブログの数式表示は MathJax が多いです。

    MathJaxは SVG に対して、KaTeX は HTML と CSS だけで構成されていて描画速度が速いとのことです。

    noteヘルプセンターの数式記法の使い方

    数式によるテーブル表示

    noteのテーブル機能はしばらく追加されそうもありません。
    そこで、数式にはテーブルを表現できる機能がもともと備わっているので、これを応用してテーブルを表示してみます。

    $$
    \begin{array}{c:ccccccc}
    n & 0 & 1 & 2 & 3 & 4 & 8 \\
    \hline
    F_n & 0 & 1 & 1 & 2 & 3 & 5
    \end{array}
    $$

    n012348Fn011235\begin{array}{c:ccccccc} n & 0 & 1 & 2 & 3 & 4 & 8 \\ \hline F_n & 0 & 1 & 1 & 2 & 3 & 5 \end{array}

    $$
    \begin{array}{c:c}
    \colorbox{yellow}{Title Here} & 
    \text{Sub Title} \\ \hline \\
    \text{Data 1} & 
    \text{SubData For Data 1} \\ & 
    \text{SubData For Data 1} \\ & 
    \text{SubData For Data 1} \\ \\
    \text{Data 2} & 
    \text{SubData For Data 2} \\ & 
    \text{SubData For Data 2} \\ & 
    \text{SubData For Data 2} \\ \\
    \text{Data 3} & 
    \text{SubData For Data 3} \\ & 
    \text{SubData For Data 3} \\ & 
    \text{SubData For Data 3} \\
    \end {array}
    $$

    Title HereSub TitleData 1SubData For Data 1SubData For Data 1SubData For Data 1Data 2SubData For Data 2SubData For Data 2SubData For Data 2Data 3SubData For Data 3SubData For Data 3SubData For Data 3\begin{array}{c:c} \colorbox{yellow}{Title Here} & \text{Sub Title} \\ \hline \\ \text{Data 1} & \text{SubData For Data 1} \\ & \text{SubData For Data 1} \\ & \text{SubData For Data 1} \\ \\ \text{Data 2} & \text{SubData For Data 2} \\ & \text{SubData For Data 2} \\ & \text{SubData For Data 2} \\ \\ \text{Data 3} & \text{SubData For Data 3} \\ & \text{SubData For Data 3} \\ & \text{SubData For Data 3} \\ \end {array}

    Tables Generatorを使用する

    数式でテーブル用の数式を考えるのは面倒です。
    実はテーブルを生成してくれるサイトが既にあります。
    https://www.tablesgenerator.com/latex_tables

    日本語による表示も可能なのか試してみます。

    画像

    注意として、noteでは数式表示にはKatexを使用しているので、生成されたテーブルの数式を修正する必要があります。

    \begin{table}[]
    \begin{tabular}{lll}
    \hline
    \textbf{商品コード} & \textbf{商品名} & \textbf{単価} \\ \hline
    S0001          & りんご          & 100円        \\
    S0002          & バナナ          & 150円        \\
    S0003          & パイナップル       & 300円        \\ \hline
    \end{tabular}
    \end{table}

    上の数式を修正します。{table}や{tabular}の属性には対応していません。
    {table}の代わりに{array}にします。{tabular}{lll}の{lll}の部分を{array}の後にパイプ(|)の区切りに{l|l|l}します。

    記法の意味
    「l」は左寄せ、「c」が中央寄せ、「r」が右寄せで列数分書きます。
    縦線の実線はパイプ(|)の区切り 例 {c|c|c}
    縦線の点線はコロン(:)の区切り 例 {c:c:c}
    縦線不要  例 {c:c:c}
    横線は、\hline

    $$
    \begin{array}{l:l:l}
    \textbf{商品コード} & \textbf{商品名} & \textbf{単価} \\ \hline
    S0001 & りんご      & 100円 \\
    S0002 & バナナ      & 150円 \\
    S0003 & パイナップル & 300円 \\
    \end {array}
    $$

    商品コード商品名単価S0001りんご100円S0002バナナ150円S0003パイナップル300円\begin{array}{l|l|l} \textbf{商品コード} & \textbf{商品名} & \textbf{単価} \\ \hline S0001 & りんご & 100円 \\ S0002 & バナナ & 150円 \\ S0003 & パイナップル & 300円 \\ \end {array}

    Visual Studio Codeでプレビュー確認

    テーブルのように少し複雑な場合、noteエディタ上で確認するのがしんどいと思います。Visual Studio Codeで拡張機能の「Markdown Preview Enhanced」がKatexをサポートしているので、これならプレビューを見ながら確認できます。

    注意点

    MarkDownのテーブルでは行の交互に背景色が変わりますが、数式のテーブルでは、そこまでサポートしていません。

    Macのブラウザーのスクロールバー表示について、Windowsのブラウザーでは最初からスクロールバーが表示されるのですが、Macでは使用する時にスクロールバーが表示される仕様のため、分かり難いです。
    Macのブラウザー側の問題と思いきや、OS側の問題でした。
    OSのシステム設定でスクロールバーを常に表示することができます。

    マウスで横スクロールさせるには、チルトホイール(ホイールを横に倒す操作)すれば横スクロールします。これを知ってればスクロールバーを常に表示されてなくてもいいのかも知れませんね。

    最後に

    これで、noteでもテーブルを使用することが出来ます。複雑なテーブルも作ろうと思えば作れると思いますが、今回はここまでにしておきます。

    日本人は罫線が大好き

    米国ではレポートが主な文書形式であり、罫線を細かく引いて、そこに数字や文字を印字するといった習慣がない。特に「上下方向の罫線は滅多に使用しない」。それに対し、日本はあちらこちらに罫線を引いて境界を作るのを好む。欧州は、日本と米国の中間といった感じで日本ほど細かくはない。

    最近の傾向では、出来るだけ線を引かない


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

     
     

    八寿

     
     
    サイエンスライター。機械学習を学ぶ中で数学の重要性を知るもなかなか理解が進まず、先ずは歴史からと数学の歴史に興味を持つようになる。元Microsoft MVP 2010-2012 Visual Basic

    あなたへのおすすめ