我可以使用 tcolorbox 包中的 tikz 节点包含一个 minted 列表newtcblisting
。但是,当我这样做时,它会占用所有可用的水平空间,因为默认是使用minipage
。所以我尝试使用capture=hbox
作为选项newtcblisting
,但似乎不起作用。
\documentclass{article}
\usepackage{tikz}
\usepackage{minted}
\usepackage{tcolorbox}
\tcbuselibrary{minted}
\definecolor{codebggray}{rgb}{0.8,0.8,0.8}
\newtcblisting{codenode}[2][]{%
colback=codebggray,
capture=hbox,
listing only,
minted options={
fontsize=\small
},
minted language=#2,
#1
}
\begin{document}
Inside a tikz node:
\begin{tikzpicture}[node distance=3cm]
\node(x) {
\begin{codenode}{python}
def sum (x,y):
return x + y
\end{codenode}
};
\node(y) [below of=x]{whatever};
\draw (x) -- (y);
\end{tikzpicture}
Okay, done.
\end{document}
使用该代码,我收到以下错误:
...
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty))
(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
(./_minted-minted-test/default-pyg-prefix.pygstyle)
(./_minted-minted-test/default.pygstyle)
(./_minted-minted-test/5274B8282787B54746A9B53E7030D876B61BC921347B2DF172485E3E034D065E.pygtex
! LaTeX Error: Something's wrong--perhaps a missing \item.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.1 \begin{Verbatim}[commandchars=\\\{\}]
?
我知道我可以在 tikz 节点内包含一个小页面,但据我所知,我需要包含每个节点的宽度——而且由于我正在处理一个充满节点的 500 页文档,所以我宁愿只更改环境定义,而不是它在文本中的使用方式。
那么,可以capture=hbox
在里面使用吗newtcblisting
?