我需要绘制房屋平面图并使其适合页面。我非常希望有一组尺寸/坐标,这样我就可以相对轻松地将现实生活中的尺寸/坐标与 TeX 文件中的尺寸/坐标进行匹配(我过去尝试过一些不合理的缩放,即 TeX 文件中的一个尺寸与现实生活中的其他尺寸,但这并不值得)。
我注意到有一些关于缩放和 tikz 的讨论,我似乎无法让它工作。我试过了FG 的回答由此讨论但图纸没有缩放到页面中(我只是在 \makeatother 和 \begin{document} 之间添加了 \newpage,然后添加了我的代码以及我的 \newcommands)
你能帮我一下吗?感谢您的时间和支持!(我使用的是 Miktex 2.9.4248)
\newpage
\noindent real size thing
\begin{center}
\begin{tikzpicture}[
xscale=2,
yscale=2,
virtual/.style={thin,dashed}
]
\squareNVSE{0.0}{0.0}
\mySquareNVSE{1001.0}{0.0}{1000.0}{1000.0}
\end{tikzpicture}
\end{center}
\newpage
\noindent scaled thing
\begin{center}
\begin{scaletikzpicturetowidth}{\textwidth}
\begin{tikzpicture}[
% xscale=2,
% yscale=2,
virtual/.style={thin,dashed}
]
\squareNVSE{0.0}{0.0}
\mySquareNVSE{1001.0}{0.0}{1000.0}{1000.0}
\end{tikzpicture}
\end{scaletikzpicturetowidth}
\end{center}
\end{document}
我的新命令只是绘制 1x1 米的正方形:
\newcommand*\squareNVSE[2]{
\draw [draw=gray, very thin]
( #1 mm, #2 mm)
-| ( #1 mm + 1000.00mm, #2 mm - 1000.00mm)
-| ( #1 mm, #2 mm);
}
\newcommand*\mySquareNVSE[4]{
\draw [draw=gray, very thin]
( #1 mm, #2 mm) % #1 & #2 = the coords of the starting point
-| ( #1 mm + #3 mm, #2 mm - #4 mm) % #3 & #4 = length and width
-| ( #1 mm, #2 mm);
}
答案1
看看回答你链接的看起来你缺少了scale=\tikzscale
对环境的论据tikzpicture
。
\documentclass{article}
\usepackage{tikz}
\usepackage{environ}
\makeatletter
\newsavebox{\measure@tikzpicture}
\NewEnviron{scaletikzpicturetowidth}[1]{%
\def\tikz@width{#1}%
\def\tikzscale{1}\begin{lrbox}{\measure@tikzpicture}%
\BODY
\end{lrbox}%
\pgfmathparse{#1/\wd\measure@tikzpicture}%
\edef\tikzscale{\pgfmathresult}%
\BODY
}
\makeatother
\begin{document}
\newpage
\noindent real size thing
\begin{center}
\begin{tikzpicture}[
xscale=2,
yscale=2,
virtual/.style={thin,dashed}
]
\draw (0, 0) rectangle (50, 50);
\end{tikzpicture}
\end{center}
\newpage
\noindent scaled thing
\begin{center}
\begin{scaletikzpicturetowidth}{\textwidth}
\begin{tikzpicture}[
scale=\tikzscale % This bit is what you are missing
]
\draw (0, 0) rectangle (50, 50);
\end{tikzpicture}
\end{scaletikzpicturetowidth}
\end{center}
\end{document}
我擅自画了一些大方块来展示缩放效果