拿这个最小的 LaTeX 文档:
% minimal.tex
\documentclass{article}
\begin{document}
Hello World!
\end{document}
而这个 Ruby (2.5.1) 脚本:
require 'open3'
Open3.popen3(
'xelatex', '-interaction=nonstopmode', '"minimal.tex"'
) do |_stdin, stdout, stderr, wait_thr|
log = stdout.readlines + stderr.readlines
exit_status = wait_thr.value
puts exit_status
puts log.join('').strip!
end
运行脚本,我们得到:
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex)
...
! I can't find file `'"minimal.tex"''.
这是令人惊讶的。不仅因为文件在那里,而且因为两者
Open3.popen3('xelatex -interaction=nonstopmode "minimal.tex"') do ...
和Open3.popen3('lualatex', '-interaction=nonstopmode', '"minimal.tex"') do ...
工作就好了!
xelatex
和的组合有什么特别之处popen3
?