是否可以分离 LTXexample 的输入和输出,以便我可以将每个输入和输出放在表格单元格中?

是否可以分离 LTXexample 的输入和输出,以便我可以将每个输入和输出放在表格单元格中?

我的目标是创建一个并排显示 PSTricks 输入及其对应输出的长表格列表。

该表由 3 列组成,即数字柱子,输入柱子, &输出列。数字列中含有源代码文件的超链接,例如:读者想画一个圆环面图形,只需在表格中搜索,点击数字即可打开对应的源代码文件。

简单来说,LTXexample 的输入和输出如何分离?我的粗略思路如下:

  1. 我只是将 PSTricks 例程传递给输入柱子。
  2. 然后宏提供一个包含输出的保存框。
  3. 然后我调用另一个宏(如 \usebox)来检索已保存的框并将其插入到输出柱子。
  4. 我对每一行都执行步骤 1-3。使用 \url 可以轻松制作超链接数字(这不是什么大问题)。

答案1

也许是朝着正确方向迈出的一小步:我们定义两个命令 \LTXlastexample{in/out}put,而不是生成输出,它们仍然需要排版的宽度。这将要求您在发出下一个 LTXexample 之前输出这两个部分,并且我并没有过多考虑它是否会在我的示例案例之外发挥作用,本着“可能出什么问题?”的精神。

\documentclass{article}

\usepackage{showexpl}

\makeatletter
 \newcommand*\SX@put@x[3]{%
    \global\def\LTXlastexampleinput##1{%
      \SX@CodeArea{##1}{#3}%
    }%
    \global\setbox\SX@ResBox\box\SX@ResBox
    \global\def\LTXlastexampleoutput##1{%
      \SX@ResultArea{##1}{#2}%
    }%
 }
\makeatother
\begin{document}
  \begin{LTXexample}[pos=x]
    Hello, world
  \end{LTXexample}

  \show\LTXlastexampleoutput

\begin{tabular}{|l|l|}
  \LTXlastexampleinput{5cm} &  \LTXlastexampleoutput{5cm}
\end{tabular}

\end{document}

答案2

我不会为此使用表格。分页符会给您带来问题。此外,调整代码和输出的空间也会很困难:有时您可能会得到输出较小但代码行较大的结果,反之亦然。我只需使用 showexpl 将代码和输出并排放置,并使用 minipage+enumerate 或其他东西来放置数字。

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{showexpl}
\usepackage{pst-calendar}
\begin{document}

\begin{enumerate}
\item
\begin{minipage}{\linewidth}
\begin{LTXexample}[varwidth,pos=r,wide]
\psscalebox{0.5}{%
 \psCalendar[Jahr=2006,Monat=1]}
\end{LTXexample}
\end{minipage}

\end{enumerate}

\end{document}

答案3

由于一直没有 LaTeX 解决方案,所以我会发布一个 ConTeXt 解决方案来提供一些想法。

在 ConTeXt 中执行此操作的标准方式是buffers。例如:

\startbuffer[示例1]
 这是一个简单的 metapost 示例。
 \启动MP代码
   绘制比例为 5cm 的完整圆;
 \stopMP代码
\停止缓冲区

\setupTABLE[col][1][width=0.5\textwidth]
\setupTABLE[col][2][width=0.5\textwidth]

\开始文本

\开始表
  \NC 输入 \NC 输出 \NC \NR
  \NC \typebuffer[示例1] \NC \getbuffer[示例1] \NC \NR
\停止表

\停止文本

如果片段已经存储在外部文件中,那么另一个选择是:

\开始表
   \NC \typefile[example1.tex] \NC \externalfigure[example1.tex] \NC \NR
\停止表

\externalfigure(相当于\includegraphicsLaTeX 中的 )输入一个 TeX 文件时,它会在一个框中排版并包含结果。

相关内容