教科書や参考書、論文等を読んでいると、見たこともないような数学記号を使っていることがあります。記号そのものや演算の意味を理解していても、LaTeX でこのような記号を再現しようとするときには、コマンドが分からなければ再現できません。
short-math-guide.pdf を参照すれば、基本的な数学記号のコマンドリストを得ることが出来ますが、これだけでは到底足りないことが大いにあります。
このような名前の分からない数学記号のコマンドを特定するには、大きく分けて 3 つの方法があります。
- フリーハンドから特定する
- Unicode から特定する
- TeX ソースから特定する
本記事では、名前の分からない数学記号のコマンドを特定する 3 つの方法を紹介します。
■ フリーハンドから特定する
Detexify を使うと、フリーハンドで書いた記号から特定できます。
これで記号がヒットすれば解決です。必要なパッケージも記載されています。
このツールが対応するパッケージは symbols-a4.pdf を参照しているようですが、最新のものがすべて網羅されているわけではないようです。
また、unicode-math パッケージは対応していないので注意が必要です。
■ Unicode から特定する
Shapecatcher を使って、フリーハンドで書いた記号から Unicode を特定します。
CJK 以外の 11,817 文字を調べることが出来ます。(と言いつつ平仮名はヒットします)
Unicode がヒットしなければ、求めている記号は独自に作成された記号の可能性が高いです。
求めていた記号がヒットした場合、“Unicode hexadecimal” の “x” 以下 4 桁の英数字 を見てください。Unicode hexadecimal は Unicode の 16 進文字コードです。
例えば、÷
に関して調べると、次のような結果を得ます。
÷
の Unicode hexadecimal は “0xf7” です。このように “x” 以下が 4 桁ない場合は、4 桁になるように頭に 0 を与えてください。すなわち、÷
の Unicode hexadecimal の 4 桁の英数字は “00f7” です。
In block 項目に “Mathematical” という言葉が含まれている、あるいは Unicode category 1 が Math symbol に属していれば、少なくともその記号が数学記号用に意図された文字となっています。
類似した記号が複数挙げられた場合は、これを指標にすると良いでしょう。
この後、次の 2 つのいずれかを参照して、4 桁の英数字を内部検索します。
- unimathsymbols.html または unimathsymbols.pdf
- unimath-symbols.pdf (unicode-math)
先の例の ÷
に関して、Unicode hexadecimal の “00f7” を unimath-symbols.pdf 内で検索してみると、次ような結果を得ます。これで、÷
が \div
であることが分かりました。
なお、unimath-symbols.pdf は unicode-math のドキュメント 1 つであり、TeX Live に収録されているため、ターミナルから表示させることが出来ます。
$ texdoc unimath-symbols
▽ unicode-math 以外のパッケージを探す
多くの場合で unicode-math とその他のパッケージは同じようなコマンド名となっています。
unicode-math パッケージ以外のパッケージから記号を探したい場合、symbols-a4.pdf から探します。
先の例の ÷
に関して、\div
であることが分かったので、symbols-a4.pdf 内で検索してみると、次のような結果を得ます。(結果は索引ページを参照しています)
なお、symbols-a4.pdf は TeX Live に収録されており、ターミナルから表示させることが出来ます。
$ texdoc symbols
当然ですが、symbols-a4.pdf に掲載されていないパッケージのコマンドについて追うことは出来ません。また、unicode-math と異なるコマンド名となっている場合も追えません。
▽ Unicode 名で Google 検索する
unicode-math に収録されていない文字だった場合、Google 等の検索エンジンで次のように検索します。
"unicode name" latex command
このような検索方法で、概ねの記号は解決できるでしょう。
■ TeX ソースから特定する
少しイレギュラーな方法です。
arXiv 等で得た論文を読んでいる際に、分からない記号に遭遇した場合、もとの TeX ファイルを得ることで解消できます。
この方法であれば、複雑に調べなくても簡単に答えに辿り着くことが出来ます。また、上 2 つの方法で特定できなかった記号を特定する唯一の方法です。
arXiv では、当該論文ページの “Donwload” → “Other formats” から Formats selector に移動し、“Download source” からソースをダウンロードすることが出来ます。ソースファイルが複数ある場合は、.tar.gz 形式です。
.tar.gz 形式の場合は、ターミナルで tar
を利用して以下のように解凍することが出来ます。
$ tar -zxvf <file_name>
ファイル内で独自に複雑な定義がなされていて、どのようにするべきか分からない場合、de-macro のような独自定義を開くツールを利用するのも 1 つの手でしょう。
★ 実例
実際に、以下の ×
を 2 つ重ねたような数学記号のコマンドを特定してみましょう。
-
Detexify を利用してフリーハンドで探す
- 期待している記号が出ませんでした
-
Shapecatcher を利用して Unicode 名を特定する
- 期待している記号 (⨳) が出ました
- Unicode name: Smash product
- Unicode hexadecimal: 0x2a33
- 期待している記号 (⨳) が出ました
-
unimath-symbols.pdf 内で “2a33” を検索する
-
\smashtimes
であることが分かりました
-
-
symbols-a4.pdf で “smashtimes” を検索する
- 2 つのパッケージでも利用できることが分かりました
- boisik
- stix
- 2 つのパッケージでも利用できることが分かりました
-
Google で "smash product" latex command を検索する
-
既存の
\times
を組み合わせるような記事 が出てきました - 今回はコマンド名を特定しているため、 "smashtimes" latex command と検索することも出来ます
-
既存の
余談
数式にはさまざまな記号が使われます。その中には、記号そのものや演算の意味を理解していても、LaTeX のコマンドを知らないものもあります。
誰かに訊くことで解決することもありますが、誰も知らないコマンドがまれによく出てきます。
本記事のような方法によって、名前の分からない数学記号のコマンドを特定する一助になれば幸いです。
紹介した方法の他にも、名前の分からない数学記号のコマンドを特定する方法があれば教えてください。
Shapecatcher を使って記号を Unicode から特定する場合、軽微な形状の違いは気にしないでください。あるいは、気になれば総当たりすることをお勧めします。
例えば、\hslash
と \hbar
や \emptyset
と \varnothing
等は Unicode 上では同じ文字コードとなっています。(フォントによっては、これらの組が代替字形として収録されています)
また奇妙なことですが、\Game
はフォントによって形状が大きく異なります。
U+2141 の Unicode 名は “turned sans-serif capital g” なので、縦軸線対称となっているのはおかしいです。(参考:縦軸線対称の場合は “reversed” となります)
しかしながら、AMS フォントでは縦軸線対称な “⅁” となっているため、これを踏襲する形になっているようです。
数学記号についてはある程度、特定に至ることが出来ますが、数学記号以外については特定することが出来ません。
たとえば、化学における標準状態をあらわす円に水平線を引いたような記号 (Plimsoll symbol) を調べるとします。
本記事の調べ方をすると、Unicode では Circle with Horizontal Bar “⦵”、unicode-math では \circlehbar
のみが該当します。
しかし、標準状態を表す記号は、\standardstate
(chemmacros, chemstyle)、\minuso
(stmaryrd)、\stst
(plimsoll) が一般的です。(LaTeX Stack Exchange)
また、天文学で利用するような星座シンボルに至っては unicode-math ですべてがサポートされていないため、類似記号さえ追うことは出来ません。(\astrosum
(U+02609
“☉”)、\female
(U+02640
“♀”)、\male
(U+02642
“♂”) のみがサポートされている)
ただし、これに関しては数が少なく Google 検索も容易なため、それほど問題にはならないと思われます。
-
特定の文字の Unicode category を知りたい場合は、compart.com を利用すると良いでしょう。compart.com 内で当該文字、あるいは
U+<x 以下の 4 桁>
を検索します。Category 項目に Math Symbol (Sm) の記述があれば、数学関連の記号になります。 ↩