I would like to reference other parts of my document (e.g. equations, figures) inside of some source code. Is there an escape sequence such that `\ref`

will be parsed instead of printed as a literal \ref?

My minimal example is as follows:

```
\documentclass{article}
\usepackage{amsmath}
\usepackage{listings}
\begin{document}
This is the pythagorean theorem:
\begin{equation}\label{eq:pyth}
a^2+b^2=c^2
\end{equation}
I can reference it normally: Equation \ref{eq:pyth}.
I can write a code example that won't work:
\begin{verbatim}
# An R function to solve for c.
# See Equation \ref{eq:pyth} for details.
solve.for.c <- function(a,b){
return( sqrt(a^2 + b^2))
}
\end{verbatim}
And one that works, but is very ugly and hard to maintain: \\
\verb@# An R function to solve for c.@ \\
\verb@# See Equation@ \ref{eq:pyth} \verb@for details.@ \\
\verb@solve.for.c <- function(a,b){@ \\
\verb@solve return( sqrt(a^2 + b^2))@ \\
\verb@}@ \
How can I do this better?
\end{document}
```

Any thoughts on how to do this better? Is there a simple feature I'm missing?

## Best Answer

You're not missing simple features; the standard

`verbatim`

environment doesn't allow for interpreting commands. However, the`fancyvrb`

package has this facility:For

`commandchars`

in`Verbatim`

you have to specify three characters (escaped with the backslash) that aren't otherwise used in the environment's text. The same for`escapechar`

with`lstlisting`

. These characters may be chosen "locally".Take your pick.