\begin{tikzpicture}[scale=x]
\node[scale=y] (a,b)
當設定複雜的圖片並手動定位所有內容(指定所有(a,b))時,然後更改 x 使其更大或更小,然後將所有內容搞砸。
我想我可以使用調整大小框,但我認為縮放 x 將是整體縮放,並將其值設為任何值也會縮放其中的所有縮放......事實並非如此。
也許有更簡單的方法?
答案1
用如此簡潔的問題來理解問題是相當困難的,但也許OP正在尋找transform shape
?看:
\documentclass[]{article}
\usepackage{tikz}
\begin{document}
{\Huge X}
\begin{tikzpicture}[
]
\node[draw] at (0,0) {A};
\node[draw, scale=2] at (1,0) {B};
\end{tikzpicture}
\bigskip
{\Huge X}
\begin{tikzpicture}[
scale=0.5]
\node[draw] at (0,0) {A};
\node[draw, scale=2] at (1,0) {B};
\end{tikzpicture}
\bigskip
{\Huge X}
\begin{tikzpicture}[
scale=0.5, every node/.style={transform shape}]
\node[draw] at (0,0) {A};
\node[draw, scale=2] at (1,0) {B};
\end{tikzpicture}
\end{document}
會產生(巨大的X僅供參考,注意基線的變化):
答案2
scale
不是 所支援的選項tikzpicture
。它只是在圖片範圍內全局設置,因此它會影響圖片中具有此類選項的任何內容。這可能是一切,也可能什麼都不是,但通常是一些事情,而不是其他事情。
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw [ultra thick, ->] (0,0) -- (1,1) node [right] {A};
\begin{scope}[scale=2, xshift=10mm]
\draw [ultra thick, ->] (0,0) -- (1,1) node [right] {A};
\end{scope}
\end{tikzpicture}
\end{document}
一般來說,這就是您想要的:字體、線寬和箭頭提示不受縮放的影響,但座標則不然。
使用是邪惡的原因\resizebox
正是因為它會影響框框中的所有內容:線條、字體等等。這在一定程度上是次優的,因為這意味著文件的字體和線條不一致。當使用具有可用光學尺寸的字體時,失真會更大,因為為更大或更小尺寸設計的字形形狀將被渲染以取代適合上下文的字形形狀。
在無法避免調整大小的情況下,tikzscale
最好使用\resizebox
,因為它將保持線寬和字體大小,同時在縮放其餘部分方面比僅縮放恰好支援的圖片元素更全面、更一致scale
。