[TxMt] Latex Bundle grammar

Charilaos Skiadas cskiadas at gmail.com
Tue Sep 11 11:23:59 UTC 2007

On Sep 11, 2007, at 1:29 AM, Alain Matthes wrote:

> Le 11 sept. 07 à 03:11, Brad Miller a écrit :
>> Then I don't understand very well why all the part about "lstlisting"
>> "lstlisting" don't work with utf8 and why it is not possible to make
>> this work outside text.tex.latex ?
>> (perhaps it is not possible ?)
>> I suppose I am partially to blame for that, since I worked on the  
>> grammar early on, and I do a lot with lstlisting in my writing.   
>> Why is this a problem for you?
> hello
> No you are not to blame  and I want to say that your work is fine  
> and it's a real pleasure to work with TexTMate on LaTeX. But I now  
> I've a little time to see what  there is in the grammar and to make  
> a theme for LaTeX.
> I know that "lstlisting" is sometimes very important for authors  
> but we can say the same for a lot of packages.
> My english is poor so perhaps my question is difficult to understand :
> I would to know how is managed the bundle :
> There parts like
> latex
> tex
> tex.math
> now if I want to create  an extension for that with
> grammar (keywords)  for pgf/tikz or
> calc,ifthen,xkeyval ( for those who make packages)% i'm not sure of  
> my english here !!
> pstricks etc...
> I would like to know if you have a method (project ??) and how to add
> grammar .
> I can make my personnal latex bundle but i would prefer to make  
> something useful for every one (it's possible!)
> Regards  Alain

Though I'm still not entirely sure what the question is, I'll try to  
answer it.

The LaTeX bundle contains the following grammars:

TeX Math
LaTeX Beamer
LaTex Memoir

1) The TeX grammar contains items that should be valid in any system  
based on TeX. (For instance a grammar for ConTeXt should probably be  
including this grammar.)
2) The TeX Math grammar contains commands that are used in math mode.  
It is included in other grammars whenever they have to enter math  
mode. Typically one would create just a repository rule in a grammar  
for something like that, instead of a brand new language, but we  
needed to be able to call this grammar from lots of other grammars,  
so we had to make it into a separate grammar.
3) The LaTeX grammar is the basic grammar. It includes the TeX  
grammar and adds all the LaTeX specific stuff. In particular, it adds  
the \[ ... \] and \( ... \) math modes, and hence needs direct access  
to the TeX Math bundle, which it includes at those points. (This is  
why we could not simply have TeX Math as a repository in the TeX  
grammar, because then the LaTeX grammar couldn't call it.)
4) For specialized document classes, at this point in time, we simply  
create a new grammar that includes the LaTeX grammar and adds its own  
specific stuff. (This might become simpler/better in TM 2.0).  
Examples of this are the Beamer and Memoir grammars.

5) For commands in particular packages, we typically would add those  
to the LaTeX grammar. Just make the additions you want to the grammar  
and send it to us, and we would add them. (Or consult with us on what  
changes you think are needed.). So for adding specific package  
commands, this is the option you should aim for.

6) For working on sty files however, ideally we would have a  
different grammar. This grammar would include the LaTeX grammar in  
it, and add all the stuff that package authors would need. So for a  
"package authors" grammar, this is the option you should aim for.

Hope this helps you get started, please feel free to ask more  
questions. The structure of the LaTeX bundle is admittedly not the  
simplest in the world, and the vastness and free structure of LaTeX  
is probably partly to blame.

Haris Skiadas
Department of Mathematics and Computer Science
Hanover College

More information about the textmate mailing list