> Docs seem to indicate that somebody out of frustration - instead of
> checking available tools - re-invented, in a form of 'chktex', a long
> existing - for years and years, predating initial versions of LyX -
> and well working wheel known as 'lacheck' and that LyX team is not aware
> of that. Comments I got seem to indicate that 'lacheck' actually catches
> more of assorted boo-boos but this is a second hand impression and not
> a personal experience.
Chktex is better than lacheck, AFAIK. When I was about to implement the
typographical checking in LyX, I surveyed the options, and decided that chktex
was the better one. This judgement was made mostly on the basis of the
documentation of the two packages, where I got the firm impression that chktex
was a superset of lacheck. A better wheel than lacheck.
Maybe I was misled, but I doubt it. The thing is that LyX does not make full
justice of chktex, so you should not judge chktex on what you see in LyX alone.
The reason is that LyX envokes chktex on a crippled temporary LaTeX file where
each word is put on a separate line, and since chktex (and also lacheck AFAIK)
works on a line-by-line basis alone, the result will be that many of the
warnings are not caught, because they span more of a context than one word
only.
This limitation is mentioned in the documentation for chktex in LyX. In 1.1.x,
we plan to get rid of the crippled temporary LaTeX export files, and when we do
that, the chktex program will come to full justice as well, increasing the
benefit further. Incidentally, I also plan to implement support for lacheck,
because after all, it's more widespread than chktex, and then each can chose
the preferred tool.
But as it is now, the support for chktex is not completely useless. Despite the
limitations, I find that the system does indeed find common typographical
errors that often otherwise go undetected, and I routinely use it as part of
the final checking of a document, just as spell checking is.
I just mention all of this to try to explain the role of the typographical
checking in LyX. Then hopefully the limitations will seem less arbitrary, and
it will be easier to understand why things are as they are.
Often, you will find that LyX does not do something as well as other tools that
address the same problem. Emacs does most of what LyX does, and some things are
done better. Then again, many things are done worse, so overall, LyX is IMO
better for the task at hand. But some things will always be better done
elsewhere, and all we can do is point out the differences that seem important
to address.
Often it turns out that the differences are caused by technical problems, and
can be very difficult to fix, and other times, the differences are there simply
because nobody noticed them earlier. In either case, it's hard to know in
advance, and it's important to point out what differences are considered
important. And in either case, we as developers have an informal responsibility
to at least try to explain why things are as they are, if not just fix them.
Michal has pointed out a number of problems, and initially, I was a little put
off of the tone that I read as negative, suggestive and annoying. Then I
realised that I should not read it like that. I had to read it as it is: A
listing of shortcomings of LyX. Nothing more, nothing less. It's not a critique
of the people behind LyX. It's just a valuable aid for us to learn what needs
to be improved.
So please keep up the good work, and don't be disappointed because of some of
the short-comings of LyX. Stress test LyX, and post the results here. Abuse the
program as much as you like, and tell us what is fundamentally wrong, or what
just needs a little polish.
But always try to remember that LyX is developed by volunteers in their spare
time, and therefore, don't expect that you can have everything (unless you do
it yourself ;-). We always try to improve LyX, and all want the best for the
program given the limitations we work under, but don't expect miracles (every
time ;-)
After all, it turned out that there was not that long to go before LyX worked
well on the Alpha.
Greets,
Asger