On Sep 12, 2006, at 4:25 AM, Max Lein wrote:
On Sep 11, 2006, at 8:31 AM, Max Lein wrote: This won't be very easy to do, we'll have to figure out the best way to do it in terms of making sure the user stays up to date with
newer
versions of the bundle. We could tell you how to edit the language grammar to add these things, but that's not very easy to do and results in the user having local modifications to the bundle which might result in them not seeing any official changes that happen to the grammar.
Ok, I'm no expert, but I figure this is what many, many people want to do. Perhaps you could just list these commands in a separate file and include that file appropriately?
Not with the tools at our disposal, no. But see below for what you can do now.
One thing that can be done now, is that you can create a new
language
that basically has the extra commands, and then includes the latex language, and you would be using that new language instead. I could offer a template language and tell you what you need to edit where. However, I would consider that only a temporary fix, because my understanding is that the next major version of TextMate will have tools that will make this customization process a lot easier/
powerful. That would be great.
Very well, but use at your own risk. For this, open the Bundle Editor (⌃⌥⌘B) and create a new language. Give it any name you like and put it in any bundle you want. Then, in the big text area on the left, place the following text:
{ scopeName = 'text.tex.latex.mylatex'; firstLineMatch = '^\documentclass(?!.*{beamer})'; fileTypes = ( 'tex' ); foldingStartMarker = '\begin{.*}|%.*(fold)\s*$'; foldingStopMarker = '\end{.*}|%.*(end)\s*$'; patterns = ( { name = 'support.function.myfunctions.latex'; match = '(\)(my|commands|here)\b'; captures = { 1 = { name = 'punctuation.definition.function.latex'; }; }; }, { include = 'text.tex.latex'; }, ); }
Set a key equivalent for this language. Make sure to press the button that says "Test". Now, set this as the language in one TeX file. This should be respected in all other files. Now, the commands: \my \commands \here will be recognized as support.function.myfunctions.latex You can change that by changing the line with the name. You can add commands to this list by adding them next to here in the match line (well, you probably want to remov e those three first), separated with a vertical line (|). For instance: match = '(\)(this|list|of|commands|)\b' would allow the use of the commands \this, \list, \of and \commands.
Adding environments is a bit more work.
Well, we do what we are used to in the end ;-) I use align, because I got used to the way it, ahem, aligns formulas.
One of the things I hope to add to the bundle soon is the ability to quickly change between equation styles. I.e. you are in an align environment, and you press a button and it becomes a split environment. And so forth.
Further, they have been designed so that you could execute them with a selection, and then they would wrap around that selection.
You thought of everything ;-)
We try to provide a service ;)
I would do: select the second part of the formula: press cmd-x, move down until out of the environment, type eq (or the right shortcut) followed by cmd-{ to generate a new equation environment, and then press cmd-v.
No sure, but that's what in principle the closing tag feature should be for ...
Well, the closing tag will just close the one above it. You also want to open one. One could probably duplicate and modify the closing tag command, so that it instead adds a \begin{env} too. So it would be a "split environment" command. Might do that actually.
That is a good idea. Please suggest a list of specific howto topics. I'll see if I can also do a screencast demonstrating a typical complete workflow.
Yes, this would complement written documentation nicely.
I guess that's why we have the outline at the very beginning, which links to the subsequent sections. In the first draft of the help there was such a thing, but then it was removed. We were trying to keep the size of the LaTeX file a small as possible, so that users could actually read the entire thing.
I don't think this is something you can keep up with the increasing complexity. Thus, I don't think it's a good idea to constrain yourself in such a way.
Sorry, I should have said: The size of the LaTeX Help file. I'm all for creating other sources of assistance, like howtos and cheatsheets and stuff. The help is supposed to be for reading by someone new to the bundle, possibly even relatively new to LaTeX, who needs to get started getting things set up and learning the basic commands.
Instead, you could design one section to be read thoroughly and then let the rest be what it is: a manual.
How about a cheatsheet instead? A single page containing all the necessary information, in the form of a pdf?
Sounds like a good start. Refer to the appropriate sections in the Help as well, then people can go on reading.
I was thinking of two different kinds of cheatsheets, one pdf that would fit in a page and could be printed, and one html/markdown, longer and with more explanation.
For me, the most helpful kind of documentation is one that
explains
by example (e. g. Samba by Example). So I would suggest to write HowTo sections on `Getting Started', `Big LaTeX Projects', `Customizing The LaTeX Bundle'. I would be willing to make additions of my own.
I would say let's try to create some more specific "HowTo" questions, and then we'll see about answering them. I'll get started on the cheatsheet for now.
Max
Haris