[tug-summer-of-code] Project idea: Hyperlinked syntax highlighting for TeX code

Jonathan Fine jfine at pytex.org
Mon Feb 16 10:31:50 CET 2009

Will Robertson wrote:

>> This project has three parts.  The first is providing enhanced syntax 
>> highlighting for TeX code.  The second is creating a commands 
>> database.  The third is linking together the first and second parts.
> The highlighting part is easy enough, right? All editors can do that 
> capably enough (although understanding keyval lists would be novel). And 
> the commands database should be straightforward albeit tedious.

The problem with editors is that there are so many of them.  This is why 
I suggest enhancing Pygments and Chili.  Once all is in place, the 
system can then be ported from web pages to Emacs, WinEdt, TeXShop, 
TeXWorks, Eclipse.  Oh, and editing in a web-page form.

The commands database could be interesting.  For example, it could 
provide example of use of a command.  Maybe with user contributed code, 
such as http://www.djangosnippets.org/ (whose source - less styles - is 
open source and documented in the "Practical Django" book).

> The value in this sort of system for me would be to provide the 
> information in such a way that interactive editors could use it as well 
> as pretty-printing engines. Having auto-complete and spell check while 
> writing documents/package would be quite the value proposition.

I agree, but this will be a student summer project, starting from close 
to scratch.

> With a system in place to support these ideas, formats such as LaTeX3 
> could provide features to aid integrating the syntax of new packages 
> into whatever this system is. (Such as producing a listing for CTAN of 
> all macros defined in a package.)

Yes.  If each package listed the command it provided etc.  As I 
understand it, ConTeXt has something similar.

> Ideas such being able to understand package and class options in LaTeX 
> would fit into this concept, as well. Even a short description (taken 
> from the CTAN catalogue) of what each package/class is.
> * * *
> So clearly there's scope for this sort of project; the utility of it 
> hinges fairly drastically around being able to be actually used 
> somewhere -- and where better than the TeXworks editor?

I suggest that if the student is well-placed to integrate what's done 
with an editor, that should be an optional end-of-project activity.  But 
I'd like to focus first on web-page delivery that is accessible to all.

But I'd like the project to focus on the core items I listed.  There are 
already enough large projects in progress.  I'd favour small simple 
useful projects that succeed.

> If there is more than one student interested, it would be possible to 
> get one working on the hyperlinked pretty-printing engine, and another 
> working on incorporating it into TeXworks.

I think the proposal I've written is nicely self-contained.  Maybe you'd 
like to write another proposal, Will, covering some of your ideas.


More information about the summer-of-code mailing list