是否可以在 dvips 中使用點陣字體編碼?

是否可以在 dvips 中使用點陣字體編碼?

在創建文件的過程中.psdvips讀取“.恩恩pk" 字型。這些字型不能攜帶編碼訊息(與 Type3 或 Type1 字型相反)。但在.map文件中可以攜帶編碼訊息被給予。

是否可以使用.mapfile 將.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 進行逆向工程並將類似的內容直接添加到.psProducer 中dvips


PDF 中的以下程式碼似乎負責將編碼與 PK 檔案關聯:

/Type /Encoding
/Differences [239/uni044F]

這段程式碼在 PostScript 中相當於什麼?

答案1

你很幸運!的原作者dvipsTomas Rokicki 已經「退休」了(可以這麼說,我只是說他有dvips一段時間沒有工作了)來改變這一點,並在 TUG 2019 上就此發表演講。

你可以看看他的預印本這裡,以及帶有原始程式碼的 GitHub 儲存庫這裡

您可以測試我對dvips輸出文件提出的更改,而無需更新您的發行版或構建新版本的dvips. Perl 腳本addencodings.pl讀取標準輸入產生的 PostScript 文件,並寫入透過標準輸出dvips修改產生的 PostScript 檔案。dvips此測試不需要額外的文件;標準 TEX Live 字體的預設編碼內建於 Perl 腳本中。

最新版本addencodings.pl這裡(截至今天最新的永久連結:這裡)。

相關內容