包含文本的图形:对齐

包含文本的图形:对齐

总结如何将文本与文本对齐之内\包含图形?

让我们看一下我想要包含的以下徽标(矢量格式,例如 pdf 或 svg)。 在此处输入图片描述

蓝线/红线是我的注释。

虽然徽标是矢量图,但它是外部图像。我如何让 LaTeX 知道“基线”在哪里?或者,在此图像中,将文本左对齐到哪里?分别参见红线/蓝线。

目前,我的大多数 LaTeX 文档都相当粗糙,我正在尝试寻找一个优雅的解决方案。

我考虑过的事情:

  • 干预边界框。有什么缺点?
  • 手动定位徽标。为了避免调整大小问题,我必须找到(例如基线)作为相对高度。
  • 我对 PDF 语言了解甚少,但是有没有办法告诉 LaTeX,例如“使用元素的左下角”,因为我包含了矢量图形?
  • 也许我可以用 tikz 包含图形,然后手动定位锚点?

我将非常感激你们的任何建议。

答案1

我不确定有哪些工具可以更改图像的边界框,但可以在 LaTeX 中完成,如下所示。我使用的主要工具是:

1)包中用于垂直填充正或负填充框\addvbuffer的命令;verbatimbox

2)\stackengine来自同名包的命令。当第 7 个参数(称为\useanchorwidth)设置为 true 时,总堆栈将采用堆栈锚点对象的水平宽度。

我只是确保锚点符合所需大小。有四个参数需要设置,显示在 MWE 顶部附近。

\documentclass{article}
\usepackage{graphicx}
\usepackage{verbatimbox}
\usepackage{stackengine}
\usepackage{xcolor}

\def\topclip{-.76cm}
\def\bottomclip{-.76cm}
\def\finalwidth{4.5cm}
\def\widthplusrightclip{6cm}

\def\wwfraw{\includegraphics{wwf}}

\def\wwf{\addvbuffer[\topclip\ \bottomclip]{%
  \stackengine{0pt}{\rule{\finalwidth}{0cm}}{%
    \stackengine{0pt}{\rule{\widthplusrightclip}{0cm}}{\wwfraw}{O}{r}{F}{T}{L}%
  }{O}{l}{F}{T}{L}%
}}%

\def\cornermark{\color{red}\rule{0.5cm}{0.5cm}}
\parindent 0in
\begin{document}
\def\stackalignment{r}\topinset{\cornermark}{%
  \def\stackalignment{l}\bottominset{\cornermark}{\wwfraw}{}{}}{}{}
\clearpage
Left margin\vspace{1in}\par 
\def\stackalignment{r}\topinset{\cornermark}{%
  \def\stackalignment{l}\bottominset{\cornermark}{\wwf}{}{}}{}{}
Here is the baseline
\clearpage
\def\stackalignment{l}
\bottominset{\color{red}\Huge \textsc{My Text}}{\wwfraw}{6cm}{1.5cm}
\end{document}

这是下载的原始图像的边界。红色框表示图像左下角和右上角的范围(含)。

在此处输入图片描述

处理后,图像范围如下,再次用红色框显示:

在此处输入图片描述

一旦了解了图像的范围,就可以相应地规划文本。

当然,除非你觉得必须为图像设置原点,否则你可以将文本放在任何位置,即使是原始图像上。例如,MWE 的最后几行:

\def\stackalignment{l}
\bottominset{\color{red}\Huge \textsc{My Text}}{\wwfraw}{6cm}{1.5cm}

将产生以下内容,而无需进行任何边界框改变。

在此处输入图片描述

当然,如果你选择对处理后的图像进行操作,那么将插入文本设置为与左下角(0,0)偏移:

\bottominset{\color{red}\Huge \textsc{My Text}}{\wwf}{}{}

会将文本的左下角放置在蓝色/红色注册标记上。

答案2

虽然理论上,如果您有矢量格式的图像,则可能可以计算基线,但其他问题通常意味着您必须手动调整它,因此除非您必须处理数千张这样的图像,否则通常只需用眼睛调整位置就足够了。实际上,您不需要任何额外的软件包,只需\raiseboxand \kern(或\hspace)。

在此处输入图片描述

\documentclass{article}

\usepackage{fix-cm}
\usepackage{graphicx}


\begin{document}


\fontfamily{cmss}\fontseries{bx}\fontsize{45}{50}\selectfont



\raisebox{-.07\height}{\includegraphics{wwf}}%
\kern-42pt WWF




\end{document}

相关内容