- 我想将外部文件中的代码放入 LaTeX 文档中。
- 该代码能够独立运行。
- 该代码的注释中引用了文档中的方程标签。
- 我希望在最终文档中看到这些方程式的更新和引用,并带有标题、标签、框、编号行等。
带有标记方程式的乳胶文档示例:
%doc.tex
\documentclass[]{article}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{listings}
\begin{document}
\begin{align}
\label{eq:my equation}
y = \sin(x) \cos(x)
\end{align}
\lstinputlisting[caption={Code},
frame=single,
numbers=left,
escapeinside={tex:}{:tex}
]{code.py}
\end{document}
文档中要包含的示例代码:
#code.py
import math
def y(x):
return math.sin(x)*math.cos(x) #tex: Equation \ref{eq:my equation} :tex
print y(math.pi/4)
但是,使用 \lstinputlisting 会产生错误。我该如何引用这样的方程式?
非常感谢。
答案1
escapeinside
使用单个字符作为分隔符!
\documentclass[]{article}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.py}
#code.py
import math
def y(x):
return math.sin(x)*math.cos(x) # % Equation \ref{eq:my equation} %
print y(math.pi/4)
\end{filecontents*}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{listings}
\begin{document}
\begin{align}
\label{eq:my equation}
y = \sin(x) \cos(x)
\end{align}
\lstinputlisting[caption={Code},
frame=single,
numbers=left,
escapeinside=\%\%
]{\jobname.py}
\end{document}