Обновлять:

Обновлять:

Вот пример:

\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}

введите описание изображения здесь

Связанный контент