вставьте код Maple в комментарий с помощью mathmode create с пакетом tcolorbox

вставьте код Maple в комментарий с помощью mathmode create с пакетом tcolorbox

см. этот код:

\documentclass[svgnames,12pt]{report}

\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{tcolorbox}
\tcbuselibrary{listings,skins,theorems}

\lstdefinelanguage{Maple}%
{aboveskip={0pt},belowskip={0pt},basicstyle=\bfseries,
morekeywords={and,assuming,break,by,catch,description,do,done,%
elif,else,end,error,export,fi,finally,for,from,global,if,%
implies,in,intersect,local,minus,mod,module,next,not,od,%
option,options,or,proc,quit,read,return,save,stop,subset,then,%
to,try,union,use,uses,while,xor},%
sensitive=true,%
morecomment=[l]\#,%
morestring=[b]",%
morestring=[d]"%
}[keywords,comments,strings]%

\makeatletter
\tcbset{every listing line/.code={%
  \def\lst@NewLine{%
      \ifx\lst@OutputBox\@gobble\else
          \par\noindent \hbox{}#1%
      \fi
      \global\advance\lst@newlines\m@ne
      \lst@newlinetrue}}}
\makeatother

\newtcblisting{code}[1]{
           colback=white,
           skin=bicolor,
           colbacklower=white,
           colupper=red!40!black,
           collower=blue,
           frame style={draw=white,left color=white,right color=white},
           fontupper=\bfseries,
           fontlower=\bfseries,
           width=\linewidth,
           boxrule=0mm,
           outer arc=1mm,arc=1mm,
           leftupper=0cm,leftlower=0cm,rightupper=0cm,rightlower=0cm,
           top=0mm,bottom=0mm,middle=0mm,
           center lower,
           nobeforeafter, 
           listing and comment,
           ams nodisplayskip lower,
%           comment={#1},
           comment={\begin{align*}#1\end{align*}},
           every listing line={\textcolor{red!40!black}{\ttfamily> }}
           }

\begin{document}

\begin{code}{h := proc(t) t * (t-1) end proc}
h := proc(t) t*(t-1) end proc;
\end{code}

\end{document}

выход:

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

Как мне это изменить, пока у меня не будет такого вывода?

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

Я имею в виду в основном определениикодсреде, а не в \begin{code}{} ... \end{code}.

Заранее спасибо.

решение1

Если я правильно понял ваш вопрос, вы хотите, чтобы ключевые слова procи end procавтоматически обнаруживались внутри математической среды; здесь, align*. Я не думаю, что это возможно.

Вы можете вручную пометить ключевые слова внутри математической среды или можете вставить escape-последовательности с некоторыми математическими штуками в listingsкод. Это задокументировано в listingsдокументации с использованием mathescape.

Первый вариант ближе к вашему существующему коду. Я удалил определение every listing line, поскольку оно является частью tcolorbox 2.72 (2014/03/18), но вы можете сохранить его в более старой tcolorboxверсии. Измененный пример с вручную выбранными ключевыми словами внутри математического кода:

\documentclass[svgnames,12pt]{report}

\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{tcolorbox}
\tcbuselibrary{listings,skins,theorems}

\lstdefinelanguage{Maple}%
{aboveskip={0pt},belowskip={0pt},basicstyle=\bfseries,
morekeywords={and,assuming,break,by,catch,description,do,done,%
elif,else,end,error,export,fi,finally,for,from,global,if,%
implies,in,intersect,local,minus,mod,module,next,not,od,%
option,options,or,proc,quit,read,return,save,stop,subset,then,%
to,try,union,use,uses,while,xor},%
sensitive=true,%
morecomment=[l]\#,%
morestring=[b]",%
morestring=[d]"%
}[keywords,comments,strings]%

\newtcblisting{code}[1]{
  listing and comment,
  blank,nobeforeafter,
  colupper=red!40!black,collower=blue,
  fontupper=\bfseries,fontlower=\bfseries,
  center lower,
  listing options={language=Maple},
  ams nodisplayskip lower,
  comment={\begin{align*}#1\end{align*}},
  every listing line={\textcolor{red!40!black}{\ttfamily> }}
  }

\begin{document}

\begin{code}{h := \text{\bfseries proc}(t) t * (t-1)\,\text{\bfseries end proc}}
h := proc(t) t*(t-1) end proc;
\end{code}

\end{document}

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

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