以下问题仅是出于好奇,而非任何实际问题。
第1部分
以下 LaTeX 代码可以使用 成功编译lualatex
。
\documentclass{article}
\usepackage[french]{babel}
\begin{document}
Hello, world!
\end{document}
同样,以下 LaTeX 代码也可以成功编译lualatex
。
\documentclass{article}
\usepackage[bidi=basic]{babel}
\babelprovide[main,import]{hebrew}
\begin{document}
Hello, world!
\end{document}
french
但是,如果在第一个示例中用hebrew
或替换bidi=basic,hebrew
,编译将失败,并显示以下错误消息:
To avoid this error message,
run TeX--XeT or e-TeX engine instead of regular TeX.
! Right-to-Left Support Error: use TeX--XeT or e-TeX engine.
l.63 engine}
%
?
! Emergency stop.
l.63
End of file on the terminal!
- 为什么不能直接传递
babel
选项hebrew
,或者同时传递bidi=basic
?
第2部分
babel
我被建议遵循使用+设置希伯来语文档的示例在其序言中luatex
包含以下行,例如:\babelprovide[main,import]{hebrew}
\documentclass{article}
\usepackage[bidi=basic]{babel}
\babelprovide[main,import]{hebrew}
\begin{document}
Hello, world!
\end{document}
这个
import
选项是必须的吗?如果删除了,会有什么不同吗?我确实注意到该
main
选项是必需的:如果没有它,文档的默认方向性将从左到右。但是,如果仅hebrew
指定为语言,为什么会出现这种情况,这意味着这是一份单语希伯来语文档,因此其方向性应该是从右到左?
答案1
正如 Javier Bezos 在他对我原帖的评论,可以将希伯来语指定为babel
包的一个选项,而不是\babeprovide
命令的一个参数,并且\babelprovide
可以消除命令及其main
和import
选项,代价是将一个选项传递给包babel
,即provide=*
。将所有这些放在一起,而不是
\usepackage[bidi=basic]{babel}
\babelprovide[main,import]{hebrew}
也可以等价地写成
\usepackage[bidi=basic,hebrew,provide=*]{babel}
注意:我认为如果有另一个选项会很好babel
,比如说heb
,或Hebrew
(首字母大写),可以缩写上面显示的三个选项,这样就hebrew
可以通过书写来加载必要/推荐的设置,比如说,\usepackage[heb]{babel}
类似于加载法语等欧洲语言的方式。