コマンド `defverbatim` は `minted` 内の色を忘れます

コマンド `defverbatim` は `minted` 内の色を忘れます

mintedinsideを使用しようとしています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ページ目

2ページ目

答え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}

ここに画像の説明を入力してください

関連情報