GNU TeXmacs
| GNU TeXmacs | |
|---|---|
Windows 11で動作するTeXmacs 2.1.1 | |
| 開発者 | GNUプロジェクト |
| 安定版リリース | 2.1.4 [ 1 ] |
| 言語 | C++ |
| オペレーティングシステム | Linux、Windows、macOS、Unix系[ 2 ] |
| プラットフォーム | x86、x86-64 |
| タイプ | ワードプロセッサ |
| ライセンス | GPL 3.0以降[ 3 ] |
| ウェブサイト | 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 )を目的としています。
機能

多くのWYSIWYGエディタ ( Microsoft Wordなど)と同様に、作成者は画面上で文書を操作し、同様に見える紙のコピーを印刷します。TeXmacs の目標は、WYSIWYG エディタを提供しながらも、美しく整えられた組版結果を持つ正しく構造化された文書の作成を可能にすることです。その名前にもかかわらず、TeXmacs はTeXやLaTeXのフロントエンドではありません。[ 13 ]しかし、TeXmacs 文書はTeXまたは LaTeX に変換できます。LaTeX も (ある程度) インポート可能で、HTML、Scheme、Verbatim、XMLからのインポートとエクスポートが提供されています。[ 14 ] HTML エクスポートは CSS でスタイル設定できます (バージョン 1.99.14 以降)。MathML用のコンバータもあり、TeXmacs は印刷用にPDFとPostScriptを出力できます。 [ 15 ]
TeXmacsは数式、表、画像、相互参照、引用を扱うことができます。Maxima 、FriCAS、SageMathといった多くのコンピュータ代数システムのフロントエンドとして使用でき、それらの出力の一部をTeXmacsの組版に組み込むことができます。また、TeXmacsはプログラムのカスタマイズや拡張機能の作成のために、 Guileと呼ばれるScheme拡張言語もサポートしています。
プレゼンテーションモードと小型の製図エディタも搭載しており、スプレッドシート機能を備えた完全な科学オフィススイートへと進化させる計画があります。スプレッドシートの実装はバージョン1.99.12から開始されており、TeXmacsのスプレッドシートでは、プラグイン(PythonやMaximaなど)を利用してセルの値を計算できます。
TeXmacsは現在、 Linux、FreeBSD、Cygwin、Haiku、macOSを含むほとんどのUnixベースアーキテクチャで動作します。Cygwin版に加え、Microsoft Windows向けのネイティブポートも利用可能です。
TeXmacsエディタ
TeXmacsエディタでは、文書の構造と外観が同時に表現されます。[ 16 ]文書の論理単位を、カーソルの動きに応じて表示される色の手がかりを持つネストされたフォーカスフレームで囲むことで、構造がユーザーに明確になります。[ 17 ]カーソル付近の構造の詳細な説明は、エディタウィンドウのフッターに表示され、左右の矢印キーで細かく選択できます。[ 16 ]エディタでは、テキストモードとソースモードの編集を切り替えることができ、マクロの作成もサポートされています。ソースエディタは構文を認識します。[ 18 ]
数学タイポグラフィ
TeXmacsは、キーボードの押下順序を記号にマッピングすることで、数式の入力を容易にします。 例えば、記号はと入力することで入力できます=>
一部の記号にはこのような表記がありません(例えば)。これらはキーを使って入力できます(例えば、 のキーは です)。このキーボード入力は、ポイントアンドクリックメニューを提供することが多い他の数式エディタとは異なります。[ 19 ]Tab ↹=>Tab ↹Tab ↹
バッチ処理
TeXmacsをバッチプロセッサ(LaTeXの通常の動作モード)として使用し、X仮想フレームバッファを使用して処理中に不要なウィンドウを開かないようにすることができます。例えば、次のコマンドは
$ xvfb-run texmacs --convert article.tm article.pdf --quit TeXmacs ドキュメント「article.tm」から PDFファイル「article.pdf」を生成します。
TeXmacs形式
すべてのTeXmacs文書または文書フラグメントはツリーとして考えることができます(ツリーの概念はSGMLマークアップ言語にも存在し、Texmacs形式はこれに似ています)。例えば、ツリー
式を表します
(ここでは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 )))))サポートされているバックエンド

TeXmacsには、多くのテクノロジーをサポートするバックエンドがあります
- プログラミング言語: CLISP、CMUCL、Python、QCL、R、Shell
- コンピュータ代数システム: Axiom、Giac、Macaulay 2、Mathematica、Maxima、MuPAD、PARI/GP、Reduce、SageMath、Yacas
- 数値行列システム: GNU Octave、Matlab、Scilab
- プロットパッケージ: gnuplot、Graphviz、XYpic、Mathemagix
- その他: DraTeX、Eukleides、GTybalt、Lush、Juris-M、Zotero
編集可能なプラグイン出力を埋め込む
プラグインの出力は、「実行可能スイッチ」を使用してTeXmacs文書内に埋め込むことができます。[ 23 ]この方法では、システムへの特定の入力とそれに対応する出力を切り替えることができ、文書にシームレスに溶け込みます。
参照
参考文献
- ^ Joris van der Hoeven (2024年4月2日). "TeXmacs 2.1.4" . 2024年4月2日閲覧
- ^ 「TeXmacsのダウンロードとインストール(FSF GNUプロジェクト)」 Texmacs.org 。 2010年5月29日閲覧。
- ^ 「GNU一般公衆利用許諾書」 . Texmacs.org . 2010年12月27日閲覧。
- ^よくある質問(FSF GNU プロジェクト)
- ^ 「GNU TeXmacsの作者」 。 2019年9月23日閲覧。
- ^ブラウン、スーザン (2015年3月1日). 「編集者の矯正」 .学際科学レビュー. 40 (1): 78– 94. Bibcode : 2015ISRv...40...78B . doi : 10.1179/0308018814Z.000000000106 . ISSN 0308-0188 . S2CID 144086542 .
- ^ 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 .
- ^ 「GriF SGMLエディタ」 。 2020年11月27日閲覧。
- ^ 「Thot構造化文書エディタ」 。 2020年11月26日閲覧。
- ^構造化文書モデル、クレメント・シン・タイイン、博士論文、インペリアル・カレッジ・ロンドン、コンピューティング学部、1989年
- ^「手続き型表現を用いたグラフィカルオブジェクトの編集」、ポール・アセンテ博士論文、スタンフォード大学コンピュータサイエンス学部(1987年)
- ^ CWRC-Writer: ブラウザ内XMLエディタ、G. Rockwell他、Digital Humanities 2012 Conference
- ^ van der Hoeven, Joris (2006-08-21). 「GNU TeXmacs: 科学編集プラットフォーム」(PDF) . www.texmacs.org . pp. 7f . 2016-01-16閲覧.
TeXmacs は LaTeX のフロントエンドではないため、LaTeX の(かなり大きな)サブ言語に対してのみ正しい変換を保証できます。
- ^ファン・デル・ホーフェン、ジョリス;ザイドル、アンドレアス (2011)。「よくある質問」。www.texmacs.org 。2016 年 1 月 16 日に取得。
- ^ファン デル ホーフェン、ジョリス (2012)。「GNU TeXmacs へようこそ」。www.texmacs.org 。2016 年 1 月 16 日に取得。
- ^ a b van der Hoeven, Joris. 「GNU TeXmacs、フリーで構造化されたWYSIWYGのテクニカルテキストエディタ」(PDF) . Cahiers Gutenberg . 39– 40: 39– 50.
- ^ 「TeXmacsマニュアル 2.2 構造化テキストの入力」(PDF) 。 2020年11月20日閲覧。
- ^ 「GNU TEXMACS ユーザーマニュアル; 11.2. スタイルファイルとパッケージのレンダリング」(PDF) . 2020年11月27日閲覧。
- ^ユーザーマニュアル「 数学記号の入力 」を参照してください。
- ^ファン・デル・ホーフェン、ジョリス。「TeXmacs フォーマット」。2019年8月10日に取得。
- ^ a b M. Gubinelli、「The Guile in TeXmacs」、ストラスブールで開催された Guile and Guix Days でのプレゼンテーション、2019 年 6 月 21 ~ 22 日、pdf 2019 年 9 月 21 日閲覧。
- ^ 「TeXmacsマニュアル; 11.1 シンプルなスタイルパッケージの作成」(PDF) 。 2020年11月27日閲覧。
- ^ 「TeXmacsユーザーマニュアル」の「プレゼンテーションのトラバーサル」セクション(PDF) 。 2020年11月10日閲覧。
外部リンク
- 公式サイト
- texmacs-usersメーリングリストアーカイブ
- フォーラム
- tm-forge、TeXmacsのユーザー投稿コンテンツのリポジトリ
- TeXmacsブログ