我有一个名为的源代码source.tex
,它可以生成包含多页的 PDF 文件。源代码将以LTXinputExample
格式化文本的形式显示,相应的输出由现有 PDF 文件通过选项提供graphic
。
问题是graphic
只显示第一页,其余页面被忽略。我希望所有页面都以矩阵形式显示。
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{source.tex}
\documentclass[tikz]{standalone}
\begin{document}
\tikz \draw[blue] (0,0) circle (1);
\newpage
\tikz \draw[red] (0,0) circle (1);
\end{document}
\end{filecontents*}
\immediate\write18{pdflatex source}
\usepackage{showexpl}
\lstset
{
frame=single,
}
\begin{document}
\LTXinputExample[graphic=source,pos=b,width=4cm,justification=\centering]{source.tex}
\end{document}
您能否选择graphic
渲染LTXinputExample
多页 PDF 文件的所有页面?
编辑:
您能否将赫伯特博士的解决方案与以下内容合并以获得更好的布局?
\documentclass{book}
\usepackage[a4paper,margin=25mm,showframe=false]{geometry}
\usepackage{graphicx}
\usepackage{listings}
\newcount\x
\newcommand\IncludeOutput[1]{% #1: filename without extension
\lstinputlisting[frame=single]{"#1.tex"}
\pdfximage{"#1.pdf"}%
\loop
\ifnum\x<\pdflastximagepages
\advance\x by 1
\noindent\hfill
\fbox{\includegraphics[width=0.5\dimexpr\linewidth-4\fboxrule-1cm,page=\x]{"#1"}}%
\ifnum\x<\pdflastximagepages
\advance\x by 1
\hfill
\fbox{\includegraphics[width=0.5\dimexpr\linewidth-4\fboxrule-1cm,page=\x]{"#1"}}%
\fi
\hfill\null\par
\repeat
}
\begin{document}
\IncludeOutput{DummyText}
And more text follows\dots
\end{document}
答案1
将以下内容放入一个文件中showexpl.cfg
,并将其保存在 TeX 可以找到的目录中kpsewhich
(texhash
可能需要运行)。至少将其放入文档目录中。该文件由 showexpl 自动读取并重新定义输出例程。
\RequirePackage{multido}
\newsavebox\SX@tempbox
\renewcommand*\SX@resultInput{%
\ifx\SX@graphicname\@empty
\begingroup
\MakePercentComment\makeatother\catcode`\^^M=5\relax
\SX@@preset\SX@preset
\if@SX@rangeaccept
\let\SX@tempa=\SX@input
\else
\let\SX@tempa=\input
\fi
\SX@tempa{\SX@codefile}\par%
\endgroup
\else
\sbox\SX@tempbox{\includegraphics{\SX@graphicname}}
\multido{\iP=1+1}{\pdflastximagepages}{%
\expandafter\includegraphics\expandafter[\SX@graphicparam,page=\iP]{\SX@graphicname}}
\fi
}
%% End of file `showexpl.cfg'.
如果您还想框架结果,则需要进行大量其他代码更改。然而,这实际上没有任何意义...
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{source.tex}
\documentclass[tikz]{standalone}
\begin{document}
\tikz \draw[blue] (0,0) circle (1);
\newpage
\tikz \draw[red] (0,0) circle (1);
\end{document}
\end{filecontents*}
\immediate\write18{pdflatex source}
\usepackage{showexpl}
\lstset{frame=single,rframe=}
\begin{document}
\LTXinputExample[graphic=source,pos=b,width=4cm,justification=\raggedright]{source.tex}
\end{document}