- 我想將外部文件中的程式碼放入 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}