Scribble at 2022-10-14 12:10:57 Last modified: 2022-10-14 12:44:42

添付画像

以前にもご紹介したかもしれないが、いま「シャミアの “How to Share a Secret” を読む」という論説を書いていて、秘密分散法の原典(の一つ)とも言えるアディ・シャミアが書いた2ページ足らずの論文を丁寧に解説しながら、秘密分散というアイデアについて理解し論評することが、その論説の目的だ。で、その論説を書くにあたっては数式がどうしても出てくるし、数式を使う方が正確な説明をしやすいから、ウェブ・ページに数式を表示する方法として MathJax を導入するかどうか検討していた。

ただ、僕は過去に当サイトで MathJax を短いあいだだけ使ったことがあり、そのときにあまりの挙動の遅さだけでなく、ウェブ・サーバにアップロードしなくてはいけない膨大な数のファイルに辟易させられてしまったという経験がある。そして、いまだに幾つかのブログでは MathJax の見栄え以外のパフォーマンスを問題視している人がいて、表示する内容が修正以外の事情で変わることがないなら LaTeX から SVG に変換したテキストをソースに貼り付けるツールを使う方がいいという手法にも魅力を感じる。

あと、MathJax のサイトへアクセスするとわかることだが、MathJax の開発者は徹底してライブラリを CDN から読み込むか Node.js のようなサーバ・サイドのライブラリとして高速に動作させることを、なかば強要しているという印象がある。どこにもライブラリ本体を直にダウンロードするためのリンクが記載されていないからだ(サーバでホストするという項目のドキュメントには、npm コマンドで自動インストールする手順しか書かれていない)。ということは、いかに開発側も MathJax の読み込みが遅く、動作も重いか分かっているということになる。開発している当事者がパフォーマンスに重大な問題があると知りながら開発を続け、提供し続けているというのは、はっきり言って自己欺瞞もいいところであろう。いかにエルゼビアをはじめとする多くの学術雑誌やドキュメントのサイトが MathJax をサポートしているといえども、そういうスタンスの開発者たちに付き合うのは、僕は科学哲学者としてではなくプロの技術者、あるいは20年以上にわたってウェブサイトを運営してきた者として困惑を覚える。

ということで、ひとまず KaTeX を $( \forall x ) . fx \equiv gx$ のように導入してみている。そもそも、数式で記述するアルファベットを em タグでイタリックにしていたのはセマンティクスという点では間違いなので、こちらの方がよい。それに、TeX の文法を使っていればソースのままでも(解読できる人には)意味が通るので、SVG の膨大な文字列を見せなくても済む。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook