[TxMt] Summary/Plug for LaTeX in TextMate

Alexander Ross alex.j.ross at gmail.com
Sat Dec 9 03:56:08 UTC 2006


Here's the link to the thread:

http://article.gmane.org/gmane.comp.tex.macosx/21483

– Alex

On Dec 8, 2006, at 4:42 PM, Charilaos Skiadas wrote:

> I recently sent an email to the MacTeX mailing list, in response to  
> someone's question about what each editor for LateX has going for  
> them. It is a long post talking about some of the major things in  
> the bundle, so I thought it might be of interest/useful to some  
> people in this list. Appended:
>
> Haris
>
>
> A lot of these things are documented in many places, so to begin  
> with I will add some links to resources, and then will talk about  
> some of the things it can do well, IMHO.
>
> 1. First and foremost, there are a number of screencasts I've done,  
> along with blog posts, a lot of them on the LaTeX bundle. They are  
> here:
>
> http://skiadas.dcostanet.net/afterthought/list-of-my-textmate-pages/
>
> Also see here for more TextMate screencasts: http://macromates.com/ 
> screencasts
>
> 2. The online TextMate manual is a key resource of information.  
> There you can learn about:
>   1. snippets (http://macromates.com/textmate/manual/ 
> snippets#snippets). These are easy to create yourself for common  
> repeatable code (and so much more).
>   2. project navigation (http://macromates.com/textmate/manual/ 
> working_with_multiple_files#moving_between_files_with_grace)
>   3. Find and Replace in multiple files (option regexp included)  
> (http://macromates.com/textmate/manual/ 
> working_with_multiple_files#find_and_replace_in_projects)
>   4. Navigating within a single file (http://macromates.com/ 
> textmate/manual/navigation_overview#navigation_overview)
>   5. Moving text (http://macromates.com/textmate/manual/ 
> working_with_text#moving_text)
>   6. Setting up your preferred color arrangement via themes:  
> (http://macromates.com/textmate/manual/themes#themes)
>
> Now I'll talk about the LaTeX-specific commands in TextMate. I will  
> not refer to their shortcuts, because you can set these to whatever  
> you like, though they do have some reasonable defaults. You can see  
> these commands using ctrl-esc and navigating into the LaTeX bundle.  
> The help file for the bundle is here, in markdown format: (http:// 
> macromates.com/svn/Bundles/trunk/Bundles/Latex.tmbundle/Support/ 
> help.markdown). From within TextMate this can be accessed through  
> the Bundle's help command.
>
> Hm, perhaps I should explain what Bundles are very briefly. There  
> is a core TextMate program, which offers the ability to extend it  
> by creating Bundles, which are collections of rules, commands and  
> preferences on how TextMate should act in particular languages. In  
> some sense a lot of the power of TextMate is in these bundles. The  
> bundles have a very open license (http://macromates.com/svn/Bundles/ 
> trunk/LICENSE), and are being maintained by a large group of  
> volunteers. The list of languages supported is quite extensive  
> (http://macromates.com/svn/Bundles/trunk/Bundles/). The success of  
> TextMate is largely due to this power it provides to the bundle. It  
> is easy for people to add functionality to TextMate, in a similar  
> way as one would add functionality to emacs or vi, with the  
> difference that it is a lot easier for "newbies" to add functionality.
>
> Ok, on to the bundle then. First of all, you don't need any  
> customizing to begin with. Dragging a LaTeX document onto the  
> TextMate icon should just open it with TextMate and set you to  
> LaTeX mode. To start a new document, you can use the Templates  
> found under the file menu, or you can start from a scratch file.  
> The moment you save the file with extension .tex, TextMate will  
> recognize it as a LaTeX file and color it accordingly.
>
> 1. Now first of all, creating environments. TextMate has a command  
> called "Insert Environment Based On Current Word", triggered by  
> command-{ (which is command-shift-[ in US keyboards, (command  
> key=apple key)). You can even use this without a word and it will  
> offer you a list of environments to insert. If you type in a word  
> first, then TM creates an environment based on this word. For  
> instance, typing "en" or "enum" and then the command trigger (cmd- 
> {) will insert:
>
> \begin{enumerate}
> 	\item
> \end{enumerate}
>
> and place the caret right after the \item thing. When you are done  
> with the first item, pressing Enter (fn-return on laptops) inserts  
> a newline and a new \item entry. Similar behavior for "it", "item"  
> for itemize etc. You can further customize this list to your  
> heart's content by using the "Edit Configuration File" command in  
> the LaTeX Bundle. For me a typical workflow these days is using the  
> exam class. The "words" "q", "p" and "sol", followed by command-{,  
> produce the "questions", "parts" and "solution" environments  
> respectively.
>
> 2. There is a similar command for inserting common commands, called  
> "Insert Command Based On Current Word". This is triggered by  
> command-}, and functions in a similar way. for instance "l" becomes  
> "\lim_{}" with the caret inside the braces. Once you are done  
> adding things there, pressing tab takes you out of the braces.
>
> 3. The LaTeX bundle offers context-sensitive completion, via the  
> common "esc" key. For instance, when typing a command, it will  
> complete only with respect to commands, and not every word in the  
> text. It will use any commands you have introduced before, as well  
> as a stock list of commands. For instance typing "\dis" and  
> pressing escape converts it to "\displaystyle". Typing "\di" and  
> pressing escape multiple times cycles through all commands starting  
> with \di.
>
> On the other hand, if you are inside a \ref{}, then it completes  
> with respect to all keys found in \label{} commands within the  
> current document or any tex file included in your "root  
> document" (called master document in TM). Similarly, inside a \cite 
> {} it will offer completion with respect to all bibliography keys  
> in your bib file and/or any \bibitem's in your document. Also,  
> option-esc will offer you a popup of all completion matches,  
> similar to the BibDesk completion plugin that BibDesk offers  
> (though I think that plugin is a lot closer to XCode style  
> completion, anyway...).
>
> 4. Image drag and drop. You can drag and drop any image into the  
> text, and an appropriate figure environment will be created, with  
> the accompanying \includegraphics command. By pressing modifier  
> keys, option or shift in this instance, you can adjust whether you  
> want the entire figure environment, or just a simple \begin{center} 
> \includegraphics...\end{center} thing, or the \includegraphics by  
> itself. And these can to some extend be customized.
>
> 5. Table conversion. You can create a table by first typing the  
> entries into rows, with columns separated by tabs, like so:
>
> one	two	three
> four	five	six
>
> and select it and run a command, and it will become:
>
> \begin{tabular}{ccc}
> \hline
> one & two & three\\
> \hline
> four & five & six\\
> \hline
> \end{tabular}
>
> Similarly, you can create a new table with a prescribed number of  
> rows and columns.
>
> 6. Wrapping things. You can tell TextMate to wrap the current  
> selection in a command. Suppose for instance you just typed the  
> sentence "foo bar" and what to higlight it, so to include it in  
> \emph. In TextMate, you would select it by pressing opt-left arrow  
> twice, and then press ctrl-shift-w. This results in:
> "\emph{foo bar}" with the emph selected, so that you can type  
> another command in its place. Pressing tab instead moves you past  
> the closing }. There is a similar functionality for wrapping the  
> selection in a begin-end environment pair.
>
> 7. Changing environments. Suppose you are inside a split  
> environment, and decide to change it to aligned. In TM, you would  
> press ctrl-option-E, and then just type in the environment name,  
> and both \begin and \end entries get fixed. Similarly, there is a  
> command to toggle the presence of a * in the environment, like  
> turning {equation} to {equation*} and back.
>
> 8. Project Outline command. I recently added this command. It  
> offers you an HTML, clickable outline of your project, much like a  
> table of contents. Clicking on any section title takes you to the  
> corresponding section.
>
> 9. Special Beamer setting. You can set the language grammar to  
> LaTeX Beamer, which causes some commands to have particular  
> behavior related to beamer. For instance, the commands inserting a  
> new \item also add an overlay specification to it.
>
> 10. You can quickly turn a list of of lines into an itemize or  
> enumerate environment, by selecting them and running the command  
> ctrl-shift-L.
>
> 11. This is a general feature of TextMate that I found worth  
> mentioning, it's very useful. It has a columnar editing mode, where  
> you can for instance select a bunch of lines and add the same text  
> at the beginning of each line. For instance with the three lines:
>
> foo
> bar
> baz
>
> we could move the caret at the beginning of the first line, then  
> shift-down twice, and then press option for columnar insertion. Now  
> typing "\item " adds it to all three lines.
>
>
>
> Ok, this is probably enough for now, but I would be happy to answer  
> any other questions you have about TextMate. And you can usually  
> find me in the irc channel, (irc://irc.freenode.net/#textmate). It  
> is populated almost all the time by extremely helpful and great  
> people (I would in fact say it is one of the great things TM has  
> going for it).
>
>
>
> ______________________________________________________________________
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
> http://lists.macromates.com/mailman/listinfo/textmate




More information about the textmate mailing list