使用命令将铸币包装在 Tikz 盒子中

使用命令将铸币包装在 Tikz 盒子中

我熟悉为 minted 环境定义命令问题。除了定义 mint 参数之外,我还想将 minted 代码包装在 Tikz 框中,以使其更美观。

我尝试了以下代码,由于命令问题,它显然不起作用。但我找不到如何将它与 minted 库提供的工具结合起来:

\newcommand{\jscode}[1]{
\begin{tikzpicture} \node [mintedbox] (box){ \begin{minipage}{\textwidth}
    \begin{minted}{javascript}#1\end{minted}
    \end{minipage}  }; \end{tikzpicture}
}

也许是多余的,但这是我得到的错误:

! Paragraph ended before \FV@BeginScanning was complete.

答案1

定义包含逐字材料的命令的问题如链接中所示。

无论如何,我认为最简单的方法是重新定义内部colorbg环境并将bgcolor-option 设置为全局。

基于重新定义,您可以使用该命令\newmint来定义您的\jscode

\documentclass[12pt]{article}
\usepackage[]{minted}

\usepackage{tikz}
\makeatletter

\edef\minted@resetoptions{\minted@resetoptions\def\minted@opt@bgcolor{foo}}
\tikzset{mintedbox/.style={draw=red,rectangle,fill=yellow!20}}
\renewenvironment{minted@colorbg}[1]{%
  \noindent
  \begin{lrbox}{\minted@bgbox}
  \begin{minipage}{.8\linewidth}}
 {\end{minipage}
  \end{lrbox}%
  \tikz\node[mintedbox,text width=\linewidth,] 
         {\usebox{\minted@bgbox}};
 }

\newmint[jscode]{javascript}{}
\begin{document}
\begin{minted}[]{javascript}
a=b;
\end{minted}

\jscode+foo+
\end{document}

在此处输入图片描述

相关内容