我在 Ubuntu 11.11 下使用 Tex Live 和 Texmaker 创建 LaTeX 源文件。有时我会使用 Krusader 的 Krviewer 编辑这些文件,但我注意使用输入编码 latin10(或 ISO 8859-16)。我的键盘布局是罗马尼亚标准,可以正确显示下面带有逗号的罗马尼亚变音符号(如 latin10)。
在文档序言中我使用
\usepackage[romanian]{babel}
\usepackage[latin10]{inputenc}
\usepackage[T1]{fontenc}
输出的 pdf 文件正确呈现了字符,下面有逗号,但搜索引擎找不到它们,也没有正确地复制到键盘上。例如:如果我复制单词細胞它会粘贴s, tiint, ă,这就是为什么它不能被pdf阅读器的搜索引擎找到的原因。
请问有什么建议吗?
答案1
不幸的是,T1 编码没有带有下方逗号的罗马尼亚字符 s 和 t,因此通过在普通 s 或 t 下方放置逗号来伪造它们。
其结果是“ș”和“ț”这两个字符实际上并不存在。
一种可能的解决方法(但有很多限制)是切换到 UTF-8 并使用包accsupp
:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[romanian]{babel}
\usepackage[unicode]{hyperref}
\usepackage{newunicodechar}
\usepackage{accsupp}
% Define code for the Romanian characters
\newunicodechar{Ș}{%
\BeginAccSupp{method=hex,unicode,ActualText=0218}%
\textcommabelow S%
\EndAccSupp{}%
}
\newunicodechar{ș}{%
\BeginAccSupp{method=hex,unicode,ActualText=0219}%
\textcommabelow s%
\EndAccSupp{}%
}
\newunicodechar{Ț}{%
\BeginAccSupp{method=hex,unicode,ActualText=021A}%
\textcommabelow T%
\EndAccSupp{}%
}
\newunicodechar{ț}{%
\BeginAccSupp{method=hex,unicode,ActualText=021B}%
\textcommabelow t%
\EndAccSupp{}%
}
\makeatletter
\ProvideTextCommandDefault\textcommabelow[1]
{\hmode@bgroup\ooalign{\null#1\crcr\hidewidth
\raise-.31ex\hbox{\check@mathfonts
\fontsize\ssf@size\z@
\math@fontsfalse\selectfont,}\hidewidth}\egroup}
\makeatother
\begin{document}
știință
\end{document}
如果您编译此(以 UTF-8 保存)编码,那么一些 PDF 查看器(我尝试了 Adobe Reader 9)将识别这些字符。