法律の必要条件(最低限)の多様性(複雑さ)

法律の必要条件(最低限)の多様性(複雑さ)

最近、LaTeXが(おそらく)追い抜かれるのではないかと不安になってきました。タイプストシンプルさのためです。この答えLaTeX よりも Typst の方が優れている点をいくつか示します。

私はクラスメートの一人と、なぜ今でも Typst ではなく LaTeX を選ぶのかについて議論してきました。

  • LaTeXの組版品質は優れている(Typst は急速に追いついていますが)
  • 私はティが大好きですZ、Typstには対応するものがない(実際は今チェコ共和国
  • Typst の CJK サポートは貧弱ですが、XeLaTeX と LuaLaTeX は CJK フォントを適切に処理します。(すぐに修正されると思いますが)
  • Typstの数学はひどい、LaTeXがすでに標準を確立している
  • 実際、私はLaTeXに慣れているので、Typstに切り替えたくありません:-(

しかし、私はいくつかの事実に衝撃を受けました。

  • LaTeXのマクロは実際のプログラミングほど便利ではない問題を軽減する LaTeX3 があるにもかかわらずです。
  • LaTeX文書のコンパイルは遅くなることがあるRust を使用した Typst と比較すると、
  • Typstの構文が簡単になると、人々はLaTeXではなくTypstを学ぶ傾向が強くなるだろう。LaTeX には多くのパッケージがあり (中には競合するものもある)、学習者にとっては非常に混乱を招く可能性があります。

私はLaTeXコミュニティ内で行われたいくつかの変更を見てきました。地殻変動Rust を使用して LaTeX を書き直す。

では、TeX/LaTeX という美しい言語を今後も繁栄させ続けるために、TeX コミュニティはどのような計画を立てているのでしょうか? 私はもっと学びたいし、貢献したいと思っています。

答え1

まあ、最初は「簡単」で「速い」という主張には警戒していました。10年前、私はWordとLaTeXの違いについての質問に答えました。

はい、Word を使えば、ほとんどの通常の操作を問題なく (場合によってはより速く、より簡単に) 実行できます。しかし、少し「通常とは異なる操作」についてはどうでしょうか。

typst は「モダン」で、これは若いという意味です。 最初は、脚注、フロート、ブックマーク、見開きページレイアウト、フォームフィールド、PDF コメントなどのごく普通の機能さえも実行できませんでした。 現在ではそれらのいくつかが実装されていますが、LaTeX やサポートパッケージにある多くの設定オプションがまだ欠けています。 現在の例としては、\pagereftypst で のような基本的な機能を実現する方法に関する次のディスカッションが挙げられます。https://github.com/typst/typst/issues/2873

覚えやすい構文で簡単なことを行うのは簡単ですし、# my chapter見出しを作成するための簡単で便利な方法であることには私もまったく同感です (ただし、LaTeX 構文も\chapter{my chapter}長くはありません)。しかし、より複雑なものが必要な場合はどうなるかが問題です。番号なしセクション用の直感的な構文はありますか? 目次またはヘッダーのエントリをどのように適応させることができますか? これは組み込みですか、それとも、上記の問題の pageref のように 10 行以上のコードを探してコピーする必要がありますか? typst は、より成熟して、より洗練されたドキュメント機能に関する機能要求が寄せられても、使いやすいままでしょうか?

2 番目に、typst のような「最新」のシステムが最初から PDF アクセシビリティ機能をサポートしていないことに私は非常に困惑しています。アクセシビリティは個人的な文書では問題にならないかもしれませんが、何らかの組織のために文書を作成する人は、すぐにこの問題について考慮する必要があります。typst の作者はそれを知っていて、タグ付き PDF には構造データが必要であることも知っていましたが、それにもかかわらず、コンパイラーはそれを失うように記述しました。"現在、フレームにはロケーターしか含まれておらず、ドキュメントの構造への完全な逆マッピングは含まれていないため、エクスポーターはこの構造情報を書き込むことができません。" 彼らは請求彼らは意味情報がかなり豊富にあるため、良い位置にあるしかし、LaTeX には 30 年前から利用可能なセマンティック情報があり、アクセス可能なタグ付き PDF を簡単に作成できるわけではありません。

もし私がタイプセッティング エンジンを一から作成することを検討していたら (大規模なシステムは解体して再構築するのではなく、進化によって変更されるべきだと信じているため、私はそうはしません。都市を一から再設計する間、すべての住民を移動させることはできません)、コア設計でアクセシビリティを最初から考慮し、後から追加しないようにしていたでしょう。彼らがこの機会を逃したことで、typst は私の目には非常に時代遅れに見えます。

答え2

私も LaTeX の代替品を書いている一人として、将来 LaTeX が何かに取って代わられるのは良いことだと思っています。TeX マクロ言語でのプログラミングは面倒ですし、下位互換性にこだわるということは、進歩が遅くなるか不可能になることを意味します (下位互換性を壊すためにメジャー バージョン番号を利用するのではなく、LaTeX3 を進化する LaTeX2e に組み込むのは大きな間違いだったと今でも思っています)。

私の予想では、もし LaTeX の後継が実現するなら、LaTeX のマークアップは保持されるものの、マクロベースのプログラミング モデルは使用されないだろう。作者は、ほとんど摩擦なく移行できる必要がある。脆弱な LaTeX マクロ システムの消滅を嘆く人はいないだろう。TeX がチューリング完全だからといって、それが最善の方法である、あるいは良い方法であるということにはならない。

私が期待するのは、パッケージとドキュメント クラス (または同等のもの) のバージョン管理です。そうすれば、CTAN が 3 つの依存関係の深いパッケージを更新し、ドキュメントがコンパイルされなくなったときに、誰も驚かなくなります。また、現代のコンピューティング システムでは、参照や引用などの管理に複数回の実行が必要な理由はありません。単一のアプリケーションで、LaTeX、BibTeX、makeindex などの機能を処理できます。

また、例えば、

\documentclass{amsart}

より良いアプローチは、次のようなことだったかもしれない

\DocumentStructure{article}
\DocumentFormat{ams}

あるいはもっと良いのは:

\DocumentStructure{article:1.0}
\DocumentFormat{ams:ams:1.0}

バージョン番号だけでなく名前空間も存在するため、互いのファイル名が衝突する心配がなくなります。

最後に、ローカル コピーが存在しない場合は、ドキュメントへの外部依存関係が自動的にダウンロードされ、コア ディストリビューションのサイズがそれほど小さくならないようにすることを提案します。

答え3

typst の最大の欠点は、 と互換性がないことです。これは重大な設計ミスだと思います。大量の既存のドキュメント、アーカイブなどをどうすればいいのでしょうか。すべてを捨てて、最初からやり直すのでしょうか。私は LaTeX が誕生して以来LaTeXずっと使っています。つまり、もう 40 年近くになります。改善のマイルストーンは、Laserjet (すぐに適応)、、、そして今ではレイヤーの使用pdfTeXでしbabell3LuaTeX、、、。PGF/TikzBiblaTeXmicrotype

TeX/LaTeX のマークアップ言語は、おそらく私たちがまだ使用している旧世代の多くよりも長く存続するでしょう。Dragon の本を読んだ人なら誰でも言うように、周囲の文字の海からコマンドとパラメータを拾い上げるコンパイラーを思いつくのは簡単ではありません。

改善できるでしょうか? はい! 私の意見では、改善できる部分は次のとおりです。

  1. ウェブブラウザや IDE と同様に、フォントに存在しないグリフを自動的に置き換えます。これは現在、フォールバックフォントを使用した LuaTeX/LuaLaTeX で実現できますが、非常に遅くなります。
  2. プログラム可能な出力ルーチン。デフォルトは TeX エンジン自体に組み込まれる必要があります。
  3. パッケージ内の競合に関する問題の多くは、 に起因しますhyperef。パッケージに依存するのではなく、作成者がリンクをより簡単に使用できるように、新しいメカニズムを設計する必要があります。基本クラスを変更してこれを組み込むことができるため、hyperref でセクション化および参照コマンドをすべて再定義する必要はありません。これをフォーマットに組み込みます。
  4. インド系および東アジア系の文書の処理は、haffbuz および LuaTeX への貢献によって改善できます。言語を変更するためにパッケージをロードする必要はありません。
  5. 仮想フォントの作成を改善できます。

さまざまなシステムを試したり開発したりしている皆さん、ありがとうございます。競争は良いことです。幸運を祈ります。先日、統計を調べていたところ、l3 と LuaTeX の間で、実行時に読み込まれるものに約 130,000 loc が追加されていることに気付きました。元の TeX には約 20,000 loc ありました。問題のある領域を処理するためにエンジン自体を改善する努力は、すべてを最初から書き直すよりも簡単で役立つかもしれません。

答え4

Latex コミュニティからの具体的な計画を知らなくても、anticipate future development2つの科学的発見をある程度再利用することはできます。LatexTypst

これにより、私たちは具体的な計画や推測を見るのではなく、より健全でグローバルな視点を持つようになります。

法律の必要条件(最低限)の多様性(複雑さ)

これはW.ロス・アシュビー、サイバネティクスの創始者の一人である。彼は、私の言葉を一部引用しながら、次のように述べた。

  • 複雑さに対処する
  • レギュレータ/コントローラは少なくとも同じくらい複雑である必要があります。
  • 規制当局が複雑でない場合、規制は失敗する
  • 特に騒音(妨害)が伴う場合。

アシュビーの例

彼の「サイバネティクス入門」1956年彼は温度コントローラを使用して、基本的な方程式と考慮事項を説明します。

基本的には次の通りです:

  • 環境温度の変動が正常範囲内であれば、コントローラは正常に動作します。
  • しかし、気象条件が非常に乱れると、変化を補正することができないため、失敗します。

例えばここ(簡略化された章)、 またはこちら(VarietyのWikipedia)またはここで(上記引用の彼の著書の中で)

品種-Wikipedia

私のイラスト

単純な鉄道を考えてみましょう。線路が 1 本、列車が 1 本、問題ありません。列車は一日中行き来します。

ますます増大する妨害 (D+) に応じて、複雑さ (C+) を段階的に増やしていきましょう。

D+: 同じ線路に 2 台目の列車を走らせます。列車同士が干渉し合うため、問題が発生します。解決策としては、システムの複雑さを増やす必要があります。

C+どの電車がいつどこにどのくらいの頻度で行くかなどを規定する時刻表を導入しましょう。これは多くの状況で問題ないかもしれません。

D+両方の電車に乗ることが一般的になり、一方の端からもう一方の端まで行くだけでも頻繁に電車を乗り換えなければならないことに人々はイライラし始めています。

C+: 両方の列車が行き来できるように、レールスイッチを追加しましょう。時刻表を調整しましょう。

などなど。私たちは皆、今日の鉄道システムがどれほど複雑になっているかを知っています。たとえば、

  • 多くの場合、1方向につき少なくとも2つのトラックがある
  • 特定の駅またはその近くに多くの線路がある
  • さまざまな列車を提供する
  • あらゆる種類の信号を使用する
  • さまざまな種類の踏切を提供する
  • 「外で何が起こっているか」のデジタルツインを持つ

簡略化する経済統制者がよくやるように、誰かが代償を払うことになる。(デッドエンド)

発明する、よりシンプルかつより複雑になります。(革新)

後者は発明者の研究の要約であり、(意図)「科学としてのイノベーション」ゲンリヒ・アルトシューラー(TRIZ、ロシア語の頭字語、私の意味による翻訳:発明的状況を解決するための実践的な理論)

これは Latex と Typst にとって何を意味するのでしょうか?

誰もが知っているように、Latex複雑です。あるいはアシュビーの見解では、多くの多様性や混乱に対処しています。高度なタイプセッティングに成熟しました...そしてまだあります。こちらをご覧ください

その開発自体がTypstまだいわゆるの段階にありますinfancy state。それはある概念を念頭に置いて始まり、まだ限られた数の組版結果を提供しましたが、他の技術システムと同様に、さらに進化していきます。

  • 矛盾から(roadblock, trade-off: this EXOR that)
  • ソリューションを介して(system change, exact solution: this AND that)
  • 矛盾する(next roadblock)

多くの人が述べているように、Typstよりシンプルであり、そのように意図されています。つまり、次のようになります。

  • Typstより複雑ではないLatex
  • Latex今よりも多くの混乱/多様性/要求に対処できTypst、おそらく長期間にわたって対処できるだろう
  • が提供する多様性に追いつくためにはLatexTypstエコシステム(構文、コンパイラ、パッケージ、ライブラリなど)がより複雑になり、より多くの要件/多様性を吸収できなければなりません。

したがって、結果としておそらく次のようになるでしょう。

  • 翻訳者を見つけやすくなるLatex2Typst(多様性がなくなる)
  • 翻訳者を見つけるのが困難またはほぼ不可能であるTypst2Latex(多様性/複雑さが増す)(LaTeXファイル形式で保存するだけの場合とは対照的)

私の結論と見積もり(将来達成された)

近い将来、私Typstはいその他アークアップ言語、Latexタイプセッティングは引き続きサポートされます...

2 つの間のリンク (上記ではトランスレータと呼びます) は、いくつか存在したり消えたりすることがあります。

には有用な(かなり大きな)サブセットが存在する可能性がありTypst、それは によって吸収(提供)される可能性がありますLatex

その逆の場合、少なくともタイプセットの複雑さは抑えられますが、おそらく使用可能な状態には到達しないでしょう。

関連情報