\DeclareFixedFont
我遇到了与 texlive2013结合使用时出现的问题\psfrag
,但在 texlive2010 中没有出现。
当我\DeclareFixedFont{\myFont}{T1}{ptm}{b}{n}{10}
在 MWE 中使用时,字母 E 的位置与预期一致,即右上角与矩形的角对齐。
但是,如果我使用,\DeclareFixedFont{\myFont}{T1}{ptm}{m}{n}{10}
字母不再正确放置,而是向下和向左移动。请注意,我psfrag
根本没有在命令中使用我的新字体。
我当前的系统是带有 texlive 2013 的 LinuxMint13。在我的旧系统(带有 texlive2010 的 Ubuntu 10.04)中,该错误不会出现。
我对 \DeclareFixedFont 命令进行了一些进一步的实验,这些实验在 MWE 中有记录。
此外,如果我通过 texlive 2010 的“旧”dvips(版本为 dvips(k) 5.99)运行我的“新”dvi 文件(由 texlive2013 创建),一切都正常。
比较两个 dvips 版本的日志文件输出,我发现的唯一显著差异是,texlive2013 中的 dvips(k) 5.993 也包含texmf-dist/fonts/type1/urw/times/utmr8a.pfb
,而 dvips(k) 5.99 不包含此文件。
texlive2013 (dvips(k) 5.993) 中的 dvips 是否存在 bug?
我已经使用 xfig 创建了 postcript 文件 Rectangle.eps(通过 MWE 中的 filecontents 环境包含),然后在 xfig 中导出为 eps。
\begin{filecontents*}{Rectangle.eps}
%!PS-Adobe-3.0 EPSF-3.0
%%Title: Rectangle.fig
%%Creator: fig2dev Version 3.2 Patchlevel 5d
%%CreationDate: Sat Aug 31 10:07:28 2013
%%BoundingBox: 0 0 107 70
%Magnification: 1.0000
%%EndComments
%%BeginProlog
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
end
/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add
4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
/pageheader {
save
newpath 0 70 moveto 0 0 lineto 107 0 lineto 107 70 lineto closepath clip newpath
-64.4 139.7 translate
1 -1 scale
$F2psBegin
10 setmiterlimit
0 slj 0 slc
0.06299 0.06299 sc
} bind def
/pagefooter {
$F2psEnd
restore
} bind def
%%EndProlog
pageheader
%
% Fig objects follow
%
%
% here starts figure with depth 50
% Polyline
0 slj
0 slc
7.500 slw
n 1035 1125 m 2700 1125 l 2700 2205 l 1035 2205 l
cp gs col0 s gr
/Times-Roman ff 190.50 scf sf
2542 1292 m
gs 1 -1 sc (E) col0 sh gr
% here ends figure;
pagefooter
showpage
%%Trailer
%EOF
\end{filecontents*}
\documentclass{article}
%
% latex WrongPsfragWtTexlive2013; dvips WrongPsfragWtTexlive2013 -o
%
\usepackage{graphicx,psfrag}
\listfiles
%
\begin{document}
\DeclareFixedFont{\myFont}{T1}{ptm}{m}{n}{10}% not OK
%%\DeclareFixedFont{\myFont}{T1}{ptm}{b}{n}{10}% OK
%%\DeclareFixedFont{\myFont}{T1}{ptm}{\seriesdefault}{\shapedefault}{10}% not OK
%%\DeclareFixedFont{\myFont}{\encodingdefault}{\familydefault}{\seriesdefault}{\shapedefault}{10}% OK
%%\DeclareFixedFont{\myFont}{T1}{\familydefault}{m}{n}{10}% OK
Some text in my new font: {\myFont Hello world}
The \verb+\DeclareFixedFont+-command has influence on the position of
the letter E in the picture although the new font \verb+\myFont+ is
not used in the \verb+\psfrag+-command.
\begin{center}
\begin{psfrags}
\psfrag{E}[tr][tr]{\fbox{$E$}}
\includegraphics[width=0.35\textwidth]{Rectangle.eps}
\end{psfrags}
\end{center}
\end{document}
答案1
由于某些原因,在调用 also 的文档中使用 Timespsfrag
会产生偏移。如果我更改
/Times-Roman
进入
/Times-Bold
在 EPS 文件中。选择文档中真正未使用的字体可能会更好。请参阅TeXLive 2013 中 psfrag + fncychap 的问题
不幸的是,psfrag
它已经过时了,并且无人维护。您可以切换到pstool
使用pdflatex
; 添加
\usepackage{pstool}
在序言中,并附上你的照片
\begin{center}
\psfragfig[width=0.35\textwidth]{Rectangle}{\psfrag{E}[tr][tr]{\fbox{$E$}}}
\end{center}
该psfrag
命令也可以放在名为的外部文件中Rectangle-psfrag.tex
,在这种情况下您只需输入
\begin{center}
\psfragfig[width=0.35\textwidth]{Rectangle}
\end{center}