使用 \input 从另一个文件插入 Tikz 代码:每次调用嵌套输入时都会导致边框更宽?

使用 \input 从另一个文件插入 Tikz 代码:每次调用嵌套输入时都会导致边框更宽?

我有一个项目,我使用 Tikz 制作图形。我使用 tikz 编辑器“外部化”编码。然后,我只需将完成的 tikz 代码保存在一个单独的.tex文件中,该文件中只保留

\begin{tikz} <> \end{tikz}

我使用将此代码包装在figure与 和 结合的环境中。我希望图片直接从显示的左侧边框开始并完全向右移动。但是,(可能是因为嵌套?)每次我调用 时,图像的右侧边距都会变宽。\resizebox\insert\input\input

\documentclass{scrbook}
\usepackage{tikz}
\usepackage[showframe,includeheadfoot, left=3cm,right=2cm,top=2cm,bottom=2cm]{geometry}

\begin{document}

\noindent native tikz-code:\\
\begin{figure}[h!]
\centering
\resizebox{\textwidth}{!}{%
\begin{tikzpicture}
\draw[red] (0,0) rectangle (10,.5);
\end{tikzpicture}
}
\end{figure}

\noindent input 1x:\\
\begin{figure}[h!]
\centering
\resizebox{\textwidth}{!}{%
\input{rectangle.tex}
}
\end{figure}

\noindent input 2x:\\
\begin{figure}[h!]
\centering
\resizebox{\textwidth}{!}{%
\input{rectangle_nested.tex}
}
\end{figure}

\noindent input 3x:\\
\begin{figure}[h!]
\centering
\resizebox{\textwidth}{!}{%
\input{rectangle_nested_2.tex}
}
\end{figure}
\end{document}

编译此结果,得到以下图像:

在此处输入图片描述

包含.pdfvia\includegraphics是可行的,但是我不使用预编译版本,因为我必须从我的主文件重新运行代码才能创建我在图形等中使用的引用。所以我只想从外部文件包含 tikz 命令,但不创建任何边距。非常感谢。

编辑:rectangle.tex仅包含 tikz 代码:

\begin{tikzpicture}
\draw[red] (0,0) rectangle (10,.5);
\end{tikzpicture}

并且rectangle_nested.tex只是:

\input{rectangle.tex}

答案1

新行被视为空格(仅通过一个例子来降低 MWE):

\documentclass{scrbook}
\usepackage{tikz}

\begin{document}

\resizebox{\textwidth}{!}{%
\begin{tikzpicture}
\draw[red] (0,0) rectangle (10,.5);
\end{tikzpicture} % <-- HERE THERE IS A SPACE
}

\resizebox{\textwidth}{!}{% <-- This is good!
\input{rectangle.tex} % <-- HERE THERE IS A SPACE
}
\end{document}

事实上,%在打开第三个参数的括号后,您正确地使用了\resizebox

相关内容