TikZ + scalebox:节点中的垂直文本间距

TikZ + scalebox:节点中的垂直文本间距

正如这个问题:TikZ:文本在大型 PDF 中变得不可见尚未解决,我不断增长的 PDF 需要变得更小才能避免隐身范围。因此,\tiny现在太大了。在设法消除比例框中的各种换行问题后,结果如下所示:

各种字体大小和间距

\documentclass[border=0pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] at (0,0)
{ Abc \\ Def \\ Ghi };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] at (1,0)
{ \tiny{Abc} \\ \tiny{Def} \\ \tiny{Ghi} };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] at (2,0)
{ \scalebox{0.2}{Abc} \\ \scalebox{0.2}{Def} \\ \scalebox{0.2}{Ghi} };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] at (3,0)
{ \scalebox{0.2}{Abc} \\ \vspace{-0.2cm}\scalebox{0.2}{Def} \\ \scalebox{0.2}{Ghi} };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] at (4,0)
{ \scalebox{0.2}{Abc} \\ \vspace{-0.2cm}\scalebox{0.2}{Def} \\ \vspace{-0.2cm}\scalebox{0.2}{Ghi} };

\end{tikzpicture}
\end{document}

该项目的目标是显示包含图像和下方文本行的节点。目前,图像和文本之间以及每行文本之间的间距是问题所在。

第一个节点没什么可抱怨的。在第二个节点中,行距已经相当大,在第三个节点中甚至更糟。在第四个节点中,我尝试通过在 Abc 和 Def 之间添加负 vspace 来减小间距:结果不是我想要的,在最后一个节点中更是如此,文本甚至离开了节点。在其他实验中,下部线条有时会设法离开多于第一行。

我认为错误来自于比例框,它没有修改文本的原始 y 间距,但尝试改变它失败了。

有什么方法可以解决这个奇怪的间距问题,为什么 vspace 在这里表现得如此异常?

PS:有没有比快照 Adob​​e Reader 更简单的显示 TeX 输出的方法?

答案1

这是在其本身选项中tikz使用的一种方法。scale=<fraction>\node

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] (a) at (0,0)
{ Abc \\ Def \\ Ghi };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily,scale=0.8,right=0.5cm of a] (b)
{ Abc \\ Def \\ Ghi };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily,scale=0.6,right=0.5cm of b] (c)
{ Abc \\ Def \\ Ghi };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily,scale=0.4,right=0.5cm of c] (d)
{ Abc \\ Def \\ Ghi };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily,scale=0.2,right=0.5cm of d] (e)
{ Abc \\ Def \\ Ghi };

\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

文本堆叠在这里可能会有用。

\documentclass[border=0pt]{standalone}
\usepackage{tikz}
\usepackage[usestackEOL]{stackengine}
\begin{document}
\begin{tikzpicture}
\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.5ex, font=\sffamily] at (0,0)
{ Abc \\ Def \\ Ghi };

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.2ex, font=\sffamily] at (1,0)
{ \tiny\Centerstack{Abc\\Def\\Ghi}};

\node[draw, fill=yellow!20, rectangle, align=left, inner sep=0.1ex, font=\sffamily] at (2,0)
{\scalebox{.2}{\Centerstack{Abc\\Def\\Ghi}}};

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容