使用 \psfrag 的字体不正确

使用 \psfrag 的字体不正确

我正在尝试包含我在 MATLAB 中制作的图形。我想使用 更改字体\psfrag,但是缩小图形时似乎会出现问题。它使字体保持与文本相同的大小,这很好,但刻度标签保持其位置(它们与轴重叠!),这看起来很糟糕。参见下图。MWE 如下所示。

\documentclass[11pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{psfrag}

\begin{document}
\begin{figure}
\psfrag{0}{$ 0 $}
\psfrag{5}{$ 5 $}
\psfrag{10}{$ 10 $}
\psfrag{15}{$ 15 $}
\psfrag{20}{$ 20 $}
\psfrag{25}{$ 25 $}
\psfrag{30}{$ 30 $}
\psfrag{358}{$ 358 $}
\psfrag{360}{$ 360 $}
\psfrag{362}{$ 362 $}
\psfrag{364}{$ 364 $}
\psfrag{366}{$ 366 $}
\psfrag{368}{$ 368 $}
\psfrag{370}{$ 370 $}
\psfrag{xtitle}{$ d_{c}\, \mathrm{[\mu m]} $}
\psfrag{ytitle}{$ t_{i}\, \mathrm{[nm]} $}
\begin{centering}
\includegraphics[scale=0.7]{layer_thickness.eps}
\par\end{centering}
\caption{Insert caption}
\label{fig: layer thickness}
\end{figure}
\end{document}

使用 <code>\psfrag</code> 更改刻度标签的字体,但定位不佳。

答案1

\rlap您可以使用和调整水平位置,使用、和\kern调整垂直位置。我无法在您的示例中显示它,但以下内容可能会给出提示:\strut\smash\raisebox

\documentclass{article}

\begin{document}

\newcommand*\ytick[1]{\rlap{\small\kern-0.2em\relax#1}}
\newcommand*\ylabel[1]{\strut\smash{\small\raisebox{0.5ex}{#1}}}

A\ytick{x}B

X\ylabel{a}Y

\end{document}

宏的含义:

  • \rlap{#1}#1从当前位置右侧排版,不占用空间。还有宏\llap和。\clap
  • \kern#1\relax插入大小为 的空格#1,在本例中为水平(\rlap的内容处于水平模式)和负数。
  • \strut排版一个宽度为零、高度+深度为“无重音字母的最大尺寸”的不可见框。
  • \smash{#1}排版时#1,就好像它根本没有高度一样。我们使用\strut\smash以确保\raisebox达到预期的效果。
  • \raisebox{#1}{#2}#2其垂直移动#1

现在,您应该能够编写类似 的内容\psfrag{358}{\ytick{$358$}},如果您对该值进行-0.2em一段时间的操作,就会得到所需的结果。以类似的方式,您可以将轴标签向左移动(这意味着垂直因为它旋转了 90 度)。

答案2

查看 psfrag 文档第 5 节“命令和环境”:使用可选参数,您可以控制替换文本相对于原始对象的水平和垂直对齐方式。例如,在我自己的文档中,我通常使用类似以下内容:

\psfrag{ylabel}[cc][cc][0.85]{Message error rate}
\psfrag{LegendLine1}[lc][lc][0.85]{My Stuff}

我不知道我是否记得正确。如有疑问,请查看 psfrag 文档。但第一个参数应该是 latex 参考点,第二个参数是 postscript 参考点,第三个参数是比例(因此您可以额外缩放字体大小,也许您不需要,但我通常需要)。因此,上面的第一行应该将替换文本(“消息错误率”)的水平和垂直中心与我在 Matlab 中输入的占位符(“ylabel”)的水平和垂直中心对齐。第二行将替换文本垂直居中对齐,但水平向左对齐,这通常是您在图中的图例情况下想要的。

答案3

它非常简单:

\psfrag{你的东西}[][][scale]{$Hello$}

你必须用 0 到 1 之间的值替换“scale”

相关内容