У меня есть скрипт на Ruby, который создает латексный документ с использованием шаблона erb. После того, как файл .tex сгенерирован, я хотел бы сделать системный вызов для компиляции документа с pdflatex
. Вот кости сценария:
class Book
# initialize the class, query a database to get attributes, create the book, etc.
end
my_book = Book.new
tex_file = File.open("/path/to/raw/tex/template")
template = ERB.new(tex_file.read)
f = File.new("/path/to/tex/output.tex")
f.puts template.result
system "pdflatex /path/to/tex/output.tex"
Строка system
переводит меня в режим интерактивного ввода текста, как если бы документ был пустым. Если я удаляю вызов, документ генерируется как обычно. Как я могу гарантировать, что системный вызов не будет выполнен до тех пор, пока документ не будет сгенерирован? Тем временем я просто использую скрипт bash, который вызывает скрипт ruby, а затем pdflatex
, чтобы обойти проблему.