diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-28 03:00:42 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-28 03:00:42 +0000 |
commit | f41a5d46017f730e9586332f28744912872326f5 (patch) | |
tree | 0e7ebb355adbdb56ac9d1e236dd5cde0b71e1520 /obsolete/help/texfaq/faq-projects.tex | |
parent | 5827a950592f8a91468bcd0b5963d1df8d3518d8 (diff) |
CTAN sync 201909280300
Diffstat (limited to 'obsolete/help/texfaq/faq-projects.tex')
-rw-r--r-- | obsolete/help/texfaq/faq-projects.tex | 644 |
1 files changed, 644 insertions, 0 deletions
diff --git a/obsolete/help/texfaq/faq-projects.tex b/obsolete/help/texfaq/faq-projects.tex new file mode 100644 index 0000000000..e7a616ace8 --- /dev/null +++ b/obsolete/help/texfaq/faq-projects.tex @@ -0,0 +1,644 @@ +% $Id: faq-projects.tex,v 1.29 2014/01/28 18:17:36 rf10 Exp rf10 $ + +\section{Current \TeX{}-related projects} + +\Question[Q-LaTeX3]{The \LaTeX{} project} + +The \LaTeX{} project team (see \URL{http://www.latex-project.org/latex3.html}) +is a small group of volunteers whose aim is +to produce a major new document processing system based on the +principles pioneered by Leslie Lamport in the current \LaTeX{}. The +new system is (provisionally) called \LaTeX{}3; it +will remain freely available and it will be fully documented at +all levels. + +The \LaTeX{} team's first product (\LaTeXe{}) was delivered in 1994 +(it's now properly called ``\LaTeX{}'', since no other version is current). + +\LaTeXe{} was intended as a consolidation exercise, unifying several +sub-variants of \LaTeX{} while changing nothing whose change wasn't +absolutely necessary. This has permitted the team to support a single +version of \LaTeX{}, in parallel with development of \LaTeX{}3. + +Some of the older discussion papers about directions for \LaTeX{}3 are +to be found on \acro{CTAN}; other (published) articles are to be found +on the project web site (\URL{http://www.latex-project.org/papers/}). + +Some of the project's experimental code is visible on the net: +\begin{itemize} +\item via \URL{http://www.latex-project.org/code.html}, which points + to the project's \acro{SVN} repository; +\item via the project's + \href{https://github.com/latex3/svn-mirror}{\emph{GitHub} mirror}; +\item from \acro{CTAN}: snapshots of two major collections from the + code, \Package{l3kernel} (supporting \LaTeX{}3 coding conventions in + a \LaTeXe{} environment), \Package{l3packages} (a first cut of a + ``document designer's interface'') as well as + \Package{l3experimental} (new stuff that's still under + development). +\end{itemize} +The packages \Package{l3kernel} and \Package{l3packages} provide an +``experimental harness'' that may be used as a testbed for \latex{}3 +work. + +Note that \Package{l3kernel} introduces a coding structure quite +different from earlier \latex{} code; a few hardy authors, who are not +members of the project, are nevertheless using it in their development +work. + +Anyone may participate in discussions of the future of \LaTeX{} +through the mailing list \texttt{latex-l}; some development work +(outside the project) is discussed on the list. Subscribe to the list +by sending a message `\texttt{subscribe latex-l <\emph{your name}>}' +to \mailto{listserv@urz.Uni-Heidelberg.de} +\begin{ctanrefs} +\item[l3experimental \nothtml{\rmfamily}bundle]\CTANref{l3experimental} +\item[l3kernel \nothtml{\rmfamily}bundle]\CTANref{l3kernel} +\item[\nothtml{\rmfamily}\LaTeX{} project publications]\CTANref{ltx3pub} +\item[l3packages \nothtml{\rmfamily}bundle]\CTANref{l3packages} +\end{ctanrefs} +\LastEdit{2012-02-07} + +\Question[Q-mathml]{Future \acro{WWW} technologies and \AllTeX{}} + +An earlier answer % ! line break +(\Qref[number]{``converting to \acro{HTML}''}{Q-LaTeX2HTML}) +addresses the issue of converting existing \AllTeX{} documents for +viewing on the Web as \acro{HTML}. All the present techniques are +somewhat flawed: the answer explains why. + +However, things are changing, with +better font availability, cunning \acro{HTML} programming and the +support for new Web standards. +\begin{description} +\item[Font technologies] Direct representation of mathematics in + browsers has been hampered up to now by the limited range of symbols + in the fonts whose availability designers can count on. Some existing + \AllTeX{} to \acro{HTML} converters provide maths symbols by + hitching them to alternate font face specifications for standard + code points in a non-standard way. This does nothing for the + universality of the \acro{HTML} so generated. + + Now, however, free Unicode-encoded OpenType fonts, with coverage of + mathematical symbols, are starting to appear. The much-heralded + \href{http://www.stixfonts.org/}{\FontName{STIX} fonts} are now + available on \acro{CTAN}, and a tweaked version + (\FontName{XITS}) and \FontName{Asana Math} are also + available. The \acro{STIX} project has still not released macros + for using the fonts, but the \Package{unicode-math} package will do + what is necessary under \xetex{} and \luatex{}, and the fonts can of + course be used in browsers. +%% In the near future, we can expect rather wide availability of +%% Unicode fonts with good coverage of symbols, which should make life +%% easier for those who need to represent mathematics. +\item[\acro{XML}] The core of the range of new standards is + \acro{XML}, which provides a framework for better structured markup; + limited support for it has already appeared in some browsers. + + Conversion of \AllTeX{} source to \acro{XML} is already available + (through \TeX{}4ht at least), and work continues in that arena. The + alternative, authoring in \acro{XML} (thus producing documents that + are immediately Web-friendly, if not ready) and using \AllTeX{} to + typeset is also well advanced. One useful technique is + \Qref*{\emph{transforming} the \acro{XML} to \LaTeX{}}{Q-SGML2TeX}, + using an \acro{XSLT} stylesheet or code for an \acro{XML} library, + and then simply using \LaTeX{}; alternatively, one may + \Qref*{typeset direct from the \acro{XML} source}{Q-readML}. +\item[Direct representation of mathematics] + Math\acro{ML} is a standard for representing maths on the Web; its + original version was distinctly limited, but version 2 of Math\acro{ML} + has had major browser support since 2002 with richness of mathematical + content for online purposes approaching that of \TeX{} for print. + Browser support for Math\acro{ML} is provided by \ProgName{amaya}, the + `Open Source' browser \ProgName{mozilla} (and its derivatives + including \ProgName{NetScape}, \ProgName{Firefox} and \ProgName{Galeon}) and + \ProgName{Internet Explorer} when equipped with a suitable plug-in + such as \ProgName{MathPlayer}. + There's evidence that \AllTeX{} users are starting to use such + browsers. Some believe that \acro{XHTML}+Math\acro{ML} now provides + better online viewing than \acro{PDF}. + Work to produce \acro{XHTML}+Math\acro{ML} is well advanced in both the + \TeX{}4ht and \ProgName{TtH} projects for \AllTeX{} conversion. +%% Such conversion, however, has limits of soundness unless one +%% is very much aware of the needs of one's conversion program +%% and adapts one's usage of \AllTeX{} accordingly. + + The \href{http://www.mathjax.org}{\ProgName{MathJax}} engine will process the + content of \latex{} \csx{[} \dots{}~\csx{]} and \csx{(} \dots{}~\csx{)} + `environments' in an \acro{HTML} document, to produce mathematical + output that may (for example) be cut-and-pasted into other programs. + + Incorporation into your document can be +\begin{wideversion} + as simple as incorporating: +\begin{verbatim} +<script type="text/javascript" + src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"> +</script> +\end{verbatim} + into the header of your \acro{HTML} document, +\end{wideversion} +\begin{narrowversion} + incorporating the script~--- + \url{http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML} + ---~as the \texttt{src} tab of a \texttt{script type="text/javascript"} + element in the header of your \acro{HTML} document, +\end{narrowversion} + though the \href{http://www.mathjax.org/}{MathJax project's site} + also allows you to download your own copy and install it on one of + \emph{your} servers. \ProgName{MathJax} is open source software, so + you could, in principle, extend it to do even more eccentric tasks. + + An approach different from \AllTeX{} conversion is taken by + the \href{http://www.albany.edu/~hammond/gellmu/}{\emph{GELLMU} Project}. + Its \emph{article} \acro{XML} document type, which has a markup vocabulary + close to \LaTeX{} that can be edited using \LaTeX{}-like markup + (even though it is not \LaTeX{}~--- so far), comes with translators + that make both \acro{PDF} (via \emph{pdflatex}) and + \acro{XHTML}+Math\acro{ML}. Such an approach avoids the inherent + limitations of the ``traditional'' \AllTeX{} translation processes, + which have traps that can be sprung by unfettered use of \AllTeX{} + markup. +\item[Graphics] + \acro{SVG} is a standard for graphics representation on the web. + While the natural use is for converting existing figures, + representations of formulas are also possible, in place of the separate + bitmaps that have been used in the past (and while we wait for the + wider deployment of Math\acro{ML}). + + Browser plug-ins, that deal with \acro{SVG} are already available + (Adobe offer one, for example). More recently, the open source + graphics editor \href{http://www.inkscape.org/}{\ProgName{Inkscape}} + has appeared, and has been reported to be useful for + \acro{SVG}-related work in at least one \TeX{}-related project. Be + aware that the developers of \ProgName{Inkscape} have no illusions + about being able to replace commercial software, yet\dots{} +\item[Direct use of \TeX{} markup] + Some time back, \acro{IBM} developed a browser plug-in called + TechExplorer, which would display \AllTeX{} documents direct in a + browser. Over the years, it developed into a Math\acro{ML} browser + plug-in, while still retaining its \AllTeX{} abilities, but it's now + distributed (free for Linux and Windows platforms) by + \href{http://www.integretechpub.com/}{Integre Technical Publishing}. + + The disadvantage of the TechExplorer approach is that it places the + onus on the browser user; and however technically proficient + \emph{you} are, it's never safe to assume too much of your readers. + An interesting alternative is + \href{http://www.forkosh.com/mathtex.html}{Math\TeX{}}, which sits + on your server as a \acro{CGI} script, and you use it to include + your \TeX{}, in your \acro{HTML}, as if it were an image: +\begin{quote} +\begin{wideversion} +\begin{verbatim} +<img src="/cgi-bin/mathtex.cgi?f(x)=\int\limits_{-\infty}^xe^{-t^2}dt"> +\end{verbatim} +\end{wideversion} +\begin{narrowversion} +\begin{verbatim} +<img src="/cgi-bin/mathtex.cgi?f(x)= + \int\limits_{-\infty}^xe^{-t^2}dt"> +\end{verbatim} +\end{narrowversion} +\end{quote} +(\Package{Mathtex} supersedes the author's earlier \Package{mimetex}.) +\end{description} +\begin{ctanrefs} +\item[\nothtml{\rmfamily}Asana Math fonts]\CTANref{asana-math} +\item[GELLMU]\CTANref{gellmu} +\item[MathTeX]\CTANref{MathTeX} +\item[MimeTeX]\CTANref{MimeTeX} +\item[\nothtml{\rmfamily}STIX fonts]\CTANref{stix} +\item[tex4ht]\CTANref{tex4ht} (but see \url{http://tug.org/tex4ht/}) +\item[unicode-math.sty]\CTANref{unicode-math} +\item[\nothtml{\rmfamily}XITS fonts]\CTANref{xits} +\end{ctanrefs} +\LastEdit{2011-10-17} + +\Question[Q-textrace]{Making outline fonts from \MF{}} + +\ProgName{TeXtrace}, originally developed by P\'eter Szab\'o, is a +bundle of Unix scripts that use Martin Weber's freeware boundary +tracing package +\href{http://autotrace.sourceforge.net}{\ProgName{autotrace}} to +generate Type~1 outline fonts from \MF{} bitmap +font outputs. The result is unlikely ever to be of the quality of +the commercially-produced Type~1 font, but there's always the +\href{http://fontforge.sourceforge.net/}{\ProgName{FontForge}} font +editor to tidy things. Whatever, there +remain fonts which many people find useful and which fail to attract +the paid experts, and auto-tracing is providing a useful service here. +Notable sets of +fonts generated using \ProgName{TeXtrace} are P\'eter Szab\'o's own +\acro{EC}/\acro{TC} font set \FontName{tt2001} and Vladimir Volovich's +\acro{CM}-Super set, which covers the \acro{EC}, \acro{TC}, and the +Cyrillic \acro{LH} font sets (for details of both of which sets, see +\Qref[answer]{``8-bit'' type 1 fonts}{Q-type1T1}). + +Another system, which arrived slightly later, is +\href{http://www.cs.uu.nl/~hanwen/mftrace/}{\ProgName{mftrace}}: +this is a small \ProgName{Python} program that does the same job. +\ProgName{Mftrace} may use either \ProgName{autotrace} (like +\ProgName{TeXtrace}) or Peter Selinger's +\href{http://potrace.sourceforge.net}{\ProgName{potrace}} to produce +the initial outlines to process. \ProgName{Mftrace} is said to be +more flexible, and easier to use, than is \ProgName{TeXtrace}, but both systems +are increasingly being used to provide Type~1 fonts to the public domain. + +The \ProgName{MetaType1} system aims to use \MF{} font sources, by way +of \MP{} and a bunch of scripts and so on, to produce high-quality +Type~1 fonts. The first results, the % ! line break +\Qref*{\Package{Latin Modern} fonts}{Q-type1T1}, are now +well-established, and a bunch of existing designs have been reworked +in MetaType1 format. + +\Package{Mf2pt1} is another translator of \MF{} font sources by way of +\MP{}; in addition, +available, \Package{mf2pt1} will use +\href{http://fontforge.sourceforge.net/}{\ProgName{fontforge}} (if it's +available) to auto-hint the result of its conversion. +(\Package{Mf2pt1} is also written in \ProgName{perl}.) +\begin{ctanrefs} +\item[MetaType1]\CTANref{metatype1} +\item[mf2pt1]\CTANref{mf2pt1} +\end{ctanrefs} + +\Question[Q-WYGexpts]{The \TeX{} document preparation environment} + +``\Qref*{Why \TeX{} is not \WYSIWYG{}}{Q-notWYSIWYG}'' +outlines the reasons (or excuses) for the huge disparity of user +interface between ``typical'' \TeX{} environments and commercial word +processors. + +Nowadays, at last, there is a range of tools available that try either +to bridge or to close the gap. One range modestly focuses on +providing the user with a legible source document. At the other +extreme we have \href{http://www.texmacs.org}{\ProgName{TeXmacs}}, +a~document processor using +\TeX{}'s algorithms and fonts for both editor display and printing. +\ProgName{TeXmacs} does not use the \TeX{} +language itself (though among other formats, \LaTeX{} may be exported +and imported). A bit closer to \LaTeX{} is +\href{http://www.lyx.org/}{LyX}, which has its own +editor display and file formats as well, but does its print output by +exporting to \LaTeX{}. The editor display merely resembles the +printed output, but you have the possibility of entering arbitrary +\LaTeX{} code. If you use constructs that LyX does not +understand, it will just display them as source text marked red, but +will properly export them. + +Since a lot of work is needed to create an editor from scratch that +actually is good at editing (as well as catering for \TeX{}), it is +perhaps no accident that several approaches have been implemented +using the extensible \ProgName{emacs} editor. The low end of the +prettifying range is occupied by syntax highlighting: marking \TeX{} +tokens, comments and other stuff with special colours. +Many free editors (including \ProgName{emacs}) can cater for \TeX{} in +this way. Under Windows, one of the more popular editors with such +support is the +Shareware product \href{http://www.winedt.com/}{\ProgName{winedt}}. +Continuing the range of +tools prettifying your input, we have the \ProgName{emacs} package +\href{http://x-symbol.sourceforge.net}{\Package{x-symbol}}, which does +the \WYSIWYG{} part of its work by replacing single \TeX{} tokens and +accented letter sequences with appropriate-looking characters on the +screen. + +A different type of tool focuses on making update and access to +previews of the typeset document more immediate. A recent addition +in several viewers, editors and \TeX{} executables are so-called +`source specials' for cross-navigation. When \TeX{} compiles a +document, it will upon request insert special markers for every input +line into the typeset output. The markers are interpreted by the \acro{DVI} +previewer which can be made to let its display track the page +corresponding to the editor input position, or to let the editor jump +to a source line corresponding to a click in the preview window. + +An \ProgName{emacs} package that combines this sort of editor movement +tracking with automatic fast recompilations (through the use of dumped +formats) is +\href{http://pauillac.inria.fr/whizzytex/}{\Package{WhizzyTeX}} + which is best used with a previewer by the +same author. + +Another \ProgName{emacs} package called +\href{http://preview-latex.sourceforge.net}{\Package{preview-latex}} +tries to solve +the problem of visual correlation between source and previews in a +more direct way: it uses a \LaTeX{} package to chop the document source +into interesting fragments (like figures, text or display math) which +it runs through \LaTeX{} and replaces the source text of those +fragments with the corresponding rendered output images. Since it +does not know about the structure of the images, at the actual cursor +position the source text is displayed while editing rather than the +preview. This approach is more or less a hybrid of the source +prettifying and fast preview approaches since it works in the source +buffer but uses actual previews rendered by \LaTeX{}. + +A more ambitious contender is called \TeX{}lite. This +system is only available on request from its author; +it continuously updates its screen with the help of a special version +of \TeX{} dumping its state in a compressed format at each page and +using hooks into \TeX{}'s line breaking mechanism for reformatting +paragraphs on the fly. That way, it can render the output from the +edited \TeX{} code with interactive speed on-screen, and it offers the +possibility of editing directly in the preview window. + +That many of these systems occupy slightly different niches can be +seen by comparing the range of the +\ProgName{emacs}-based solutions ranging from syntax highlighting to instant +previewing: all of them can be activated at the same time without +actually interfering in their respective tasks. + +The different approaches offer various choices differing in the +immediacy of their response, the screen area they work on (source or +separate window), degree of correspondence of the display to the final +output, and the balance they strike between visual aid and visual +distraction. +\begin{ctanrefs} +\item[preview-latex]Distributed as part of \CTANref{auctex}[preview-latex] +\item[texmacs]Browse \CTANref{texmacs} +\end{ctanrefs} + +\Question[Q-omegaleph]{Omega and Aleph} + +Omega\nothtml{ (\ensuremath{\Omega})} was developed as an extension of +\TeX{}, to use with multilingual texts, expressed in a variety of +input encodings. Omega uses 16-bit, Unicode-encoded, characters. It +provides many innovative concepts, notably including the ``translation +process'' that takes a character stream and transforms it according to +various processes that may be internally specified, or be a separate +program. + +While Omega showed a lot of promise at its mid-1990s announcement, +progress was slow, and development was essentially dead by the time +that one of the original developers withdrew (taking with him a bunch +of research students). + +Before that distressing event, a separate thread of development had +started, to produce a program % !avoid space between Aleph and comma +called Aleph\nothtml{ (\ensuremath{\aleph})}, which merged the facilities of +\Qref*{\eTeX{}}{Q-etex} into a stable Omega codebase and added other +extensions. Aleph also proved an attractive platform for many people; +but its development, too, has dried up. + +A presentation at Euro\TeX{} 2006 claimed that development of Omega +was picking up again, in parallel with research into what the (new) +developers consider a rational scheme for supporting \TeX{}-style +typesetting. The new system was to be known as Omega-2 +(\latexhtml{\ensuremath{\Omega_2}}{Omega subscript 2}), and was to be +designed in a modular fashion so that support of new facilities (such +as use of advanced OpenType fonts) could be added in a relatively +straightforward fashion. A quick web search leads to a recommendation +that potential users consider \Qref*{\luatex{}}{Q-luatex} instead; +fortunately, lessons learned in Aleph project have been carried +forward in the development of \luatex{}. + +\Question[Q-xetex]{\xetex{}} + +\href{http://scripts.sil.org/xetex}{\xetex{}}, by Jonathan Kew, is a +successor to the shareware TeX/GX program for Macintoshes. It was +developed as a \acro{WEB} `change file' applied to the original source +of \tex{}; the main changes include: +\begin{description} +\item[The input stage] \xetex{} by default reads Unicode (UTF-8, for + instance), although it's also capable of interpreting differently + encoded files (for backwards compatibility). Multibyte characters + are reduced to a single internal character upon reading, so they are + considered as a unique entity when tokenization is performed. (So, + for example, you can have command names in cyrillic, if you must, + but such a practice is not recommended.) +\item[The font management] a substantial revision has added support + for OpenType and TrueType fonts, delegating some parts to + third-party libraries. +\item[The maths font set up] \xetex{} introduces new primitives for + extending the \csx{mathcode} and \csx{mathchardef} commands in TeX, + allowing the user to specify characters in the whole Unicode set and + in 256 `math families' (\tex{} only has 16, which limits some maths + coding techniques). +\item[``Post-processing'' features (A)] \xetex{} links to the + \ProgName{teckit} library so it can apply a \extension{map} file + that allows transformation of characters in already formed token + lists, before they are processed in the ``stomach'' for typesetting. + In this way, a declaration ``\texttt{Ligatures=TeX}'' is provided, + which attaches a map directive to the font that transforms the + character combinations (familiar to \tex{} users) into a single + character; for instance \texttt{-{}-{}-} is transformed into + ``\textemdash''. +\item[``Post-processing'' features (B)] Characters can be assigned to + an ``interchar token class'' and it is possible to specify tokens to + be added when there is a transition from one class to another. The + packages \Package{polyglossia}, \Package{xeCJK} and + \Package{ucharclasses} exploit this feature. +\end{description} +Otherwise, the process of typesetting is essentially the same as +\tex{}'s. (However some changes have also been made in the +hyphenation stage that may give slightly different results if the same +document is compiled with \pdftex{} or \xetex{}.) +\begin{ctanrefs} +\item[polyglossia.sty]\CTANref{polyglossia} +\item[xeCJK.sty]\CTANref{xecjk} +\item[ucharclasses.sty]\CTANref{ucharclasses} +\end{ctanrefs} +\LastEdit{2013-02-21} + + +\Question[Q-luatex]{\PDFTeX{} and \LuaTeX{}} + +Elsewhere in these \acro{FAQ}s, we learn that development of +\Qref*{\PDFTeX{}}{Q-whatpdftex} is ``in essence'' complete~--- no new +facilities are being developed at the time of writing. The \PDFTeX{} +team has announced that they have frozen \PDFTeX{}'s specification in +its current state (version 1.40.11), and that nothing but bug +corrections will be provided up to the time of the final release, +\PDFTeX{} 1.50.0. (The interpretation of the statement seems to allow +sensible changes that are beyond any reasonable definition of +\emph{bug}\dots{}) + +As \PDFTeX{} development ran down, +development of a new system, \LuaTeX{} was started. +\href{http://www.lua.org/}{\ProgName{Lua}} is a interpreter designed +to be incorporated into other applications. \LuaTeX{} consists of a +\TeX{}-like engine with a \ProgName{lua} interpreter `embedded' in it; +the \ProgName{lua} interpreter has access to many of the data +structures used for typesetting, so that the programmer may also +interpolate chunks of \ProgName{lua} code into their \AllTeX{} macros, +or as `call-backs' for use when the \TeX{}-like engine does certain +operations. + +This arrangement offers the prospect of a ``semi-soft'' typesetting +engine: it will have its basic behaviour, but the user gets to +redefine functionality if an idea occurs~--- there will be no need to +persuade the world first, and then find a willing developer to work on +the sources of of the distribution. + +The \href{http://www.luatex.org/}{\LuaTeX{} project} is (with monetary +support from various sources) pursuing avenues that many of the other +current projects have in their sights, notably Unicode character +representations and support for OpenType fonts. The intention is +to integrate the extensions pioneered by \Qref*{Aleph}{Q-omegaleph}. +Users may also care to view the % ! line break +\href{http://www.luatex.org/documentation.html}{\luatex{} documentation page} +or the \href{http://wiki.luatex.org}{\luatex{} \acro{WIKI}} + +\texlive{} (2013) holds version 0.76.0 of \luatex{}. This version +demonstrates the ``final functionality'', though the project +remains a \ensuremath{\beta}-release. Functional stability was first +declared for version 0.50.0, released near the end of December 2009. + +\CONTeXT{} `Mark 4' can already make use of \LuaTeX{}; much of its +code already appears in two forms~--- a \TeX{}-based version +(\extension{mkii}) and a `\extension{mkiv}' version (new functionality +typically \emph{only} appears in `\extension{mkiv}' form), which uses +\luatex{} extensions (including \ProgName{lua} scripting). \LaTeX{} +packages that support its use are appearing (some of them providing +re-implementations of existing \context{} code). + +\latex{} running over \luatex{} (commonly known as Lua\latex{}) is not +an ``official'' entity (yet), but useful packages are +appearing (i.e., the \ctan{} path \path{macros/luatex/latex} holds +several items). +\begin{ctanrefs} +\item[\nothtml{\rmfamily}\luatex{} snapshot]\CTANref{luatex} +\item[\nothtml{\rmfamily}\pdftex{} distribution]\CTANref{pdftex} +\end{ctanrefs} +\LastEdit{2013-05-21} + +\Question[Q-ant]{The \textsf{ANT} typesetting system} + +Achim Blumensath's \href{http://ant.berlios.de}{\textsf{ANT}} project +aims not to replicate \TeX{} with a different implementation +technique, but rather to provide a replacement for \TeX{} which uses +\TeX{}-like typesetting algorithms in a very different programming +environment. \textsf{ANT} remains under development, but it is now +approaching the status of a usable typesetting system. + +\textsf{ANT}'s markup language is immediately recognisable to the +\AllTeX{} user, but the scheme of implementing design in +\textsf{ANT}'s own implementation language (presently +\ProgName{OCaml}) comes as a pleasant surprise to the jaded \acro{FAQ} +writer. This architecture holds the promise of a system that avoids a +set of serious problems with \TeX{}'s user interface: those that +derive from the design language being the same as the markup language. +\begin{ctanrefs} +\item[\textsf{ANT}]\CTANref{ant} +\end{ctanrefs} + +\Question[Q-extex]{The \ExTeX{} project} + +\href{http://www.extex.org/}{The \ExTeX{} project} is +building on the experience of the many existing \TeX{} development and +extension projects, to develop a new \TeX{}-like system. The system +is to be developed in Java (like the ill-fated \NTS{} project). + +While \ExTeX{} will implement all of \TeX{}'s primitives, some may be +marked as obsolete, and ``modern'' alternatives provided (an obvious +example is the primitive \csx{input} command, whose syntax inevitably +makes life difficult for users of modern operating system file +paths). Desirable extensions from \Qref*{\eTeX{}}{Q-etex}, +\Qref*{\PDFTeX{}}{Q-whatpdftex} and \Qref*{\ensuremath{\Omega}}{Q-omegaleph} +have been identified. + +Usability will be another focus of the work: debugging support and log +filtering mechanisms will please those who have long struggled with +\TeX{} macros. + +\ExTeX{} will accept Unicode input, from the start. In the longer +term, drawing primitives are to be considered. + +\Question[Q-biblatex]{Replacing the \BibTeX{}--\LaTeX{} mechanism} + +Producing a successor to \BibTeX{} has long been a favoured activity +among a certain class of \TeX{}-users; the author has seen reports of +progress (on several projects), over the years, but few that claim to +be ready for ``real-world'' use. + +Few would deny that \BibTeX{} is ripe for renewal: as originally +conceived, it was a program for creating bibliographies for technical +documents, in English. People have contributed mechanisms for a +degree of multilingual use (whose techniques are arcane, and quite +likely inextensible), while an extension (\ProgName{bibtex8}) allows +use with 8-bit character codes, thus providing some multilingual +capabilities. In addition, specialist \BibTeX{} style files are +available for use in non-technical papers. + +\BibTeX{} uses a style language whose mechanisms are unfamiliar to +most current programmers: it's difficult to learn, but since there are +few opportunities to write the language, it's also difficult to become +fluent (in the way that so many people fluently write the equally +arcane \TeX{} macro language). + +Oren Patashnik (the author of \BibTeX{}) summarises the issues as he +sees them, in a % !line break +\href{http://tug.org/TUGboat/Articles/tb24-1/patashnik.pdf}{\acro{TUG} conference paper from 2003} +that seems to suggest that we might expect a +\BibTeX{}~1.0 \dots{} which hasn't (yet) appeared. + +In the absence of \BibTeX{}~1.0, what do we need from the bibliography +system of the future?~--- simple: a superset of what \BibTeX{} does +(or can be made to do), preferably implementing a simpler style +language, and with coherent multilingual capabilities. + +There are two parts to a bibliography system; processing the database +of citations, and typesetting the results. The existing \bibtex{} +system provides a means of processing the database, and there are +macros built into \latex{}, as well as many \latex{} packages, that +process the results. + +Of the direct \BibTeX{} replacements, only two have been submitted to +\acro{CTAN}: Cross\TeX{} and \ProgName{biber}. + +Cross\TeX{}'s language feels familiar to the existing user of +\BibTeX{}, but it's redesigned in an object-oriented style, and looks +(to a non-user) as if it may well be adequately flexible. It is said +to operate as a \bibtex{} replacement. + +Cross\TeX{}'s team respond to queries, and seem well aware of the +need for multilingual support, though it isn't currently offered. + +\ProgName{Biber} is intimately associated with the \latex{} package +\Package{biblatex}; it is logically a \bibtex{} replacement, but is also +capable of using bibliography databases in its own +\ProgName{biblatexml} (\acro{XML}-based) format. \Package{Biblatex} +can also use \bibtex{}, but \ProgName{biber} opens up a far wider +range of possibilities, including full Unicode support. + +\Package{Biblatex} is a processor for the output of an application +such as \ProgName{biber} or \bibtex{}; the style of citations and of +the bibliography itself (in your document) is determined by the way +your \Package{biblatex} style has been set up, not on some +\bibtex{}-\latex{} package combination. \Package{Biblatex}'s +structure thus eliminates the collections of \BibTeX{} styles, at a +stroke; it comes with a basic set of styles, and details are +determined by options, set at package loading time. The author, +Philipp Lehman, evaluated the whole field of bibliography software +before starting, and as a result the package provides answers to +many of the questions asked in the bibliography sections of these +\acro{FAQ}s. + +\Package{Biblatex} was released as experimental software, but it's +clear that many users are already using it happily; Lehman is +responsive to problem reports, at the moment, but a \emph{de facto} +set of expert users is already establishing itself. A set of +contributed styles has appeared, which cover some of the trickier +bibliography styles. The road map of the project shows that we are +now working on the final \emph{beta} releases before the ``stable'' +\Package{biblatex}~1.0. + +Finally, \Package{Amsrefs} uses a transformed \extension{bib} file, +which is expressed as \LaTeX{} macros. (The package provides a +\BibTeX{} style that performs the transformation, so that a \LaTeX{} +source containing a \cmdinvoke{nocite}{*} command enables \BibTeX{} to +produce a usable \Package{amsrefs} bibliography database.) + +\Package{Amsrefs} is maintained by the AMS as part of its author +support programme, +\begin{ctanrefs} +\item[amsrefs.sty]\CTANref{amsrefs} +\item[biber]\CTANref{biber} +\item[biblatex.sty]\CTANref{biblatex} +\item[bibtex8]\CTANref{bibtex8} +\item[\nothtml{\rmfamily}biblatex contributions]\CTANref{biblatex-contrib} +\item[\nothtml{\rmfamily}CrossTeX]\CTANref{crosstex} +\end{ctanrefs} + |