如何获取可以复制粘贴的重音 Unicode 字符?

如何获取可以复制粘贴的重音 Unicode 字符?

目的是生成带有重音字符的 .pdf(.tex 文件混合了宏和 unicode 输入),以便可以复制粘贴 .pdf 文本。

一个例子:

\documentclass{article}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tgpagella}

\begin{document}

Unicode input: ā ī ū ṃ ṅ ñ

Macro input: \=a \={\i} \=u \d{m} \.n \~n

\end{document}

使用 进行编译pdflatex,上述内容将在视觉上产生所需的字符,但是当您从 .pdf 中选择并复制粘贴它们时,您会得到

Unicode input: a  ̄ u m n ñ
 ̄ı ̄ .  ̇
Macro input: a  ̄ u m n ñ

编辑:
Ulrike 的回答解释pdflatex这里正在做什么。

答案1

pdflatex 不使用“unicode 复合字符”。您使用的是 T1 编码,对于此编码中不可用的重音字符,pdflatex 使用各种方法来构建它们。例如,m 下方的点实际上是一个小表格,其中 m 在第一行,一个点在第二行:

\DeclareTextCommand{\d}{T1}[1]
   {\hmode@bgroup
    \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}

理论上,您可以使用 pdflatex 获得正确的字形(如果您的字体包含它们)。实际上,这意味着很多工作。最好使用 xelatex 或 lualatex。

答案2

尝试添加\usepackage{cmap}。或者切换到xelatex/lualatex。

答案3

这是走向胜利的道路:

  1. 安装TeX Live 2010其中有一个luatexfontspec版本可以协同工作。请按照拖船网

  2. 在 Linux 上,不要忘记更新$PATH!如果您已经使用包管理器安装了 TeX Live,请将新路径优先于旧路径。例如,在 的末尾~/.bashrc,输入PATH=/usr/local/texlive/2010/bin/i386-linux:$PATH; export PATH

  3. 注销并重新登录(或者只是打开一个新终端)以便进行$PATH更新。

将此测试保存到test.tex某处,然后使用
lualatex --interaction=nonstopmode test.tex

\documentclass{article}

\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}

\begin{document}

Unicode input: ā ī ū ṃ ṅ ñ

Macro input: \=a \={\i} \=u \d{m} \.n \~n

\end{document}

打开结果test.pdf,然后从中复制粘贴,你会得到

Unicode input: ā ī ū ṃ ṅ ñ
Macro input: ā ī ū ṃ ṅ ñ

好的!

相关内容