General ⇒ LaTeX3 project -- Just some (irrelevant ?) thoughts
LaTeX3 project -- Just some (irrelevant ?) thoughts
I just have a question about the LaTeX3 project. So, is the intention of the developer team to build a code from scratch, with limited compatibility to LaTeX2e, or will it be a high-level macro code with full compatibility with LaTeX2e. I'm asking this because I read in the project's website something about "xpackages" that will be compatible with many (but not all?) of the LaTeX2e packages on CTAN.
So, I was wondering if it is better to have a steady system giving the same results (as plain TeX is) or working on a system that constantly changes to (unpredicted?) ways for the simple user. In other words, improvement does not (or does not have to) always coalesce with radical change but to better functionality.
NEW: TikZ book now 40% off at Amazon.com for a short time.
And: Currently, Packt sells ebooks for $4.99 each if you buy 5 of their over 1000 ebooks. If you choose only a single one, $9.99. How about combining 3 LaTeX books with Python, gnuplot, mathplotlib, Matlab, ChatGPT or other AI books? Epub and PDF. Bundle (3 books, add more for higher discount): https://packt.link/MDH5p
-
- Site Moderator
- Posts: 814
- Joined: Tue Jul 01, 2008 2:19 pm
Re: LaTeX3 project -- Just some (irrelevant ?) thoughts
1) Improve LaTeX programming now
2) Build a new, better, LaTeX kernel.
Part (1) means having LaTeX3 packages which can be run "on top" of LaTeX2e ("l3in2e"). This is the aim of the xpackages: they run on LaTeX2e, but are coded in LaTeX3 internal syntax. The basics for LaTeX3 programming are also loadable on top of LaTeX2e (otherwise none of this would work). See the expl3 package on CTAN. I'm currently recoding my siunitx package so that version 2 will use LaTeX3 internally, for programming, but it will still be a LaTeX2e package. The xpackages are more experimental, as they alter things like the output routine. Hence the "health warning".
Part (2) is more difficult. The current LaTeX kernel is a mess, partly because of the constraints on computing power when it was designed (late 1980s). There is no sane interface for making changes: look at how often you need \makeatletter to make trivial changes. This means that a new kernel can't be compatible with existing packages, almost all of which make assumptions about LaTeX internals. The aim is to design a much more "abstracted" kernel, so that the interfaces and code are independent. In that way, the problem can be avoided in the future (we hope).
The user design is not totally clear at the moment. The likelihood is that the basics of a LaTeX document (\begin{<thing>} ... \end{<thing>}, \emph{<text>}, etc.) will stay the same, but that the way changes are made to layout will be very different. The whole stability question is hard: the team have to balance the benefits of stability over the fact that at some point change is necessary (try doing serious LaTeX programming involving interaction with multiple other packages).
You might want to e-mail the LaTeX-L list to get a view from other people on the team: I'm the only one who is a regular here.
Re: LaTeX3 project -- Just some (irrelevant ?) thoughts
It's just that from the user point of view, many of us who work on LaTeX and (having limited programming background) attempt to mess with the code (avoiding the use of many packages) in order to interact with the format, etc. of their documents, wouldn't like to believe that some day their old documents would need major changes to be re-compiled. But this whole thing of course is a question of the future.
-
- Site Moderator
- Posts: 814
- Joined: Tue Jul 01, 2008 2:19 pm
LaTeX3 project -- Just some (irrelevant ?) thoughts
My personal take is that something like:Christos wrote: It's just that from the user point of view, many of us who work on LaTeX and (having limited programming background) attempt to mess with the code (avoiding the use of many packages) in order to interact with the format, etc. of their documents, wouldn't like to believe that some day their old documents would need major changes to be re-compiled. But this whole thing of course is a question of the future.
Code: Select all
\documentclass{article}
\begin{document}
\section{A section}
\subsection{A subsection}
Some text here with \emph{emphasise}.
\end{document}
The problems with the default layout choices in LaTeX2e are well known. On top of that, there is a need to beyond OT1-encoded Computer Modern as the default font: in a Unicode world, I think we need to move to using Latin Modern and using sensible encodings. Once you do that, layouts change and there is a need for new thinking.
Once of the issues is that most real LaTeX documents have a lot of \usepackage instructions in them, followed by macros related to the packages. Quite a lot of that will need to be replaced, as the new kernel is supposed to cover "basically all of The LaTeX Companion".