![使用 Psfrag 自动替换/渲染轴刻度](https://linux22.com/image/250926/%E4%BD%BF%E7%94%A8%20Psfrag%20%E8%87%AA%E5%8A%A8%E6%9B%BF%E6%8D%A2%2F%E6%B8%B2%E6%9F%93%E8%BD%B4%E5%88%BB%E5%BA%A6.png)
我和一位朋友正在使用LaTeX 字体在报告中psfrag
包括和编辑eps
图表。但是,在包括 MatLab 图时,未替换的文本字体是 MatLab 导出的字体。这导致轴上的值未以 LaTeX 字体呈现。
有没有办法自动完成这个?手动操作真的很麻烦,我们不想经历。
答案1
我认为您需要输入一些数字,但以下意味着您只需执行
\psfragloop{-10}{10}{2}
\psfragloop{-150}{150}{50}
指定(*10)每个轴的起始值、结束值和步长。
正如所发布的,它只是键入,但如果你注释掉它并取消注释,%\x
它应该会执行替换。我明白了
macro:->\psfrag {-1}{$-1$}
macro:->\psfrag {-0.8}{$-0.8$}
macro:->\psfrag {-0.6}{$-0.6$}
macro:->\psfrag {-0.4}{$-0.4$}
macro:->\psfrag {-0.2}{$-0.2$}
macro:->\psfrag {0}{$0$}
macro:->\psfrag {0.2}{$0.2$}
macro:->\psfrag {0.4}{$0.4$}
macro:->\psfrag {0.6}{$0.6$}
macro:->\psfrag {0.8}{$0.8$}
macro:->\psfrag {1}{$1$}
macro:->\psfrag {-15}{$-15$}
macro:->\psfrag {-10}{$-10$}
macro:->\psfrag {-5}{$-5$}
macro:->\psfrag {0}{$0$}
macro:->\psfrag {5}{$5$}
macro:->\psfrag {10}{$10$}
macro:->\psfrag {15}{$15$}
从运行这个:
\makeatletter
\def\tenth{%
\ifnum\count@<\z@-\fi
\expandafter\xtentha\number\ifnum\count@<\z@-\fi\count@\relax}
\def\xtentha#1#2{%
\ifx\relax#2%
0\ifx0#1\else.#1\fi
\else
#1\expandafter\xtenth\expandafter#2%
\fi}
\def\xtenth#1#2{%
\ifx\relax#2%
\ifx0#1\else.#1\fi
\else
#1\expandafter\xtenth\expandafter#2%
\fi}
\def\psfragloop#1#2#3{%
\count@#1
\loop
\edef\x{\noexpand\psfrag{\tenth}{$\tenth$}}%
%\x
\typeout{\meaning\x}%
\ifnum\count@<#2
\advance\count@#3
\repeat}
\makeatother
\psfragloop{-10}{10}{2}
\psfragloop{-150}{150}{50}
\stop