Возьмите этот минимальный документ 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
?