我的任务是在 LaTeX 中排版乌克兰语/英语文档,并获得可搜索的 pdf 输出。\fontenc[X2]
对于乌克兰语,使用 切换到英语,该任务几乎可以解决\fontencoding{T1}\selectfont
。唯一的问题是:52 个英文字母 AZ 和 az 在 X2 中也有效,但它们被视为扩展西里尔字母;例如A
被视为 Æ。因此,很可能出现错误,忘记切换到 T1 并得到类似扩展西里尔字母 Æ 而不是英语 A。我试图为 X2 重新定义插槽 65-112,以便可以轻松找到错误点。但是,命令\DeclareTextSymbol
和\DeclareTextCommand
没有帮助;似乎这些命令声明了将其与给定插槽关联的新 TeX 控制序列,而这不是我需要的。
所以,问题是:如何(以及是否可能)重新定义用于编码 X2 的插槽 65-112,以便当 X2 打开时出现英文字母时 TeX 会产生类似错误的东西(或输入一些奇怪的输出)?
答案1
详情请见:
系统 TTF/OTF 字体具有更多的种类和多功能性,并且包含拉丁语和西里尔语的 Unicode 字体可以从 PDF 中复制粘贴,但您需要一种输入法来输入文本(例如乌克兰语键盘布局)。
使用 lualatex 进行编译。
平均能量损失
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Noto Serif} % has Latin, Greek, Cyrillic
\begin{document}
Ukrainian
Україна, Дніпро
\end{document}
Polyglossia
或者Babel
可能会有帮助。
Babel
可以识别字符代码,因此可以用来标记错误的键盘布局切换。
多语
平均能量损失
\documentclass{article}
\usepackage{xcolor}
\usepackage{polyglossia}
\setmainlanguage{english}
\setotherlanguage{ukrainian}
\newfontfamily\englishfont{Noto Serif}[Colour=blue]
\newfontfamily\ukrainianfont{Noto Serif}
\begin{document}
\selectlanguage{english}
Polyglossia -- by language environment
Ukrainian
\selectlanguage{ukrainian}
Україна, Дніпро
some English text
планетна система, що включає в себе центральну зорю — Сонце, і всі природні космічні об'єкти (планети, астероїди, комети, потоки сонячного вітру тощо), які об'єднуються гравітаційною взаємодією[6].
-- Матеріал з Вікіпедії
\end{document}
巴别塔 (Babel)
平均能量损失
\documentclass{article}
\usepackage{xcolor}
\usepackage[ukrainian, english]{babel}
\babelprovide[import, onchar=ids fonts]{english}
\babelprovide[import, onchar=ids fonts]{ukrainian}
\babelfont[english]{rm}[Colour=red]{Noto Serif}
\babelfont[ukrainian]{rm}{Noto Serif}
\begin{document}
%\selectlanguage{english}
Babel -- by Unicode block: note the deliberate a (not а) in системa.
Ukrainian
%\selectlanguage{ukrainian}
Україна, Дніпро
some English text
планетна системa, що включає в себе центральну зорю — Сонце, і всі природні космічні об'єкти (планети, астероїди, комети, потоки сонячного вітру тощо), які об'єднуються гравітаційною взаємодією[6].
-- Матеріал з Вікіпедії
\end{document}
答案2
cw 帖子,因此可以显示代码,请随意编辑
\documentclass{article}
\usepackage[X2]{fontenc}
\begin{document}
Україна, Дніпро
\end{document}
生产
如果我从 pdf(来自 xpdf)中剪切并粘贴,我会得到西里尔字母,而不是 asciii
看
更改T2A
输出看起来相同,但使用拉丁语进行剪切和粘贴i
您可以通过指定 ActualText 来修复剪切和粘贴
\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage{accsupp}
\DeclareTextCommand{\cyrii}{\LastDeclaredEncoding}{%
\BeginAccSupp{method=hex,unicode,ActualText=0456}i\EndAccSupp{}}
\DeclareTextCommand{\CYRII}{\LastDeclaredEncoding}{%
\BeginAccSupp{method=hex,unicode,ActualText=0406}I\EndAccSupp{}}
\begin{document}
Україна, Дніпро
\end{document}
产生与 X2 版本相同的剪切文本。