ここ最近TeX言語を実装しているので、TeX言語の仕組みについて得られた筆者の理解を吐き出しておく。 続きを読む
投稿者「mod_poppo」のアーカイブ
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 が扱っていなさそうな対象は扱わない。 続きを読む
LaTeX での「割り切る」記号
数学では「a が b を割り切る」(a が b の約数である・ b が a の倍数である・整除関係)という場合に縦棒を使って a | b と書く。これを LaTeX で書くときにどうしたら良いか。 続きを読む
wxWidgets をビルドする 2018年新春編
去る2月に、wxWidgets の開発版である 3.1.1 がリリースされた。前回の開発版である wxWidgets 3.1.0 のリリースからは2年ぐらい経っている。
2016年に wxWidgets をビルドする という記事を書いたが、2年も経つとビルドシステムにも色々と変化が生じている。この記事では、3.1.1リリース直後の現在(2018年3月)における、 wxWidgets の最新の開発版(3.1.1 または Git の master ブランチ)のビルド方法をまとめてみる。
(筆者が記事を書くのにもたついている間に、最新の安定版である 3.0.4 もリリースされたが、この記事はもっぱら最新の開発版を対象とする。) 続きを読む