重新定义 X2 字体编码的拉丁字母槽

重新定义 X2 字体编码的拉丁字母槽

我的任务是在 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

https://w3c.github.io/xml-entities/unicode-names.html?%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B0,%20%D0%94%D0%BD%D1%96%D0%BF%D1%80%D0%BE

更改T2A输出看起来相同,但使用拉丁语进行剪切和粘贴i

https://w3c.github.io/xml-entities/unicode-names.html?%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B0,%20%D0%94%D0%BDi%D0%BF%D1%80%D0%BE

您可以通过指定 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 版本相同的剪切文本。

相关内容