您能让 LTXinputExample 的“图形”选项能够渲染多页 PDF 文件的所有页面吗?

您能让 LTXinputExample 的“图形”选项能够渲染多页 PDF 文件的所有页面吗?

我有一个名为的源代码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 可以找到的目录中kpsewhichtexhash可能需要运行)。至少将其放入文档目录中。该文件由 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}

在此处输入图片描述

相关内容