高度な特殊タグ練習   作:紺野遍音

3 / 4
高度な練習(enclosureタグ その2)

さて、前回は

$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \phantom{\Rule{8em}{4em}{4em}}}

を描いたのだった。

これをもう少し座標らしくしよう。

 

手始めに、x、y、Oのラベルを付けてみよう。描画領域を確保するためのphantomより前に置くのを忘れずに、もちろんsmashとrlapを付けて。

$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \phantom{\Rule{8em}{4em}{4em}}

hskipと対になるのがraiseだ。hskipが左端を基準とした水平方向の指定なのに対し、raiseは中心を基準とした垂直方向の指定だ。

結構それらしくなった。

座標なら矢印型になっていてもいいところだが、矢印と軸の描画がズレる可能性が高いので、ここではあえてしないでおこう。

 

では、円周上に点を打ってみよう。点図形を意味するのは\bulletコマンドだ。

この円は一辺6emの正方形に内接する円なのであった。

したがって、正方形の一辺が直径と同じ長さにあたるわけだから、この円の直径は6emで半径は3emだ。となると、原点から$3sin45\unicode{x00B0}$em右、$3sin45\unicode{x00B0}$em上の点は円周上にあるはずだ。encloseでは左端中心が基準なのだったから、左端中心から$4+3sin45\unicode{x00B0}$em右になることを考えて、

$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.12em \raise 2.12em{\bullet}}} \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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.12em \raise 2.12em{\bullet}}} \phantom{\Rule{8em}{4em}{4em}}

なぜかズレているので気合で修正する。試行錯誤で0.07emずつ左と下にずらす。

$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \phantom{\Rule{8em}{4em}{4em}}

 

点にPと名前を付けてみよう。さっきの軸と同じ要領だ。

$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.65em{P}}} \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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.65em{P}} \phantom{\Rule{8em}{4em}{4em}}

 

線分OPを引いてみよう。

「線分」というのは、encloseパッケージにおいては、透明(phantom)な長方形の対角線として実装される。

つまり、左端を原点まで水平にズラし(hskip)、点Pが上にズレた分の高さを上側に持つ透明な(phantom)長方形(Rule)を描いて、その右上に向かう対角線(updiagonalstrike)を描けば(もちろん、smashとrlapも忘れずに)、

$$\require{color} \color{#777777}{\require{enclose} \smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.65em{P}}} \smash{\rlap{\hskip 4em \enclose{updiagonalstrike}{\phantom{\Rule{2.05em}{2.05em}{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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.65em{P}}} \smash{\rlap{\hskip 4em \enclose{updiagonalstrike}{\phantom{\Rule{2.05em}{2.05em}{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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.45em{P}}} \smash{\rlap{\hskip 4em \raise 0.2em \enclose{updiagonalstrike}{\phantom{\Rule{1.9em}{1.9em}{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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.45em{P}}} \smash{\rlap{\hskip 4em \raise 0.2em \enclose{updiagonalstrike}{\phantom{\Rule{1.9em}{1.9em}{0em}}}}} \phantom{\Rule{8em}{4em}{4em}}

 

ここで、角度を表すための円弧を描きたい。

ところが、encloseパッケージ(が依拠しているMathML)には円弧を描く命令は入っていないのだ。

というわけで、潔く諦めることにした。なにせbboxパッケージも完全無効だったのである。そんなわけで、角度の近くにそれらしい記号を配置することでお茶を濁すことにしよう。

 

【追記】

そんなわけで、https://syosetu.org/novel/94624/2.htmlhttps://syosetu.org/novel/299194/1.htmlを参考に、ハーメルンのboxタグに頼ることを考えてみる。

まずは角度の近くに$\alpha$を描こう。

$$\require{color}\color{#777777}{\require{enclose}\smash{\rlap{\hskip 0.8em \enclose{circle}{\phantom{\Rule{6em}{3em}{3em}}}}} \smash{\rlap{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}} \smash{\rlap{\hskip 5.15em \raise 0.4em{\alpha}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.45em{P(\cos\alpha,\sin\alpha)}}} \smash{\rlap{\hskip 4em \raise 0.2em \enclose{updiagonalstrike}{\phantom{\Rule{1.9em}{1.9em}{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{\Rule{8em}{0.05em}{0.05em}}} \smash{\rlap{\hskip 4em \Rule{0.1em}{4em}{4em}}} \smash{\rlap{\hskip 8.35em \raise -0.35em{x}}} \smash{\rlap{\hskip 4.18em \raise 4.35em{y}}} \smash{\rlap{\hskip 4.15em \raise -0.85em{O}}} \smash{\rlap{\hskip 5.15em \raise 0.4em{\alpha}}} \smash{\rlap{\hskip 6.05em \raise 2.05em{\bullet}}} \smash{\rlap{\hskip 6.65em \raise 2.45em{P(\cos\alpha,\sin\alpha)}}} \smash{\rlap{\hskip 4em \raise 0.2em \enclose{updiagonalstrike}{\phantom{\Rule{1.9em}{1.9em}{0em}}}}} \phantom{\Rule{8em}{4em}{4em}}}

 

そうしたら、boxのoverhiddenという機能を使って円弧を作る。

$\require{enclose}\smash{\rlap{\hskip -1em \raise -0.5em{\enclose{circle}{\phantom{\Rule{1.5em}{0.75em}{0.75em}}}}}}\phantom{\Rule{2em}{1em}{1em}}$

\require{enclose}\smash{\rlap{\hskip -1em \raise -0.5em{\enclose{circle}{\phantom{\Rule{1.5em}{0.75em}{0.75em}}}}}}\phantom{\Rule{2em}{1em}{1em}}

今度は半角$1つずつだけで囲み、行中の数式にした円の中心をずらしたものをboxのoverhiddenで切り取る。

今回は作図上$\alpha$は45°なので、boxを入れ子にして外側のboxを作り、先ほどまでのboxを内側にして45°傾けてみる。

$\require{enclose}\smash{\rlap{\hskip -1em \raise -0.5em{\enclose{circle}{\phantom{\Rule{1.5em}{0.75em}{0.75em}}}}}}\phantom{\Rule{2em}{1em}{1em}}$

うまくできそうだ。boxの内容はboxで説明するとそのままハーメルンの記法として解釈され描画されてしまうので、このあたりからは誤字報告機能で見てほしい。

内側のboxの位置をabsoluteで指定してズラしてみよう。

$\require{enclose}\smash{\rlap{\hskip -1em \raise -0.5em{\enclose{circle}{\phantom{\Rule{1.5em}{0.75em}{0.75em}}}}}}\phantom{\Rule{2em}{1em}{1em}}$

うまくいかなかった。absoluteでの指定は回転と相性が悪いのだろう。




次回はこれを使って加法定理の解説の例を出す。
  1. 目次
  2. 小説情報
  3. 縦書き
  4. しおりを挟む
  5. お気に入り登録
  6. 評価
  7. 感想
  8. ここすき
  9. 誤字
  10. 閲覧設定

▲ページの一番上に飛ぶ
X(Twitter)で読了報告
感想を書く ※感想一覧 ※ログインせずに感想を書き込みたい場合はこちら
内容
0文字 10~5000文字
感想を書き込む前に 感想を投稿する際のガイドライン に違反していないか確認して下さい。
※展開予想はネタ潰しになるだけですので、感想欄ではご遠慮ください。