TeX言語のトークンと値 その2:\noexpandと、挿入された\relax
我々はTeX言語を完全に理解しなければならない
我々はTeX言語を完全に理解するであろう
— David Hilbert
TeX言語をわからないまま書くのと、TeX言語を完全に理解した上で忘れるのは違いますからねぇ
— とある脚本家
前回はTeX言語について概略を説明したので、今回は堂々と(The TeXbookやTeX by Topicにも載らないような)重箱の隅をつつくことにする。記法、用語は基本的に前回に準じるが、面倒なので制御綴 \foo を表す際に四角で囲っていなかったり、文字トークンのカテゴリーコードを省略している場合がある。
一部、以前の TeXっぽいものを実装するにあたっての雑記 と内容が被っている。 続きを読む
TeX言語のトークンと値、字句解析から展開と実行まで
ここ最近TeX言語を実装しているので、TeX言語の仕組みについて得られた筆者の理解を吐き出しておく。 続きを読む
TeX Live 2018でWindows上のTeXworksが日本語を含むファイル名を扱えない話
タイトルの件である。(実際にはTeXworksは問題の核心に1ミリも関係しないので、TeXworksを使っていないあなたもこの記事を読み物として楽しむことができる。さあ読もう)
この記事を書いている6月現在、TeX Live Managerで最新版にアップデートすれば問題は解決するはずである。
この記事では、筆者がどのようにこの問題の原因を突き止めたか、順に書き連ねていく。なお、問題の発覚と原因究明は5月初めに行ったが、TeX Liveのアップデートで対策されるようになるのを待った結果記事の公開が6月になった(筆者がよくブログ記事を下書きのままほったらかしているのとは関係ない)。 続きを読む
GLMのマニュアルがヘボいので自分で書き始めた
GLM — OpenGL Mathematics というC++のライブラリーがある。これはOpenGLとかで使うようなベクトルや行列の型・関数を提供してくれる。
それはいいのだが、これ、ドキュメントがヘボい。
まず公式の Manual は、ライブラリーの使い方を説明してくれるが、個々のAPIには立ち入らない。
次にDoxygenで生成された API Documentation は、個々の関数の説明をしてくれるが、(ベクトルとか行列の)型の説明が欠けている。そして、「ソースコードに飛ぶ」をやっても関数の実装は見れない(.hppはDoxygenの対象に入っているが.inlは入っていない)。関数がどういう数式を基に実装しているのか、GLMのドキュメントからはわからないのである。
まあGLMはGLSL互換を謳っているので、GLSLを知っていれば(GLSLのドキュメントを読めば)細かい説明はなくても使えるだろうという考えもあるかもしれない。それはまあそうかもしれないが、GLSLにないGLMの拡張機能に関してはそういうわけにはいかない。
たとえば、四元数に関連した mat4_cast 関数のドキュメントには
GLM_FUNC_DECL mat<4, 4, T, Q> glm::mat4_cast ( tquat< T, Q > const & x )
Converts a quaternion to a 4 * 4 matrix.
Template Parameters
T Floating-point scalar types.
See also
GLM_GTC_quaternion
とあるが、果たしてこの説明から関数の動作を予想できる人がどれだけいるだろうか?
したがって、(コピペコーディングではなく)GLMをまともに使おうとしたらGitHubのソースコードをチマチマ眺める必要があるわけだが、そんなのは辛すぎる。というか、LaTeXでもMathJaxでもいいから、数式をふんだんに使ったGLMのマニュアルが欲しい…。
というわけで、自分で書いてみることにした。
https://miz-ar.info/glm-notes/
現段階ではまだ、クォータニオン(四元数)についてちょろっと書いた程度である。筆者の必要に応じて、徐々に拡充していきたい。
なんとなく英語で書いてみているが、文法とか色々怪しいのでその辺はご容赦願いたい。
glm-notes/ 以下のURLは今後変わるかもしれないので、リンクを貼るならトップページ(https://miz-ar.info/glm-notes/)にお願いしたい。
なお、C++の関数の型は(伝統的には)戻り値の型を先に書くが、自分の書いたドキュメントでは(筆者にとっての読みやすさのため)戻り値の型は後置とする。また、引数の型の const& も省く。
おまけ
GLMとは全く関係ないが、筆者のほしい物リストとほしい本リストを公開しておく。今月は筆者の誕生月である。
関連記事
「正しい\mathstyle」を求めて
Pandocでの定理環境を考える
数学の文書をPandocで処理させる場合、定理等の記述をどうするか考える必要がある。LaTeXには定理環境があるが、 MarkdownやHTMLにはそういうマークアップは用意されていない。 続きを読む
LaTeX数式 to MathML を考える その2
TeXっぽいものを実装するにあたっての雑記
LaTeX数式 to MathML を考える
モチベーション
Web で数式を表示するための仕様として、 MathML というものがある。ただ、 MathML はブラウザーの対応がイマイチなので、もっぱら MathJax や KaTeX などの JavaScript で書かれた代替手段を使うことが多いだろう。しかし、 EPUB の場合は標準的な数式記述方法は MathML なので、 LaTeX 数式を MathML に変換する必要がある。
そこで、「LaTeXで記述された数式をMathMLに変換する」ことを考える。
(尤も、 Kindle は MathML に対応していなかったり、EPUBリーダーで多く採用されていると思われる WebKit 系のレンダリングエンジンでどれほどの見た目になるのかという問題がある。しかし、それらの問題はおいておく。)
この記事では LaTeX で書かれた単体の数式を対象とし、 LaTeX 文書をまるごと HTML+MathML に変換することはここでは扱わない。また、可換図式など、 MathML が扱っていなさそうな対象は扱わない。 続きを読む
