问题:
这个问题有两个方面:
- 我该如何做才能增加标有“如果为真则编码”的橙色框的顶部和底部边距?
- 我该怎么做才能始终将橙色和蓝色框对齐?如果我更改橙色框中的文本,它就会移动。
最小工作示例(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
来控制列间间距;另一个选项是使用,如下面的第二个示例代码所示。\tabcolsep
6pt
\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
为您正在使用的盒子提供了高度可定制的命令。