使图形大小适应周围的文本

使图形大小适应周围的文本

我以编程方式生成模板,以便使用 pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) 编译为 PDF 文件。在某个时候,我想用图像等效项替换一些文本字符:我已将字体文件转换为一堆 .png 文件。一个 png 文件包含字体的一个字符。

现在,我想将这些 png 文件插入到 LaTeX 模板中,以便人类读者永远不会注意到与“真实”文本有任何差异(除非他们尝试复制和粘贴,但这是另一回事)。

问题是:我需要一个适用于每种字体大小(和其他布局设置)的解决方案。

那么,我如何确保图像始终与周围文本的大小精确匹配?

目前,我正在使用includegraphics,但如果有另一个(免费)软件包能够满足我的要求,我也可以接受。

答案1

 \includegraphics[height=1ex]{image.png}

将包括缩放到 1ex 的图像,这是一个字体相关单位,通常是 x 的高度。

答案2

你需要考虑身高深度。

\documentclass{article}
\usepackage{graphicx}

\makeatletter
\newcommand{\0}[1]{%
  \begingroup
  \settoheight{\@tempdima}{#1}%
  \settodepth{\@tempdimb}{#1}%
  \raisebox{-\@tempdimb}{%
    \includegraphics[height=\dimexpr\@tempdima+\@tempdimb]{example-image}%
  }%
  \endgroup
}
\makeatother

\begin{document}

T\0{T} x\0{x} y\0{y}

\end{document}

而不是,example-image您将拥有一个基于的文件名#1

在此处输入图片描述

然而,细心的读者将要注意区别:精心制作的字体的字形不一定包含在其边界框中。例如,A 的顶点通常会溢出一点。

可以根据形状对深度和高度进行调整。

答案3

你可以测量字符。以下代码不是处理非 ASCII 字符。

\documentclass{article}
\usepackage{graphicx,expl3}

\ExplSyntaxOn\makeatletter
\newcommand\replacechar[1]{
 {
  \dim_set:Nn\l_tmpa_dim{\fontcharht\font`#1}
  #1\includegraphics[height=\l_tmpa_dim]{example-image-duck}  
 }
 } 
\ExplSyntaxOff

\begin{document}

\replacechar{b} \replacechar{X} \replacechar{y} \replacechar{.}  \huge
\replacechar{b} \replacechar{X} \replacechar{y} \replacechar{.}

\end{document}

在此处输入图片描述

相关内容