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/