![是否可以在 dvips 中使用點陣字體編碼?](https://rvso.com/image/399840/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E5%9C%A8%20dvips%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E9%BB%9E%E9%99%A3%E5%AD%97%E9%AB%94%E7%B7%A8%E7%A2%BC%EF%BC%9F.png)
在創建文件的過程中.ps
,dvips
讀取“.
恩恩pk
" 字型。這些字型不能攜帶編碼訊息(與 Type3 或 Type1 字型相反)。但在.map
文件中可以攜帶編碼訊息能被給予。
是否可以使用.map
file 將.enc
檔案與給定的 PK 字體關聯起來?
.map
文件允許“ReEncodeFont”參數,如下所示:
lhr10 "Myenc ReEncodeFont" <my.enc
可以使用嗎?或者也許還有其他方法,例如.ps
直接破解文件? (不考慮將PK字體轉換為Type1或Type3)
更新
以下來自 pdftex 手冊第 12 頁的引用看起來很有希望:
從版本 1.40.19 開始,也可以為點陣圖 pk 字型指定編碼檔。在這種情況下,它從給定的編碼向量分配字形名稱,該名稱可以與 \pdfglyphtounicode 原語 (qv) 一起使用。例如: ...
是否可以使用類似的技巧dvips
?
以下是如何在 pdftex 中使用 PK 字體編碼的完整範例:
從發行版複製tex256.enc
到目前目錄並將條目變更/idieresis % 239
為/uni044F
,然後使用 處理下列檔案pdftex
:
\pdfcompresslevel=0 \pdfobjcompresslevel=0
\pdfmapline{lhr10 <tex256.enc}
\font\tenrm=lhr10 \tenrm
^^ef
\end
之後你就得到了可複製的點陣圖字元。
是否可以對創建的 pdf 進行逆向工程並將類似的內容直接添加到.ps
Producer 中dvips
?
PDF 中的以下程式碼似乎負責將編碼與 PK 檔案關聯:
/Type /Encoding
/Differences [239/uni044F]
這段程式碼在 PostScript 中相當於什麼?
答案1
你很幸運!的原作者dvips
Tomas Rokicki 已經「退休」了(可以這麼說,我只是說他有dvips
一段時間沒有工作了)來改變這一點,並在 TUG 2019 上就此發表演講。
你可以看看他的預印本這裡,以及帶有原始程式碼的 GitHub 儲存庫這裡。
您可以測試我對
dvips
輸出文件提出的更改,而無需更新您的發行版或構建新版本的dvips
. Perl 腳本addencodings.pl
讀取標準輸入產生的 PostScript 文件,並寫入透過標準輸出dvips
修改產生的 PostScript 檔案。dvips
此測試不需要額外的文件;標準 TEX Live 字體的預設編碼內建於 Perl 腳本中。