From b53037e64a69b6da11ac2ca3cc81253bbcf73275 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 10 Dec 2011 01:07:17 +0000 Subject: new latex package tcolorbox (9dec11) git-svn-id: svn://tug.org/texlive/trunk@24811 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tcolorbox/CHANGES | 23 ++ Master/texmf-dist/doc/latex/tcolorbox/README | 44 +++ .../doc/latex/tcolorbox/tcblistings.code.tex | 89 +++++++ .../doc/latex/tcolorbox/tcbtheorems.code.tex | 35 +++ .../doc/latex/tcolorbox/tcolorbox-example.pdf | Bin 0 -> 105716 bytes .../doc/latex/tcolorbox/tcolorbox-example.tex | 96 +++++++ .../texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf | Bin 0 -> 741068 bytes .../texmf-dist/tex/latex/tcolorbox/tcolorbox.sty | 295 +++++++++++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 + Master/tlpkg/tlpsrc/tcolorbox.tlpsrc | 0 11 files changed, 584 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/CHANGES create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/README create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcblistings.code.tex create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcbtheorems.code.tex create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf create mode 100644 Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty create mode 100644 Master/tlpkg/tlpsrc/tcolorbox.tlpsrc diff --git a/Master/texmf-dist/doc/latex/tcolorbox/CHANGES b/Master/texmf-dist/doc/latex/tcolorbox/CHANGES new file mode 100644 index 00000000000..be23f7a7c4e --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/CHANGES @@ -0,0 +1,23 @@ +%% The LaTeX package tcolorbox - version 1.00 (2011/12/08) +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2011 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% + +(2006-2011): pre publication usage + +version 1.00 (2011/12/08): initial public release + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/README b/Master/texmf-dist/doc/latex/tcolorbox/README new file mode 100644 index 00000000000..68150c2ccc9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/README @@ -0,0 +1,44 @@ +%% The LaTeX package tcolorbox - version 1.00 (2011/12/08) +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2011 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% + +tcolorbox provides an environment for colored and framed text boxes with a +heading line. Optionally, such a box can be splitted in an upper and a lower +part. The package tcolorbox can be used for the setting of LaTeX examples where +one part of the box displays the source code and the other part shows the +output. Another common use case is the setting of theorems. The package supports +saving and reuse of source code and text parts. + +Contents of the package +======================= + 'README' this file + 'CHANGES' log of changes (history) + 'tcolorbox.sty' LaTeX package file (style file) + 'tcblistings.code.tex' LaTeX package file (library of tcolorbox) + 'tcbtheormes.code.tex' LaTeX package file (library of tcolorbox) + 'tcolorbox.pdf' Documentation for tcolorbox + 'tcolorbox-example.tex' Example file for package usage + 'tcolorbox-example.pdf' Compiled example + +Installation +============ +Put the files to their respective locations within the TeX installation: + 'tcolorbox.sty' -> /tex/latex/tcolorbox + 'tcblistings.code.tex' -> /tex/latex/tcolorbox + 'tcbtheormes.code.tex' -> /tex/latex/tcolorbox + all other files -> /doc/latex/tcolorbox diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcblistings.code.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcblistings.code.tex new file mode 100644 index 00000000000..64abe4c4489 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcblistings.code.tex @@ -0,0 +1,89 @@ +%% The LaTeX package tcolorbox - version 1.00 (2011/12/08) +%% tcblistings.code.tex: Code for colorboxes with listings +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2011 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\makeatletter +\def\tcblibrary@listings@loaded{} + +\RequirePackage{listings} + +\lstdefinestyle{tcblatex}{language={[LaTeX]TeX}, + aboveskip={0\p@ \@plus 6\p@}, belowskip={0\p@ \@plus 6\p@}, + columns=fullflexible, keepspaces=true, + breaklines=true, breakatwhitespace=true, + basicstyle=\ttfamily\small, extendedchars=true + } + +\def\tcbuselistingtext{\input{\kvtcb@listingfile}}% + +\def\tcbuselistinglisting{% + \toks@=\expandafter{\kvtcb@listingoptions}% + \edef\tcb@temp{\noexpand\lstinputlisting[\the\toks@]}% + \tcb@temp{\kvtcb@listingfile}% +}% + +\def\tcb@listing@listingAndText{% + \tcbuselistinglisting% + \tcblower% + \tcbuselistingtext% +} + +\def\tcb@listing@textAndListing{% + \tcbuselistingtext% + \tcblower% + \tcbuselistinglisting% +} + +\tcbset{ + listing file/.store in=\kvtcb@listingfile, + listing options/.store in=\kvtcb@listingoptions, + listing style/.style={listing options={style=#1}}, + listing and text/.code={\let\tcp@listing@process\tcb@listing@listingAndText}, + text and listing/.code={\let\tcp@listing@process\tcb@listing@textAndListing}, + listing only/.code={\let\tcp@listing@process\tcbuselistinglisting}, + text only/.code={\let\tcp@listing@process\tcbuselistingtext}, +} + +\tcbset{ + listing file=\jobname.listing, + listing style=tcblatex, + listing and text, +} + +\newenvironment{tcblisting}[1]{% + \def\tcblisting@box{\begin{tcolorbox}[#1]\tcp@listing@process\end{tcolorbox}}% + \begingroup\tcbverbatimwrite{\kvtcb@listingfile}% +}{\endtcbverbatimwrite\endgroup% + \tcblisting@box% +} + +\def\tcbinputlisting#1{% + \begin{tcolorbox}[#1]\tcp@listing@process\end{tcolorbox}% +} + +\newenvironment{tcboutputlisting}{% + \begingroup\tcbverbatimwrite{\kvtcb@listingfile}% +}{\endtcbverbatimwrite\endgroup} + +\def\tcbusetemplisting{% + \toks@=\expandafter{\kvtcb@listingoptions}% + \edef\tcb@temp{\noexpand\lstinputlisting[\the\toks@]}% + \tcb@temp{\kvtcb@tempfile}% +}% + + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcbtheorems.code.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcbtheorems.code.tex new file mode 100644 index 00000000000..69496997f42 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcbtheorems.code.tex @@ -0,0 +1,35 @@ +%% The LaTeX package tcolorbox - version 1.00 (2011/12/08) +%% tcbtheorems.code.tex: Code for theorems in colorboxes +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2011 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\makeatletter +\def\tcblibrary@theorems@loaded{} + +\tcbset{ + theorem/.code args={#1#2#3#4}{% + \refstepcounter{#2}\label{#4}% + \pgfkeysalso{title={\setlength{\hangindent}{\widthof{#1~\csname the#2\endcsname:\ }}\hangafter=1 #1~\csname the#2\endcsname:\ #3}}}% +} + +\newcommand{\tcbmaketheorem}[5]{% + \newenvironment{#1}[3][]{% + \tcolorbox[#3,savedelimiter=#1, + theorem={#2}{#4}{##2}{#5:##3}, + ##1]}% + {\endtcolorbox}% +} diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf new file mode 100644 index 00000000000..8a13eca4674 Binary files /dev/null and b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf differ diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex new file mode 100644 index 00000000000..d48647760e3 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex @@ -0,0 +1,96 @@ +%% The LaTeX package tcolorbox - version 1.00 (2011/12/08) +%% tcolorbox-example.tex: an example for tcolorbox +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2011 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\documentclass{article} +\usepackage[listings,theorems]{tcolorbox} + +\tcbset{before={\par\medskip\pagebreak[0]\noindent},after={\par\medskip}}% + + +\begin{document} + +%---------------------------------------------------------- +\section{Colored boxes} + +\begin{tcolorbox}[colback=red!5,colframe=red!75!black] + My box. +\end{tcolorbox} + +\begin{tcolorbox}[colback=blue!5,colframe=blue!75!black,title=My title] + My box with my title. +\end{tcolorbox} + +\begin{tcolorbox}[colback=green!5,colframe=green!75!black] + Upper part of my box. + \tcblower + Lower part of my box. +\end{tcolorbox} + +\begin{tcolorbox}[colback=yellow!5,colframe=yellow!75!black,title=My title] + I can do this also with a title. + \tcblower + Lower part of my box. +\end{tcolorbox} + +\begin{tcolorbox}[colback=yellow!10,colframe=red!75!black,lowerbox=invisible, + savelowerto=\jobname_ex.tex] + Now, we play hide and seek. Where is the lower part? + \tcblower + I'm invisible until you find me. +\end{tcolorbox} + +\begin{tcolorbox}[colback=yellow!10,colframe=red!75!black,title=Here I am] + \input{\jobname_ex.tex} +\end{tcolorbox} + + +\begin{tcolorbox}[colback=blue!50,colframe=blue!25!black,coltext=yellow, + fontupper=\Large\bfseries,arc=6mm,boxrule=2mm,boxsep=5mm] + Funny settings. +\end{tcolorbox} + + +\clearpage +%---------------------------------------------------------- +\section{\LaTeX-Examples} + +\begin{tcblisting}{colback=red!5,colframe=red!75!black} +This is a \LaTeX\ example: +$\displaystyle\sum\limits_{i=1}^n i = \frac{n(n+1)}{2}$. +\end{tcblisting} + + +%---------------------------------------------------------- +\section{Theorems} + +\newcounter{mytheorem}[section] +\def\themytheorem{\thesection.\arabic{mytheorem}} + +\tcbmaketheorem{theo}{Theorem}{fonttitle=\bfseries\upshape, fontupper=\slshape, + arc=0mm, colback=blue!5,colframe=blue!75!black}{mytheorem}{theorem} + +\begin{theo}{Summation of Numbers}{summation} + For all natural number $n$ it holds:\\[2mm] + $\displaystyle\sum\limits_{i=1}^n i = \frac{n(n+1)}{2}$. +\end{theo} + +We have given Theorem \ref{theorem:summation} on page \pageref{theorem:summation}. + +\end{document} + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf new file mode 100644 index 00000000000..a1e3153db03 Binary files /dev/null and b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf differ diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty new file mode 100644 index 00000000000..4e08c294d06 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty @@ -0,0 +1,295 @@ +%% The LaTeX package tcolorbox - version 1.00 (2011/12/08) +%% tcolorbox.sty: Text color boxes +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2011 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tcolorbox}[2011/12/08 version 1.00 text color boxes] + +\RequirePackage{pgf,calc,verbatim} + +% register +\newif\iftcb@lowerignored +\newif\iftcb@lowervisible +\newif\iftcb@hasTitle +\newif\iftcb@hasLower + +\newsavebox{\tcb@titlebox} +\newsavebox{\tcb@upperbox} +\newsavebox{\tcb@lowerbox} + +\newlength\tcb@textdim + + +% key management +\pgfkeys{/tcb/.is family} + +\def\tcbset{\pgfqkeys{/tcb}} + +\tcbset{ + title/.store in=\kvtcb@title, + notitle/.style={title=}, + width/.store in=\kvtcb@width, + boxsep/.store in=\kvtcb@boxsep, + boxrule/.store in=\kvtcb@boxrule, + left/.store in=\kvtcb@left, + right/.store in=\kvtcb@right, + top/.store in=\kvtcb@top, + bottom/.store in=\kvtcb@bottom, + middle/.store in=\kvtcb@middle, + arc/.store in=\kvtcb@arc, + colback/.store in=\kvtcb@colback, + colframe/.store in=\kvtcb@colframe, + coltext/.store in=\kvtcb@coltext, + coltitle/.store in=\kvtcb@coltitle, + fonttitle/.store in=\kvtcb@fonttitle, + fontupper/.store in=\kvtcb@fontupper, + fontlower/.store in=\kvtcb@fontlower, + tempfile/.store in=\kvtcb@tempfile, + savelowerto/.store in=\kvtcb@savelowerto, + savedelimiter/.estore in=\kvtcb@savedelimiter, + floatplacement/.store in=\kvtcb@floatplacement, + float/.store in=\kvtcb@float, + float/.default=\kvtcb@floatplacement, + nofloat/.style={float=}, + before/.store in=\kvtcb@beforebox, + after/.store in=\kvtcb@afterbox, + lowerbox/.is choice, + lowerbox/visible/.code={\tcb@lowerignoredfalse\tcb@lowervisibletrue}, + lowerbox/invisible/.code={\tcb@lowerignoredfalse\tcb@lowervisiblefalse}, + lowerbox/ignored/.code={\tcb@lowerignoredtrue\tcb@lowervisiblefalse}, +} + +\tcbset{notitle,width=\linewidth,boxsep=1mm,boxrule=0.5mm, + left=4mm,right=4mm,top=2mm,bottom=2mm,middle=2mm,arc=1mm,lowerbox=visible, + colback=black!5,colframe=black!75,coltext=black,coltitle=white, + fonttitle=,fontupper=,fontlower=,floatplacement=htb,nofloat,savelowerto=, + before={\par\pagebreak[0]\noindent},after={\par}, + savedelimiter={tcolorbox},tempfile={\jobname.tcbtemp}}% + + +% lrbox with integrated minipage +\def\tcb@lrbox#1{% + \edef\reserved@a{% + \endgroup + \setbox#1\hbox{% + \begingroup\aftergroup}% + \def\noexpand\@currenvir{\@currenvir}% + \def\noexpand\@currenvline{\on@line}}% + \reserved@a + \@endpefalse + \color@setgroup + \ignorespaces\minipage\tcb@textdim\ignorespaces} +\def\endtcb@lrbox{\unskip\endminipage\unskip\color@endgroup} + +\def\tcb@saveupperbox{% + \begin{tcb@lrbox}{\tcb@upperbox}\color{\kvtcb@coltext}\kvtcb@fontupper\ignorespaces} + +\def\tcb@savelowerbox{% + \begin{tcb@lrbox}{\tcb@lowerbox}\color{\kvtcb@coltext}\kvtcb@fontlower\ignorespaces} + + +% counter for float +\AtBeginDocument{% +\@ifundefined{c@float@type}% + {\edef\ftype@tcbfloat{\ifx\c@figure\@undefined 1\else 4\fi}}% + {\edef\ftype@tcbfloat{\the\c@float@type}% + \addtocounter{float@type}{\value{float@type}}}% +\def\c@tcbfloat{\c@float@type}% tricking the caption package +} + +\def\tcb@colorbox{% + \@ifnextchar[{\tcb@@icolorbox}{\tcb@@icolorbox[]}} + +\def\tcb@@icolorbox[#1]{% + % setting the keys + \tcbset{#1}% + \tcb@hasLowerfalse% + % computation of text width + \setlength{\tcb@textdim}{\kvtcb@width-\kvtcb@boxsep*2-\kvtcb@boxrule*2-\kvtcb@left-\kvtcb@right}% + \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\else% + \tcb@hasTitletrue% + \begin{tcb@lrbox}{\tcb@titlebox}\color{\kvtcb@coltitle}\kvtcb@fonttitle\kvtcb@title\end{tcb@lrbox}% + \fi% + % switch for lower box + \def\tcblower{% + \end{tcb@lrbox}% + \tcb@hasLowertrue% + \ifx\kvtcb@savelowerto\@empty% + \let\tcb@startbox\tcb@savelowerbox% + \let\endtcolorbox\tcb@endboxanddraw% + \else% + \IfFileExists{\kvtcb@savelowerto}{% + \tcb@savelowerbox\input{\kvtcb@savelowerto}\end{tcb@lrbox}}{}% + \let\tcb@startbox\tcb@lowerverbatim% + \expandafter\let\csname end\kvtcb@savedelimiter\expandafter\endcsname\csname tcb@endlowerverbatimanddraw\endcsname% + \fi% + \tcb@startbox}% + % start of upper box + \let\endtcolorbox\tcb@endboxanddraw% + \tcb@saveupperbox% +} + +\let\tcolorbox\tcb@colorbox + +\def\tcb@endboxanddraw{% + \end{tcb@lrbox}% + \tcb@drawcolorbox% +} + +\let\endtcolorbox\tcb@endboxanddraw + +\def\tcb@drawcolorbox{% + % floats + \ifx\kvtcb@float\@empty% + \newenvironment{tcb@float}{\kvtcb@beforebox}{\kvtcb@afterbox}% + \else% + \edef\float@start{\noexpand\@float{tcbfloat}[\kvtcb@float]}% + \newenvironment{tcb@float}{\float@start}{\end@float}% + \fi% + % computation of total height + \setlength{\tcb@textdim}{\kvtcb@boxrule*2+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom+\ht\tcb@upperbox+\dp\tcb@upperbox}% + \iftcb@hasTitle\addtolength{\tcb@textdim}{\kvtcb@boxrule+\kvtcb@boxsep*2+\ht\tcb@titlebox+\dp\tcb@titlebox}\fi% + \iftcb@hasLower\iftcb@lowerignored\else% + \addtolength{\tcb@textdim}{\kvtcb@boxsep*2+\kvtcb@middle*2+\ht\tcb@lowerbox+\dp\tcb@lowerbox}% + \fi\fi% + \begin{tcb@float}\begin{pgfpicture}% + \begin{pgfscope}% + \pgfpathrectangle{\pgfpoint{0mm}{0mm}}{\pgfpoint{\kvtcb@width}{\tcb@textdim}}% + \pgfusepath{use as bounding box}% + % fill box + \pgfsetcornersarced{\pgfpoint{\kvtcb@arc+\kvtcb@boxrule}{\kvtcb@arc+\kvtcb@boxrule}}% + \pgfsetfillcolor{\kvtcb@colframe}% + \pgfpathrectangle{\pgfpoint{0mm}{0mm}}{\pgfpoint{\kvtcb@width}{\tcb@textdim}}% + \pgfusepath{fill}% + \end{pgfscope}% + % set title + \iftcb@hasTitle% + \addtolength{\tcb@textdim}{-\kvtcb@boxrule-\kvtcb@boxsep}% + \pgftext[x=\kvtcb@boxrule+\kvtcb@boxsep+\kvtcb@left, + y=\tcb@textdim,left,top]{\usebox{\tcb@titlebox}}% + % width of inner box + \addtolength{\tcb@textdim}{-\ht\tcb@titlebox-\dp\tcb@titlebox-\kvtcb@boxrule*2-\kvtcb@boxsep}% + \begin{pgfscope}% + % fill inner box with title + \pgfsetcornersarced{\pgfpoint{0mm}{0mm}}% + \pgfmoveto{\pgfpoint{\kvtcb@boxrule}{\kvtcb@boxrule}}% + \pgflineto{\pgfpoint{\kvtcb@boxrule}{\kvtcb@boxrule+\tcb@textdim}}% + \pgflineto{\pgfpoint{\kvtcb@width-\kvtcb@boxrule}{\kvtcb@boxrule+\tcb@textdim}}% + \pgfsetcornersarced{\pgfpoint{\kvtcb@arc}{\kvtcb@arc}}% + \pgflineto{\pgfpoint{\kvtcb@width-\kvtcb@boxrule}{\kvtcb@boxrule}}% + \pgflineto{\pgfpoint{\kvtcb@boxrule}{\kvtcb@boxrule}}% + \pgfpathclose + \pgfsetfillcolor{\kvtcb@colback}% + \pgfusepath{fill}% + \end{pgfscope}% + \else% + \addtolength{\tcb@textdim}{-\kvtcb@boxrule*2}% + \begin{pgfscope}% + % fill inner box without title + \pgfsetcornersarced{\pgfpoint{\kvtcb@arc}{\kvtcb@arc}}% + \pgfsetfillcolor{\kvtcb@colback}% + \pgfpathrectangle{\pgfpoint{\kvtcb@boxrule}{\kvtcb@boxrule}}% + {\pgfpoint{\kvtcb@width-\kvtcb@boxrule*2}{\tcb@textdim}}% + \pgfusepath{fill}% + \end{pgfscope}% + \fi% + % draw upper box + \pgftext[x=\kvtcb@boxrule+\kvtcb@boxsep+\kvtcb@left, + y=\tcb@textdim+\kvtcb@boxrule-\kvtcb@boxsep-\kvtcb@top,left,top]{\usebox{\tcb@upperbox}}% + % draw lower box + \iftcb@hasLower\iftcb@lowerignored\else% + \begin{pgfscope}% + \pgfsetcolor{\kvtcb@colframe}% + \pgfsetdash{{1mm}{1mm}}{0.5mm}% + \pgfpathmoveto{\pgfpoint{\kvtcb@boxrule}{\kvtcb@boxrule+\kvtcb@boxsep*2+\kvtcb@middle+\kvtcb@bottom+\ht\tcb@lowerbox+\dp\tcb@lowerbox}}% + \pgfpathlineto{\pgfpoint{\kvtcb@width-\kvtcb@boxrule}{\kvtcb@boxrule+\kvtcb@boxsep*2+\kvtcb@middle+\kvtcb@bottom+\ht\tcb@lowerbox+\dp\tcb@lowerbox}}% + \pgfusepath{stroke}% + \end{pgfscope}% + \iftcb@lowervisible% + \pgftext[x=\kvtcb@boxrule+\kvtcb@boxsep+\kvtcb@left, + y=\kvtcb@boxrule+\kvtcb@boxsep+\kvtcb@bottom,left,bottom]{\usebox{\tcb@lowerbox}}% + \fi% + \fi\fi% + \end{pgfpicture}\end{tcb@float}% +} + + +% verbatim output as in 'verbatim' + +\newwrite\tcb@out + +\def\tcbverbatimwrite#1{% + \@bsphack + \immediate\openout \tcb@out #1 + \let\do\@makeother\dospecials + \catcode`\^^M\active \catcode`\^^I=12 + \def\verbatim@processline{% + \immediate\write\tcb@out + {\the\verbatim@line}}% + \verbatim@start}%' + + +\def\endtcbverbatimwrite{% + \immediate\closeout\tcb@out + \@esphack% +} + + +% saving of the lower box + +\def\tcb@endlowerverbatimanddraw{% + \tcb@endlowerverbatim% + \tcb@drawcolorbox% +} + +\def\tcb@lowerverbatim{% + \tcbverbatimwrite\kvtcb@savelowerto} + +\let\tcb@endlowerverbatim\endtcbverbatimwrite% + + +% saving of the upper box + +\def\tcbwritetemp{% + \begingroup% + \tcbverbatimwrite\kvtcb@tempfile} + +\def\endtcbwritetemp{% + \endtcbverbatimwrite% + \endgroup% +} + +\def\tcbusetemp{\input{\kvtcb@tempfile}} + + +% libraries +\def\tcb@optionlist{} + +\def\tcbuselibrary#1{\tcbset{library/.cd,#1}} + +\def\tcb@add@library#1#2{% + \tcbset{library/#1/.code={\@ifundefined{tcblibrary@#1@loaded}{\input #2}{}}}% + \DeclareOption{#1}{\edef\tcb@optionlist{\tcb@optionlist,#1}}% +} + +\tcb@add@library{listings}{tcblistings.code.tex} +\tcb@add@library{theorems}{tcbtheorems.code.tex} + +\ProcessOptions* +\edef\tcb@temp{\noexpand\tcbuselibrary{\tcb@optionlist}} +\tcb@temp diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index b357574e1ae..490ec522241 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -368,7 +368,7 @@ my @TLP_working = qw( tabto-generic tabto-ltx tabu tabularborder tabularcalc tabularew tabulars-e tabulary tabvar tagging talk - tamethebeast tapir tcldoc tdclock tdsfrmath + tamethebeast tapir tcldoc tcolorbox tdclock tdsfrmath technics ted templates-fenn templates-sommer tengwarscript tensor termcal termlist teubner tex-ewd tex-font-errors-cheatsheet tex-gyre tex-label tex-overview diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index d8344c0eeec..d61bc2891f5 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -695,6 +695,7 @@ depend tagging depend talk depend taupin depend tcldoc +depend tcolorbox depend tdclock depend technics depend ted diff --git a/Master/tlpkg/tlpsrc/tcolorbox.tlpsrc b/Master/tlpkg/tlpsrc/tcolorbox.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d -- cgit v1.2.3