如何使用循环宏重复执行 \LTXexample 以便其计数器值在输入/输出部分中呈现?

如何使用循环宏重复执行 \LTXexample 以便其计数器值在输入/输出部分中呈现?

以下代码是我真实场景的简化版本。它可能看起来微不足道。

我忘了说,下面的代码是“最小不工作示例”(MNWE):

\documentclass{article}
\usepackage{showexpl}
\usepackage{graphicx}


\begin{document}
\newcount\counter
\counter=-1
\loop
    \advance \counter by 1
    \ifnum\counter<5
    \LTXexample
        \scalebox{\counter}{\counter}
    \endLTXexample
    \newpage
\repeat
\end{document}

例如,当\counter=1我想要将输入部分(源部分)呈现为

\scalebox{1}{1}

而不是

\scalebox{\counter}{\counter}

使用 pdflatex、latex、xelatex 编译时出现错误消息:

(c:/texlive/2010/texmf-dist/tex/latex/listings/lstmisc.sty)

Package Listings Warning: Text dropped after begin of listing on input line 21.


(c:/texlive/2010/texmf-dist/tex/latex/base/omscmr.fd))
*
! Emergency stop.
<*> counterlistings

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on counterlistings.log.

如何\LTXexample使用循环宏重复执行以使其计数器值在输入/输出部分中呈现?

答案1

这里的问题是\loop将所有内容读取\repeat为参数,因此不允许逐字环境,例如LTXexample

\loop:
\long macro:#1\repeat ->\def \iterate {#1\relax \expandafter \iterate \fi }\iterate \let \iterate \relax 

您需要寻找另一种方法来循环它。请注意,showexpl使用listings允许转义字符。您可以使用它们来转义计数器值并在\number\counter那里。这应该将数字写入临时文件。

相关内容