![您能让 LTXinputExample 的“图形”选项能够渲染多页 PDF 文件的所有页面吗?](https://linux22.com/image/257914/%E6%82%A8%E8%83%BD%E8%AE%A9%20LTXinputExample%20%E7%9A%84%E2%80%9C%E5%9B%BE%E5%BD%A2%E2%80%9D%E9%80%89%E9%A1%B9%E8%83%BD%E5%A4%9F%E6%B8%B2%E6%9F%93%E5%A4%9A%E9%A1%B5%20PDF%20%E6%96%87%E4%BB%B6%E7%9A%84%E6%89%80%E6%9C%89%E9%A1%B5%E9%9D%A2%E5%90%97%EF%BC%9F.png)
我有一个名为的源代码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}