垂直に分割された長方形の部分間のスペースを \vskip で減らすことはできません

垂直に分割された長方形の部分間のスペースを \vskip で減らすことはできません

複数の部分から成る長方形で、部分間のスペースを縮小したいです。水平に分割された長方形の場合は、コマンド\hskipの後にを付けてこれを実現しました\nodepart

垂直に分割された長方形の場合も同様に試し、 に置き換えました\hskip\vskip残念ながら、コンパイラはここでは を好まないため、\vskipエラーで終了します。添付の​​コードはそれを示しています。

私の例ではなぜvskip機能しないのでしょうか。また、代わりに長方形の垂直に分割された部分間のスペースを減らすにはどうすればよいのでしょうか。


\documentclass{standalone}

\newcommand{\NodeTwoColsH}[2]{%
   #1\nodepart{two}\hskip -5pt #2%
} 

\newcommand{\NodeTwoColsV}[2]{%
   #1\nodepart{two}\vskip -5pt #2%
} 

\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\begin{document}
\begin{tikzpicture}[
         sibling distance = 2.5cm,
         every node/.style = {
            draw
         },
         split/.style = {
            rectangle split draw splits=false,
            rectangle split,
            draw,
            rectangle split parts=2
         },
         v split/.style = {
            split
         },
         h split/.style = {
            split,
            rectangle split horizontal
         }
   ]

   \node{root}
   child { node[h split] {\NodeTwoColsH{Left}{Right}} }
   child { node[h split] {\NodeTwoColsH{Left}{Right}} 
      child { node[v split]  {\NodeTwoColsV{Up}{Down}} }
      child { node[v split]  {\NodeTwoColsV{Up}{Down}} }
   };

\end{tikzpicture}
\end{document}

答え1

通常、ノードの内容はTeX水平ボックス内に配置されます。しかし、水平ボックスには\vskip次のようなコマンドを含めることはできません。

\hbox{A \vskip-5pt B}

はエラーを生成します。これは、TeXが 内で「内部水平モード」になっているためであり\hbox、垂直コマンド (例: \vskip) はエラーを生成します (この種の内容に関する便利なリファレンスは、Victor Eijkhout 著の「TeX by Topic」で、インターネットで無料で入手できます)。

しかし、これは にどのように役立つのでしょうか?ノード内で作業するTikZための最もクリーンな方法は、を使用できる垂直ボックス内にコンテンツが最初に配置されるようにノードの を設定することだと思います。\vskiptext width\vskip

\documentclass[tikz, border=5]{standalone}
\usetikzlibrary{shapes.multipart}

\begin{document}
\begin{tikzpicture}[every node/.style={
  rectangle split, 
  rectangle split draw splits=false, 
  rectangle split parts=2, draw, text width=1.5cm}]

\node at (0,0) {Top\nodepart{two} Bottom};
\node at (2,0) {Top\nodepart{two}\vskip-10pt Bottom};
\end{tikzpicture}
\end{document}

ここに画像の説明を入力してください

関連情報