2008/07/22

Problems with LyX #1

This is the first article in a possibly ongoing series documenting the problems in LyX that I’ve had to debug for people in my department. If you’re not a LyX or LaTeX user, there won’t be much to interest you here.

I’m a LaTeX guy through and through, and while I would never think of writing in LyX myself, I can totally appreciate that “normal” people find LyX much more approachable (and easier!) than LaTeX. Nonetheless, LyX is a rather leaky abstraction, and most errors that people have are due to their complete lack of understanding of the underlying LaTeX layer. In my limited experience.

That’s okay; LyX is free software and they can’t afford to test on beginners. I’m sure heavy LyX users (and the developers) don’t run into the same problems that I have to solve, because they know what they’re doing and don’t make the same mistakes. At the same time, I’ll go out on a limb and suggest that sometimes their knowledge of LaTeX isn’t as comprehensive as someone like me who actually writes documents and programs packages in it.

Now, the errors I report here are necessarily vague and don’t pin down problems very well. That’s because I can’t afford to spend any more time on this at all. That said, if contacted directly I’ll do my best to reply quickly and in as much detail as I can. Here we go:

  • Please make it much easier to insert a floating graphic; it’s the 99% case and should be a single action in the GUI. New users see “Insert graphic” (or whatever it says) and paste it inline in their document. If it were wrapped in a float, they’d get what they actually wanted.

  • Especially in maths mode, if non-existent macros are typed they shouldn’t be displayed in a pretty way. For example, I had a user who was used to typing “\alpha” to get greek type slashes before all roman characters in maths (e.g., “\x”). The visual display in this case (simply an italic “x”) implied that this was legal when it in fact produced sometimes complicated errors (in the case that an accent macro was typed such as, say, \i).

  • The prettyref package for automatically formatted cross-references is basically the worst choice from a variety of packages that do this function. Use the refstyle package instead.

  • If there is no bibliography inserted in the document, please prompt for one (with explanation) if a citation is attempted. It’s not obvious that you have to insert a bibliography before you’re allowed to reference citations (the logical flow is the other way around: I cite a paper and a bibliography is created from that). Adopting the biblatex package and putting the \bibliography{} into the preamble would help things in this regard.

  • File paths seem to continue to be a big problem. Yes, it offends my sensibilities when people use analphabetic characters in the directory names (not to mention spaces), but these damn users are just doing what the OS allows. If putting a LyX file inside the folder “# New Stuff/” causes the compilation to fail, then it should either protect the path better or just tell the user straight up to rename the folder.

  • This may no longer even be a problem, but a while back it was fiendishly annoying debugging a problem where something like “vector $[a,b,c]$” was put inside a subfigure caption. The reason? Subfigure captions are input in LaTeX in square brackets, so any square brackets in the caption need to be hidden from the parsing. LyX should automatically wrap the subfigure caption with curly braces behind the scenes.

That’s all for now. That these are only minor details, which is a testament to the highly useable state the LyX team have brought their program over the years. Here’s to a brighter future yet.