![Команда `defverbatim` забывает цвета в `minted`](https://rvso.com/image/420034/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%B0%20%60defverbatim%60%20%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%20%D1%86%D0%B2%D0%B5%D1%82%D0%B0%20%D0%B2%20%60minted%60.png)
Я пытаюсь использовать minted
внутри uncover
. Похоже, что среда имеет свойства среды verbatim, поэтому требуется minted
хак . Проблема в том, что этот хак забывает цвета. Как это обойти?defverbatim
Демонстрационный пример:
\documentclass[aspectratio=169
, xcolor={svgnames}
]{beamer}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{russian}
\usepackage[cache=true]{minted}
\begin{document}
\defverbatim{\exampleTailRec}{
\begin{minted}{ocaml}
(* make2 : 'a -> int -> 'a list *)
let make2 x n =
let rec helper acc n =
if n<1 then acc
else helper (x :: acc) (n-1)
in
helper [] n
\end{minted}
}
\begin{frame}[fragile]
\begin{minipage}[t]{0.45\linewidth}
\begin{minted}{ocaml}
(* make : 'a -> int -> 'a list *)
let rec make x n =
if n<1 then []
else x :: (make x (n-1))
\end{minted}
\uncover<2->{
\begin{minipage}{7cm}
%\begin{minted}{ocaml}
%(* make2 : 'a -> int -> 'a list *)
%let make2 x n =
% let rec helper acc n =
% if n<1 then acc
% else helper (x :: acc) (n-1)
% in
% helper [] n
%\end{minted}
\exampleTailRec
\end{minipage}
}
\end{minipage}\hspace{1cm}
\begin{minipage}[t]{0.45\linewidth}
\lipsum[2]
\end{minipage}
\end{frame}
\end{document}
решение1
В руководстве beamer
(на странице 18) говорится, что для сохранения цветных листингов в окружении lstlisting
необходимо использовать \defverbatim[colored]
.
Он также работает с minted
.
\documentclass[aspectratio=169
, xcolor={svgnames}
]{beamer}
\usepackage{fontspec}
\usepackage{lipsum}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{russian}
\usepackage[cache=true]{minted}
\begin{document}
\defverbatim[colored]{\exampleTailRec}{
\begin{minted}{ocaml}
(* make2 : 'a -> int -> 'a list *)
let make2 x n =
let rec helper acc n =
if n<1 then acc
else helper (x :: acc) (n-1)
in
helper [] n
\end{minted}
}
\begin{frame}[fragile]
\begin{minipage}[t]{0.45\linewidth}
\begin{minted}{ocaml}
(* make : 'a -> int -> 'a list *)
let rec make x n =
if n<1 then []
else x :: (make x (n-1))
\end{minted}
\uncover<2->{
\begin{minipage}{7cm}
%\begin{minted}{ocaml}
%(* make2 : 'a -> int -> 'a list *)
%let make2 x n =
% let rec helper acc n =
% if n<1 then acc
% else helper (x :: acc) (n-1)
% in
% helper [] n
%\end{minted}
\exampleTailRec
\end{minipage}
}
\end{minipage}\hspace{1cm}
\begin{minipage}[t]{0.45\linewidth}
\lipsum[2]
\end{minipage}
\end{frame}
\end{document}