我有一个项目,我使用 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}
编译此结果,得到以下图像:
包含.pdf
via\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
。