GNU TeXmacs

GNU TeXmacs
開発者GNUプロジェクト
安定版リリース
2.1.4 [ 1 ] ウィキデータで編集する / 2024年3月11日
リポジトリ
書かれたC++
オペレーティング·システムLinuxWindowsmacOSUnix系[ 2 ]
プラットフォームx86x86-64
タイプワードプロセッサ
ライセンスGPL-3.0以降[ 3 ]
Webサイトwww.texmacs.org

GNU TeXmacs ( T e X macsと表記されることもある)は、 GNUプロジェクトの科学技術ワードプロセッサおよび組版コンポーネントである。元々はTeX機能を備えたGNU Emacsの派生版として開発されたが、TeXフォントを使用しながら、それらのプログラムとコードを共有していない。[ 4 ] Joris van der Hoevenと開発者グループによって開発・保守されている。 [ 5 ]このプログラムはWYSIWYGユーザーインターフェースを備えた構造化文書を生成する。ユーザーは新しい文書スタイルを作成できる。このエディタは、プロフェッショナルな外観の文書を公開するための高品質な組版アルゴリズムとTeXフォントおよびその他のフォントを提供する。

背景

構造化WYSIWYGエディタおよび文書作成システムとして、TeXmacsは、Interleaf(最初のリリース1985年)、Framemaker(1986年)、SoftQuad Author/Editor(1988年)、[ 6 ] Lilac、[ 7 ] Grif(1991年)、[ 8 ] Thot [ 9 ]などの以前の構造化文書エディタに似ています。また、論理的に表現された複雑な印刷構造の対話型編集に関する学術研究もありました。[ 10 ] [ 11 ]

2000年代と2010年代には、構造化テキストの対話型編集への関心が高まり、人文科学の研究者向けのプログラムの開発が促進されました。その一例がCWRC-Writerです。これは、「WYSIWYGに近い編集と、マークアップの意味のある視覚的表現による学術テキストの充実」を備えたビジュアルXMLエディターです。[ 12 ]

編集と文書作成の世界の別の側面では、 LaTeXで記述された構造化テキストを視覚的に操作するためのプログラムがLyXです。これは WYSIWYG 編集ではなく、構造の視覚的表現 ( WYSIWYM )を目的としています。

特徴

数式とイタリックフォントが表示されたスクリーンショット。カーソルがある最も内側の環境(数式環境)はシアン色のフォーカスフレームで囲まれ、もう1つのアクティブなタグ(定理環境)は薄いグレーのボックスで囲まれています。

多くのWYSIWYGエディタ ( Microsoft Wordなど)と同様に、作成者は画面上で文書を操作し、同様に見える紙のコピーを印刷します。TeXmacs の目標は、WYSIWYG エディタを提供しながらも、美しく整えられた組版結果を持つ正しく構造化された文書の作成を可能にすることです。その名前にもかかわらず、TeXmacs はTeXLaTeXのフロントエンドではありません。[ 13 ]しかし、TeXmacs 文書はTeXまたは LaTeX に変換できます。LaTeX も (ある程度) インポート可能で、HTML、Scheme、Verbatim、XMLからのインポートとエクスポートが提供されています。[ 14 ] HTML エクスポートは CSS でスタイル設定できます (バージョン 1.99.14 以降)。MathML用のコンバータもあり、TeXmacs は印刷用にPDFPostScriptを出力できます。 [ 15 ]

TeXmacsは数式、表、画像、相互参照引用を扱うことができます。Maxima 、FriCASSageMathといった多くコンピュータ代数システムのフロントエンドとして使用でき、それらの出力の一部をTeXmacsの組版に組み込むことができます。また、TeXmacsはプログラムのカスタマイズや拡張機能の作成のために、 Guileと呼ばれるScheme拡張言語もサポートしています。

プレゼンテーションモードと小型の製図エディタも搭載しており、スプレッドシート機能を備えた完全な科学オフィススイートへと進化させる計画があります。スプレッドシートの実装はバージョン1.99.12から開始されており、TeXmacsのスプレッドシートでは、プラグイン(PythonやMaximaなど)を利用してセルの値を計算できます。

TeXmacsは現在、 LinuxFreeBSDCygwinHaikumacOSを含むほとんどのUnixベースアーキテクチャで動作します。Cygwin版に加え、Microsoft Windows向けのネイティブポートも利用可能です。

TeXmacsエディタ

TeXmacsエディタでは、文書の構造と外観が同時に表現されます。[ 16 ]文書の論理単位をネストされたフォーカスフレームで囲む​​ことで、カーソルの動きに応じて色付きの手がかりが表示され、構造がユーザーにわかりやすくなります。[ 17 ]カーソル付近の構造の詳細な説明は、エディタウィンドウのフッターに表示され、左右の矢印キーで細かく選択できます。[ 16 ]エディタでは、テキストモードとソースモードの編集を切り替えることができ、マクロの作成もサポートされています。ソースエディタは構文を認識します[ 18 ]

数学的タイポグラフィ

TeXmacsは、キーボードの押下シーケンスを記号にマッピングすることで、数式の入力を容易にします。例えば、記号は と入力することで入力できます。 {\displaystyle \Rightarrow}=>

一部の記号にはこのような表記がありません(例えば)。これらはキーを使って入力できます(例えば、 のキーは です)。このキーボード入力は、ポイントアンドクリックメニューを提供することが多い他の数式エディタとは異なります。[ 19 ]{\displaystyle \Uparrow}Tab ↹{\displaystyle \Uparrow}=>Tab ↹Tab ↹

バッチ処理

TeXmacsをバッチプロセッサLaTeXの通常の動作モード)として使うことも可能です。その場合、 Xの仮想フレームバッファを使用することで、処理中に不要なウィンドウが開くのを回避できます。例えば、以下のコマンドを 実行します。

$ xvfb-run texmacs --convert article.tm article.pdf --quit 

TeXmacs ドキュメント「article.tm」から PDFファイル「article.pdf」を生成します。

TeXmacs形式

すべてのTeXmacs文書あるいは文書フラグメントはツリーとして考えることができます(ツリーの概念はSGMLマークアップ言語にも存在し、TexmacsフォーマットはSGMLに似ています)。例えば、以下のツリーは

式を表す

×+y+12+y+z{\displaystyle x+y+{\frac {1}{2}}+{\sqrt {y+z}}}

(ここでは、Wikipedia で使用される TeX マークアップを使用して記述されています)。これは、TeXmacs 独自のタイプセット エンジンによってタイプセット式に変換され、ここでは画像として挿入されています。

TeXmacsツリーは、TeXmacsファイル内では文字列として表現され、TeXmacsエディタ内では文書のタイプセット表現とその対話的な動作として表現されます。[ 20 ] TeXmacsツリーの画面上の表現では、カーソルの動きがツリー内の動きを表します。ディスク上では、TeXmacs形式の表現は3種類存在します。ネイティブ表現、XML表現、そしてScheme S式による表現です。Scheme表現はSchemeプログラムとのインターフェースに便利です。

組版と文書管理

組版処理はTeXmacsツリーをボックスに変換する。[ 21 ] TeXmacsツリーの評価は、プリミティブの縮約、つまりマクロ適用の評価によって行われる。組版プリミティブは非常に高速に設計されており、エディタに組み込まれている。プリミティブの多くは、組み込みの環境変数によってレンダリングをカスタマイズできる。スタイルシート言語では、組み込みプリミティブの上にマクロとして新しいプリミティブを記述することができる。

TeXmacs は、「改行」用のグローバル アルゴリズム ( TeX のアルゴリズムに類似) を使用し、さらに「ページ区切り」用のグローバル アルゴリズムを使用します。ページ区切りアルゴリズムでは、浮動オブジェクト (図、表、脚注) と複数列のコンテンツが考慮されます。

文書管理

ドキュメントはネイティブマクロシステムとGuile-Schemeを介して制御できます。エディターのメニューやキーバインドをカスタマイズしたり、ドキュメントツリーをプログラム的に操作したりすることも可能です。

TeXmacsマクロ

TeXmacsのマクロは、TeX/LaTeXと同様に構造化された入力手段を提供し、即座にタイプセットされ、同時に編集可能な入力フィールドを維持します。マクロはソースコードで記述されますが、WYSIWYGエディタは視覚的な構造を構文に変換することでマクロの作成を支援します。[ 22 ]

Schemeによる文書管理

SchemeはGNU Guileを介してTeXmacsに組み込まれており、エディタ自体は次のように制御できる。[ 21 ]メニューとキーバインドをカスタマイズできる。SchemeコマンドはTeXmacs文書内で対話的に呼び出すことができ、コマンドラインから、およびTeXmacsマクロ内から呼び出すことができる。TeXmacsツリーは、さまざまな形式でSchemeに渡すことができる。「パッシブツリー」(リスト上の標準Schemeルーチンを使用してコンテンツを直接操作するのに便利)、「アクティブツリー」(グローバルドキュメントツリー内のツリーの位置を追跡し、プログラムでドキュメントを変更するために使用できる)、および「ハイブリッド」表現である。

グラフィック

グラフィックスオブジェクトもTeXmacs形式の一部であり、Schemeからプログラム的に操作できます。TeXmacs Schemeセッションで生成されたTeXmacsグラフィックスの例と、その画像を生成したセッションを以下に示します。Schemeセッションでプログラム的に生成された画像は、ドキュメントにツリーとして挿入されるため、内部描画エディタを使用して編集することもできます。また、SchemeスクリプトはexternTeXmacsマクロを通じて実行することもできます。この場合、ドキュメントではタイプセットされたマテリアルのみが使用可能であり、直接編集することはできません(変更はSchemeコード内で行う必要があります)。

Scheme ] ( define pi ( acos -1 )) ;; 2 つの座標を使用して TeXmacs グラフィック形式で点を定義する関数Scheme ] ( define ( pt x y ) ' ( point , ( number->string x ) , ( number->string y ))) ;;ポイントを設定しますScheme ] ( define xC ( - ( * 2 ( cos ( / pi 3 ))))) Scheme ] ( define yC ( * 2 ( sin ( / pi 3 )))) Scheme ] ( define pA ( pt -2 0 )) Scheme ] ( define pB ( pt 2 0 )) Scheme ] ( define pC ( pt xC yC )) Scheme ] ( define tA ( pt -2.3 -0.5 )) Scheme ] ( define tB ( pt 2.1 -0.5 )) Scheme ] ( define tC ( pt ( - xC 0.2 ) ( + yC 0.2 ))) ;;グラフィックスを生成するScheme ] ( stree->tree ' ( "gr-geometry" (タプル"geometry" "400px" "300px" "center" ) ( graphics ( "color" " blue " ( text-at ( TeXmacs ) , ( pt -0.55 -0.75 ))) ( "color" " black" ( arc , pA , pC ,pB )) ( 「色」「黒」(pA pB )) ( "色"が"赤"の場合(斜線pA pB pC )) ( "色"が"黒"の場合(テキストアット"A" tA )) ( "色"が"黒"の場合(テキストアット"B" tB )) ( "色"が"黒"の場合(テキストアット"C" tC )))))

サポートされているバックエンド

MaximaのTeXmacsセッション

TeXmacs には多くのテクノロジーをサポートするバックエンドがあります。

編集可能なプラグイン出力を埋め込む

プラグインの出力は、「実行可能スイッチ」を使用してTeXmacs文書内に埋め込むことができます。[ 23 ]この方法では、システムへの特定の入力とそれに対応する出力を切り替えることができ、文書にシームレスに溶け込みます。

参照

参考文献

  1. ^ヨリス・ファン・デル・ホーフェン (2024 年 4 月 2 日)。「TeXmacs 2.1.4」。2024 年4 月 2 日に取得
  2. ^ 「TeXmacsのダウンロードとインストール(FSF GNUプロジェクト)」 Texmacs.org 。 2010年5月29日閲覧
  3. ^ 「GNU一般公衆利用許諾書」 . Texmacs.org . 2010年12月27日閲覧
  4. ^よくある質問(FSF GNU プロジェクト)
  5. ^ 「GNU TeXmacsの作者」 。 2019年9月23日閲覧
  6. ^ブラウン、スーザン (2015年3月1日). 「編集者の矯正」 .学際科学レビュー. 40 (1): 78– 94. Bibcode : 2015ISRv...40...78B . doi : 10.1179/0308018814Z.000000000106 . ISSN 0308-0188 . S2CID 144086542 .  
  7. ^ Brooks, KP (1991年6月). 「Lilac: 2ビュー文書エディタ」 . Computer . 24 (6): 7–19 . Bibcode : 1991Compr..24f...7B . doi : 10.1109/2.86832 . ISSN 0018-9162 . S2CID 2239112 .  
  8. ^ 「GriF SGMLエディタ」 。 2020年11月27日閲覧
  9. ^ 「Thot構造化文書エディタ」 。 2020年11月26日閲覧
  10. ^構造化文書モデル、クレメント・シン・タイイン、博士論文、インペリアル・カレッジ・ロンドン、コンピューティング学部、1989年
  11. ^手続き型表現を用いたグラフィカルオブジェクトの編集」、ポール・アセンテ博士論文、スタンフォード大学コンピュータサイエンス学部(1987年)
  12. ^ CWRC-Writer: ブラウザ内XMLエディタ、G. Rockwell他、Digital Humanities 2012 Conference
  13. ^ van der Hoeven, Joris (2006-08-21). 「GNU TeXmacs: 科学編集プラットフォーム」(PDF) . www.texmacs.org . pp. 7f . 2016-01-16閲覧. TeXmacs は LaTeX のフロントエンドではないため、LaTeX の(かなり大きな)サブ言語に対してのみ正しい変換を保証できます。
  14. ^ファン・デル・ホーフェン、ジョリス;ザイドル、アンドレアス (2011)。「よくある質問」www.texmacs.org 2016 年 1 月 16 日に取得
  15. ^ファン デル ホーフェン、ジョリス (2012)。「GNU TeXmacs へようこそ」www.texmacs.org 2016 年 1 月 16 日に取得
  16. ^ a b van der Hoeven, Joris. 「GNU TeXmacs、フリーで構造化されたWYSIWYGのテクニカルテキストエディタ」(PDF) . Cahiers Gutenberg . 39– 40: 39– 50.
  17. ^ 「TeXmacsマニュアル 2.2 構造化テキストの入力」(PDF) 。 2020年11月20日閲覧
  18. ^ 「GNU TEXMACS ユーザーマニュアル; 11.2. スタイルファイルとパッケージのレンダリング」(PDF) . 2020年11月27日閲覧
  19. ^ユーザーマニュアル「 数学記号の入力 」を参照してください。
  20. ^ファン・デル・ホーフェン、ジョリス。「TeXmacs フォーマット」2019年8月10日に取得
  21. ^ a b M. Gubinelli、「The Guile in TeXmacs」、ストラスブールで開催された Guile and Guix Days でのプレゼンテーション、2019 年 6 月 21 ~ 22 日、pdf 2019 年 9 月 21 日閲覧。
  22. ^ 「TeXmacsマニュアル; 11.1 シンプルなスタイルパッケージの作成」(PDF) 。 2020年11月27日閲覧
  23. ^ 「TeXmacsユーザーマニュアル、セクション「プレゼンテーションのトラバーサル」」PDF) 。 2020年11月10日閲覧