关于XeLaTeX的字体cmap的问题

发布于 2021-12-13 13:47:20

我在tex.stackexchange.com网站找到了一个关于PDF复制乱码的问题的回答,这位作者提到通过修改cmaps编码可以实现效果,MWE如下:

% pdflatex is required
\documentclass{article}
\usepackage[resetfonts]{cmap}
\usepackage{fancyvrb}
\begin{VerbatimOut}{ot1.cmap}
%!PS-Adobe-3.0 Resource-CMap
%%DocumentNeededResources: ProcSet (CIDInit)
%%IncludeResource: ProcSet (CIDInit)
%%BeginResource: CMap (TeX-OT1-0)
%%Title: (TeX-OT1-0 TeX OT1 0)
%%Version: 1.000
%%EndComments
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (TeX)
/Ordering (OT1)
/Supplement 0
>> def
/CMapName /TeX-OT1-0 def
/CMapType 2 def
1 begincodespacerange
<00> <7F>
endcodespacerange
8 beginbfrange
<00> <01> <0000>
<09> <0A> <0000>
<23> <26> <0000>
<28> <3B> <0000>
<3F> <5B> <0000>
<5D> <5E> <0000>
<61> <7A> <0000>
<7B> <7C> <0000>
endbfrange
40 beginbfchar
<02> <0000>
<03> <0000>
<04> <0000>
<05> <0000>
<06> <0000>
<07> <0000>
<08> <0000>
<0B> <0000>
<0C> <0000>
<0D> <0000>
<0E> <0000>
<0F> <0000>
<10> <0000>
<11> <0000>
<12> <0000>
<13> <0000>
<14> <0000>
<15> <0000>
<16> <0000>
<17> <0000>
<18> <0000>
<19> <0000>
<1A> <0000>
<1B> <0000>
<1C> <0000>
<1D> <0000>
<1E> <0000>
<1F> <0000>
<21> <0000>
<22> <0000>
<27> <0000>
<3C> <0000>
<3D> <0000>
<3E> <0000>
<5C> <0000>
<5F> <0000>
<60> <0000>
<7D> <0000>
<7E> <0000>
<7F> <0000>
endbfchar
endcmap
CMapName currentdict /CMap defineresource pop
end
end
%%EndResource
%%EOF
\end{VerbatimOut}

\usepackage{lipsum}

\begin{document}

\lipsum

\end{document}

我使用pdfLaTeX确实可以达到复制乱码的效果,但是如果使用XeLaTeX编译就没有任何效果了,我想请教一下各位大佬是否能够使用某个宏包或者命令让XeLaTeX也能修改字体的cmaps编码呢?

查看更多

关注者
0
被浏览
1.9k
雾月
雾月 2021-12-13
这家伙很懒,什么也没写!

cmap是pdftex特有的功能,其它编译器不可用。

你之前那个问题是pdftex下,使用cjk支持中文出现的错误,不是标准行为。

2 个回答
LaTeXStudio
LaTeXStudio 2021-12-13
这家伙很懒,什么也没写!

这样还不如后期直接转曲呢,快速简单。
另外,现在 OCR 做得已经很好了,意义不很大。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览