![]() |
Contributing to TeXmacs | ![]() |
One of the best ways to contribute to GNU TeXmacs is by using it a
lot, talk about it to friends and collegues, and to report me about
bugs or other unnatural behaviour. Please mention the fact that you
wrote articles using TeXmacs when submitting them. You can do this
by putting the 

Besides these general (but very important) ways to contribute, your
help on the more specific subjects below would be appreciated. Don't
hesitate to contact us if you want to contribute to
these or any other issues. In the
One very important way to support TeXmacs is by donating money to the project. TeXmacs is currently one of the projets of SPI (Software in the Public Interest; see http://www.spi-inc.org). You may make donations of money to TeXmacs via this organization, by noting on your check or e-mail for wire transfers that your money should go to the TeXmacs project. You may also make donations of equipment or services or donations through vendors. See the SPI website for more information. The list of donators is maintained at our website.
To make a donation, write a check or money order to:
Software in the Public Interest, Inc.
and mail it to the following address:
Software in the Public Interest, Inc.
P.O. Box 502761
Indianapolis, IN 46250-7761
United States
To make an electronic transfer (this will work for non-US too), you need to give your bank the routing number and account number as follows:
The SPI bank account is at American Express Centurion Bank.
Routing Number: 124071889
Account Number: 1296789
Don't forget to note on your check or e-mail for wire transfers that the money should be spent on the TeXmacs projet. In addition you may specify a more specific purpose on which you would like us to spend the money. You may also contact us for a more detailed discussion on this issue.
Let the SPI Treasurer (treasurer@spi-inc.org) know if you have problems. When you have completed the electronic wire, please send a copy of the receipt to the above address so there is a copy of your donation. The copy you send to the treasurer is important. You may also want to contact the TeXmacs team in order to make sure that the money arrived on the TeXmacs account.
Note: The SPI address and account numbers may change from time to time. Please do not copy the address and account numbers, but rather point to the page http://www.spi-inc.org/donations to ensure that donors will always see the most current information.
Donations in Europe can be done through our partner in Germany, ffis e.V. If you are interested in using their bank account (to save international money transfer costs), please check the instructions on http://www.ffis.de/Verein/spi-en.html.
There is a high need for good documentation on TeXmacs as well as people who are willing to translate the existing documentation into other languages. The aim of this site is to provide high quality documentation. Therefore, you should carefully read the guide-lines on how to write such documentation.
High quality documentation is both a matter of content and structure. The content itself has to be as pedagogic as possible for the targeted group of readers. In order to achieve this, you should not hesitate to provide enough examples and illustrative screen shots whenever adequate. Although the documentation is not necessarily meant to be complete, we do aim at providing relatively stable documentation. In particular, you should have checked your text against spelling errors.
It is also important that you give your documentation as much structure as possible, using special markup from the tmdoc style file. This structure can be used in order to automatically compile printable books from your documentation, to make it suitable for different ways of viewing, or to make it possible to efficiently search a certain type of information in the documentation. In particular, you should always provide copyright and license information, as well as indications on how to traverse your documentation, if it contains many files.


The present TeXmacs documentation is currently maintained on texmacs.org using
http://www.texmacs.org/tmweb/download/svn.en.html
In fact, the
Most documentation should be organized as a function of the topic in a directory tree. The subdirectories of the top directory are the following:
Please try to keep the number of entries per directory reasonably small.
File names in the main directory should be of the form type-name.language.tm. In the other directories, they are of the form name.language.tm. Here type is a major indication for the type of documentation; it should be one of the following:
You should try to keep the documentation on the same topic together, regardless of the type. Indeed, this allows you to find more easily all existing documentation on a particular topic. Also, it may happen that you want to include some documentation which was initially meant for the tutorial in the manual. The language in which is the documentation has been written should be a two letter code like en, fr, etc. The main name of your file should be the same for the translations in other languages. For instance, man-keyboard.en.tm should not be translated as man-clavier.fr.tm.
All documentation on the texmacs-doc site falls under the GNU Free Documentation License. If you write documentation for TeXmacs on this site, then you have to agree that it will be distributed under this license too. The copyright notice
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
should be specified at the end of each file. This should be
done inside the
You keep (part of) the copyright of all documentation that you will
write for TeXmacs on the official texmacs-doc site.
When you or others make additions to (or modifications in, or
translations of) the document, then you should add your own name (at
an appropriate place, usually at the end) to the existing copyright
information. The copyright notice should be specified using the
As a general rule, you should avoid the use of sectioning commands inside the TeXmacs documentation and try to write small help pages on well identified topics. At a second stage, you should write recursive “meta help files” which indicate how to traverse the documentation in an automatic way. This allows the reuse of a help page for different purposes (a printed manual, a web-oriented tutorial, etc.).
The tmdoc style provides
three markup macros for indicating how to traverse documentation.
The
Typically, at the end of a meta help file you will find several
Besides the copyright information macros and traversal macros, which have been documented before, the tmdoc style comes with a certain number of other macros and functions, which you should use whenever appropriate:

Notice that the contents of none of the above tags should be translated into foreign languages. Indeed, for menu tags, the translations are done automatically, so as to keep the translations synchronized with the translations of the actual TeXmacs menus. In the cases of markup, styles, packages and d.t.d.s, it is important to keep the original name, because it often corresponds to a file name.
The following macros and functions are used for linking and indexing purposes, although they should be improved in the future:
as argument and is
a hyperlink with name and destination
.
The following tags are also frequently used:
The tmdoc style inherits
from the generic style and
you should use macros like
The support of a maximal number of foreign languages is another major challenge in which your help would be appreciated. Making the translations to support a new language usually requires several days of work. We therefore recommend you to find some friends or collegues who are willing to help you.
The procedure for adding a new language is as follows
You copy the file english-new.scm to english-yourlanguage.dic in langs/natural/dic and fill out the corresponding translations. You may want to use Andrey Grozin's dictionary tool at
http://www.texmacs.org/Data/dictool.py.gz
In order to use it, may sure that Python is installed on your system, download the file, gunzip it, make it executable and run it.
Of course, the support for languages get out of date each time that new features are added to TeXmacs. For this reason, we also maintain a file miss-english-yourlanguage.dic with all missing translation for your language, once that it has been added. Please do not hesitate to send inclomplete versions of english-yourlanguage.dic or miss-english-yourlanguage.dic; someone else may be willing to complete them.
If you are familiar with TeX, LaTeX, Html, Xml, Sgml, Mathml, Pdf,
Rtf, or any other frequently used data format, please consider
contributing to writing good converters for one or more of these
formats. In 



Currently, TeXmacs is supported on most major Unix/X-Window platforms and a Windows port should be ready soon. Nevertheless, your help is appreciated in order to keep the existing ports working. Some remaining challenges for porting TeXmacs are:
Ports to PDAs, first of all those which run Linux. It should be
noticed that, with the current support for
TeXmacs ports to PDAs would be particularly interesting in combination with the available plug-ins for doing scientific computations.
It is quite easy to write interfaces between TeXmacs and computer
algebra systems or other scientific programs with structured output.
Please consider writing interfaces between TeXmacs and your favorite
system(s). TeXmacs has already been interfaced with several other
free systems, like Giac, Macaulay 2, Maxima, GNU Octave, Pari, Qcl,
gTybalt, Yacas. Detailed documentation on how to add new interfaces
is available in the 
It should be quite easy to write a plug-in for TeXmacs for doing instant messenging or live-conferencing. We are very interested in people who would like to help with this. The same techniques might be used for collaborative authoring and educational purposes.
Besides live conferencing, we are also interested by people who are
willing to program better integration of TeXmacs with the web. As a
first step, this would require an internal C++ plug-in based on
Apart from the kind of contributions which have been described in more detail above, there are many more issues where your help would be appreciated. Please take a look at our plans for the future for more details. Of course, you should feel free to come up with your own ideas and share them with us on the texmacs-dev@gnu.org mailing list!