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 word ...
and
typesetting Typesetting is the composition of text for publication, display, or distribution by means of arranging physical ''type'' (or ''sort'') in mechanical systems or '' glyphs'' in digital systems representing '' characters'' (letters and other ...
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 Computer hardware, computing dev ...
. It originated as a variant of
GNU Emacs GNU Emacs is a text editor and suite of free software tools. Its development began in 1984 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 ...
with
TeX Tex, TeX, TEX, may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Tex Earnhardt (1930–2020), U.S. businessman * Joe Tex (1933–1982), stage name of American soul singer ...
functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by Joris van der Hoeven and a group of developers. The program produces structured
document A document is a writing, written, drawing, drawn, presented, or memorialized representation of thought, often the manifestation of nonfiction, non-fictional, as well as fictional, content. The word originates from the Latin ', which denotes ...
s with a
WYSIWYG In computing, WYSIWYG ( ), an acronym for what you see is what you get, refers to software that allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed document, web ...
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 fro ...
. New document styles can be created by the user. The editor provides high-quality
typesetting Typesetting is the composition of text for publication, display, or distribution by means of arranging physical ''type'' (or ''sort'') in mechanical systems or '' glyphs'' in digital systems representing '' characters'' (letters and other ...
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s and TeX and other
font In metal typesetting, a font is a particular size, weight and style of a ''typeface'', defined as the set of fonts that share an overall design. For instance, the typeface Bauer Bodoni (shown in the figure) includes fonts " Roman" (or "regul ...
s for publishing professional looking documents.


Background

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 graphi ...
(first release 1985),
Framemaker Adobe FrameMaker is a document processor designed for writing and editing large or complex documents, including structured documents. It was originally developed by Frame Technology Corporation, which was bought by Adobe. Overview FrameMake ...
(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. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
is
LyX LyX (styled as LYX; pronounced ) is an open-source software, open source, graphical user interface document processor based on the LaTeX typesetting system. Unlike most word processors, which follow the WYSIWYG ("what you see is what you get") ...
, which does not aim at WYSIWYG editing but at visual representation of the structure ( WYSIWYM).


Features

Like in many
WYSIWYG In computing, WYSIWYG ( ), an acronym for what you see is what you get, refers to software that allows content to be edited in a form that resembles its appearance when printed or displayed as a finished product, such as a printed document, web ...
editors (such as
Microsoft Word Microsoft Word is a word processor program, word processing program 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 platf ...
), 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. Despite its name, TeXmacs is not a front-end to
TeX Tex, TeX, TEX, may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Tex Earnhardt (1930–2020), U.S. businessman * Joe Tex (1933–1982), stage name of American soul singer ...
or
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
. However, TeXmacs documents can be converted to either
TeX Tex, TeX, TEX, may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Tex Earnhardt (1930–2020), U.S. businessman * Joe Tex (1933–1982), stage name of American soul singer ...
or LaTeX. LaTeX also can be imported (to some extent), and both import from and export to
HTML Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
, Scheme, Verbatim, and
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
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 pair of mathematical markup languages, an application of XML for describing mathematical notations and capturing both its structure and content. Its aim is to natively integrate mathematical formulae ...
as well, and TeXmacs can output
PDF Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
and
PostScript PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
for printing. TeXmacs can handle mathematical
formula In science, a formula is a concise way of expressing information symbolically, as in a mathematical formula or a ''chemical formula''. The informal use of the term ''formula'' in science refers to the general construct of a relationship betwe ...
s, tables, images, cross-references 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 o ...
. 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 de ...
s such as Maxima, FriCAS 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, group theory, differentia ...
, and can in turn integrate some of their output into its typesetting. TeXmacs also supports a Scheme extension language called Guile 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 paintin ...
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 ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
,
Cygwin Cygwin ( ) is a free and open-source Unix-like environment and command-line interface (CLI) for Microsoft Windows. The project also provides a software repository containing open-source packages. Cygwin allows source code for Unix-like operati ...
,
Haiku is a type of short form poetry that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
and
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
. 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 Hamburg, Manch ...
is available for
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
.


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. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
's usual operation mode), using X virtual framebuffer to avoid opening unwanted windows while processing. For example, the command generates a
PDF Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
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 The Standard Generalized Markup Language (SGML; International Organization for Standardization, ISO 8879:1986) is a standard for defining generalized markup languages for documents. ISO 8879 Annex A.1 states that generalized markup is "based on t ...
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; 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, CMUCL, Python, 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 Science Biology * Seashell, a hard outer layer of a marine ani ...
* Computer algebra systems:
Axiom An axiom, postulate, or assumption is a statement that is taken to be true, to serve as a premise or starting point for further reasoning and arguments. The word comes from the Ancient Greek word (), meaning 'that which is thought worthy or ...
, Giac, Macaulay 2,
Mathematica Wolfram (previously known as Mathematica and Wolfram Mathematica) is a software system with built-in libraries for several areas of technical computing that allows machine learning, statistics, symbolic computation, data manipulation, network ...
, Maxima, MuPAD,
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 P ...
, Reduce,
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, group theory, differentia ...
, Yacas * Numeric matrix systems:
GNU Octave GNU Octave is a scientific programming language for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly ...
,
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, implementat ...
,
Scilab Scilab is a free and open-source, cross-platform numerical computational package and a high-level, numerically oriented programming language. It can be used for signal processing, statistical analysis, image enhancement, fluid dynamics simul ...
* Plotting packages: gnuplot,
Graphviz Graphviz (short for ''Graph Visualization Software'') is a package of open-source software, open-source tools initiated by AT&T Labs, AT&T Labs Research for Graph drawing, drawing graph (discrete mathematics), graphs (as in Vertex (graph theory ...
, XYpic, Mathemagix * Other: DraTeX, Eukleides, GTybalt, Lush, Juris-M, and Zotero


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 *Chemical structure ...
* Comparison of office suites * List of office suites * Comparison of word processors * Comparison of document-markup languages * List of word processors *
LyX LyX (styled as LYX; pronounced ) is an open-source software, open source, graphical user interface document processor based on the LaTeX typesetting system. Unlike most word processors, which follow the WYSIWYG ("what you see is what you get") ...
*
Visual editor A visual editor is computer software for editing ASCII, text files using a text user interface, textual or graphical user interface, graphical user interface that normally renders the content (text) in accordance with embedded markup code, e.g., H ...


References


External links

*
texmacs-users mailing list archives

Forum

tm-forge
a repository of user-contributed content for TeXmacs

{{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 a variant of GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maint ...
Linux word processors MacOS word processors TeX editors Windows word processors Free typesetting software