用西里尔字母搜索文本

用西里尔字母搜索文本

我在使用 LaTeX 生成带有西里尔符号的文档时遇到了问题。我创建了以下文件:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\begin{document}
ЛаТеХ\\LaTeX
\end{document}

当我复制西里尔字母的文本时,剪贴板上出现了一些乱码,

在此处输入图片描述

这使得我的文章很难被引用。所以我的第一个问题是,我能解决这个问题并有正确的复制流程吗?

此外,如果我以任何方式键入某些文本并在文档中查找它,则在文档中找不到它,但很清楚的是,该文本就在那里:

在此处输入图片描述

我的第二个问题是,我是否可以以某种方式制作文档,以便获取我所寻求的西里尔字符串?

如果字母是拉丁字母,则不会发生上述情况。但是西里尔字母会导致这些问题,目前由于这些限制,我无法使用 LaTeX。

如有需要,我很乐意提供更多详细信息。

PS:我使用“MikTex”,pdfLatex+MakeIndex+BibTex。

答案1

这里的问题是,默认情况下 PdfLaTeX 使用某种 8 位字体编码(T2 代表西里尔文),并且不提供 Unicode 映射。因此,您的查看器认为这些字符不是西里尔文,而是来自 latin1 编码。

要使用 PdfLaTeX 添加此 Unicode 映射,您可以使用以下cmap包:

\documentclass{article}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\begin{document}
ЛаТеХ\\LaTeX
\end{document}

在生成的 PDF 中生成可搜索和可复制的西里尔文本。

或者,正如 Ulrike Fischer 所建议的,您可以切换到 XeLaTeX 或 LuaLaTeX,并使用fontspec一些包含西里尔字母的 OpenType 或 TrueType 字体:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\begin{document}
ЛаТеХ\\LaTeX
\end{document}

后一种方法可能需要您的 TeX 发行版的某些较新版本,因为这些新的 TeX 引擎和包正在积极开发中,因此自然它们包含更多错误(可能会在较新的版本中修复)。

相关内容