增加 tikz 盒子的垂直空间

增加 tikz 盒子的垂直空间

问题:

这个问题有两个方面:

  • 我该如何做才能增加标有“如果为真则编码”的橙色框的顶部和底部边距?
  • 我该怎么做才能始终将橙色和蓝色框对齐?如果我更改橙色框中的文本,它就会移动。

最小工作示例(MWE):

\documentclass[varwidth=20cm]{standalone}
\usepackage[T1]{fontenc}
\usepackage{tikz}

\definecolor{labelBlue}{cmyk}{1, 0.5, 0, 0.1}
\definecolor{labelPink}{cmyk}{0, 1, 0, 0}
\definecolor{labelGray}{cmyk}{0.6, 0.55, 0.55, 0.2}
\definecolor{labelOrange}{cmyk}{0, 0.8, 1, 0}

\newcommand{\mycolorbox}[2][gray]{\tikz[baseline=(n.base)] \node[rounded corners,white,node font=\sffamily,fill=#1,inner xsep=5pt](n){\mathstrut#2};}

\begin{document}
  \mycolorbox[labelPink]{if}\nobreakspace\mycolorbox[labelBlue]{(condition)}\nobreakspace\mycolorbox{\textbraceleft}\\
      \hspace*{20pt}\mycolorbox[labelOrange]{Code if true}\\
  \mycolorbox{\textbraceright}
\end{document}

以上将产生:

在此处输入图片描述

期望的结果:

  • 能够调整橙色框的顶部和底部边距。
  • 将橙色框左对齐,使其与蓝色框对齐。

答案1

  • 除了手动调整间距之外,对齐框的一种简单方法是使用;可以使用(default= )tabular来控制列间间距;另一个选项是使用,如下面的第二个示例代码所示。\tabcolsep6pt\phantom

  • 您可以使用可选参数\\as in\\[1cm]来增加框之间的垂直间距。

代码:

\documentclass[varwidth=20cm]{standalone}
\usepackage[T1]{fontenc}
\usepackage{tikz}

\definecolor{labelBlue}{cmyk}{1, 0.5, 0, 0.1}
\definecolor{labelPink}{cmyk}{0, 1, 0, 0}
\definecolor{labelGray}{cmyk}{0.6, 0.55, 0.55, 0.2}
\definecolor{labelOrange}{cmyk}{0, 0.8, 1, 0}

\newcommand{\mycolorbox}[2][gray]{\tikz[baseline=(n.base)] \node[rounded corners,white,node font=\sffamily,inner xsep=5pt,fill=#1](n){\mathstrut#2};}

\begin{document}

\setlength\tabcolsep{1pt}
\begin{tabular}{@{}lll@{}}
\mycolorbox[labelPink]{if} & \mycolorbox[labelBlue]{(condition)} & \mycolorbox{\textbraceleft}\\[0.5cm]
& \mycolorbox[labelOrange]{Code if true}\\[0.5cm]
\mycolorbox{\textbraceright}
\end{tabular}

\noindent
\mycolorbox[labelPink]{if}~\mycolorbox[labelBlue]{(condition)}~\mycolorbox{\textbraceleft}\\[0.5cm]
\phantom{\mycolorbox[labelPink]{if}}~\mycolorbox[labelOrange]{Code if true}\\[0.5cm]
\mycolorbox{\textbraceright}

\end{document}

结果:

在此处输入图片描述

您可能对以下方面感兴趣tcolorbox包;它\tcbox为您正在使用的盒子提供了高度可定制的命令。

相关内容