总结如何将文本与文本对齐之内\包含图形?
让我们看一下我想要包含的以下徽标(矢量格式,例如 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
虽然理论上,如果您有矢量格式的图像,则可能可以计算基线,但其他问题通常意味着您必须手动调整它,因此除非您必须处理数千张这样的图像,否则通常只需用眼睛调整位置就足够了。实际上,您不需要任何额外的软件包,只需\raisebox
and \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}