как устранить ошибку с помощью шрифта Cambria в make4ht

#miktex #xetex #fontspec #tex4ht

Вопрос:

Мне нужно скомпилировать мой файл .Rnw (Sweave) в HTML, используя Cambria в качестве шрифта по умолчанию и кодировку UTF-8, чтобы, например, греческие буквы были правильно представлены в виде символов во встроенном тексте (очевидно, режим уравнения подходит, так как они встроены в файлы изображений).

Вот мое «Привет, мир!» текстовый документ:

 documentclass{article}
usepackage{fontspec}
setmainfont{Cambria}
usepackage{Sweave}
begin{document}

Lorem ipsum dolor, sit amet.

end{document}
 

Затем я запускаю команду make4ht -xu foo.tex , и преобразование документа завершается неудачно.

Соответствующие фрагменты журнала, по-видимому,:

 This is XeTeX, Version 3.14159265-2.6-0.999992 (MikTeX 2.9.7300 64-bit)

<snip, no errors or warnings...>

(<path components>tex/generictex4htfontspec-xetex.4ht
version 2017-01-24-15:21
! Undefined control sequence.
<argument> fontspec_ht_scripts

l.23 ...{typeout{use block #1}xeunisuseblock{#1}}

The control sequence at the end of the top line
of your error message was never def'ed. If you have
misspelled it (e.g., `hobx'), type `I' and the correct
spelling (e.g., `Ihbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
 

Компиляция завершается ошибкой с кодом выхода 1.

Компиляция без fontspec и использование pdflatex вместо xetex отлично работает. Я не пробовал компилироваться с xetex и без fontspec.

2017 год был совсем недавно… возможно ли, что нам просто нужно обновить наши пакеты? Я знаю, что поддержка fontspec была добавлена в tex4ht только в течение последних нескольких лет или около того.

Я нахожусь в очень ограниченной среде, поэтому обновление будет трудным, хотя, возможно, и невозможным.

Комментарии:

1. Да, лучше всего обновить свои пакеты, версии с 2017 года довольно старые. Если вы не можете обновить пакеты, попробуйте -l использовать опцию вместо -x , она не должна приводить к этой конкретной ошибке. Вы также можете обновить свой файл TeX , чтобы он не использовался fontspec tex4ht , например ifdefinedHCodeelseusepackage{fontspec}fi .