特殊タグ練習 - 主にMathJax (小沼高希)
しおりを挟む

よくわかる数式の書き方

小説の中で数式を出したい。そう思ったことはありませんか?筆者の調査によれば実に#DIV/0! パーセントの作者が小説内で数式を用いたいと考え、そして方法が分からず挫折したそうです。悲しいですね。

 

しかしご安心を。我らがはWeb小説投稿サイトハーメルンは数式を投稿できるJavaScriptライブラリ「MathJax」を導入しているので $\TeX$ 構文を用いることができるのです。

 

……言葉があまり良くわからない?あとこのズレたアルファベットはなんて読むのかわからない?そうですか。まあそうですよね。きちんと説明していきましょう。

 


 

まず数式を使うための準備をするために、tex変換ツールの使用方法を確認しておきましょう。あとリンク切れてるのはゼータ関数に詳しい人が書いてたらしい小説です。具体例見たかったら「図書庫の城邦と異哲の女史」の「偏差」を読めばいいんじゃないかな。拙作です。

 

ハーメルンには執筆中のプレビュー機能として新規投稿か編集完了の隣にあるやつと多機能フォームに付随するやつがあります。なおこの2つは搭載機能が異なり、例えば前者でしかboxタグは機能しません。

 

というわけで数式がちゃんと表示できるか確認するために開示設定を「チラシの裏」に、そして「特殊タグ練習」をつけることを忘れないようにしましょう。このサイトは小説以外を投稿すると怒られる場所ですが、主目的が特殊タグの練習・共有の場合に限ってタグ設定をすれば小説(SS)以外の投稿の対象にはなりません。詳しくは特殊タグの使用方法を確認のこと。

 


 

さて。まず投稿画面を作ったらやることがあります。何でもいいので1000文字書きましょう。これはハーメルンの投稿文字数下限設定のせいです。なお「 」(半角スペース)とか「 」(全角スペース)とかは文字数カウントされませんが「」(ゼロ幅スペース)はカウントされます。やったね。

 

なおこれは文字数稼ぎになり、文字数稼ぎは投稿されている作品に適用されるので多分アウト行為です。世知辛いね。

 

というか最初の導入から数式が出てくる作品はあまりない気がしますね。かの結城浩による「数学ガール」でもプロローグでは数式が出てきていません。第一章では二ページ目で出てきます。

 

そして一旦投稿しましょう。ああ、あとどこかに

 

$()\TeX

$

 

と打っておきましょう。二つの$で挟むのが鍵です。えっ、上の箱の中のやつではどうやって数式化を回避しているかって?これは冒頭の$()に無をルビとして与えています。 必要なら一番上のバーにある語字報告から実際のコードを見れますよ。あとこれtopicPathクラス使ってるんですね。本来はパンくずリスト用の表示なのか。

 


 

これで、あなたの小説(小説?)の中に

 

$\TeX$

 

 

という文字が出たと思います。これはドナルド・アーヴィン・クヌースという数学者が作った組版処理システムの名前です。

 

組版というのは文字をどう並べるか、というものですね。彼は自分の本を書く時に狙ったように文字を置けなかったのでわざわざシステムから作ったのです。ちなみに $\TeX$ は $\TeX$ と読みます。

 

彼の作ったシステムは数式表示で評判がよく、$\TeX$ を組み込んだソフトウェアである $\LaTeX$ やその派生は科学論文の執筆において広く用いられています。適当にやっても論文っぽさが出るので便利なんですよね。拡張のマクロパッケージを読み込むと数式以外にも表現の幅が広がりますし。

 

でも、これらは一般的にはPDFなどのファイルとして書き出すことを前提としたものです。ウェブサイト上でも数式表示ができないか、として作られたのがJavaScriptライブラリ「MathJax」です。これには文字がずれるような変な表記方法はないはずですね。

 

このライブラリはかなり広く使われているので、ウェブサイトで見る数式のだいたいに多分使われています。もちろんここでも。さもなくば使われているのはKaTeXというもう少しシンプルなやつです。

 

MathJaxは様々な方法で数式の表示を試みるので、だいたいの環境で数式が見れるようになるはずです。でもPDF出力はできないんですよね。それをやるならTeXworksとか使ったほうがいいんじゃないかな。

 

さて、じゃあ実際に数式を打ってみましょう。コピペでできるような簡単な数式ないかな。あれでいいか。

 

$$() T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

これをコピペして貼って編集完了してみましょう。

 

$$ T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

こういうのが出ればひとまずヨシ!です。

 


 

というわけで、一個づつ要素を説明していきましょう。あとさっきの式は重力加速度を $g$ と置いて質点を長さ $l$ の糸で吊るした最大振れ幅 $\theta$ の振り子の周期 $T$ を厳密に求めるためのものです。第一種完全楕円積分ってやつを使います。

 

$$ T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

ここの$$()は数式を表す範囲を指定しています。同じ行の中で対応するものがあれば、その間を数式として処理する感じですね。$()だと行内数式、$$()だと独立行の数式です。とはいえ長すぎる数式は改行とかで問題が起こる可能性があるので、overscroll属性をもたせたboxの中に入れるとかするといい気がします。

 

$$() T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

$$ \color{#e11}{T} = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

普通に書いたアルファベットは斜体になります。これは数学では変数を斜体で表示するためですね。なお $\TeX$ のデフォルトの設定のままが便利なので本来立体で書くべき自然対数の底 $\mathrm{e}$ とか虚数単位 $\mathrm{i}$ とかも斜体で書かれる事がよくあります。

 

あ、立体で書きたい時は \mathrm{e} みたいな形を使います。この「\コマンド{中身}」みたいな書き方は今後も出てきます。

 

$$() T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

$$ T = 2 \color{#e11}{\pi} \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

ギリシャ文字などは、 \pi などのコマンドで表示させることができます。また、\Pi のように最初の文字を大文字にするとギリシャ文字の大文字に相当する $\Pi$ を出すことができます。「\」のつけ忘れはよくあるミスなので、ちゃんとと出力を確認しましょう。

 

$$() T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

$$ T = 2 \pi \color{#e11}{\sqrt{\frac{L}{g}}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

ちょっと複雑になっていますが、ここの部分は \sqrt{...} の中に \frac{L}{g} が入っているという形になっています。前者はルート、後者は分数で前の方の波括弧の中が分子、後の方が分母になる分数の表示ですね。これを組み合わせることでルートの中の分数を表しています。

 

$$() T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

$$ T = 2 \pi \sqrt{\frac{L}{g}} \color{#e11}{\sum_{n=0}^{\infty}} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

 

\sum は和の記号を表す記号です。_ の後で下に置かれる数字あるいは記号を、^ の後で上に置かれる数字あるいは記号を指定できます。この指定方法は他の記号にも適用できて、例えば x_{n-1}^{p+1} と書くと $x_{n-1}^{p+1}$ となります。

 

$$() T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \frac{(2n-1)!!}{2n!!} \sin^2 \left( \frac{\theta}{2} \right) $$

$$ T = 2 \pi \sqrt{\frac{L}{g}} \sum_{n=0}^{\infty} \color{#e11}{\frac{(2n-1)!!}{2n!!}} \sin^2 \left( \frac{\theta}{2} \right) $$

 

ここの分数の書き方は \frac{分子}{分母} の形ですね。英語だと2/3(3分の2)をtwo thirdsといいますし、順番もそのままなのでわかりやすいかと。




続きは気が向いたら書きます


目次 感想へのリンク しおりを挟む


しおりを挟む

特殊タグ練習

練習です。


 創作者ニ告グ

 

一、(イマ)カラデモ(オソ)クナイカラ「ハーメルン」ヘ()

二、(トク)(シユ)「タグ」デ(イロ)(イロ)(アソ)ベテ便(ベン)()デアルカラ(シヤ)(サツ)スル

三、オ(マエ)(タチ)(ドク)(シヤ)(ケイ)()ハ「エッチ」ナノガ()メルト(ミナ)()

  テオルゾ

  二月二十九日    戒 嚴 司 令 部

 

 


 

普通のboxを用意してそこにただ中央揃えの文章を入れるだけですと

 

短いうちはいいのですが、このように複数行になるほど長くなったり、改行などを入れると最後の行とかあるいは改行後の短い部分が途中で宙ぶらりんになって読みにくくなるという問題があります。

 

こんなふうにね

 

そこでこちら、汎用ボックス

 

短い文章だと上のように中央に置かれますが、複数行になるほど長い文章ですと左寄せになって読みやすくなります。ちょっとした文章を囲むのにどうぞ。

 


 

$$\ce{Na2CO3 + Ca(OH)2 -> 2 NaOH + CaCO3 v}$$

\ce{Na2CO3 + Ca(OH)2 -> 2 NaOH + CaCO3 v}

 

$$\require{mhchem}\ce{Na2CO3 + Ca(OH)2 -> 2 NaOH + CaCO3 v}$$

\require{mhchem}\ce{Na2CO3 + Ca(OH)2 -> 2 NaOH + CaCO3 v}

 

$$\ce{Na2CO3 + Ca(OH)2 -> 2 NaOH + CaCO3 v}$$

\ce{Na2CO3 + Ca(OH)2 -> 2 NaOH + CaCO3 v}

 

化学表記用コマンド。\require{mhchem}を宣言しないと\ceコマンドは使えないが、一度宣言すればそれ以降でも使える。

 

$$\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1}}}}}$$

\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1+\frac{1}{1}}}}}

 

連分数

 

$$\dfrac{1}{1+\dfrac{1}{1+\dfrac{1}{1+\dfrac{1}{1+\dfrac{1}{1}}}}}$$

\dfrac{1}{1+\dfrac{1}{1+\dfrac{1}{1+\dfrac{1}{1+\dfrac{1}{1}}}}}

 

dfracにすれば大きくなる。

 

$$\underbrace{1+1+ \cdots +1+1}_{n個 ko}$$

\underbrace{1+1+ \cdots +1+1}_{n個 ko}

 

$$\underbrace{1+1+ \cdots +1+1}_{n\text{個 ko}}$$

\underbrace{1+1+ \cdots +1+1}_{n\text{個 ko}}

 

\textとかを使わないとアルファベットは自動的に数式フォントに切り替わる。

 

$$\require{AMScd}\begin{CD} A @>>> B \\ @VVV @VVV \\ C @>>> D \end{CD}$$

AMScdによる可換図式というもの。関係図に使えるか?(実際は化学反応とかの説明の拡張かな)

 

$$\overset{炭酸ナトリウム}{\ce{Na2CO3}}$$

\overset{炭酸ナトリウム}{\ce{Na2CO3}}

化学式にふりがなをつける

 

これは左寄りの文章。チャットを想定しています。

 

こちらは右寄せ。

 

長い文章をたとえ打ち込んだとしても、70%のところでいい感じに折り返すようになっています。

 

右寄せの場合、inlineをうまく使って2つの表を並べておくことによって左側のスペースを確保しています。

 

boxの中にboxを入れています。これは外側のboxを表示させたもの

 

2つのboxが組み合わされているのがわかりますね

 

Lorem ipsum dolor sit amet(あのイーハトーヴォのすきとおった風)

 

В чащах юга жил бы цитрус(あのイーハトーヴォのすきとおった風)?」

 

Lorem ipsum dolor sit ametあのイーハトーヴォのすきとおった風

 

В чащах юга жил бы цитрусあのイーハトーヴォのすきとおった風

 

$В\ чащах\ юга\ жил\ бы\ цитрус$

 

 

 

 

 

 

 下士官兵ニ告グ

 

一、(イマ)カラデモ(オソ)クナイカラ(ゲン)(タイ)(カヘ)

二、(テイ)(コウ)スル(モノ)(ゼン)()(ギヤク)(ゾク)デアルカラ(シヤ)(サツ)スル

三、オ(マエ)(タチ)()()(ケイ)(テイ)(コク)(ゾク)トナルノデ(ミナ)()

  テオルゾ

  二月二十九日    戒 嚴 司 令 部

 

 

 

「そういうわけで、こういう系が成り立つわけだ」

 

そう言って先輩はノートにさらさらと式を書いていく。

 

 

系 0.4 自然数 $a, b$の最大公約数が $d$ なら、

 

$$xa + yb = d$$

 

をみたす整数 $x, y$ が存在する。特に、$a$ と $b$ が互いに素であるとき、

 

$$xa + yb = 1$$

 

をみたす整数 $x, y$ が存在する。

 

 

「証明できます?」

 

「んー、直前に作った定理を使うか」

 

◆証明◆ 定理0.3により

 

$$\begin{eqnarray}I &=& \{ xa + yb\, |\, x, y \in \mathbb{Z} \}\\ J &=& \{ zd \, |\, z\in \mathbb{Z} \}\end{eqnarray}$$

 

とおくとき $I=J$ が成り立つ。$J$ の定義式中で $z = 1$ とすれば $d \in J$ が分かるから、$d \in I$ でなければならない。つまり、整数 $x, y$ が存在して

 

$$xa + yb = d$$

 

となる。 ∎

 

「これでいいかな?」

 

「いい……と思います。$a$ と $b$ が互いに素なら最大公約数が $1$ なので、特別な場合ってことですよね」

 

「そうだね」

 

よし、ここまでは大丈夫だ。



目次 感想へのリンク しおりを挟む




評価する
※目安 0:10の真逆 5:普通 10:(このサイトで)これ以上素晴らしい作品とは出会えない。
※評価値0,10についてはそれぞれ11個以上は投票できません。
評価する前に
評価する際のガイドライン
に違反していないか確認して下さい。