我对 latex 还很陌生,我正在尝试定义一个新环境,该环境使用现有环境并在开始和结束时做一些额外的事情。我所说的环境是来自 python 包的“python”环境,这样我就可以突出显示 python 代码。
我将我的环境定义如下:
\newenvironment{excall}
{\begin{python}}
{\end{python}}
并这样使用它:
\begin{excall}
print("Hello")
print("1234")
\end{excall}
但出现此错误:
! LaTeX Error: \begin{excall} on input line 54 ended by \end{document}.
center
如果我尝试使用环境而不是进行相同的操作python
,它会起作用。我做错了什么?
答案1
python
包中的环境不是python
为了展示 Python 代码,而是为了执行它。
因此
\begin{python}
print("Hello")
print("1234")
\end{python}
将打印
你好 1234
如果要突出显示 Python 代码,可以使用该minted
包。igor
样式似乎可以选择您喜欢的颜色。
请注意,minted
需要pdflatex
使用该选项运行-shell-escape
。
\documentclass{article}
\usepackage{minted}
\usemintedstyle{igor}
\begin{document}
\begin{minted}{python}
print("Hello")
print("1234")
\end{minted}
\end{document}
minted
例如,您可以自定义
\documentclass{article}
\usepackage{minted}
\usepackage{lipsum} % for context
\usemintedstyle{igor}
\newenvironment{excall}
{\VerbatimEnvironment\subsection*{Example call}\begin{minted}{python}}
{\end{minted}\vspace{-\medskipamount}}
\begin{document}
\lipsum[4]
\begin{excall}
print("Hello")
print("1234")
\end{excall}
\lipsum[5]
\end{document}