如何制作带有文字的两级彩色框?

如何制作带有文字的两级彩色框?

我需要一些帮助来创建适合文本行的具有两层颜色和文本的框(如图所示)。我考虑过使用,tcolorbox但还没有成功。它是“必需的”(不是必需的,但很花哨;))用于使用 PCP 算法(理论计算机科学)。

希望有人有什么好的想法。

我想要的盒子。

答案1

使用 Tikz 的强制性解决方案!

输出

图1

代码

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

\tikzset{
    split/.style={rectangle split, rectangle split parts=2, draw}
}

\newcommand{\double}[2]{%
\tikz[baseline=(a.center)]{
    \tikz \node[split, anchor=west, yshift=-1mm, minimum width=1cm, inner sep=3pt, rectangle split part fill={black,yellow}] (a) {\textcolor{yellow}{#1}\nodepart{two}#2};
}}

\begin{document}\noindent
:\double{bbaa}{ba}, \double{ab}{abb} und \double{ab}{aabb}\\
:\double{0}{00}, \double{001}{11} und \double{1000}{0}
\end{document}

答案2

\bibox{top}{bottom}用于创建框。默认情况下 ( \biboxmode= 0),框宽度设置为内容宽度。通过重置\biboxmode为 以外的值0,它将使用参数 使所有框具有固定宽度\biboxwd

\documentclass{article}
\usepackage{stackengine,xcolor}
\def\biboxmode{0}
\def\biboxwd{18pt}
\newcommand\bibox[3][\biboxmode]{%
  \setbox0=\hbox{\stackanchor{#2}{#3}}%
  \if0\biboxmode\else\wd0=\biboxwd\relax\fi%
  \setbox2=\hbox{\stackanchor[0pt]{\color{yellow}\colorbox{black}{\makebox[\wd0]{#2}}}%
  {\colorbox{yellow}{\makebox[\wd0]{#3}}}}%
  {\fboxsep=0pt\fbox{\box2}}%
}
\parskip 1ex
\begin{document}
: \bibox{bbaa}{ba}, \bibox{ab}{abb} und \bibox{ab}{aabb}\par
: \bibox{0}{00}, \bibox{001}{11} und \bibox{1000}{0}\par
Or else constant width:\def\biboxmode{1}\par
: \bibox{bbaa}{ba}, \bibox{ab}{abb} und \bibox{ab}{aabb}\par
: \bibox{0}{00}, \bibox{001}{11} und \bibox{1000}{0}
\end{document}

在此处输入图片描述

如果希望参数\biboxwd不是“固定的”,而是“最小的”,框宽度(对于\biboxmode除 之外的0),那么此代码可以实现这一点:

\documentclass{article}
\usepackage{stackengine,xcolor}
\def\biboxmode{0}
\def\biboxwd{22pt}
\newcommand\bibox[3][\biboxmode]{%
  \setbox0=\hbox{\stackanchor{#2}{#3}}%
  \if0\biboxmode\else\ifdim\wd0<\biboxwd\relax\wd0=\biboxwd\relax\fi\fi%
  \setbox2=\hbox{\stackanchor[0pt]{\color{yellow}\colorbox{black}{\makebox[\wd0]{#2}}}%
  {\colorbox{yellow}{\makebox[\wd0]{#3}}}}%
  {\fboxsep=0pt\fbox{\box2}}%
}
\parskip 1ex
\begin{document}
: \bibox{bbaa}{ba}, \bibox{ab}{abb} und \bibox{ab}{aabb}\par
: \bibox{0}{00}, \bibox{001}{11} und \bibox{1000}{0}\par
Or else apply minimum width:\def\biboxmode{1}\par
: \bibox{bbaa}{ba}, \bibox{ab}{abb} und \bibox{ab}{aabbbbb}\par
: \bibox{0}{00}, \bibox{001}{11} und \bibox{1000}{0}
\end{document}

在此处输入图片描述

相关内容