這是一個例子:
\documentclass{article}
\usepackage[sharp]{easylist} % use # symbol to denote a list
\usepackage{minted}
\begin{document}
\begin{easylist}[enumerate]
# Profile Python
\begin{minted}{python}
import math
\end{minted}
\end{easylist}
\end{document}
為了使其工作,我可以使用其他符號,例如\usepackage[at]{easylist}
代替sharp
.但我很好奇,因為錯誤訊息無法真正告訴我為什麼這不起作用。有人知道為什麼我不能使用嗎#
?
錯誤訊息是:
_./main.out.pyg:2:
Use of \FV@PYG doesn't match its definition.
\PYG #1#2->\FV@PYG {
#1}{\FancyVerbBreakStart #2\FancyVerbBreakStop }
l.2 \PYG{k+kn}{import} \PYG{n+nn}{math}
更新:
請參閱@egreg 的回答下面(和評論!)進行解釋。
\Activate
使用.\Deactivate
提供的命令解決上述問題easylist
:
\documentclass{article}
\usepackage[sharp]{easylist} % use # symbol to denote a list
\usepackage[cache=false]{minted}
\title{useless}
\begin{document}
\begin{easylist}[enumerate]
# Deactivate it first,
\Deactivate
\begin{minted}{python}
import math
\end{minted}
\Activate
# then activate it again.
# Good!
\end{easylist}
\end{document}
答案1
該sharp
選項會#
成為一個活躍的角色。由 產生的檔案pygmentize
包含巨集定義,這些巨集定義依序使用#
,由於位於 內部easylist
,因此該字元不再是參數說明符。
因此,所有需要使用的具有參數的輔助巨集都minted
無法如預期般運作。
使用其他字元可能會導致其他問題;我嘗試了該at
選項,但@
在minted
.例如
\documentclass{article}
\usepackage[at]{easylist} % use # symbol to denote a list
\usepackage{minted}
\begin{document}
\begin{easylist}[enumerate]
@ Profile Python
\begin{minted}{python}
@classmethod
\end{minted}
\end{easylist}
\end{document}
不會列印@
。
此外,minted
不會尊重清單中目前的縮排。
這是一個比較:
\documentclass{article}
\usepackage{easylist}
\usepackage{minted}
\begin{document}
\begin{enumerate}
\item Profile Python
\begin{minted}{python}
# This program prints Hello, world!
print('Hello, world!')
\end{minted}
\begin{enumerate}
\item Indented
\begin{minted}{python}
# This program prints Hello, world!
print('Hello, world!')
\end{minted}
\end{enumerate}
\end{enumerate}
\begin{easylist}[enumerate]
§ Profile Python
\begin{minted}{python}
# This program prints Hello, world!
print('Hello, world!')
\end{minted}
§§ Indented
\begin{minted}{python}
# This program prints Hello, world!
print('Hello, world!')
\end{minted}
\end{easylist}
\end{document}