我可以从 `.lvt` 文件中获取 PDF 来直观地验证输出吗?

我可以从 `.lvt` 文件中获取 PDF 来直观地验证输出吗?

我正在尝试用系统编写回归测试l3build。我知道如何从一个文件l3build save创建一个文件,以便将来的测试可以与假定成功的结果进行比较。.tlg.lvt

但我不知道如何让 l3build 从.lvt文件生成 PDF,所以我可以查看输出并验证它是否按照我的要求执行。这似乎是运行之前过程中的一个自然步骤l3build save

我还知道如何制作一个.lvt文件和一个.lve文件,以便l3build check可以验证测试输出是否等于预期输出。所以我可以编写.lve使用低级代码来生成我希望文件.lvt生成的内容。但我也看不到.lve文件中的 PDF 输出。

这是一个 MWE (我们称之为testfiles/test.lvt):

\input regression-test.tex
\documentclass{article}
\usepackage{expl3}
\usepackage{amsfonts}
\newcommand{\R}{\mathbb{R}}
\begin{document}
\START
\ExplSyntaxOn
\box_new:N \l_tmp_box
\hbox_set:Nn \l_tmp_box {$\R$}
\box_show:N \l_tmp_box
\ExplSyntaxOff
\END
\end{document}

然后在和中l3build save test生成,但两个目录中都没有PDF文件。test.tlgtestfiles/build/test

答案1

好的,所以我从评论中学到了我需要避免的事情,\END因为这会使 tex 运行短路,并且我必须确保生成一些(非对数)输出。

\END从上面的 MWE 中删除了。为了确保生成了一些输出,我\box_use:N在该\box_show:N行中添加了一行。该show行仅描述框,并且仅将其保存在文件中.log。该use行实际上将框放入输出流中。

所以现在我的测试是这样的:

\input regression-test.tex
\documentclass{article}
\usepackage{expl3}
\usepackage{amsfonts}
\newcommand{\R}{\mathbb{R}}
\begin{document}
\ExplSyntaxOn
\START
\box_new:N \l_tmp_box
\hbox_set:Nn \l_tmp_box {$\R$}
\box_show:N \l_tmp_box
\box_use:N \l_tmp_box
\ExplSyntaxOff
\end{document}

现在创建如下l3build save test文件:build/test/test.tlg

This is a generated file for the l3build validation system.
Don't change this file in any respect.
> \box...=
\hbox(6.88889+0.0)x7.22223
.\mathon
.\U/msb/m/n/10 R
.\mathoff
! OK.
<argument> \l_tmp_box
l. ...\box_show:N \l_tmp_box
[1
] (test.aux)

它还会创建其中build/test/test.pdf的内容\l_tmp_box。我不必重复测试代码,只需多加一行即可以两种不同的方式处理框。

相关内容