这是我的代码:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{minted}
\begin{document}
\newminted[mycode]{text}{}
\newcommand\foo{}
\gappto\foo{
\begin{mycode}
Hello, world!
\end{mycode}
}
\foo
\end{document}
它无法编译。为什么呢?
答案1
与所有逐字命令一样,minted 构造不能用作另一个命令的参数(这就是为什么 minted 有自己的\newminted
声明,而不是简单地使用\newenvironment
)
答案2
不是一个答案,但使用代码作为文本,一方面可以应用格式化;另一方面,代码的受控扩展可能很有用。换句话说,这是一种列表模拟器。(在此示例中,空格不是通过正则表达式转换的,但可以。)
但很快就会变得令人费解(以克莱因瓶的方式)。
对于可用性,诀窍似乎是两个都逐字文本和可运行代码并行运行,而不是只运行其中一个。
平均能量损失
\documentclass{article}
\usepackage{etoolbox}
\usepackage{xcolor}
\usepackage{xparse}
\ExplSyntaxOn
%=====
\tl_new:N \l_mytemp_tl
\tl_new:N \l_mytempa_tl
\tl_new:N \g_mytempr_tl
%=====
\newcommand\docmdscan{
%park these
\regex_replace_all:nnN
{ (\c{par}) } %\par
{