我想将文本环绕在图形的边框上。也就是说,文本在顶部,环绕到右侧的横向文本,环绕到底部的上下颠倒文本,环绕到左侧的横向文本。这不仅仅是对文本环绕的请求,而是自定义边框。
这可能是一个奇怪的要求,但我很好奇这是否可行(或者相对容易,因为有可能将某些东西拼凑在一起)。我有一种感觉,如果我真的想这样做,就必须通过手动设置每一方。
答案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
• 定位不准确可能会在输入段边界处特别明显。这只能(不幸的是)通过逐个调整组中有问题的字符的字距来解决。