如何为图形制作文字边框?

如何为图形制作文字边框?

我想将文本环绕在图形的边框上。也就是说,文本在顶部,环绕到右侧的横向文本,环绕到底部的上下颠倒文本,环绕到左侧的横向文本。这不仅仅是对文本环绕的请求,而是自定义边框。

这可能是一个奇怪的要求,但我很好奇这是否可行(或者相对容易,因为有可能将某些东西拼凑在一起)。我有一种感觉,如果我真的想这样做,就必须通过手动设置每一方。

答案1

使用 TikZ 的装饰的一个选项text along path

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{decorations.text}

\begin{document}

\begin{tikzpicture}
\node[inner sep=0pt,text width=4cm,minimum height=3cm]
  (image)
  {\includegraphics[height=3cm,width=4cm]{example-image-a}};
\draw[
  decorate,
  decoration={text along path,raise=2pt,
  text={This is a some text that will be typeset around an image. More text to complete the path.}}
  ]
  (image.north west) --
  (image.north east) --
  (image.south east) --
  (image.south west) --
  cycle;
\end{tikzpicture}

\end{document}

在此处输入图片描述

不过,也存在一些限制,如第节所述48.6 文本修饰 PGF 手册:

pgf“尽力”排版文本,但是您应该注意以下几点:

• 文本中的每个字符都排版在单独的 中\hbox。这意味着如果您想要字距调整或连字等花哨的东西,您将必须手动注释组内装饰文本中的字符,例如W{\kern-1ptA}TER

• 每个字符都使用其基线的中心进行定位。要垂直移动文本(相对于路径),应使用附加变换键。

• 当段之间的角度远小于 180° 时,不会尝试确保字符不会重叠(在 TEX 中,如果没有巨大的处理开销,这很难做到)。一般来说,这应该不是什么大问题,但是,在大多数情况下,可以使用字距调整来克服任何不良影响。

• 只有在相当严格的限制下,才能在数学模式下排版文本。使用类别代码为 3 的任何字符(例如,在纯 TeX 中为$)进入和退出数学模式。数学下标和上标需要包含在括号内(例如),或{^y_i}等命令也是如此。但是,即使是适度复杂的数学排版也不太可能沿着路径成功(甚至不可取)。\times\cdot

• 定位不准确可能会在输入段边界处特别明显。这只能(不幸的是)通过逐个调整组中有问题的字符的字距来解决。

相关内容