Вот пример:
\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'sотвечатьниже (и комментарии!) для объяснения.
Решение вышеуказанного вопроса с использованием команды \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}