我正在寻找一些可能性来仅缩放节点内的文本,而不使用诸如 \tiny 或 \scriptsize 之类的命令。
在我的样式集中我使用
every node/.style={font=\scriptsize, very thin, scale=.7}
这会缩放字体,但也会缩放节点的尺寸。我希望我的图片获得完全正确的宽度,而不使用 resizebox,因为这会导致我的所有图片的字体大小和线宽略有不同。
对于我来说,使用 \tiny 和 \sriptsize 字体不是一个选择,因为在我看来,它们由于水平拉伸而看起来非常丑陋。
那么,是否可以轻松地使用全局选项,即使用给定的因子缩放节点内的所有内容?
成立这但是这篇文章是 7 年前的,我并不完全理解添加的代码。也许有使用 Tikz 新功能的新实现?
答案1
只是为了好玩,使用anyfontsize
包进行一个实验,显示节点 3 中字体大小从 1 到 20 pt 的变化;节点 2 从 0.1 缩放到 2.0......
结果:
梅威瑟:
% arara: pdflatex: {synctex: yes, action: nonstopmode}
% arara: animate: {density: 100, delay: 20 , other: -background white -alpha remove}
% arara: showanimate
\documentclass[border=20pt,tikz]{standalone}
\usepackage{anyfontsize}
\usetikzlibrary{positioning}
\begin{document}
\foreach \x in {1,...,20}{
\begin{tikzpicture}
\draw (-2.5,7) rectangle (10,-7);
\pgfmathparse{\x/10}
\edef\s{\pgfmathresult}
\draw
node[draw,text width=3cm](N1){Node 1\\ The text width is 3cm. in normal size font.}
node[below right= 1 and 1 of N1,draw,text width=3cm,scale=\x/10](N2){Node 2\\ The text width is 3cm. in normal size font. but all is scaled \pgfmathprintnumber[fixed,fixed zerofill,precision=1]{\s}}
node[above right= 1 and 1 of N1,draw,text width=3cm,font=\fontsize{\x}{10}\selectfont](N3){Node 3\\ The text width is 3cm. and size font is changed to \x};
\fill[red,opacity=0.5]
(N1.center) circle (2pt)
(N2.center) circle (2pt)
(N3.center) circle (2pt);;
\end{tikzpicture}
}
\end{document}
PSD:为了制作动画,我使用 imagemagick 转换器。