作成者別アーカイブ: 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とは全く関係ないが、筆者のほしい物リストほしい本リストを公開しておく。今月は筆者の誕生月である。

関連記事

OpenGL の投影行列

TeXっぽいものを実装するにあたっての雑記

もしもそれがTeX言語を受理し、TeXのように動くのであれば、それは紛れもないクソである — 詠み人知らず

前回の記事に書いたようなLaTeX数式をMathMLに変換するやつを、自分で実装したい。そのためには、マクロの展開など、TeXの挙動を真似ることが必要である。

この記事では、TeXのようなものを作るにあたって感じるTeXのアレな点や、気になる拡張機能を挙げていきたい。

全体的に、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 が扱っていなさそうな対象は扱わない。 続きを読む

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 もリリースされたが、この記事はもっぱら最新の開発版を対象とする。) 続きを読む