如何修改 postscript 文件以使用与主文档相同的字体

如何修改 postscript 文件以使用与主文档相同的字体

我必须在 latex 文档中包含 Postscript 图片。ps 文件由另一个程序生成。我想修改 ps 中的字体,使其与文档的相同主字体相对应。(从生成 ps 文件的程序内部修改字体不是一种选择)

对于以下 MWE (带有 opentype 的 lualatex ),我该如何实现这一点?它如何与标准乳胶字体 (例如 Latin Modern) 一起使用?

梅威瑟:

\documentclass[]{article}
\usepackage{graphicx}
%lualatex setup
\usepackage{fontspec}
\setmainfont{MinionPro}%Or whatever
\setsansfont{Iwona}
%\usepackage{lmodern} %if using pdflatex

\begin{document}
\begin{figure}
\includegraphics[width=\textwidth,angle=270]{test.eps}
\end{figure}

\end{document}

就我对 PostScript 的有限了解而言,只有这些行与文件中的字体选择有关:

%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 18 72 594 720
%%HiResBoundingBox: 18.000000 72.000000 594.000000 720.000000
%%Creator: TECPLOT
%%DocumentFonts: Helvetica Helvetica-Bold Symbol Times-Roman Times-Bold Times-Italic Times-BoldItalic Courier Courier-Bold
%%EndComments
% EPSF created by ps2eps 1.68
%%BeginProlog
1 1 translate
save
countdictstack
mark
newpath
/showpage {} def
/setpagedevice {pop} def
%%EndProlog
%%Page 1 1
/tecplotdict 120 dict def
tecplotdict begin
/ed  {exch def} def
/ftl {findfont exch scalefont setfont} def
/ftr {/ISOLatin1-Times-Roman ftl} def
/ftb {/ISOLatin1-Times-Bold ftl} def
/fti {/ISOLatin1-Times-Italic ftl} def
/ftib {/ISOLatin1-Times-BoldItalic ftl} def
/fcr {/ISOLatin1-Courier ftl} def
/fcb {/ISOLatin1-Courier-Bold ftl} def
/fhn {/ISOLatin1-Helvetica ftl} def
/fhb {/ISOLatin1-Helvetica-Bold ftl} def

完整后记示例的链接:https://gist.github.com/anonymous/323645a6884adfc56ea9

为了记录,我尝试使用 inkscape 来转换文件,但在翻译过程中换行符和一些格式丢失了。

我希望有必要将字体转换为与 PostScript 兼容的格式,但可能 Latex 可能内置了某些东西(或者某些字体可能开箱即用,不知道。)

答案1

Lorehead 是对的。你可以将 PostScript 文件的第 297 行和第 298 行更改为:

/MinionPro-Regular getisofont /ISOLatin1-Helvetica       exch definefont pop
/MinionPro-Bold    getisofont /ISOLatin1-Helvetica-Bold  exch definefont pop

它似乎可以与我系统上安装的多种字体配合使用。您需要提供字体的 PostScript 名称。otfinfo -i <filename>将返回此信息。

答案2

第二个答案:看起来您的 PS 文件中第 945 至 1198 行左右是您想要更改的行。这些行似乎将第 20 至 30 行左右的字体定义应用于字符;fhb 是 Helvetica Bold,fhn 是 Helvetica,等等。如果您可以从另一个 PS 文件中复制字体定义,您可能能够更改这些标签以使用它。

相关内容