18

I'm working with tcolorbox, I saw the pdf here and I want to reproduce the little green box in this image:

enter image description here

Can anyone help me please?

2 Answers 2

19

This is a \newtcbox called mylib and defined in tcolorbox.tex:

\documentclass{article}
\usepackage[many]{tcolorbox}

\newtcbox{\mylib}{enhanced,nobeforeafter,tcbox raise base,boxrule=0.4pt,top=0mm,bottom=0mm,
  right=0mm,left=4mm,arc=1pt,boxsep=2pt,before upper={\vphantom{dlg}},
  colframe=green!50!black,coltext=green!25!black,colback=green!10!white,
  overlay={\begin{tcbclipinterior}\fill[green!75!blue!50!white] (frame.south west)
    rectangle node[text=white,font=\sffamily\bfseries\tiny,rotate=90] {LIB} ([xshift=4mm]frame.north west);\end{tcbclipinterior}}}


\begin{document}

\mylib{test}

\end{document}

enter image description here

1
  • Actually, its definition in the file tcolorbox.doc.s_main.sty of the package files (downloaded from CTAN), at line 243. I've been searching it too, thanks for the answer !
    – 3isenHeim
    Commented Mar 25, 2020 at 7:29
9

This pice of code also works with the \tikzexternalize flag.

\documentclass{standalone}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{tikz}
\usetikzlibrary{positioning,shapes,shadows,arrows}
\usepackage{lipsum}

\newcommand{\mylib}[1]{
    \tikz[baseline=-0.5ex]{ 
        \tikzset{lib/.style={
            rectangle split,
            rectangle split parts=2,
            rectangle split horizontal,
            rectangle split part fill={green!75!blue!50!white,green!10!white},
            rectangle split draw splits=false,
            rounded corners=2pt,
            rectangle split part align={right,right},
            draw=green!50!black,
            minimum height=16pt}
        }
        \node[lib] (var){
        \nodepart[text=green!25!black]{two}#1};
        \node[text=white,font=\sffamily\bfseries\tiny,rotate=90] at ([xshift=6pt]var.west) {LIB};
    }
}
\begin{document}
\mylib{test}
\mylib{v}
\mylib{longvar}
\end{document}

enter image description here

3
  • Nice solution. A minor detail: In the original, there is no green line between LIB and the library name.
    – jarauh
    Commented Nov 13, 2015 at 11:52
  • To erase line between LIB and library name you just need to add option rectangle split draw splits=false to lib/. style.
    – Zarko
    Commented Nov 13, 2015 at 12:35
  • @Zarko thank you for the hint. I've edited the post.
    – CDieck
    Commented Nov 13, 2015 at 13:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .