Consider this Noweb source file named quux.nw
:
\documentclass{article}
\usepackage{noweb}
\usepackage[colorlinks]{hyperref}
\begin{document}
<<quux.pl>>=
my @foo ;
my $bar ;
my %baz ;
@ %def foo bar baz
\end{document}
and compiled using the commands:
$ noweb quux.nw
$ latexmk -pdf quux.tex
The identifiers bar
and baz
are properly highlighted as identifiers and cross referenced in the PDF output. The identifier foo
is not.
It's my understanding that Noweb has a very simple heuristic for recognizing identifiers. foo
should be recognizable as an identifier because, like bar
and baz
, it begins with an alphanumeric, is delimited on the left by a symbol (at-sign), and is delimited on the right by a delimiter (whitespace).
I considered the possibility that the at-sign was being interpreted by Noweb as an escape and tried doubling it, but that (i) did not solve the problem, and (ii) introduced the syntax error my @@foo
into quux.pl
. This makes sense because according to the fine manual, a double at-sign is only treated specially in columns 1–2.