我想创建一个命令,接受一个参数,将参数的内容设置为 TikZ 图片。问题:参数是minted
/FancyVrb 环境。
梅威瑟:
%!TEX OPTIONS = --shell-escape
\documentclass{article}
\usepackage{tikz}
\usepackage{minted}
\newcommand{\tikzverb}[1]{\tikz{\node (text) [draw=blue, thick] {#1}; \fill [opacity=0.5] (text.north east) circle (5pt);}}
\begin{document}
\tikzverb{
\begin{minted}{text}
test
\end{minted}
}
\end{document}
一些背景知识:这个 MWE 是从我幻灯片中的一个命令中提炼和简化而来的,这个命令是我通过 LaTeX Beamer 设置的。我配置了minted
源代码突出显示,所以我宁愿使用这个包而不是其他逐字环境。在幻灯片中,命令应该显示bash shell 输出在组装这个 MWE 的过程中,
我发现使用保存箱并不能解决这个问题,这通常是其他解决方案之一问题像这样。savebox 和环境的组合lstlisting
有效(另请参阅这),但这意味着需要单独配置另一个包。minted
如果可以的话,我宁愿坚持使用(因为它很棒)。
答案1
这并没有直接回答我提出的问题,而是回答了潜在的问题(创建一个假的 bash shell)。正如 @TeXnician 所建议的,我使用了tcolorbox
(这确实是另一个包含各种新命令的包;但它非常棒)。
还有什么建议可以改进我的代码吗?
% \usepackage[minted]{tcolorbox}
% \tcbuselibrary{skins}
\definecolor{topbar}{RGB}{220,220,220}
\definecolor{main}{RGB}{30,30,30}
\definecolor{quit}{RGB}{248,73,73}
\definecolor{min}{RGB}{252,182,37}
\definecolor{max}{RGB}{41,198,52}
\colorlet{offwhite}{white!96!black}
\newtcblisting{fauxshell}{%
listing engine=minted,
minted language=text,
title={\strut},
listing only,
enhanced,
colbacktitle=topbar,
boxrule=0cm,
left=2mm,
width=\textwidth,
frame hidden,
colback=main,
coltext=offwhite,
overlay={
\fill [fill=quit] ([xshift=3mm]title.west) circle (1mm);
\fill [fill=min] ([xshift=6mm]title.west) circle (1mm);
\fill [fill=max] ([xshift=9mm]title.west) circle (1mm);
}%
}
\begin{fauxshell}
$ echo `date`
Mon Aug 21 09:21:35 CEST 2017
\end{fauxshell}