On 2011-05-27 17:19:30 +0200, Andreas Schneider said:
On Friday, May 27, 2011 17:09 Wolfgang Schuster wrote:
Am 27.05.2011 um 17:04 schrieb Andreas Schneider:
Hello,
if I use \in, \about, \at or anything else that generates a
cross-reference, and that reference happens to be invalid (typo or
whatever), it just prints out "nothing". Is there a way to have
context throw an error if a reference is invalid? (That probably would
only make sense in the second pass of context, since the first pass
has to collect the references first.)
Unknown references are shown as “??” in your text.
Wolfgang
True, I was mostly thinking about "\about", which just prints two
quotation marks and nothing in between. But my "problem" (if I can
even call it that, since grep is already a solution, just maybe not
the best one :D) is, that I could easily miss such small changes. I'm
working on technical documentation that even has parts that are
automatically generated (from XML files). I just update whatever is
necessary (the document itself, or just the input files), commit them
to SVN and our CI server grabs them, and runs ConTeXt. If ConTeXt
returns with a return code > 0, the build is marked as "failed" and
all necessary admins (me and my colleague) are informed via eMail
and/or RSS feed. If the build succeeds, the generated PDF is
automatically distributed to the users. I consider wrong references an
error, so I would like the build to fail (imho referencing something
that doesn't exist is like using a macro that doesn't exist, which
fails too).
But as I said: if context can't treat that as error, I'm fine with it
too and will continue to grep the logfile. It's just curiosity if
there may already be a setting/parameter/whatever to get context to be
more "restrictive".
+1
I would also like ConTeXt to help me keep me document sensible in this way. I also resort to grep-type solutions, but sometimes I forget to do this, and sometimes, there are embarrassing consequences of such oversight. If ConTeXt could help me avoid this all-too-common oversight of mine, I'd be delighted. Throwing an error would be one way to do this. If throwing an error is not possible, perhaps being able to customize what gets printed when an undefined reference is encountered. E.g., instead of "??", a big, annoying, impossible-to-miss mark in the margin (as one sees when working with overfull lines) or a giant red stopsign saying "UNDEFINED REFERENCE", would do just as well.
--
Jesse Alama
http://centria.di.fct.unl.pt/~alama/