我正在使用 tikz-network 包(https://ctan.org/pkg/tikz-network?lang=en)。
以下是我的代码:
\begin{figure}[h]
\begin{center}
\begin{tikzpicture}[scale=0.5]
%\SetVertexStyle[fontsize=\large]
\Vertices[IdAsLabel,size=0.5,color=white]{data/vertices4x4.csv}
\Edges[]{data/edges1_4x4.csv}
\end{tikzpicture}
\end{center}
\end{figure}
其中 data/vertices4x4.csv 是
id, x, y
0;0, 0, 0
0;1, 0, -2
0;2, 0, -4
0;3, 0, -6
1;0, 2, 0
1;1, 2, -2
1;2, 2, -4
1;3, 2, -6
2;0, 4, 0
2;1, 4, -2
2;2, 4, -4
2;3, 4, -6
3;0, 6, 0
3;1, 6, -2
3;2, 6, -4
3;3, 6, -6
并且 data/edges1_4x4.csv 是
u, v, bend, style
0;0, 1;0, 0, dashed
0;1, 1;1, 0, dashed
0;2, 1;2, 0, dashed
0;3, 1;3, 0, dashed
1;0, 2;0, 0, dashed
1;1, 2;1, 0, dashed
1;2, 2;2, 0, dashed
1;3, 2;3, 0, dashed
2;0, 3;0, 0, dashed
2;1, 3;1, 0, dashed
2;2, 3;2, 0, dashed
2;3, 3;3, 0, dashed
3;0, 0;0, 190, dashed
3;1, 0;1, 190, dashed
3;2, 0;2, 190, dashed
3;3, 0;3, 190, dashed
如果我在edges1_4x4.csv中保持角度190,我的tikz图片中就会出现额外的(约5厘米)边距。而如果我将此角度保持为50,则没有这样的边距。您能告诉我在角度为190的情况下如何去除额外的边距吗?
答案1
欢迎。我无法复制额外的5厘米,但众所周知贝塞尔曲线的边界框太大了。一个临时解决办法是手动调整。可以使用以下命令完成
\path[use as bounding box] (-1,-7) rectangle (7,0.8);
在这种情况下,矩形的坐标是手动调整的。一个不太麻烦的解决方案是从边界框中排除边缘。这可以通过将命令放在范围内来实现overlay
,
\begin{scope}[overlay]
\Edges[]{edges1_4x4.csv}
\end{scope}
完整 MWE:
\documentclass[a4paper,12pt]{article}
\usepackage[margin=1cm]{geometry}
\usepackage{filecontents}
\begin{filecontents*}{vertices4x4.csv}
id, x, y
0;0, 0, 0
0;1, 0, -2
0;2, 0, -4
0;3, 0, -6
1;0, 2, 0
1;1, 2, -2
1;2, 2, -4
1;3, 2, -6
2;0, 4, 0
2;1, 4, -2
2;2, 4, -4
2;3, 4, -6
3;0, 6, 0
3;1, 6, -2
3;2, 6, -4
3;3, 6, -6
\end{filecontents*}
\begin{filecontents*}{edges1_4x4.csv}
u, v, bend, style
0;0, 1;0, 0, dashed
0;1, 1;1, 0, dashed
0;2, 1;2, 0, dashed
0;3, 1;3, 0, dashed
1;0, 2;0, 0, dashed
1;1, 2;1, 0, dashed
1;2, 2;2, 0, dashed
1;3, 2;3, 0, dashed
2;0, 3;0, 0, dashed
2;1, 3;1, 0, dashed
2;2, 3;2, 0, dashed
2;3, 3;3, 0, dashed
3;0, 0;0, 190, dashed
3;1, 0;1, 190, dashed
3;2, 0;2, 190, dashed
3;3, 0;3, 190, dashed
\end{filecontents*}
\usepackage{tikz-network}
\begin{document}
\begin{figure}[h]
\centering
\fbox{\begin{tikzpicture}[scale=0.5]
%\SetVertexStyle[fontsize=\large]
\Vertices[IdAsLabel,size=0.5,color=white]{vertices4x4.csv}
\Edges[]{edges1_4x4.csv}
\end{tikzpicture}}
\caption{Original bounding box.}
\end{figure}
\begin{figure}[h]
\centering
\fbox{\begin{tikzpicture}[scale=0.5]
\path[use as bounding box] (-1,-7) rectangle (7,0.8);
%\SetVertexStyle[fontsize=\large]
\Vertices[IdAsLabel,size=0.5,color=white]{vertices4x4.csv}
\Edges[]{edges1_4x4.csv}
\end{tikzpicture}}
\caption{Modified bounding box.}
\end{figure}
\begin{figure}[h]
\centering
\fbox{\begin{tikzpicture}[scale=0.5]
%\SetVertexStyle[fontsize=\large]
\Vertices[IdAsLabel,size=0.5,color=white]{vertices4x4.csv}
\begin{scope}[overlay]
\Edges[]{edges1_4x4.csv}
\end{scope}
\end{tikzpicture}}
\caption{Edges overlay.}
\end{figure}
\end{document}
这些\fbox
符号仅用于引导眼睛。