使用 TeX Gyre 字体和 latex+dvips+ps2pdf

使用 TeX Gyre 字体和 latex+dvips+ps2pdf

我想将 TeX Gyre 字体(尤其是 Pagella 和 Pagella Math)与 LaTeX+dvips+ps2pdf 结合使用。将来我想将其用于 PSTricks,但首先我必须解决字体问题。

我将此代码用于 LaTeX+dvips+ps2pdf

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tgpagella}
\begin{document}
Test in Pagella

\[\sum_{k=1}^n k=\frac{n(n+1)}{2}\]
\end{document}

它生成一个包含 TeX Gyre Pagella 文本的 PDF 文件《计算机现代》中的数学(见截图)

源文件生成的屏幕截图

将代码更改为以下内容

\documentclass{article}
\usepackage{fontenc,unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\setmathfont[Ligatures=TeX]{TeX Gyre Pagella Math}
\begin{document}
Test in Pagella

\[\sum_{k=1}^n k=\frac{n(n+1)}{2}\]
\end{document}

并在 DVI 模式下使用 LuaLaTeX 处理它效果很好。但dvips之后运行会产生以下错误

This is dvips(k) 5.992 Copyright 2012 Radical Eye Software (www.radicaleye.com)
' LuaTeX output 2013.04.01:1811' -> template-pstricks.ps
kpathsea: Invalid fontname `name:TeXGyrePagella:mode=node;script=latn;language=DFLT;+tlig;+trep;', contains ':'
dvips: Font name:TeXGyrePagella:mode=node;script=latn;language=DFLT;+tlig;+trep; not found; using cmr10

</usr/local/texlive/2012/texmf-dist/fonts/pk/ljfour/public/cm/dpi600/cmr10.pk>kpathsea: Invalid fontname `name:TeXGyrePagellaMath:mode=base;script=math;language=DFLT;+tlig;+trep;+ssty=1;', contains ':'

dvips: Font name:TeXGyrePagellaMath:mode=base;script=math;language=DFLT;+tlig;+trep;+ssty=1; not found; using cmr10

</usr/local/texlive/2012/texmf-dist/fonts/pk/ljfour/public/cm/dpi600/cmr10.pk>
dvips: ! invalid char 119899 from font name:TeXGyrePagellaMath:mode=base;script=math;language=DFLT;+tlig;+trep;+ssty=1;

我知道 dvips 无法处理 OpenType 字体,但是我该如何将 TeX Gyre Pagella 和 TeX Gyre Pagella Math 与 PSTricks 一起使用?LaTeX 或 LuaLaTeX 解决方案都会很有帮助。

答案1

auto-pst-pdf我现在已经解决了添加到代码的问题

\documentclass{article}
\usepackage{auto-pst-pdf}
\usepackage{fontenc,unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Pagella}
\setmathfont[Ligatures=TeX]{TeX Gyre Pagella Math}
\begin{document}
Test in Pagella

\[\sum_{k=1}^n k=\frac{n(n+1)}{2}\]
\end{document}

并且用它编译lualatex -shell-escape file.tex会产生以下输出,其中仅包含 TeX Gyre Pagella 和 TeX Gyre Pagella Math。

正确结果截图

非常感谢@egreg 提供这个提示。

由于@Ulrike Fischer 的评论而得到改进

显然没有办法按照我想要的方式解决问题,所以我再次编辑了我的代码

\documentclass{article}
\usepackage{pstricks}
\usepackage{xltxtra}
\usepackage{xunicode}
\usepackage{fontenc}
\usepackage{unicode-math}
\setromanfont[Ligatures=TeX]{texgyrepagella-regular.otf}
\setmathfont[Ligatures=TeX]{texgyrepagella-math.otf}
\begin{document}
Test in Pagella

\[\sum_{k=1}^n k=\frac{n(n+1)}{2}\]

\begin{pspicture}(3,3)
  \psline{->}(1,1)(3,2)
  \psline{->}(1,1)(3,1)
  \rput(2,2){$x$}
\end{pspicture}
\end{document}

处理它xelatex file.tex会产生所需的 PDF 文件,其中包含 TeX Gyre Pagella 和 Pagella Math

使用 xelatex 处理的代码的屏幕截图

感谢@egreg 和@Ulrike Fischer 的提示。欢迎进一步改进,我认为我还有很多东西要学。

相关内容