我很好奇
\usepackage{cmap}
\usepackage[resetfonts]{cmap}
\usepackage{mmap}
(=\usepackage[useTeX]{mmap}
)\usepackage[noTeX]{mmap}
它们究竟有什么区别?(我不熟悉(La)TeX 内部结构,因此初学者的解释将非常有帮助。)如果这很重要:我正在使用\usepackage[T3,T1]{fontenc}
( -packageT3
所必需的tipa
),这对我来说很重要(但对于这个问题的完全一般答案可能并不重要)。
((此外,我假设每个命令都需要加载后正在加载包fixltx2e
但是前正在加载软件包times
和fontenc
。对吗?))
更新: 这起始代码很棒。我取消了 tipa 行的注释,将文件保存为 UTF-8(并将输入编码行修改为\usepackage[utf8]{inputenc}
,并尝试了所有不同的 cmap/mmap 选项。但是,我没有看到从输出 pdf 文件粘贴的文本有什么不同(可能是因为 MWE 使用虚拟字体(默认情况下?)?)。理想情况下,也许有人可以帮忙(我们俩都尝试了很多次)找到一个最小示例,该示例显示五种不同的输出粘贴行为,唯一的区别是没有加载 cmap/mmap 或 4 个 cmap/mmap 选项之一。理想情况下,该示例还会指定保存文件的编码以使其工作(记住不要对 UTF-8 使用 BOM;更重要的是,我不知道所有输入编码是否都会导致相同的行为(假设在输入编码中正确转义重音字符,但不提供特定字符))。
答案1
这个包的mmap
功能比 稍微多一点cmap
,它还可以用于 pdf 中的数学符号。
因此,如果您的 pdf 不使用数学,请使用\usepackage{cmap}
。如果您在使用现代计算机时遇到连字符问题,请\usepackage[resetfonts]{cmap}
使用。使用数学符号\usepackage{mmap}
。如果您仍然有问题,请使用\usepackage[noTeX]{mmap}
。
不同之处在于:
\usepackage{cmap}
:接受预加载的字体,无需重新加载。\usepackage[resetfonts]{cmap}
:正如您在 cmap 的 README 中所读到的,这会强制重新加载预加载的字体(Computer Modern)。\usepackage[useTeX]{mmap}
并且\usepackage{mmap}
:完成 cmap 所做的所有操作,另外还纠正了 pdf 中的数学符号;使用新的 -m.cmap 文件(“使用 ascii 字符串作为宏名”)。\usepackage[noTeX]{mmap}
:完成 cmap 的所有功能,此外还纠正 pdf 中的数学符号;使用 cmap 文件(unicode)。
cmap
先加载或mmap
,然后加载fontenc
和babel
。
的文档fixltx2e
只说“在序言中加载”。我在之后加载它时没有遇到任何问题fontenc
,babel
并且使用了字体。
要进行自己的实验,请使用以下 MWE:
\listfiles % shows used files
\documentclass[12pt]{scrartcl}
%\usepackage{cmap} % pure T1 fonts
%\usepackage[resetfonts]{cmap} % pure T1 fonts, reset CM
%\usepackage{mmap} % cmap + mathematics (ASCII)
%\usepackage[noTeX]{mmap} % cmap + mathematics (Unicode)
\usepackage[Latin9]{inputenc} % or utf-8
\usepackage[T1]{fontenc} % font encription
%\usepackage[T3,T1]{fontenc} % T3 for package tipa
%\usepackage{tipa} % Phonetic alphabet
\usepackage[ngerman]{babel} % neue deutsche Rechtschreibung
%\usepackage{lmodern} % Latin Modern
%\usepackage{tgpagella} % has no virtual fonts
%\usepackage[osf]{mathpazo} % Minuskelziffern okay
%\usepackage{libertine} % Libertine Legacy (with virtual fonts)
\usepackage[osf]{libertine} % mit Medivalziffern bzw. Minuskelziffern
\newcommand*{\III}{\libertineGlyph{Threeroman}}
\newcommand*{\IV}{\libertineGlyph{Fourroman}}
\begin{document}
Römische Zahlen: \III, \IV.
\textsc{Ligaturen}: auffliegen auffinden finden Auflage Schifffahrt.
\textsc{Korrekt}: auf\/fliegen auf\/finden finden Auf\/lage Schiff\/fahrt.
Ziffern: 0123456789.
Donau Donaudampfschiff Donaudampfschifffahrt Donaudampfschifffahrtskapitän
Donaudampfschifffahrtskapitän
Donaudampfschifffahrtskapitän Donaudampfschifffahrtskapitän
Donaudampfschifffahrtskapitän Donaudampfschifffahrtskapitän
%\textipa{[\!b] [\:r] [\;B]}
\end{document}
设置或删除注释符号进行测试cmap
,以及mmap
带有或不带有fontenc
不同的字体。
顺便说一句:“Donaudampfschifffahrtskapitän”是一个德语单词,最好用连字符连接。