もちろんあのような自由な作図にも便利だが、もっと汎用性のある図を紹介しよう。
種々のグラフである。
ある意味この記事がもたらす一番の恩恵かもしれない。
encloseタグで長方形や軸の線を描けるということは、つまり棒グラフを描けるということにほかならない。
$$\require{enclose}\require{color}\color{#777777}{\smash{\rlap{\Rule{8em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1.2em \Rule{1.2em}{1.2em}{0em}}}\smash{\rlap{\hskip 3.0em \Rule{1.2em}{2.4em}{0em}}} \smash{\rlap{\hskip 4.8em \Rule{1.2em}{3.2em}{0em}}}\phantom{\Rule{8em}{4em}{1em}}}$$
\require{enclose}\require{color}\color{#777777}{\smash{\rlap{\Rule{8em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1.2em \Rule{1.2em}{1.2em}{0em}}}\smash{\rlap{\hskip 3.0em \Rule{1.2em}{2.4em}{0em}}} \smash{\rlap{\hskip 4.8em \Rule{1.2em}{3.2em}{0em}}}\phantom{\Rule{8em}{4em}{1em}}}
これを半角の$2つずつで囲んで作る。
原理は簡単で、
① まずencloseパッケージを召喚 ※実はencloseタグを使わなければ不要で、素のMathJaxでも作図できるらしい。ただ、後述するような白抜きや斜め線を後から描こうと思った際にはencloseが必要なので、requireを後から書き足すのは面倒。
② 次にcolorパッケージを召喚し、colorを#777777にする
③ smash,rlap構文で重ね合わせられるようにする
④
⑤ 次に幅が0.1em、高さが4emの縦軸。
⑥ 続いて
⑦ 同様に、smash,rlap構文、3.0emの
⑧ 同様に、smash,rlap構文、4.8emの
⑨ 最後に全体の描画領域確保用の
凡例も、smash,rlap構文で文字を配置することで描画できる。
$$\require{enclose}\require{color}\color{#777777}{\smash{\rlap{\Rule{8em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1.2em \Rule{1.2em}{1.2em}{0em}}}\smash{\rlap{\hskip 3.0em \Rule{1.2em}{2.4em}{0em}}} \smash{\rlap{\hskip 4.8em \Rule{1.2em}{3.2em}{0em}}}\smash{\rlap{\hskip 1.45em \raise -1.0em{A}}}\smash{\rlap{\hskip 3.25em \raise -1.0em{B}}}\smash{\rlap{\hskip 5.05em \raise -1.0em{C}}}\phantom{\Rule{8em}{4em}{1em}}}$$
\require{enclose}\require{color}\color{#777777}{\smash{\rlap{\Rule{8em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1.2em \Rule{1.2em}{1.2em}{0em}}}\smash{\rlap{\hskip 3.0em \Rule{1.2em}{2.4em}{0em}}} \smash{\rlap{\hskip 4.8em \Rule{1.2em}{3.2em}{0em}}}\smash{\rlap{\hskip 1.45em \raise -1.0em{A}}}\smash{\rlap{\hskip 3.25em \raise -1.0em{B}}}\smash{\rlap{\hskip 5.05em \raise -1.0em{C}}}\phantom{\Rule{8em}{4em}{1em}}}
棒と同じだけ
少々手間が増えるが、棒の白抜き(黒抜き)もこの通り行える。
$$\require{color}\require{enclose}\color{#777777}{\smash{\rlap{\Rule{8em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1.2em \raise 0.2em \enclose{box}{\phantom{\Rule{0.8em}{1.2em}{0em}}}}}\smash{\rlap{\hskip 3.0em \raise 0.2em \enclose{box}{\phantom{\Rule{0.8em}{2.4em}{0em}}}}}\smash{\rlap{\hskip 4.8em \raise 0.2em \enclose{box}{\phantom{\Rule{0.8em}{3.2em}{0em}}}}}\smash{\rlap{\hskip 1.45em \raise -1.0em{A}}}\smash{\rlap{\hskip 3.25em \raise -1.0em{B}}}\smash{\rlap{\hskip 5.05em \raise -1.0em{C}}}\phantom{\Rule{8em}{4em}{1em}}}$$
\require{color}\require{enclose}\color{#777777}{\smash{\rlap{\Rule{8em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1.2em \raise 0.2em \enclose{box}{\phantom{\Rule{0.8em}{1.2em}{0em}}}}}\smash{\rlap{\hskip 3.0em \raise 0.2em \enclose{box}{\phantom{\Rule{0.8em}{2.4em}{0em}}}}}\smash{\rlap{\hskip 4.8em \raise 0.2em \enclose{box}{\phantom{\Rule{0.8em}{3.2em}{0em}}}}}\smash{\rlap{\hskip 1.45em \raise -1.0em{A}}}\smash{\rlap{\hskip 3.25em \raise -1.0em{B}}}\smash{\rlap{\hskip 5.05em \raise -1.0em{C}}}\phantom{\Rule{8em}{4em}{1em}}}
これも半角の$2つずつで囲んで作る。
原理としては、上とほぼ同様で、棒グラフの
もちろん横棒だってお手の物。
$$\require{enclose}\require{color}\color{#777777}{\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\raise 3.2em{\Rule{3em}{0.4em}{0.4em}}}}\smash{\rlap{\raise 2.2em{\Rule{5em}{0.4em}{0.4em}}}}\smash{\rlap{\raise 1.2em{\Rule{2em}{0.4em}{0.4em}}}}\phantom{\Rule{6em}{4em}{0em}}}$$
\require{enclose}\require{color}\color{#777777}{\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\raise 3.2em{\Rule{3em}{0.4em}{0.4em}}}}\smash{\rlap{\raise 2.2em{\Rule{5em}{0.4em}{0.4em}}}}\smash{\rlap{\raise 1.2em{\Rule{2em}{0.4em}{0.4em}}}}\phantom{\Rule{6em}{4em}{0em}}}
これも半角の$2つずつで囲んで作る。
縦棒の縦の長さに関しては、棒の中心から上に伸びる高さと下に伸びる高さを合わせて考える必要がある。
encloseが円内の塗りつぶしに対応できないので色付きの円グラフは作れないが、円周上の点と半径を描画することはできるので、色なしの円グラフなら作れてしまう。
$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\hskip 4em \raise 0em \Rule{0.08em}{3.2em}{0em}}} \smash{\rlap{\hskip 4em \raise 0.2em \enclose{updiagonalstrike}{\phantom{\Rule{1.8em}{1.8em}{0em}}}}} \phantom{\Rule{8em}{4em}{4em}}}$$
\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\hskip 4em \raise 0em \Rule{0.08em}{3.2em}{0em}}} \smash{\rlap{\hskip 4em \raise 0.2em \enclose{updiagonalstrike}{\phantom{\Rule{1.8em}{1.8em}{0em}}}}} \phantom{\Rule{8em}{4em}{4em}}}
これも半角の$2つずつで囲んで作る。
縦線は先ほど同様
折れ線グラフも、点と線を結べるので、位置調整に気合を入れる必要はあるが、作ることができる。
$$\require{color}\require{enclose}\color{#777777}{\smash{\rlap{\Rule{6em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1em\raise 1em{\enclose{updiagonalstrike}{\phantom{\Rule{1em}{1.5em}{0em}}}}}}\smash{\rlap{\hskip 2.4em\raise 2em{\enclose{downdiagonalstrike}{\phantom{\Rule{1em}{0.5em}{0em}}}}}}\smash{\rlap{\hskip 3.8em \raise 2em{\enclose{updiagonalstrike}{\phantom{\Rule{1em}{1.2em}{0em}}}}}}\smash{\rlap{\hskip 0.8em \raise 0.6em{\bullet}}}\smash{\rlap{\hskip 2.2em \raise 2.4em{\bullet}}}\smash{\rlap{\hskip 3.6em \raise 1.6em{\bullet}}}\smash{\rlap{\hskip 5em \raise 3.2em{\bullet}}}\phantom{\Rule{6em}{4em}{1em}}}$$
\require{color}\require{enclose}\color{#777777}{\smash{\rlap{\Rule{6em}{0.05em}{0.05em}}}\smash{\rlap{\Rule{0.1em}{4em}{0em}}}\smash{\rlap{\hskip 1em\raise 1em{\enclose{updiagonalstrike}{\phantom{\Rule{1em}{1.5em}{0em}}}}}}\smash{\rlap{\hskip 2.4em\raise 2em{\enclose{downdiagonalstrike}{\phantom{\Rule{1em}{0.5em}{0em}}}}}}\smash{\rlap{\hskip 3.8em \raise 2em{\enclose{updiagonalstrike}{\phantom{\Rule{1em}{1.2em}{0em}}}}}}\smash{\rlap{\hskip 0.8em \raise 0.6em{\bullet}}}\smash{\rlap{\hskip 2.2em \raise 2.4em{\bullet}}}\smash{\rlap{\hskip 3.6em \raise 1.6em{\bullet}}}\smash{\rlap{\hskip 5em \raise 3.2em{\bullet}}}\phantom{\Rule{6em}{4em}{1em}}}
これも半角の$2つずつで囲んで作る。
気合が必要というのは、最初の折れ線は左端中心の基準から1em右、1em上の箇所から始まって右に1em、上に1.5em移動しているのだが、その上の
こればっかりはもはや描画レンダラーの問題でありどうしようもない。
コツとしては、まず折れ線を描画して、その上から点を微調整して合わせていくというのがやりやすいだろう。折れ線グラフの主役はあくまで折れ線だからだ。
この項に関しては結構需要が高そうな気がする。