Hier ist ein Beispiel:
\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}
Damit es funktioniert, könnte ich einfach andere Symbole wie \usepackage[at]{easylist}
anstelle von verwenden sharp
. Aber ich bin neugierig, weil die Fehlermeldung mir nicht wirklich sagen kann, warum das nicht funktioniert. Weiß jemand, warum ich nicht verwenden kann #
?
Die Fehlermeldung lautet:
_./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}
Aktualisieren:
Bitte sehen Sie @egreg'sAntwortunten (und Kommentare!) für eine Erklärung.
Eine Lösung der obigen Frage \Activate
mit einem von . \Deactivate
bereitgestellten Befehl :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}
Antwort1
Die sharp
Option macht #
zu einem aktiven Zeichen. Die von erstellten Dateien pygmentize
enthalten Makrodefinitionen, die wiederum #
und verwenden. Da sich easylist
dieses Zeichen innerhalb befindet, ist es nicht mehr der Parameterbezeichner.
Daher funktionieren alle Hilfsmakros mit Argumenten, die minted
verwendet werden müssen, nicht wie erwartet.
Die Verwendung anderer Zeichen kann zu anderen Problemen führen; ich habe die at
Option ausprobiert und @
sie funktioniert nicht in minted
. Zum Beispiel
\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}
wird nicht gedruckt @
.
Außerdem minted
wird die aktuelle Einrückung in der Liste nicht berücksichtigt.
Hier ist ein Vergleich:
\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}