[NTG-context] conditional for undefined references

Wolfgang Schuster wolfgang.schuster.lists at gmail.com
Sun Mar 29 14:33:09 CEST 2020


Pablo Rodriguez schrieb am 29.03.2020 um 13:53:
> Dear list,
> 
> consider the following sample:
> 
>      \setuppapersize[A8]
>      \starttext
>      \ConTeXt:
> 
>      \in[seac]
> 
>      Is it defined?:
>      \doifelse{\in[seac]}{??}{undefined}{defined}
> 
>      \Lua:
> 
>      \ctxlua{context([[{\in[seac]}]])}
> 
>      Is it defined?:
>      \startlua
>      if [[{\in[seac]}]] == "??" then
>          context("undefined")
>        else
>          context("defined")
>      end
>      \stoplua
>      \stoptext
> 
> 
> Is there a way to deal with undefined references?
> 
> I mean, I need a conditional to handle undefined references.
> 
> Why do I have undefined references in my documents? Well, I have almost
> 90 (Markdown) documents that I need to compile as single documents and
> also as one document. When compiling as single documents, there are a
> few references to other documents. This is the reason why they are
> undefined.
> 
> Any chance to be able to catch a "??" output (or \dummyreference) from
> "\in[reference]"?
> 
> Many thanks for your help,

ConTeXt gives you a message about missing references in the log-file but 
there is no simple way to show the in the PDF which is a step backwards 
because in MkII it was able to get a small message in the margins about 
unknown references.

What you can do is to use the \doifelsereferencefound command to check 
if the requested reference exists before you get the page number etc.

\starttext

Take a look at
\doifelsereferencefound{unknown:1}
   {\at{page}[unknown:1]}
   {\dummyreference\inright[style=\ttxx]{Missing reference}}.

This line ha a reference.\pagereference[unknown:2]

Take a look at
\doifelsereferencefound{unknown:2}
   {\at{page}[unknown:2]}
   {\dummyreference\inright[style=\ttxx]{Missing reference}}.

\stoptext

Wolfgang



More information about the ntg-context mailing list