以下代码是我真实场景的简化版本。它可能看起来微不足道。
我忘了说,下面的代码是“最小不工作示例”(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
那里。这应该将数字写入临时文件。