GNU TeXmacs
   HOME

TheInfoList



OR:

GNU TeXmacs is a scientific
word processor A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features. Early word processors were stand-alone devices dedicated to the function, but current ...
and
typesetting Typesetting is the composition of text by means of arranging physical ''type'' (or ''sort'') in mechanical systems or '' glyphs'' in digital systems representing '' characters'' (letters and other symbols).Dictionary.com Unabridged. Random ...
component of the
GNU Project The GNU Project () is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaborat ...
. It originated as
GNU Emacs GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of ...
with
TeX Tex may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr. Entertainment * ''Tex'', the Italian ...
functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by
Joris van der Hoeven Joris van der Hoeven (born 1971) is a Dutch mathematician and computer scientist, specializing in algebraic analysis and computer algebra. He is the primary developer of GNU TeXmacs. Education and career Joris van der Hoeven received in 1997 hi ...
and a group of developers. The program produces structured
document A document is a written, drawn, presented, or memorialized representation of thought, often the manifestation of non-fictional, as well as fictional, content. The word originates from the Latin ''Documentum'', which denotes a "teaching" o ...
s with a
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
. New document styles can be created by the user. The editor provides high-quality
typesetting Typesetting is the composition of text by means of arranging physical ''type'' (or ''sort'') in mechanical systems or '' glyphs'' in digital systems representing '' characters'' (letters and other symbols).Dictionary.com Unabridged. Random ...
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
s and TeX and other fonts for publishing professional looking documents.


An outline of interactive editing of structured text (1980s-2020s)

As a structured WYSIWYG editor and document preparation system, TeXmacs is similar to earlier structured document editors, such as
Interleaf Interleaf, Inc., was a company that created computer software products for the technical publishing creation and distribution process. Founded in 1981, its initial product was the first commercial document processor that integrated text and graph ...
(first release 1985), Framemaker (1986), SoftQuad Author/Editor (1988), Lilac, (1991), and Thot; there was also academic research into interactive editing of complex typographical constructs represented logically. In the 2000s and 2010s, interest on interactive editing of structured text encouraged the development of programs intended for scholars in the humanities; an example of this is CWRC-Writer, a visual XML editor with "Close-to-WYSIWYG editing and enrichment of scholarly texts with meaningful visual representations of markup". On another side of the editing and document preparation world, a program for visual interaction with structured texts written in
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
is
LyX LyX (styled as ; pronounced ) (Based on 3 developers, they say it can be pronounced "Licks", "Lucks" and "Leeks") is an open source, graphical user interface document processor based on the LaTeX typesetting system. Unlike most word processors, ...
, which does not aim at WYSIWYG editing but at visual representation of the structure (
WYSIWYM In computing, What You See Is What You Mean (WYSIWYM, ) is a paradigm for editing a structured document. It is an adjunct to the better-known WYSIWYG (What You See Is What You Get) paradigm, which displays the result of a formatted document as ...
).


Features

Like in many
WYSIWYG In computing, WYSIWYG ( ), an acronym for What You See Is What You Get, is a system in which editing software allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed d ...
editors (such as
Microsoft Word Microsoft Word is a word processor, word processing software developed by Microsoft. It was first released on October 25, 1983, under the name ''Multi-Tool Word'' for Xenix systems. Subsequent versions were later written for several other pla ...
), authors manipulate a document on screen which should print to a similar-looking paper copy. The goal of TeXmacs is to provide a WYSIWYG editor that nevertheless makes it possible to write correctly structured documents with aesthetically pleasing typesetting results. TeXmacs is a front-end to
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
but TeXmacs documents can be converted to either
TeX Tex may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr. Entertainment * ''Tex'', the Italian ...
or LaTeX. LaTeX also can be imported (to some extent), and both import from and export to
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaSc ...
, Scheme, Verbatim, and
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
is provided; the HTML export is stylable with CSS (since version 1.99.14). There is a converter for
MathML Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide W ...
as well, and TeXmacs can output PDF and PostScript for printing. TeXmacs can handle mathematical formulas, tables, images,
cross-references The term cross-reference (abbreviation: xref) can refer to either: * An instance within a document which refers to related information elsewhere in the same document. In both printed and online dictionaries cross-references are important because ...
and
citations A citation is a reference to a source. More precisely, a citation is an abbreviated alphanumeric expression embedded in the body of an intellectual work that denotes an entry in the bibliographic references section of the work for the purpose of ...
. It can be used as a front-end to a number of
computer algebra system A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The d ...
s such as Maxima,
FriCAS FriCAS is a general purpose computer algebra system with a strong focus on mathematical research and development of new algorithms. It comprises an interpreter, a compiler and a still-growing library of more than 1,000 domains and categories. Fr ...
and
SageMath SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, numbe ...
, and can in turn integrate some of their output into its typesetting. TeXmacs also supports a Scheme extension language called
Guile Guile may refer to: * Astuteness, deception. * GNU Guile, an implementation of the Scheme programming language * Guile (''Street Fighter''), a video game character from the ''Street Fighter'' series * Guile (''Chrono Cross''), a video game chara ...
for customizing the program and writing extensions. It also features a
presentation A presentation conveys information from a speaker to an audience. Presentations are typically demonstrations, introduction, lecture, or speech meant to inform, persuade, inspire, motivate, build goodwill, or present a new idea/product. Presenta ...
mode and a small
technical drawing Technical drawing, drafting or drawing, is the act and discipline of composing drawings that visually communicate how something functions or is constructed. Technical drawing is essential for communicating ideas in industry and engineering ...
editor and there are plans to evolve towards a complete scientific
office suite Productivity software (also called personal productivity software or office productivity software) is application software used for producing information (such as documents, presentations, worksheets, databases, charts, graphs, digital painting ...
with
spreadsheet A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in c ...
capabilities. An implementation of spreadsheets is present starting from version 1.99.12; spreadsheets in TeXmacs can take advantage of plugins (for example Python or Maxima) to compute cell values. TeXmacs currently runs on most Unix-based architectures including
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
, FreeBSD, Cygwin,
Haiku is a type of short form poetry originally from Japan. Traditional Japanese haiku consist of three phrases that contain a ''kireji'', or "cutting word", 17 '' on'' (phonetic units similar to syllables) in a 5, 7, 5 pattern, and a ''kigo'', or s ...
and
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
. Along with the Cygwin version, a native
port A port is a maritime facility comprising one or more wharves or loading areas, where ships load and discharge cargo and passengers. Although usually situated on a sea coast or estuary, ports can also be found far inland, such as H ...
is available for Microsoft Windows.


The TeXmacs editor

In the TeXmacs editor structure and appearance of the document are represented at the same time; the structure is made evident to the user by surrounding logical units of the document in nested focus frames carrying color cues that are displayed according to the movement of the cursor. A detailed description of the structure in the proximity of the cursor is provided in the footer of the editor window, finely selectable with left-right arrow presses. In the editor it is possible to switch between text mode and source mode editing, and support for the composition of macros is present; the source editor is syntax-aware.


Mathematical typography

TeXmacs facilitates the inputting of mathematical formulas by mapping sequences of keyboard presses to symbols. For example, the symbol \Rightarrow can be input by typing . Some symbols have no such representation (\Uparrow for instance). These can be input with key (e.g. for \Uparrow the key presses are => ) . This keyboard-based entry differs from other formulae editors, that tend to provide point-and-click menus for this task.


Batch processing

It is possible to use TeXmacs as a batch processor (which is
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latexes are found in nature, but synthetic latexes are common as well. In nature, latex is found as a milky fluid found in 10% of all flowering plants (angiosperms ...
's usual operation mode), using X virtual framebuffer to avoid opening unwanted windows while processing. For example, the command generates a PDF file "article.pdf" from a TeXmacs document "article.tm".


The TeXmacs format

All TeXmacs documents or document fragments can be thought of as trees (the concept of tree exists as well in the SGML markup language, to which the Texmacs format is similar). For instance, the tree represents the formula :x+y+\frac+\sqrt (written here with the TeX markup used by Wikipedia) and is turned by TeXmacs' own typesetting engine into a typeset formula, here inserted as an image: : TeXmacs trees are represented in TeXmacs files as strings, and in the TeXmacs editor as the typeset representation of the document together with its interactive behaviour. In the on-screen representation of the TeXmacs tree, the cursor movement represents the movement inside the tree. On disk, three representations of the TeXmacs format exist: a native representation, an XML representation and a representation with Scheme S-expressions; the Scheme representation is useful for the interfacing with Scheme programs.


Typesetting and document control

The typesetting process converts TeXmacs trees into boxes.M. Gubinelli, The Guile in TeXmacs, presentation at the Guile and Guix Days in Strasbourg, June 21–22, 201
pdf
Retrieved 2019-09-21.
Evaluation of TeXmacs trees proceeds by reduction of the primitives, that is by evaluation of macro applications. The typesetting primitives are designed to be very fast and are built-in into the editor; the rendering of many of the primitives can be customized through the built-in environment variables; the stylesheet language allows users to write new primitives as macros on top of the built-in primitives. TeXmacs uses a global algorithm for "line-breaking" (similar to the TeX one) and in addition uses a global algorithm for "page-breaking"; the page-breaking algorithm takes into account floating objects (figures, table, footnotes) and multi-column content.


Document control

Documents can be controlled through a native macro system and through Guile-Scheme. It is possible to customize the editor's menus and keybindings and to act programmatically on the document tree.


TeXmacs macros

TeXmacs macros provide a means of structured input (as in TeX/LaTeX) and they are immediately typeset, at the same time maintaining editable input fields. They are written in source code, although the WYSIWYG editor can aid in their composition through the translation of visual structures into their syntax.


Document control through Scheme

Scheme is embedded in TeXmacs through
GNU Guile GNU Ubiquitous Intelligent Language for Extensions (GNU Guile) is the preferred extension language system for the GNU Project and features an implementation of the programming language Scheme. Its first version was released in 1993. In addition ...
; the editor itself can be controlled in this way: menus and keybindings can be customized. Scheme commands can be invoked interactively inside TeXmacs documents, can be invoked from the command line and from inside TeXmacs macros. TeXmacs trees can be passed to Scheme in different forms: as "passive trees" (convenient to manipulate content directly using standard Scheme routines on lists), as "active trees" (keep track of the position of the tree inside the global document tree and can be used to programmatically modify documents), and in a "hybrid" representation.


Graphics

Graphics objects are also part of the TeXmacs format and can be manipulated programmatically from Scheme. An example of TeXmacs graphics generated in a TeXmacs Scheme session is shown below together with the session which generated the image. Images generated programmatically in a Scheme session can also be edited using the internal drawing editor, as they are inserted in the document as a tree; Scheme scripts can also be executed through the extern TeXmacs macro—in this case only the typeset material is available in the document and no direct editing is possible (the modifications must be made within the Scheme code). Scheme] (define pi (acos -1)) ;; A function to define a point in the TeXmacs graphics format using two coordinates Scheme] (define (pt x y) ‘(point ,(number->string x) ,(number->string y))) ;; Set points 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))) ;; Generate graphics Scheme] (stree->tree ‘(with "gr-geometry" (tuple "geometry" "400px" "300px" "center") (graphics (with "color" "blue" (text-at (TeXmacs) ,(pt -0.55 -0.75))) (with "color" "black" (arc ,pA ,pC ,pB)) (with "color" "black" (line ,pA ,pB)) (with "color" "red" (cline ,pA ,pB ,pC)) (with "color" "black" (text-at "A" ,tA)) (with "color" "black" (text-at "B" ,tB)) (with "color" "black" (text-at "C" ,tC)))))


Supported back ends

TeXmacs has back-ends supporting many technologies. Programming languages:
CLISP In computing, CLISP is an implementation of the programming language Common Lisp originally developed by Bruno Haible and Michael Stoll for the Atari ST. Today it supports the Unix and Microsoft Windows operating systems. CLISP includes an in ...
,
CMUCL CMUCL is a free Common Lisp implementation, originally developed at Carnegie Mellon University. CMUCL runs on most Unix-like platforms, including Linux and BSD; there is an experimental Windows port as well. Steel Bank Common Lisp is derived ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, QCL, R,
Shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses ** Thin-shell structure Science Biology * Seashell, a hard o ...
Computer algebra systems: Axiom, Giac, Macaulay 2, Mathematica, Maxima,
MuPAD MuPAD is a computer algebra system (CAS). Originally developed by the MuPAD research group at the University of Paderborn, Germany, development was taken over by the company SciFace Software GmbH & Co. KG in cooperation with the MuPAD research gro ...
,
PARI/GP PARI/GP is a computer algebra system with the main aim of facilitating number theory computations. Versions 2.1.0 and higher are distributed under the GNU General Public License. It runs on most common operating systems. System overview The ...
,
Reduce Reduction, reduced, or reduce may refer to: Science and technology Chemistry * Reduction (chemistry), part of a reduction-oxidation (redox) reaction in which atoms have their oxidation state changed. ** Organic redox reaction, a redox react ...
,
SageMath SageMath (previously Sage or SAGE, "System for Algebra and Geometry Experimentation") is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, numerical analysis, numbe ...
, Yacas Numeric matrix systems:
GNU Octave GNU Octave is a high-level programming language primarily intended for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a langu ...
,
Matlab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementa ...
, Scilab Plotting packages:
gnuplot gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems (Linux, Unix, Microsoft Windows, macOS, FreeDOS, ...
,
Graphviz Graphviz (short for ''Graph Visualization Software'') is a package of open-source tools initiated by AT&T Labs Research for drawing graphs specified in DOT language scripts having the file name extension "gv". It also provides libraries for ...
, XYpic, Mathemagix Other: DraTeX, Eukleides, GTybalt, Lush, Juris-M, and
Zotero Zotero () is a free and open-source reference management software to manage bibliographic data and related research materials, such as PDF files. Features include web browser integration, online syncing, generation of in-text citations, footno ...


Embedding editable plugin output

Plugin output can be embedded within TeXmacs documents using "executable switches"; in this way one can switch back and forth between a given input to the system and the corresponding output, which blends seamlessly in the document.


See also

*
Comparison of TeX editors The following is a comparison of TeX editors. Table of editors See also * Formula editor * Comparison of word processors * Comparison of text editors * Comparison of desktop publishing software * List of TeX extensions Notes and refere ...
*
Comparison of word processors This is a comparison of word processing software. General information This table provides general information about selected word processors. Characteristics This table gives characteristics of each word processor. Operating system compati ...
* Comparison of document-markup languages *
List of word processors The following is a list of notable word processors. Free and open-source software * AbiWord * Apache OpenOffice Writer * Calligra Words * Collabora Online Writer – enterprise-ready edition of LibreOffice, included with Online, Mobile and Desktop ...
*
LyX LyX (styled as ; pronounced ) (Based on 3 developers, they say it can be pronounced "Licks", "Lucks" and "Leeks") is an open source, graphical user interface document processor based on the LaTeX typesetting system. Unlike most word processors, ...
*
Visual editor A visual editor is computer software for editing text files using a textual or graphical user interface that normally renders the content (text) in accordance with embedded markup code, e.g., HTML, Wikitext, rather than displaying the raw text. ...


References


External links

*
texmacs-users mailing list archives

Forum
{{Software in the Public Interest Cross-platform free software Emacs Free TeX editors Free word processors
TeXmacs GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by J ...
Linux word processors MacOS word processors TeX editors Windows word processors Free typesetting software