我熟悉为 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}