巴别塔希伯来文和科马文字母

巴别塔希伯来文和科马文字母

当我尝试babel hebrew与 KOMA-Script 字母类一起使用时,会出现一系列错误。查看文件后hebrew.ldf,我认为原因是babel hebrew检查文档类列表,如articleletter,以找出命令,如\thesection应重新定义命令(如)。我还在网上找到了这个解释,例如https://groups.google.com/forum/#!topic/de.comp.text.tex/_79cjuF_6m0(在德国)。

我认为这与moderncv+Hebrew 中未定义的控制序列错误

对于类似这样的类,scrartcl似乎有一种简单的解决方案,即将这些变量定义为空。但是在这种情况下,scrlttr2变量会很多。所以我正在寻找一种解决方案,它不包括定义所有这些变量,最好也不包括更改文件babel hebrew

我的最小工作示例:

\documentclass{scrlttr2}
\usepackage[utf8x]{inputenc}
\usepackage[hebrew, english]{babel}
\usepackage{culmus}

\setkomavar{subject}{\foreinglanguage{hebrew}{שלום}}

\begin{document}
\begin{letter}{Example Person}
\opening{Dear Example,}
\ldots
\closing{Best regards,}
\end{letter}

\end{document}

所有错误都属于“未定义的控制序列”类型,例如

ERROR: Undefined control sequence.

--- TeX said ---
<argument> \thesection 

l.174 }

答案1

scrartcl我会尝试将 class与 package 一起使用scrletter。因此,您可以假装加载类,而不是告诉hebrew.ldf您类letter已加载(请参阅 Ulrike 对问题的评论)article。尽管如此,仍然会有一个错误消息,因为在里面scrletter设置了一个标签。这会导致\label{\thisletter.lastpage}\end{letter}

\newlabel{\@@number {1}.lastpage}{{\beginL \@@number {1}\endL }{\@@number {1}}

aux文件中。\beginL此处导致出现错误消息。我不知道这是否\label是使用中的一般问题babel-hebrew,但如果您不需要最后一页功能,您可以使用简单的补丁来删除它。

和:

\documentclass{scrartcl}
\usepackage[utf8x]{inputenc}
\makeatletter\@namedef{[email protected]}{0000/00/00}\makeatother
\usepackage[hebrew,english]{babel}
\usepackage{scrletter}
\usepackage{culmus}

\setkomavar{subject}{\foreignlanguage{hebrew}{שלום}}
\usepackage{xpatch}
% remove label from \endletter
\xpatchcmd{\endletter}{\label{\thisletter.lastpage}}{}{}{}

\begin{document}
\begin{letter}{Example Person}
\opening{Dear Example,}
\ldots
\closing{Best regards,}
\end{letter}

\end{document}

我得到:

在此处输入图片描述

我不知道这是否是预期的结果。我也不知道这个技巧是否能用于真正的希伯来字母。

确实 最好 的 是 拥有 一个 更好 的babel-hebrew

相关内容