[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] LaTeX preamble

From: Ralf Hemmecke
Subject: Re: [Axiom-developer] LaTeX preamble
Date: Wed, 30 Nov 2005 12:21:58 +0100
User-agent: Thunderbird 1.4 (X11/20050908)

Martin Rubey wrote:
Dear Ralf, *

I think that it is not a good idea to fix the set of packages allowed. Just an
example: suppose I wanted to write a package dealing with young tableaux -
quite probable, in fact. Then almost certainly I'll use the youngtab
package. But would you have thought of this now already?

Alright. Clifford mentioned some chemistry packages etc. There are a lot of packages around that we simply cannot all put into a common header.

My suggestion would be the following. Split Axiom into Algebra and the underlying stuff. For the underlying things I have the impression, we could agree on a common preample. And, in fact, it would be a good idea to do so, since it is a lot of code to be maintained.

As for Algebra... that is where most (if not all) of the mathematics is.
There are again two parts.
1) The current code.
2) Future code that comes from contributions of other people around the world.

Fixing a preample for 1) could be done. But my vision is somewhat different. The Algebra documentation should be something like a "collection" of articles, that are hyperlinked together but retain a certain layered structure. So the articles build up some kind of hierarchy.

I also don't think we can achieve ONE common agreement on the hierarchy of domains and categories. We could be close to mathematics, but it would not be one-to-one. The language simply imposes some restrictions.

Take for example Ring. That is a Semigroup with respect to multiplication and a Group with respect to addition. Wrong! It's an AbelianGroup with respect to addition and in Axiom an AbelianGroup is not a Group. :-( There is simply no language feature to rename operations. Well, that is a other topic...

You should see ALLPROSE in this like light. Several articles(=libraries) that build on top of each other and extend Axiom step by step and may at some point in time be integrated into Axiom.

Since that is going to be bigger and bigger, I thought already about a way to combine two (or more) ALLPROSE projects. Unfortunately, I have not succeeded yet, but there is a package "combine" which could probably help me here. But I have still a little design problem. I want references from one article which refers to a domain in some other article (library) to become hyperlinks if both articles are combined. If there were no additional value, we could simply leave the articles separate and just document how they relate in another article. (The latter should be done anyway.)

So I'd propose to allow that a list of packages and options can be passed to ALLPROSE.

ALLPROSE allows you to add any package you like. Just write a file PROJECTNAME.sty.nw and put the things there. It will all come into the preample.

Of course this raises yet another problem: some packages are not compatible
with each other. So maybe we should leave it to the authors that contribute to
the Axiom source that the latex compiles proberly, and simply leave allprose as
it is -- and if a new package is needed, he needs to add it to the list of
packages ALLPROSE includes...

As Tim said, the packages that are used by some article should be distributed with the article. The problem is that one has to read the licenses of those packages in order to know what one is allowed to do.

I think an important thing is to state in the article what version of the LaTeX package has been used by the author. Some packages are not compatible with earlier versions. I would at most require packages to be included, if they cannot be found on CTAN (

Any, the rationale is:
A) fix the preample for every book-volume and the corresponding files
   except ALGEBRA.
B) allow any style for Algebra contributions (but still no
   \documentclass{..} ... \begin{document} ... \end{document}
   wrapper---separate style from contents).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]