根据以下位置的模板/asymTypB.lco
文件brieftemplate.tex
briefwbk.tex
http://www.komascript.de/files/KOMA-Script-3-Buch-Beispielcode.zip,我得到了一个修改过的发票模板(最初发布于https://tex.stackexchange.com/a/152558/8272)。
尝试将其翻译成希腊文(可访问https://github.com/NikosAlexandris/invoice_el),我根据 KOMA 的指南建议添加了以下说明:
\AtBeginDocument{%
\providecaptionname{greek}{\datename}{Ημερομηνία}%
\providecaptionname{greek}\subjectname{Θέμα}%
\providecaptionname{greek}\headtoname{Προς}%
\providecaptionname{greek}{\customername}{Πελάτης (Κωδικός, Αριθμός)}%
\providecaptionname{greek}\yourmailname{Εγγραφή Πελάτη}%
\providecaptionname{greek}{\yourrefname}{Διακριτικός τίτλος έργου}%
\providecaptionname{greek}\headfromname{Από}%
\providecaptionname{greek}\emailname{η-Ταχυδρομείο}%
\providecaptionname{greek}\wwwname{Url}%
\providecaptionname{greek}\phonename{Τηλέφωνο}%
\providecaptionname{greek}\faxname{Τηλεομοιότυπο}%
\providecaptionname{greek}{\myrefname}{Εσωτερική εγγραφή}%
\providecaptionname{greek}{\invoicename}{Τιμολόγιο No.}%
\providecaptionname{greek}{\bankname}{Τραπεζικός Λογαριασμός}%
\providecaptionname{greek}\ccname{cc}%
\providecaptionname{greek}\enclname{Επισυναπτόμενα}%
\providecaptionname{greek}\pagename{Σελίδα}%
}
此外,我在相应的.lco
文件中添加了新变量,如下所述(本)KOMA 的剧本指南(英文版,第 371 页),新变量接受预定义的描述,即:newkomavar*[description ]{name }
。例如,
% New variable(s) here!
\newkomavar{company}%
\newkomavar{professiona}%
\newkomavar{professionb}%
\newkomavar{fromvatin}%
\newkomavar{fromlinkedin}%
到目前为止一切正常。但是,为自定义变量添加希腊文描述不会按预期工作。例如,以下
\newkomavar*[ΑΦΜ Πελάτη]{yourvatin}%
在编译后的 pdf(PDFLaTeX)中显示为ὐἇὐᾔὐῂ ὐήὐᾡὐὢὐῇὓᾲὐᾣ
。 如何在 .lco 文件内部实现自定义 koma 变量的希腊语描述(在 PDFLaTeX 内部)?
答案1
您的示例文件似乎使用了 UTF-8 编码。“ΑΦΜΠελάτη”中各个字母的 UTF-8 十六进制代码序列为ce91 cea6 ce9c cea0 ceb5 cebb ceac cf84 ceb7
(注意:空格已被删除)。
我不熟悉 LaTeX 中希腊字体编码的复杂细节,但LaTeX 字体编码手动将UTF -8 序列的字节(ce
、、、、...)映射到您看到的错误输出。91
ce
a6
一个新的例子
由于我无法编译您的示例文档,因此我必须用我自己的最少示例来演示问题和提出的解决方案。
首先,当没有定义 inputenc 时会出现问题:
\documentclass{standalone}
\usepackage[LGR]{fontenc}
\begin{document}
ΑΦΜ Πελάτη
\end{document}
这个问题可以通过以下方式解决:
A.定义合适的输入编码
\documentclass{standalone}
\usepackage[LGR]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
ΑΦΜ Πελάτη
\end{document}
或者
B. 使用 LGR 表中的字符代码。从“ΑΦΜΠελάτη”到十进制代码的映射为 65、70、77、80、101、108、136、116、104。
\documentclass{standalone}
\usepackage[LGR]{fontenc}
\begin{document}
\char65\char70\char77{} \char80\char101\char108\char136\char116\char104
\end{document}
A 和 B 均给出相同的结果:
将其应用于原始示例
我猜字符代码解决方案 (B) 应该可以正常工作。要使输入编码解决方案正常工作,我认为您需要将声明移到\inputenc
文档中较早的位置,在任何希腊文本之前。请注意,在您的示例中,.lco
包含的模板\newkomavar*[ΑΦΜ Πελάτη]{yourvatin}
直接包含\documentclass
在声明之前\inputenc
。