El comando `defverbatim` olvida los colores en `minted`

El comando `defverbatim` olvida los colores en `minted`

Estoy intentando usarlo minteden el interior uncover. Parece que el mintedentorno tiene propiedades de un entorno literal, por lo que defverbatimse requiere el truco. El problema es que este truco olvida los colores. ¿Cómo solucionar esto?

Ejemplo de demostración:

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

1ra pagina

2da pagina

Respuesta1

El manual de beamer(en la página 18) dice que, para preservar listados coloreados con el lstlistingmedio ambiente, hay que utilizar \defverbatim[colored].

También funciona con 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}

ingrese la descripción de la imagen aquí

información relacionada