使用 betababel 输出希腊文中的孤立字母

使用 betababel 输出希腊文中的孤立字母

摘自我手头的文档

\documentclass[a4paper,12pt,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage[polutonikogreek,ngerman]{babel}
\usepackage{betababel}
\usepackage[T1]{fontenc}

\begin{document}

\bcode{Schisma}

\bcode{Σχίσμα}

\end{document}

无论我如何尝试希腊 UTF-8 字符,我都会得到 ΣχίσμαJJ,即该单词后面总是有两个大写拉丁字母“J”。如果我使用德语拼写“Schisma”,我会得到 σvξηισvμα。我只想要 Σχίσμα,仅此而已。无法理解发生了什么。

答案1

可能你不需要 betababel 包。至少这似乎可以按预期工作:

\documentclass[a4paper,12pt,twoside]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[polutonikogreek,ngerman]{babel}
%\usepackage{betababel}
\usepackage[T1]{fontenc}

\begin{document}

{\selectlanguage{polutonikogreek}Schisma}

{\selectlanguage{polutonikogreek}Σχίσμα}

Und hier geht der Text weiter. 

\end{document}

在此处输入图片描述

答案2

包文档很清楚:在环境的参数中\bcode或内部,betacode您只应该使用拉丁字符和重音符号以及其他变音符号。

出现这个J情况是因为包内部使用它作为分隔符(该字符应该是不是出现在 betacode 上下文中),但多字节 UTF-8 字符会让解析器感到困惑。对此我们无能为力。

只需使用\textgreek

\documentclass[a4paper,12pt,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polutonikogreek,ngerman]{babel}
\usepackage[ngerman]{betababel}

% fix a bug of betababel
\toks0=\expandafter{\bcode}
\edef\bcode{\noexpand\leavevmode\the\toks0}
% end of fix

\begin{document}

\bcode{*sxi/sma}

\textgreek{Σχίσμα}

\end{document}

在此处输入图片描述

顺便说一句,我添加了一个修复程序,\bcode该修复程序不会开始一个段落,如果您排版(没有修复),您可以看到它

\documentclass[a4paper,12pt,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polutonikogreek,ngerman]{babel}
\usepackage[ngerman]{betababel}

\begin{document}

Some text with indent

\bcode{*sxi/sma} and following text

Some text with indent and \bcode{*sxi/sma}

\end{document}

在此处输入图片描述

如您所见,以 开头的段落\bcode没有缩进。如果添加修复,输出将正确。

在此处输入图片描述

相关内容