diff options
author | Karl Berry <karl@freefriends.org> | 2013-06-23 23:43:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-06-23 23:43:36 +0000 |
commit | 3f214aab9775b3253253bc72fa7a58a0278206d4 (patch) | |
tree | 95424a0f9a874d042df4d3762e2a677ea15b010b /Master | |
parent | 0ade4baaa2b1857abfa6b1385ca4a72b9c68a08b (diff) |
tcolorbox (23jun13)
git-svn-id: svn://tug.org/texlive/trunk@30869 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
26 files changed, 2246 insertions, 250 deletions
diff --git a/Master/texmf-dist/doc/latex/tcolorbox/CHANGES b/Master/texmf-dist/doc/latex/tcolorbox/CHANGES index 8cc95fb1e75..0c1acfe59f0 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/CHANGES +++ b/Master/texmf-dist/doc/latex/tcolorbox/CHANGES @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15)
+%% The LaTeX package tcolorbox - version 2.32 (2013/06/23)
%%
%% -------------------------------------------------------------------------------------------
%% Copyright (c) 2006-2013 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de>
@@ -198,4 +198,50 @@ version 2.22 (2013/05/15) - new feature: breakable boxes allow footnotes now (like minipages)
- new macro '\newtcbox'
-
+version 2.30 (2013/06/04)
+- bug fix: handling of 'before' and 'after' for \tcbox corrected
+- \tcbline now also works for centered environments
+- implementation for \tcbox made more efficient
+- new capture mode for automated content fit by font size adjustment
+ with the new macros '\tcboxfit' and '\newtcboxfit'
+ and the new keys 'fit', 'fit to', 'fit to height', 'fit basedim', 'fit skip',
+ 'fit maxstep'
+- new keys 'baseline', 'capture', 'hbox', 'minipage'
+- new stackable borderlines with the 'skins' library:
+ 'borderline', 'no borderline'
+- new keys for the 'skins' library:
+ 'enhanced standard', 'blank'
+- new key 'index format' for the 'documentation' library
+
+version 2.31 (2013/06/18)
+- several internal changes
+- library loading mechanism revisited
+- internal label change for '\tcbmaketheorem'
+- new library options 'most' and 'all'
+- \tcbline now also works for ragged environments
+- new keys:
+ 'flushleft title', 'flushleft upper', 'flushleft lower',
+ 'flushright title', 'flushright upper', 'flushright lower'
+- new key 'no listing options' for the 'listings' library
+- new shadow features for the 'skins' library with the options:
+ 'shadow', 'fuzzy shadow', 'drop shadow', 'drop fuzzy shadow', 'halo', 'fuzzy halo'
+- shadows for the 'beamer' skin changed to fuzzy
+- new library 'fitting' for the content fit operations.
+ NOTE: '\tcboxfit' and the fit options introduced in version 2.30 are moved
+ to this new library
+- the fit algorithm is completey revisited and extended
+- new macro '\tcbfontsize' ('fitting library') for relative font sizes
+- new keys for the 'fitting' library:
+ 'fit fontsize macros', 'fit height plus', 'fit width plus',
+ 'fit width from', 'fit height from'
+
+version 2.32 (2013/06/23)
+- bug fix: 'ams nodisplayskip lower' was applied to upper.
+- new option 'check odd page'
+- new environments for the 'skins' library:
+ 'tcbclipinterior', 'tcbclipframe', 'tcbcliptitle'
+- new keys for the 'skins' library:
+ 'watermark overzoom', 'clip watermark'
+ 'clip title', 'clip upper', 'clip lower'
+- NOTE: watermarks are now clipped by default.
+ To get the old behaviour add the option 'clip watermark=false'
diff --git a/Master/texmf-dist/doc/latex/tcolorbox/README b/Master/texmf-dist/doc/latex/tcolorbox/README index 0533f9b9f06..d87f56b89d8 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/README +++ b/Master/texmf-dist/doc/latex/tcolorbox/README @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% %% ------------------------------------------------------------------------------------------- %% Copyright (c) 2006-2013 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> @@ -31,6 +31,7 @@ Contents of the package 'tcolorbox.sty' LaTeX package file (style file) 'tcbbreakable.code.tex' LaTeX package file (library of tcolorbox) 'tcbdocumenation.code.tex' LaTeX package file (library of tcolorbox) + 'tcbfitting.code.tex' LaTeX package file (library of tcolorbox) 'tcbhooks.code.tex' LaTeX package file (library of tcolorbox) 'tcblistings.code.tex' LaTeX package file (library of tcolorbox) 'tcblistingsutf8.code.tex' LaTeX package file (library of tcolorbox) @@ -42,6 +43,7 @@ Contents of the package 'tcolorbox-example.tex' Example file for package usage 'tcolorbox-example.pdf' Compiled example 'Basilica_5.png' Example picture + 'lichtspiel.jpg' Example picture Installation ============ @@ -51,6 +53,7 @@ Alternatively, put the files to their respective locations within the TeX instal 'tcolorbox.sty' -> /tex/latex/tcolorbox 'tcbbreakable.code.tex' -> /tex/latex/tcolorbox 'tcbdocumenation.code.tex' -> /tex/latex/tcolorbox + 'tcbfitting.code.tex' -> /tex/latex/tcolorbox 'tcbhooks.code.tex' -> /tex/latex/tcolorbox 'tcblistings.code.tex' -> /tex/latex/tcolorbox 'tcblistingsutf8.code.tex' -> /tex/latex/tcolorbox diff --git a/Master/texmf-dist/doc/latex/tcolorbox/lichtspiel.jpg b/Master/texmf-dist/doc/latex/tcolorbox/lichtspiel.jpg Binary files differnew file mode 100644 index 00000000000..76fb962f010 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/lichtspiel.jpg diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf Binary files differindex 90967cf8fd0..811f18687a5 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex index 6c84a9b1b61..ebad17baa6f 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcolorbox-example.tex: an example for tcolorbox %% %% ------------------------------------------------------------------------------------------- @@ -18,8 +18,8 @@ %% This work consists of all files listed in README %% \documentclass{article} -\usepackage{tikz,lipsum} -\usepackage[listings,theorems,skins,breakable]{tcolorbox} +\usepackage{tikz,lipsum,lmodern} +\usepackage[most]{tcolorbox} \begin{document} @@ -122,7 +122,23 @@ We have given Theorem \ref{theorem:summation} on page \pageref{theorem:summation \begin{tcolorbox}[enhanced,breakable, colback=blue!5!white,colframe=blue!75!black,title=Breakable box, watermark color=white,watermark text=\Roman{tcbbreakpart}] - \lipsum[1-18] + \lipsum[1-12] +\end{tcolorbox} + +%---------------------------------------------------------- +\clearpage +\section{Fit Boxes} + +\begin{tcolorbox}[enhanced,fit to height=10cm, + colback=green!25!black!10!white,colframe=green!75!black,title=Fit box (10cm), + drop fuzzy shadow,watermark color=white,watermark text=Fit] + \lipsum[1-4] +\end{tcolorbox} + +\begin{tcolorbox}[enhanced,fit to height=5cm, + colback=green!25!black!10!white,colframe=green!75!black,title=Fit box (5cm), + drop fuzzy shadow,watermark color=white,watermark text=Fit] + \lipsum[1-4] \end{tcolorbox} \end{document} diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.abstract.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.abstract.tex index 7d8ae3860b1..e2108ceb652 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.abstract.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.abstract.tex @@ -20,12 +20,12 @@ saving and reuse of source code and text parts. \end{absquote} -\begin{tcolorbox}[breakable,skin=enhanced,title={Contents},fonttitle=\bfseries\Large, +\begin{tcolorbox}[breakable,enhanced,title={Contents},fonttitle=\bfseries\Large, colback=yellow!10!white,colframe=red!50!black,before=\par\bigskip\noindent, - watermark color=yellow!75!red!25!white, + watermark color=yellow!75!red!25!white,pad at break=3mm, watermark text={\bfseries\Large Contents}, - frame style={drop shadow} - ] + shrink break goal=25pt, + drop fuzzy shadow] \makeatletter \@starttoc{toc} \makeatother diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.bib b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.bib index 1225e06ac09..54b2c68e534 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.bib +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.bib @@ -115,3 +115,10 @@ date = {2011-11-10}, } +@manual{robertson:2013a, + author = {Will Robertson}, + title = {A couple of things involving environments}, + url = {http://mirror.ctan.org/macros/latex/contrib/environ/environ.pdf}, + date = {2013-04-01}, +} + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex index 11dca2965f4..b2a06f43b6c 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coremacros.tex @@ -73,14 +73,14 @@ Here, you see the lower part of the box. \begin{docCommand}{tcbox}{\oarg{options}\marg{box content}} - Creates a \refEnv{tcolorbox} which is fitted to the width of the given + Creates a colored box which is fitted to the width of the given \meta{box content}. In principal, most \meta{options} for a \refEnv{tcolorbox} can be used for |\tcbox| with some restrictions. A |\tcbox| cannot have a lower part and cannot be broken. \begin{dispExample} \tcbset{colframe=blue!50!black,colback=white,colupper=red!50!black, - fonttitle=\bfseries,before=,after=,center title} + fonttitle=\bfseries,nobeforeafter,center title} Text \tcbox[tcbox raise base]{Hello World}\hfill % @@ -141,7 +141,6 @@ and options. \end{docCommand} - \begin{docCommand}{newtcbox}{\marg{\texttt{\textbackslash}name}\oarg{number}\oarg{default}\marg{options}} Creates a new macro \meta{\texttt{\textbackslash}name} based on \refCom{tcbox}. Basically, |\newtcbox| operates like |\newcommand|. @@ -173,3 +172,5 @@ and options. \end{dispExample*} \end{docCommand} + + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex index cf5c9669d37..9a7b682057d 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex @@ -344,6 +344,12 @@ This is a \textbf{tcolorbox}. \end{dispExample} \end{docTcbKey} +\bigskip +\begin{marker} + More options for drawing a \refKey{/tcb/borderline} are provided by using skins documented in + Section \ref{sec:skins} from page \pageref{sec:skins}. +\end{marker} + \clearpage \begin{docTcbKey}{arc}{=\meta{length}}{no default, initially \texttt{1mm}} @@ -904,10 +910,10 @@ This is the lower part. \end{dispExample} \end{docTcbKey} + \clearpage \begin{docTcbKey}{center title}{}{style, no value, initially unset} - This style sets \refKey{/tcb/before title} and \refKey{/tcb/after title} - to |\begin{center}| and |\end{center}|. + This style sets \refKey{/tcb/before title} to |\centering|. \begin{dispExample} \tcbset{center title,colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries} @@ -919,8 +925,7 @@ This is a \textbf{tcolorbox}. \begin{docTcbKey}{center upper}{}{style, no value, initially unset} - This style sets \refKey{/tcb/before upper} and \refKey{/tcb/after upper} - to |\begin{center}| and |\end{center}|. + This style sets \refKey{/tcb/before upper} to |\centering|. \begin{dispExample} \tcbset{center upper,colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries} @@ -932,8 +937,7 @@ This is a \textbf{tcolorbox}. \begin{docTcbKey}{center lower}{}{style, no value, initially unset} - This style sets \refKey{/tcb/before lower} and \refKey{/tcb/after lower} - to |\begin{center}| and |\end{center}|. + This style sets \refKey{/tcb/before lower} to |\centering|. \begin{dispExample} \tcbset{center lower,colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries} @@ -947,6 +951,101 @@ This is the lower part. \clearpage +\begin{docTcbKey}{flushleft title}{}{style, no value, initially unset} + This style sets \refKey{/tcb/before title} to |\raggedright|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{flushleft title,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My title which is + quite long but always flushed left] +This is a \textbf{tcolorbox}. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{flushleft upper}{}{style, no value, initially unset} + This style sets \refKey{/tcb/before upper} to |\raggedright|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{flushleft upper,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My title] +This is a \textbf{tcolorbox}. Here, the +content is flushed left. +You see the effect on the right hand side. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{flushleft lower}{}{style, no value, initially unset} + This style sets \refKey{/tcb/before lower} to |\raggedright|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{flushleft lower,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My title] +This is a \textbf{tcolorbox}. The upper part +is not flushed left or right. This could be +unpleasant for small boxes. +\tcblower +This is the lower part. Here, the +content is flushed left. +You see the effect on the right hand side. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\clearpage +\begin{docTcbKey}{flushright title}{}{style, no value, initially unset} + This style sets \refKey{/tcb/before title} to |\raggedleft|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{flushright title,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My title] +This is a \textbf{tcolorbox}. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{flushright upper}{}{style, no value, initially unset} + This style sets \refKey{/tcb/before upper} to |\raggedleft|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{flushright upper,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My title] +This is a \textbf{tcolorbox}. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{flushright lower}{}{style, no value, initially unset} + This style sets \refKey{/tcb/before lower} to |\raggedleft|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{flushright lower,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My title] +This is a \textbf{tcolorbox}. +\tcblower +This is the lower part. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + + + + + +\clearpage \begin{docTcbKey}{tabularx}{=\meta{preamble}}{style} This style sets \refKey{/tcb/before upper} and \refKey{/tcb/after upper} and several geometry keys to support a |tabularx| with the @@ -1081,6 +1180,7 @@ This is a \textbf{tcolorbox}. \end{tcolorbox} \end{dispExample} +\enlargethispage*{5mm} \begin{dispExample} % \usetikzlibrary{patterns} % preamble % \tcbuselibrary{skins} % preamble @@ -1101,6 +1201,7 @@ This is the lower part. \end{dispExample} \end{docTcbKey} +\clearpage \begin{docTcbKey}{no overlay}{}{style, no default, initially set} Removes the overlay if set before. \end{docTcbKey} @@ -1202,14 +1303,32 @@ are drawn by the codes given with \end{myexample} \begin{myexample} -\lipsum[2-14] +\lipsum[2-11] \end{myexample} -\lipsum[15]% following text +\lipsum[12]% following text \end{dispListing*} {\tcbusetemp} +\begin{dispExample} +% \tcbuselibrary{skins} +\newtcolorbox{FancyTitle}[2][]{% + enhanced,colback=blue!10!white,colframe=orange,top=4mm, + enlarge top by=\baselineskip/2+1mm, + enlarge top at break by=0mm,pad at break=2mm, + fontupper=\normalsize, + overlay unbroken and first={% + \node[rectangle,rounded corners,draw=black,fill=blue!20!white, + inner sep=1mm,anchor=west,font=\small] + at ([xshift=4.5mm]frame.north west) {\strut\textbf{#2}};}, + #1}% + +\begin{FancyTitle}{My fancy title} + \lipsum[1] +\end{FancyTitle} +\end{dispExample} + \clearpage \subsection{Floating Objects} \begin{docTcbKey}{floatplacement}{=\meta{values}}{no default, initially \texttt{htb}} @@ -1449,6 +1568,11 @@ This behavior is controlled by the keys |before| and |after|. \end{docTcbKey} +\begin{docTcbKey}{baseline}{=\meta{length}}{no default, initially |0pt|} + Used to set the |\pgfsetbaseline| value of the resulting |tcolorbox|. +\end{docTcbKey} + + \clearpage \subsection{Bounding Box} Normally, every |tcolorbox| has a bounding box which fits exactly to the @@ -1529,10 +1653,13 @@ This is a \textbf{tcolorbox}. \item |none|: no switching. \item |forced|: the values of the left and right enlargement are switched. \item |evenpage|: if the page is an even page, the values of the left and - right enlargement are switched. Note that the page number detection may - fail in certain cases. For these cases, use the |forced| value. + right enlargement are switched. It is recommended to use this setting in + conjunction with \refKey{/tcb/check odd page}. + %Note that the page number detection may + %fail in certain cases. For these cases, use the |forced| value. \end{itemize} \begin{dispExample} +% \usepackage{changepage} for 'check odd page' \tcbset{colframe=blue!75!black,colback=white, enlarge left by=-20mm,enlarge right by=5mm,width=\linewidth+15mm} @@ -1542,7 +1669,7 @@ This is a \textbf{tcolorbox}. \begin{tcolorbox}[toggle enlargement=forced] This is a \textbf{tcolorbox}. \end{tcolorbox} -\begin{tcolorbox}[toggle enlargement=evenpage] +\begin{tcolorbox}[toggle enlargement=evenpage,check odd page] This page is an \ifthenelse{\isodd{\thepage}}{odd}{even} page. Therefore, the left and right enlargements \ifthenelse{\isodd{\thepage}}{are not}{are} toggled (with some luck). @@ -1580,7 +1707,7 @@ lower part. extrusion keys. \begin{dispExample} \tcbset{colframe=blue!75!black,colback=white,arc=0mm,boxrule=0.4pt, - tcbox raise base,shrink tight} + nobeforeafter,tcbox raise base,shrink tight} \begin{tcolorbox} This is a \textbf{tcolorbox}. @@ -1597,7 +1724,7 @@ Lorem \tcbox{ipsum} dolor sit amet, consectetuer adipiscing elit. \begin{dispExample} \tcbset{enhanced,colframe=red,colback=yellow!25!white, frame style={opacity=0.25},interior style={opacity=0.5}, - tcbox raise base,shrink tight,extrude by=2mm} + nobeforeafter,tcbox raise base,shrink tight,extrude by=2mm} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. @@ -1613,7 +1740,7 @@ Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. \begin{dispExample} \tcbset{enhanced,colframe=red,colback=yellow!25!white, frame style={opacity=0.25},interior style={opacity=0.5}, - tcbox raise base,shrink tight,extrude by=2mm} + nobeforeafter,tcbox raise base,shrink tight,extrude by=2mm} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. @@ -1630,7 +1757,7 @@ Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. \begin{dispExample} \tcbset{enhanced,colframe=red,colback=yellow!25!white, frame style={opacity=0.25},interior style={opacity=0.5}, - tcbox raise base,shrink tight,extrude by=2mm} + nobeforeafter,tcbox raise base,shrink tight,extrude by=2mm} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. @@ -1646,7 +1773,7 @@ Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. \begin{dispExample} \tcbset{enhanced,colframe=red,colback=yellow!25!white, frame style={opacity=0.25},interior style={opacity=0.5}, - tcbox raise base,shrink tight,extrude by=2mm} + nobeforeafter,tcbox raise base,shrink tight,extrude by=2mm} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. @@ -1662,7 +1789,7 @@ Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. \begin{dispExample} \tcbset{enhanced,colframe=red,colback=yellow!25!white, frame style={opacity=0.25},interior style={opacity=0.5}, - tcbox raise base,shrink tight,extrude by=2mm} + nobeforeafter,tcbox raise base,shrink tight,extrude by=2mm} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. \tcbox{Curabitur} dictum @@ -1674,6 +1801,66 @@ et malesuada fames ac turpis egestas. \tcbox{Mauris ut leo.} \end{docTcbKey} +\clearpage +\subsection{Capture Mode}\label{subsec:capture} + +\begin{docTcbKey}{capture}{=\meta{mode}}{no default, initially |minipage|} + The capture \meta{mode} defines how the box content is processed. + +Feasible values for \meta{mode} are: +\begin{itemize} +\item |minipage|:\\ + This is the default \meta{mode} for \refEnv{tcolorbox}. + The content may have an upper and a lower part. Optionally, the box + can be \refKey{/tcb/breakable}. The box content is put into a + minipage or into something similar to a minipage. +\item |hbox|:\\ + This is the default \meta{mode} for \refCom{tcbox}. The content cannot have + a lower part and cannot be broken. The colored box is sized according + to the dimensions of the content. + A shortcut to set this mode is \refKey{/tcb/hbox}. +\item |fitbox|: (needs the 'fitting' library)\\ + This is the default \meta{mode} for \refCom{tcboxfit}. The content cannot have + a lower part and cannot be broken. + The content is sized according to the dimensions of the colored box. + A shortcut to set this mode is \refKey{/tcb/fit}. +\end{itemize} + +\begin{dispExample} +\tcbset{colframe=blue!75!black,colback=white} + +\begin{tcolorbox}[capture=minipage] +This is a tcolorbox. +\end{tcolorbox} + +\begin{tcolorbox}[capture=hbox] +This is a tcolorbox. +\end{tcolorbox} + +\begin{tcolorbox}[capture=fitbox,height=9mm]% needs the 'fitting' library +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + + + +\begin{docTcbKey}{hbox}{}{style, no default} + Shortcut for |capture=hbox|. +\begin{dispExample} +\tcbset{colframe=blue!75!black,colback=white} + +\begin{tcolorbox}[hbox] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + + +\begin{docTcbKey}{minipage}{}{style, no default} + Shortcut for |capture=minipage|. +\end{docTcbKey} + \clearpage \subsection{Text Characteristics} @@ -1740,3 +1927,35 @@ The library 'skins' adds more skins. The appropriate option keys for skins of the core package are therefore described in section \ref{sec:skincorekeys} from page \pageref{sec:skincorekeys}. +\clearpage +\subsection{Miscellaneous} + +\begin{docTcbKey}{check odd page}{\colOpt{=\meta{boolean value}}}{default |true|, initially |false|} +If set to |true|, the even/odd page testing from the package |changepage| +is applied. The \refKey{/tcb/toggle enlargement} check will use the +|\ifoddpage| macro from this package. +Note that you have to include the package |changepage| by hand\footnote{If |changepage| is +not included, a compilation error will arise.}: + +\begin{dispListing} +\usepackage{changepage} +\strictpagecheck +\end{dispListing} + +\medskip +The macro |\ifoddpage| can be used inside overlay or watermark code to test if the +box is on an odd page. This will work also for boxes in a break sequence. +Note that you cannot use the test inside the normal +box content. + +\begin{dispExample} +% \usepackage{changepage} +\tcbset{colframe=blue!75!black,colback=white} + +\begin{tcolorbox}[enhanced, + watermark text={\ifoddpage Odd\else Even\fi\ page!}] +\lipsum[1] +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex index 456556d55d3..24e8e35dffd 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex @@ -290,6 +290,17 @@ This is my \colOpt{text}. additional to \refKey{/tcb/after}. \end{docTcbKey} +\begin{docTcbKey}{index format}{=\meta{format}}{no default, initially |pgf|} + Determines the basic \meta{format} of the generated index. + Feasible values are: + \begin{itemize} + \item |pgf|: The index is formatted like in the |pgf| documentation. + \item |doc|: The index assumed to be formatted by |doc|/|ltxdoc|. A usage of |makeindex| + with |-s gind.ist| is assumed. The package |hypdoc| has to be loaded + \emph{before} |tcolorbox|. + \end{itemize} +\end{docTcbKey} + \begin{docTcbKey}{index actual}{=\meta{character}}{no default, initially |@|} Sets the character for 'actual' in automatic indexing. \end{docTcbKey} diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex new file mode 100644 index 00000000000..171988fc395 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.fitting.tex @@ -0,0 +1,403 @@ +% !TeX root = tcolorbox.tex +% include file of tcolorbox.tex (manual of the LaTeX package tcolorbox) +\clearpage +\section{Library 'fitting'}\label{sec:fitting} +The library is loaded by a package option or inside the preamble by: +\begin{dispListing} +\tcbuselibrary{fitting} +\end{dispListing} + +\subsection{Macros of the Library} + +\begin{docCommand}{tcboxfit}{\oarg{options}\marg{box content}} + Creates a colored box where the given \meta{box content} is fitted to + the width and height of the box. A |tcboxfit| has to have a fixed height. + If no fixed height is given, a square box is constructed. + In principal, most \meta{options} for a \refEnv{tcolorbox} + can be used for |\tcboxfit| with some restrictions. A |\tcboxfit| cannot have + a lower part and cannot be broken. + +\enlargethispage*{1cm} +\begin{dispExample} +% \usepackage{lipsum} +\tcbset{colframe=blue!50!black,colback=red!10!white, + boxsep=0pt,top=1mm,bottom=1mm,left=1mm,right=1mm, + nobeforeafter,width=(\linewidth-2mm)/3} + +\tcboxfit[height=8cm]{\lipsum[1]}\hfill +\tcboxfit[height=4cm]{\lipsum[1]}\hfill +\tcboxfit[height=2cm]{\lipsum[1]} + +\medskip +\tcbset{width=(\linewidth-2mm)/2,colback=green!10!white,boxsep=1mm} +\tcboxfit[height=4cm]{\lipsum[2]}\hfill +\tcboxfit[height=4cm,title=With a title]{\lipsum[2]} +\end{dispExample} +\end{docCommand} + + +\begin{docCommand}{newtcboxfit}{\marg{\texttt{\textbackslash}name}\oarg{number}\oarg{default}\marg{options}} + Creates a new macro \meta{\texttt{\textbackslash}name} based on \refCom{tcboxfit}. + Basically, |\newtcboxfit| operates like |\newcommand|. + The new macro \meta{\texttt{\textbackslash}name} optionally takes \meta{number}$+1$ arguments, where + \meta{default} is the default value for the optional first argument. + The \meta{options} are given to the underlying |tcboxfit|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\newtcboxfit{\mybox}{colback=red!5!white, + colframe=red!75!black,width=4cm, + height=1.5cm,center upper} + +\mybox{This is my own box.}\par +\mybox{This is my own box with more text + to be written.} +\end{dispExample*} + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +% \usepackage{lipsum} +\newtcboxfit{\mybox}[2]{colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries, + boxsep=1mm,left=0mm,right=0mm,top=0mm, + bottom=0mm,center upper,valign=center, + nobeforeafter,width=#1,height=#2} + +\mybox{2.5cm}{1cm}{First box}% +\mybox{2.5cm}{1cm}{Second box with more text}\\ +\mybox{5cm}{2cm}{Third box with text}\\ +\mybox{5cm}{3cm}{\lipsum[1]} +\end{dispExample*} + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +% \usepackage{lipsum} +\newtcboxfit{\mybox}[2][]{colback=red!5!white, + colframe=red!75!black, + width=#2,height=#2/3*2,#1} + +\mybox[colback=yellow]{5cm}% + {\lipsum[2]} +\end{dispExample*} +\end{docCommand} + + +\begin{docCommand}{tcbfontsize}{\marg{factor}} + Selects a font size inside a tcolorbox which is scaled with the given + \meta{factor} relative to \docAuxCommand{tcbfitdim}.% + %, see Subsection \ref{subsec:fit} from page \pageref{subsec:fit}. + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{colback=red!5!white,colframe=red!75!black} +\begin{tcolorbox}[fit basedim=10pt] + {\tcbfontsize{0.25} Very tiny,}\\ + {\tcbfontsize{0.5} Small,}\\ + {\tcbfontsize{1} Normal,}\\ + {\tcbfontsize{2} Large,}\\ + {\tcbfontsize{4} Huge.} +\end{tcolorbox} +\end{dispExample*} +\end{docCommand} + + +\clearpage +\subsection{Option Keys of the Library}\label{subsec:fit} + +The font size for the content of a box with fixed width and fixed height +can be adjusted automatically. This is called the \emph{fitbox capture mode}. +Note that the fit control algorithm +constructs a series of versions for the box and selects the 'best'. +Therefore, the compilation time is quite longer than for a normal box. +The algorithm will fail, if a different selected font size does not change the +overall size of the box content. +The \refCom{tcboxfit} macro uses this algorithm by default. + +\medskip +\begin{marker} + The fit control keys are only applicable to unbreakable boxes without + a lower part. + The box content should not change counters. +\end{marker} +\medskip + +\enlargethispage*{5mm} +\begin{docTcbKey}{fit}{}{style, initially unset} + Sets the \refKey{/tcb/capture} mode to |fitbox|, i.\,e.\ enables the + font size adjustment algorithm. Thereby, a \refEnv{tcolorbox} acts + like \refCom{tcboxfit} where the given \meta{box content} is fitted to + the width and height of the box. Therefore, the box has to have a fixed height. + If no fixed height is given, a square box is constructed. + The font dimension \docAuxCommand{tcbfitdim} can also be used to adjust + the margins of the box since a box with a tiny font may not need large + margins. The number of constructed boxes is saved to the macro \docAuxCommand{tcbfitsteps} + for analysis. + +\begin{dispExample} +% \usepackage{lipsum} +% \tcbuselibrary{skins} +\newtcolorbox{fitting}[2][]{fit,height=#2,boxsep=1pt,valign=center, + top=0.4\tcbfitdim,bottom=0.4\tcbfitdim, + left=0.75\tcbfitdim,right=0.75\tcbfitdim, + enhanced,watermark text=\tcbfitsteps, + colframe=blue!75!black,colback=white,#1} + +\begin{fitting}{4cm} +\lipsum[1] +\end{fitting} + +\begin{fitting}{2cm} +\lipsum[2] +\end{fitting} + +\begin{fitting}{1cm} +\lipsum[3] +\end{fitting} +\end{dispExample} +\end{docTcbKey} + + +\begin{docTcbKey}{fit to}{=\meta{width} and \meta{height}}{style, initially unset} + Shortcut for using \refKey{/tcb/fit} and setting the \meta{width} and \meta{height} values + separately. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{colback=red!5!white,colframe=red!75!black} + +\begin{tcolorbox}[fit to=3cm and 2cm] + This box content is fitted to the given + dimensions. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{fit to height}{=\meta{height}}{style, initially unset} + Shortcut for using \refKey{/tcb/fit} and setting the \meta{height} value separately. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{colback=red!5!white,colframe=red!75!black} + +\begin{tcolorbox}[fit to height=2cm] + This box content is fitted to the given + height. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + +\begin{docTcbKey}{fit basedim}{=\meta{length}}{no default, initially |10pt|} + Sets the starting font dimension for the font size adjustment algorithm + to \meta{length}. The algorithm never enlarges this dimension. + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{colback=red!5!white,colframe=red!75!black} + +\begin{tcolorbox}[fit to=4cm and 2cm] + Too few words for the box. +\end{tcolorbox} + +\begin{tcolorbox}[fit to=4cm and 2cm, + fit basedim=50pt] + Enough words for the box. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{fit skip}{=\meta{real value}}{no default, initially |1.2|} + Sets the skip value of the selected font to \meta{real value} times \docAuxCommand{tcbfitdim}. + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +% \usepackage{lipsum} +\tcbset{colback=red!5!white, + colframe=red!75!black,left=1mm, + right=1mm,boxsep=0mm} + +\begin{tcolorbox}[fit to=5cm and 4cm, + fit skip=1.0 ] + \lipsum[1] +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + + +\clearpage +\begin{docTcbKey}{fit fontsize macros}{}{style, initially unset} + Redefines the standard \LaTeX\ font size macros + |\tiny|, |\scriptsize|, |\footnotesize|, |\small|, |\normalsize|, + |\large|, |\Large|, |\LARGE|, |\huge|, and |\Huge|, + to set font sizes relative to + the current \docAuxCommand{tcbfitdim}. Note that the display skip values for + mathematical formulas are respected by the redefined macros. + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +% \usepackage{lipsum} +\tcbset{colback=red!5!white, + colframe=red!75!black,left=1mm, + right=1mm,boxsep=0mm} + +\begin{tcolorbox}[fit to height=4cm] + {\Large\bfseries This text is + not adapted:\par} + \lipsum[2] +\end{tcolorbox} + +\begin{tcolorbox}[fit to height=4cm, + fit fontsize macros ] + {\Large\bfseries This text is adapted:\par} + \lipsum[2] +\end{tcolorbox} +\end{dispExample*} + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{colback=red!5!white, + colframe=red!75!black,left=1mm, + right=1mm,boxsep=0mm} + +\let\realHuge=\Huge + +\begin{tcolorbox}[fit basedim=7pt, + fontupper=\normalsize, + fit fontsize macros] +The relative relative font size macros +are also usable without the +\textit{fit} algorithm.\par +{\Huge Adapted Huge} --- +{\realHuge Original Huge} +\end{tcolorbox} + +\end{dispExample*} +\end{docTcbKey} + + +\clearpage +\begin{docTcbKey}{fit height plus}{=\meta{dimension}}{no default, initially |0pt|} + The box is allowed to enlarge the fixed height up to the given \meta{dimension}, + before a font size fit is applied. An optional \refKey{/tcb/fit width plus} + is tried after the height adaption. +\begin{dispExample} +% \usepackage{lipsum} +\tcbset{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,bottom=1mm, + right=1mm,boxsep=0mm,width=3cm,height=3cm,nobeforeafter} + +\begin{tcolorbox}[fit] +This is a tcolorbox. +\end{tcolorbox} +\begin{tcolorbox}[fit,fit height plus=1cm] +This is a tcolorbox. +\end{tcolorbox} +\begin{tcolorbox}[fit] +\lipsum[2] +\end{tcolorbox} +\begin{tcolorbox}[fit,fit height plus=1cm] +\lipsum[2] +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + + +\begin{docTcbKey}{fit width plus}{=\meta{dimension}}{no default, initially |0pt|} + The box is allowed to enlarge the fixed width up to the given \meta{dimension}, + before a font size fit is applied. An optional \refKey{/tcb/fit height plus} + is tried before the width adaption. + \enlargethispage*{1cm} +\begin{dispExample} +% \usepackage{lipsum} +\tcbset{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,bottom=1mm, + right=1mm,boxsep=0mm,width=3cm,height=3cm,nobeforeafter} + +\begin{tcolorbox}[fit] +This is a tcolorbox. +\end{tcolorbox} +\begin{tcolorbox}[fit,fit width plus=1cm] +This is a tcolorbox. +\end{tcolorbox} +\begin{tcolorbox}[fit] +\lipsum[2] +\end{tcolorbox} +\begin{tcolorbox}[fit,fit width plus=1cm] +\lipsum[2] +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + + +\begin{marker} +Typically, the optional title of a |tcolorbox| is not part of the fit operation. +If a \refKey{/tcb/fit width plus} is applied, the title is also adapted to +the new width. If counters are increased inside the title text, they may be +increased more than one time. +\end{marker} + + +\begin{docTcbKey}{fit width from}{=\meta{min} \texttt{to} \meta{max}}{style, no default} + Sets the box width to \meta{min} and allows the width to grow up to \meta{max}. +\begin{dispExample} +% \usepackage{lipsum} +\tcbset{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm,bottom=1mm, + right=1mm,boxsep=0mm,height=4cm} + +\begin{tcolorbox}[fit,width=\linewidth/2] +\lipsum[2] +\end{tcolorbox}\par +\begin{tcolorbox}[fit width from=\linewidth/2 to \linewidth] +\lipsum[2] +\end{tcolorbox}\par +\end{dispExample} +\end{docTcbKey} + +\clearpage +\begin{docTcbKey}{fit height from}{=\meta{min} \texttt{to} \meta{max}}{style, no default} + Sets the box height to \meta{min} and allows the height to grow up to \meta{max}. +\begin{dispExample} +% \usepackage{lipsum} +\newtcolorbox{mybox}{colback=red!5!white,colframe=red!75!black,left=1mm,top=1mm, + bottom=1mm,right=1mm,boxsep=0mm,width=4cm,nobeforeafter, + fit height from=1cm to 8cm} + +\begin{mybox} +This is a tcolorbox. +\end{mybox} +\begin{mybox} +This is a tcolorbox. This is a tcolorbox. This is a tcolorbox. +\end{mybox} +\begin{mybox} +\lipsum[2] +\end{mybox} +\end{dispExample} +\end{docTcbKey} + + +\clearpage +\begin{marker} +The following options set control parameters for the fit algorithm. +The algorithms is a bisection method which stops if certain stop conditions +are fulfilled. +The options should be seen as experimental and are likely to change in future versions, +if necessary. +\end{marker} + +\begin{docTcbKey}{fit maxstep}{=\meta{number}}{no default, initially |20|} + Sets the maximal step size for the font size adjustment algorithm. + In normal situations, the algorithm stops before reaching the intial value of 20 steps. + If the box content does not shrink, this value prevents an endless loop. +\end{docTcbKey} + + +\begin{docTcbKey}{fit maxfontdiff}{=\meta{dimension}}{no default, initially |0.1pt|} + The algorithm stops, if the font size is determined within a deviation of + \meta{dimension}. +\end{docTcbKey} + + +\begin{docTcbKey}{fit maxfontdiffgap}{=\meta{dimension}}{no default, initially |1pt|} + The algorithm stops, if the number of lines is determined and the font size is + determined within a deviation of \meta{dimension}. +\end{docTcbKey} + + +\begin{docTcbKey}{fit maxwidthdiff}{=\meta{dimension}}{no default, initially |1pt|} + The algorithm stops, if the (optionally) flexible box width + is determined within a deviation of \meta{dimension}. +\end{docTcbKey} + + +\begin{docTcbKey}{fit maxwidthdiffgap}{=\meta{dimension}}{no default, initially |10pt|} + The algorithm stops, if the number of lines is determined and the (optionally) flexible box width + is determined within a deviation of \meta{dimension}. +\end{docTcbKey} + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.intro.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.intro.tex index ed4187f3518..c6330c6a44a 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.intro.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.intro.tex @@ -25,6 +25,7 @@ With version 2.20, the often requested 'side by side' mode for listings has been \begin{tcolorbox}[enhanced,boxrule=0mm,boxsep=0mm,frame hidden,interior hidden, left=0mm,right=0mm,top=0mm,bottom=0mm,watermark opacity=0.25,watermark zoom=1.2,before=\par\smallskip, + clip watermark=false, watermark tikz={% \path[fill=yellow,draw=yellow!75!red] (0,0) circle (1cm); \fill[red] (45:5mm) circle (1mm); @@ -36,9 +37,20 @@ and ideas for new or better features. \end{tcolorbox} +\subsection{Installation} +Typically, |tcolorbox| will be installed as part of a major \LaTeX\ distribution +and there is nothing special to do for a user. + +If you intend to make a local +installation \emph{by hand}, see the |README| file of the |tcolorbox| package +for some hints. The short story is: you have to install not only +|tcolorbox.sty| but also all |*.code.tex| files in the local |texmf| tree. + + \subsection{Loading the Package} The base package |tcolorbox| loads the packages -|pgf| \cite{tantau:2010c} and |verbatim| \cite{schoepf:2001a}. +|pgf| \cite{tantau:2010c}, |verbatim| \cite{schoepf:2001a}, +and |environ| \cite{robertson:2013a}. |tcolorbox| itself is loaded in the usual manner in the preamble: \begin{dispListing} \usepackage{tcolorbox} @@ -68,6 +80,12 @@ the preamble by applying the following macro with the same set of keys. The following keys are used inside |\tcbuselibrary| respectively |\usepackage| without the key tree path |/tcb/library/|. +\begin{docTcbKey}[library]{skins}{}{no value} + Loads the package |tikz| \cite{tantau:2010c} and provides additional + styles (skins) for the appearance of the colored boxes; see + Section \ref{sec:skins} from page \pageref{sec:skins}. +\end{docTcbKey} + \begin{docTcbKey}[library]{listings}{}{no value} Loads the package |listings| \cite{heinz:2007a} and provides additional macros for typesetting listings which are described in Section \ref{sec:listings} @@ -89,26 +107,38 @@ The following keys are used inside |\tcbuselibrary| respectively from page \pageref{sec:theorems}. \end{docTcbKey} -\begin{docTcbKey}[library]{documentation}{}{no value} - Provides additional - macros for typesetting \LaTeX\ documentations - which are described in Section \ref{sec:documentation} - from page \pageref{sec:documentation}. -\end{docTcbKey} - -\begin{docTcbKey}[library]{skins}{}{no value} - Loads the package |tikz| \cite{tantau:2010c} and provides additional - styles (skins) for the appearance of the colored boxes; see - Section \ref{sec:skins} from page \pageref{sec:skins}. -\end{docTcbKey} \begin{docTcbKey}[library]{breakable}{}{no value} Provides support for automatic box breaking from one page to another; see Section \ref{sec:breakable} from page \pageref{sec:breakable}. \end{docTcbKey} +\begin{docTcbKey}[library]{fitting}{}{no value} + Provides support for font size adaption of the box content to + the box dimensions; + see Section \ref{sec:fitting} from page \pageref{sec:fitting}. +\end{docTcbKey} + \begin{docTcbKey}[library]{hooks}{}{no value} Extends several option keys to 'hookable' keys; see Section \ref{sec:hooks} from page \pageref{sec:hooks}. \end{docTcbKey} +\begin{docTcbKey}[library]{documentation}{}{no value} + Provides additional + macros for typesetting \LaTeX\ documentations + which are described in Section \ref{sec:documentation} + from page \pageref{sec:documentation}. +\end{docTcbKey} + +\begin{docTcbKey}[library]{most}{}{style, no value} + Loads all libraries except 'documentation'. + Use this shortcut, if you want to use all features of |tcolorbox| + with exception of the specialized 'documentation' library. +\end{docTcbKey} + +\begin{docTcbKey}[library]{all}{}{style, no value} + Loads all libraries. Use this shortcut only, if you indend to use the + 'documentation' library. +\end{docTcbKey} + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex index 16cbbb6ccf0..c2a6f9ef860 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.listings.tex @@ -176,6 +176,20 @@ and in compiled form. Additionally, we use line numbers here. \end{dispExample} \end{docTcbKey} +\begin{docTcbKey}{no listing options}{}{no value, initially unset} + Abbreviation for |listing options={}|. + This removes all options for the |listings| package. + This includes the |tcblisting| standard style |tcblatex| and the encoding presets. + Use this option, if you want to set the |listings| options outside of |tcblisting|, e.\,g.\ globally in + the preamble. +\begin{dispExample} +\begin{tcblisting}{no listing options} +All \textit{listings} options removed. +\end{tcblisting} +\end{dispExample} +\end{docTcbKey} + +\clearpage \begin{docTcbKey}{listing style}{=\meta{style}}{no default, initially |tcblatex|} Abbreviation for |listing options={style=...}|. This key sets a \meta{style} @@ -227,6 +241,7 @@ This is a \LaTeX\ example. \end{dispExample} \end{docTcbKey} + \begin{docTcbKey}{listing only}{}{no value} Typesets the environment content as listing. \begin{dispExample} @@ -274,7 +289,6 @@ This is a \LaTeX\ example. \end{docTcbKey} - \begin{docTcbKey}{comment and listing}{}{no value} Typesets a given comment in the upper part and the environment content as listing in the lower part. @@ -356,8 +370,8 @@ numbering. texexp/.style={colframe=red!50!yellow!50!black, colback=red!50!yellow!5!white, coltitle=red!50!yellow!3!white, fonttitle=\small\sffamily\bfseries, fontupper=\small, fontlower=\small}, - example/.code 2 args={\refstepcounter{texexp}\label{#2}% - \pgfkeysalso{texexp,title={Example \thetexexp: #1}}}, + example/.style 2 args={texexp, + title={Example \refstepcounter{texexp}\label{#2}\thetexexp: #1}}, } \end{dispListing} \tcbusetemp @@ -609,10 +623,10 @@ exercises is created quickly: \begin{dispListing} \newtcolorbox{texercise}[2][]{texercisestyle, - code={\refstepcounter{texercise}\label{exe:#2}\writesol{#2}}, listing file={\solfile\thetexercise}, - title={Exercise \arabic{texercise}\hfill\mdseries Solution on page \pageref{sol:#2}}, - #1} + title={Exercise \refstepcounter{texercise}\label{exe:#2}\writesol{#2}% + \arabic{texercise}% + \hfill\mdseries Solution on page \pageref{sol:#2}},#1} \end{dispListing} \tcbusetemp diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skins.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skins.tex index 0bfdac01ef9..2be4be9a13b 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skins.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.skins.tex @@ -596,7 +596,7 @@ This example uses a public domain picture from\\ \tcbset{colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries} \begin{tcolorbox}[enhanced,title=My title, - watermark tikz={\draw[line width=2mm] (interior) circle (1cm) + watermark tikz={\draw[line width=2mm] circle (1cm) node{\fontfamily{ptm}\fontseries{b}\fontsize{20mm}{20mm}\selectfont ?};}] \lipsum[1] \tcblower @@ -650,15 +650,15 @@ This example uses a public domain picture from\\ \enlargethispage{5mm} \begin{docTcbKey}{watermark zoom}{=\meta{fraction}}{no default, initially |0.75|} Sets the zoom value for a watermark. The zoom respects the aspect ratio. - The value $1.0$ means to fill the whole box. + The value $1.0$ means to fill the whole box until the watermark touches the frame. \begin{dispExample} \tcbset{enhanced,colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, watermark text=Watermark,nobeforeafter,width=(\linewidth-2mm)/2} -\begin{tcolorbox}[title=Zoom 1.00,watermark zoom=1.00] +\begin{tcolorbox}[title=Zoom 1.0,watermark zoom=1.0] \lipsum[2] \end{tcolorbox}\hfill% -\begin{tcolorbox}[title=Zoom 0.50,watermark zoom=0.50] +\begin{tcolorbox}[title=Zoom 0.5,watermark zoom=0.5] \lipsum[2] \end{tcolorbox}% \end{dispExample} @@ -666,13 +666,40 @@ This example uses a public domain picture from\\ \clearpage +\begin{docTcbKey}{watermark overzoom}{=\meta{fraction}}{no default, initially unset} + Sets the overzoom value for a watermark. The overzoom respects the aspect ratio. + The value $1.0$ means to fill the whole box until the watermark touches + all four sides of the frame. +\begin{dispExample} +\tcbset{enhanced,colback=white,colframe=blue!50!black,fonttitle=\bfseries, + watermark opacity=0.5, + watermark graphics=lichtspiel.jpg,nobeforeafter,width=(\linewidth-2mm)/2} + +\begin{tcolorbox}[title=Zoom 1.0,watermark zoom=1.0] +\lipsum[1] +\end{tcolorbox}\hfill% +\begin{tcolorbox}[title=Overzoom 1.0,watermark overzoom=1.0] +\lipsum[1] +\end{tcolorbox}% +\end{dispExample} +\end{docTcbKey} + +\begin{marker} +If a \refKey{/tcb/watermark overzoom} value of |1.0| is used in connection +with invisible top and bottom rules which still have a thickness greater than |0pt|, +the space of these invisible rules may not be covered by the watermark. +For example, this situation may occur during the breaking of \refKey{/tcb/enhanced} boxes. +To avoid this optical glitch, just set \refKey{/tcb/pad at break} to any desired value. +\end{marker} + +\clearpage \begin{docTcbKey}{watermark stretch}{=\meta{fraction}}{no default, initially unset} Sets the stretch value for a watermark. The stretch value is applied to width and height in relation to the box dimensions. It does not respect the aspect ratio. The value $1.0$ means to fill the whole box. \begin{dispExample} -\tcbset{enhanced,colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, - watermark graphics=Basilica_5.png,watermark opacity=0.15, +\tcbset{enhanced,colback=white,colframe=blue!50!black,fonttitle=\bfseries, + watermark graphics=lichtspiel.jpg,watermark opacity=0.5, nobeforeafter,width=(\linewidth-2mm)/2} \begin{tcolorbox}[title=Stretch 1.00,watermark stretch=1.00] @@ -696,6 +723,476 @@ This example uses a public domain picture from\\ \end{dispExample} \end{docTcbKey} +\clearpage + +\begin{docTcbKey}{clip watermark}{\colOpt{=\meta{boolean value}}}{default |true|, initially |true|} + Sets the watermark to be clipped to the interior area. +\begin{dispExample} +\tcbset{enhanced,colback=white,colframe=blue!50!white,fonttitle=\bfseries, + watermark opacity=0.5,watermark stretch=1.00,arc=3mm, + watermark graphics=lichtspiel.jpg} + +\begin{tcolorbox}[title=Clip (default),clip watermark] +\lipsum[1] +\end{tcolorbox} + +\begin{tcolorbox}[title=No clip,clip watermark=false] +\lipsum[1] +\end{tcolorbox}% +\end{dispExample} +\end{docTcbKey} + + + +\clearpage +\subsection{Clip Environments}\label{subsec:clipping} +The following clip environments are applicable for all skins which +use engines of type |path|, |pathfirst|, |pathmiddle|, or |pathlast|. +Especially, the skin \refSkin{enhanced} supports \emph{all} of them +and \refSkin{standard} \emph{none}. The typical area of application +is inside overlay code, see Section \ref{subsec:overlays} from +page \pageref{subsec:overlays}. + + +\begin{docEnvironment}{tcbclipframe}{} +Defines a |Tikz| scope which clips to the frame area path. +\begin{dispExample} +\makeatletter +\newtcolorbox{picturebox}[2][]{% + enhanced,frame hidden,interior hidden,fonttitle=\bfseries, + overlay={\begin{tcbclipframe}\node at (frame) + {\includegraphics[width=\tcb@width,height=\tcb@height]{#2}};\end{tcbclipframe}% + \begin{tcbclipinterior}\fill[white,opacity=0.75] + (frame.south west) rectangle (frame.north east);\end{tcbclipinterior}},#1} +\makeatother + +\begin{picturebox}[title=My Picture Box]{lichtspiel.jpg} +\lipsum[1] +\end{picturebox} +\end{dispExample} +\end{docEnvironment} + +\clearpage +\begin{docEnvironment}{tcbclipinterior}{} +Defines a |Tikz| scope which clips to the interior area path. +\begin{dispExample} +\begin{tcolorbox}[enhanced,title=My Title, + overlay={\begin{tcbclipinterior} + \draw[red,line width=1cm] (interior.north west)--(interior.south east); + \draw[red,line width=1cm] (interior.south west)--(interior.north east); + \end{tcbclipinterior}}] +\lipsum[1] +\end{tcolorbox} +\end{dispExample} +\end{docEnvironment} + +\begin{docEnvironment}{tcbcliptitle}{} +Defines a |Tikz| scope which clips to the title area path. +\begin{dispExample} +\begin{tcolorbox}[enhanced,title=My Title,colframe=blue,colback=yellow!10!white, + overlay={\begin{tcbcliptitle}\node at (title) + {\includegraphics[width=\linewidth]{lichtspiel.jpg}};\end{tcbcliptitle}}] +\lipsum[1] +\end{tcolorbox} +\end{dispExample} +\end{docEnvironment} + +\clearpage +\begin{docTcbKey}{clip title}{\colOpt{=\meta{boolean value}}}{default |true|, initially |false|} + Sets the title to be clipped to the title area. +\begin{dispExample} +\tcbset{enhanced,width=5cm,colframe=red!50!white,coltitle=black} + +\begin{tcolorbox}[title=\mbox{This is a title which is unbreakable and far too long}] +This is a tcolorbox. +\end{tcolorbox} + +\begin{tcolorbox}[title=\mbox{This is a title which is unbreakable and far too long}, + clip title] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + + +\begin{docTcbKey}{clip upper}{\colOpt{=\meta{boolean value}}}{default |true|, initially |false|} + Sets the upper part to be clipped to the interior area. +\begin{dispExample} +\newcommand{\mygraphics}[2][]{% + \tcbox[enhanced,boxsep=0pt,top=0pt,bottom=0pt,left=0pt, + right=0pt,boxrule=0.4pt,drop fuzzy shadow,clip upper, + colback=black!75!white,toptitle=2pt,bottomtitle=2pt,nobeforeafter, + center title,fonttitle=\small\sffamily,title=\detokenize{#2}] + {\includegraphics[width=\the\dimexpr(\linewidth-4mm)/2\relax]{#2}}} + +\mygraphics{lichtspiel.jpg}\hfill +\mygraphics{Basilica_5.png} +\end{dispExample} +\end{docTcbKey} + +\clearpage +The example for \refKey{/tcb/clip upper} sizes the box according to +the dimensions of the picture. To do it the other way around, the watermark +options provide an easy solution. +\begin{dispExample} +\newcommand{\mygraphics}[2][]{% + \tcbox[enhanced,capture=minipage,boxsep=0pt,top=0pt,bottom=0pt,left=0pt, + right=0pt,boxrule=0.4pt,drop fuzzy shadow,nobeforeafter, + colback=black!75!white,toptitle=2pt,bottomtitle=2pt, + center title,fonttitle=\small\sffamily,title=\detokenize{#2}, + width=(\linewidth-4mm)/2,height=6cm,colbacktitle={black}, + watermark zoom=1.0,watermark graphics={#2}]{}} + +\mygraphics{lichtspiel.jpg}\hfill +\mygraphics{Basilica_5.png} +\end{dispExample} + + +\begin{docTcbKey}{clip lower}{\colOpt{=\meta{boolean value}}}{default |true|, initially |false|} + Sets the lower part to be clipped to the interior area. +\begin{dispExample} +\tcbset{enhanced,width=5cm,colframe=red!50!black,text and listing} + +\begin{tcblisting}{} +Donau\-dampf\-schiff\-fahrts\-ka\-pi\-t\"ans\-m\"ut\-zen\-fran\-sen +\end{tcblisting} + +\begin{tcblisting}{clip lower} +Donau\-dampf\-schiff\-fahrts\-ka\-pi\-t\"ans\-m\"ut\-zen\-fran\-sen +\end{tcblisting} +\end{dispExample} +\end{docTcbKey} + + +\clearpage +\subsection{Border Line Option Keys}\label{subsec:borderline} +The following border line options are applicable for most skins which +use |tikzpicture| as \refKey{/tcb/graphical environment}. +Therefore, the skin \refSkin{standard} does not support these border lines, +but most other skins, e.\,g.\ \refSkin{enhanced}. + +The border lines are independent from the normal |tcolorbox| rules. +They may be used with or without the \refKey{/tcb/segmentation engine}. + +The border lines are stackable, i.\,e.\ several different border lines can be +used on the same |tcolorbox|. They are drawn \emph{after} the box frame and box +interior and \emph{before} overlays or watermarks. + +\begin{marker} +Technically, the normal |tcolorbox| rules result from a TikZ \emph{filling} +process. The border lines are created by a TikZ \emph{drawing} process. +This can be used to apply different effects. +\end{marker} + + +\begin{docTcbKey}{borderline}{=\marg{width}\marg{offset}\marg{options}}{no default, initially unset} + Adds a new border line to the stack of border lines. + This border line is drawn with the given \meta{width} and gets a + \meta{offset} computed from the frame outline. A positive \meta{offset} value + moves the borderline inside the |tcolorbox| and a negative \meta{offset} value + moves it outside without changing the bounding box.\\ + The border line is drawn along a TikZ path with the given TikZ \meta{options}. + Note that the TikZ |line width| option should not be used here.\\ + The border lines adapt to the rounded corners of the |tcolorbox|. An inside border + line will switch to sharp corners if necessary, an outside border line will + always be rounded if not set to |sharp corners|. +\begin{dispExample} +\begin{tcolorbox}[enhanced,title=Rounded corners,fonttitle=\bfseries,boxsep=5pt, + arc=8pt, + borderline={0.5pt}{0pt}{red}, + borderline={0.5pt}{5pt}{blue,dotted}, + borderline={0.5pt}{-5pt}{green,dashed} ] +This is a tcolorbox. +\end{tcolorbox} +\bigskip +\begin{tcolorbox}[enhanced,title=Sharp corners,fonttitle=\bfseries,boxsep=5pt, + arc=0pt,outer arc=0pt, + borderline={0.5pt}{0pt}{red}, + borderline={0.5pt}{5pt}{blue,dotted}, + borderline={0.5pt}{-5pt}{green,dashed,sharp corners} ] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample} + +\begin{dispExample} +% \usepackage{lipsum} +\begin{tcolorbox}[enhanced,arc=3mm,boxrule=1.5mm,boxsep=1.5mm, + colback=yellow!20!white, + colframe=blue, + borderline={1mm}{1mm}{white}, + borderline={1mm}{2mm}{red} ] + \lipsum[1] +\end{tcolorbox} +\end{dispExample} + + +\begin{dispExample} +% \usepackage{lipsum} +\begin{tcolorbox}[enhanced,arc=3mm,boxrule=1.5mm, + frame hidden,colback=blue!10!white, + borderline={1mm}{0mm}{blue,dotted} ] + \lipsum[2] +\end{tcolorbox} +\end{dispExample} + + +\begin{dispExample} +% \usepackage{lipsum} +\begin{tcolorbox}[enhanced,skin=enhancedmiddle, + frame hidden,interior hidden,top=0mm,bottom=0mm,boxsep=0mm, + borderline={0.75mm}{0mm}{red}, + borderline={0.75mm}{0.75mm}{red!50!yellow}, + borderline={0.75mm}{1.5mm}{yellow}, ] + \lipsum[3] +\end{tcolorbox} +\end{dispExample} + +\begin{dispExample} +% \usepackage{lipsum} +\newtcolorbox{mygreenbox}[2][]{% + enhanced,width=\linewidth-6pt, + enlarge top by=3pt,enlarge bottom by=3pt, + enlarge left by=3pt,enlarge right by=3pt, + title={#2},frame hidden,boxrule=0pt,top=1mm,bottom=1mm, + colframe=green!30!black, colbacktitle=green!50!yellow, + coltitle=black, colback=green!25!white, + borderline={0.5pt}{-0.5pt}{green!75!blue}, + borderline={1pt}{-3pt}{green!50!blue},#1} + +\begin{mygreenbox}{My title} + \lipsum[4] +\end{mygreenbox} +\end{dispExample} +\end{docTcbKey} + + +\begin{docTcbKey}{no borderline}{}{no default, initially set} + Removes all border lines if set before. +\end{docTcbKey} + + +\clearpage +\subsection{Shadow Option Keys}\label{subsec:shadows} +The following shadow options are applicable for most skins which +use |tikzpicture| as \refKey{/tcb/graphical environment}. +Therefore, the skin \refSkin{standard} does not support these shadows, +but most other skins, e.\,g.\ \refSkin{enhanced}. + +The shadows are stackable, i.\,e.\ several different shadows can be +used on the same |tcolorbox|. They are drawn \emph{before} the box frame is drawn. + + +\begin{docTcbKey}{shadow}{=\marg{xshift}\marg{yshift}\marg{offset}\marg{options}}{no default} + Adds a new shadow to the stack of shadows. + This shadow is follows the outline of the |tcolorbox| but is shifted by + \meta{xshift} and \meta{yshift}. The \meta{offset} value is a distance value + from the frame outline. A positive \meta{offset} value shrinks the shadow + and a negative \meta{offset} value enlarges the shadow. + The shadow is filled along a TikZ path with the given TikZ \meta{options}.\\ + The shadows adapt to the rounded corners of the |tcolorbox|. An shrinked shadow + will switch to sharp corners if necessary, an enlarged shadow may become + more rounded depending on several factors. + \begin{marker} + Shadows are not considered for the bounding box computation by default. + Large shadows may be overlaped by the following content. But, the + bounding box can be adapted if necessary. + \end{marker} + +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{enhanced,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My own shadow, + shadow={2mm}{-1mm}{0mm}{black!50!white}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Another shadow, + shadow={-1mm}{-2mm}{0mm}{fill=blue, + opacity=0.5}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Double shadow, + shadow={-1.5mm}{-1.5mm}{0mm}{fill=blue, + opacity=0.25}, + shadow={1.5mm}{-1.5mm}{0mm}{fill=red, + opacity=0.25}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Far shadow, + shadow={5.5mm}{-3.5mm}{2mm}{fill=black, + opacity=0.25}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip\bigskip +\begin{tcolorbox}[title=Halo shadow, + shadow={0mm}{0mm}{-1.5mm}% + {fill=yellow!75!red,opacity=0.5}] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + +\clearpage +\begin{docTcbKey}{fuzzy shadow}{=\marg{xshift}\marg{yshift}\marg{offset}\marg{step}\marg{options}}{no default} + Adds a new fuzzy shadow to the stack of shadows. Actually, this option + adds seversal shadows which appear like a shadow with a fuzzy border. + This fuzzy shadow is follows the outline of the |tcolorbox| but is shifted by + \meta{xshift} and \meta{yshift}. The \meta{offset} value is a distance value + from the frame outline. A positive \meta{offset} value shrinks the shadow + and a negative \meta{offset} value enlarges the shadow. + The \marg{step} value describes a shrink + offset used for the combination of the partial shadows. + The shadow is filled along a TikZ path with the given TikZ \meta{options} but + any |opacity| value will be ignored. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{enhanced,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My own shadow, + fuzzy shadow={2mm}{-1mm}{0mm}{0.1mm}% + {black!50!white}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Another shadow, + fuzzy shadow={-1mm}{-2mm}{0mm}{0.2mm}% + {fill=blue}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Double shadow, + fuzzy shadow={-1.5mm}{-1.5mm}{0mm}{0.1mm}% + {blue}, + fuzzy shadow={1.5mm}{-1.5mm}{0mm}{0.1mm}% + {red}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Far shadow, + fuzzy shadow={5.5mm}{-3.5mm}{0mm}{0.3mm}% + {black}] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip\bigskip +\begin{tcolorbox}[title=Glow shadow, + fuzzy shadow={0mm}{0mm}{-1.5mm}{0.15mm}% + {yellow!75!red}] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample*} + +\begin{dispExample} +\newtcolorbox{mybox}[1][]{enhanced, + fuzzy shadow={1.0mm}{-1.0mm}{0.12mm}{0mm}{blue!50!white}, + fuzzy shadow={-1.0mm}{-1.0mm}{0.12mm}{0mm}{red!50!white}, + fuzzy shadow={-1.0mm}{1.0mm}{0.12mm}{0mm}{green!50!white}, + fuzzy shadow={1.0mm}{1.0mm}{0.12mm}{0mm}{yellow!50!white},#1 +} + +\begin{mybox}[title=A multi shadow box] +This is a tcolorbox. +\end{mybox} +\end{dispExample} +\end{docTcbKey} + + +\clearpage + +\begin{docTcbKey}{drop shadow}{\colOpt{=\meta{color}}}{style, default |black!50!white|} + Adds a new shadow with standard dimensions to the stack of shadows. + Optionally, the \meta{color} for the shadow can be changed. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{enhanced,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My own shadow, + drop shadow] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Another shadow, + drop shadow=blue] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{drop fuzzy shadow}{\colOpt{=\meta{color}}}{style, default |black!50!white|} + Adds a new fuzzy shadow with standard dimensions to the stack of shadows. + Optionally, the \meta{color} for the shadow can be changed. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{enhanced,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My own shadow, + drop fuzzy shadow] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip +\begin{tcolorbox}[title=Another shadow, + drop fuzzy shadow=blue] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\clearpage +\begin{docTcbKey}{halo}{=\meta{size} \texttt{with} \meta{color}}{style, default |0.9mm with yellow|} + Adds a new halo shadow with the given \meta{color} + which overlaps the colorbox an all sides by \meta{size}. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{enhanced,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My own halo,halo] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip\bigskip +\begin{tcolorbox}[title=Another halo, + halo=2mm with green] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample*} +\end{docTcbKey} + + +\begin{docTcbKey}{fuzzy halo}{=\meta{size} \texttt{with} \meta{color}}{style, default |0.9mm with yellow|} + Adds a new fuzzy halo shadow with the given \meta{color} + which overlaps the colorbox an all sides by \meta{size} plus |0.48mm|. +\begin{dispExample*}{sbs,lefthand ratio=0.6} +\tcbset{enhanced,colback=red!5!white, + colframe=red!75!black,fonttitle=\bfseries} + +\begin{tcolorbox}[title=My own halo,fuzzy halo] +This is a tcolorbox. +\end{tcolorbox} +\par\bigskip\bigskip +\begin{tcolorbox}[title=Another halo, + fuzzy halo=2mm with green] +This is a tcolorbox. +\end{tcolorbox} +\end{dispExample*} + +\begin{dispExample} +\begin{tcolorbox}[blank, + fuzzy halo=2mm with red!50!white, + fuzzy halo=1mm with white,] +\lipsum[1] +\end{tcolorbox} +\end{dispExample} +\end{docTcbKey} + + + +\begin{docTcbKey}{no shadow}{}{no default} + Removes all shadows if set before. +\end{docTcbKey} + \clearpage @@ -759,8 +1256,9 @@ This example uses a public domain picture from\\ \end{dispExample} + \clearpage -\subsection{Skin family 'enhanced'} +\subsection{Skin Family 'enhanced'} \begin{marker} If you like the standard appearance of a |tcolorbox| but you want to have some 'enhanced' features, the |enhanced| skin is what you are looking for. @@ -835,10 +1333,9 @@ have some 'enhanced' features, the |enhanced| skin is what you are looking for. \begin{dispExample} -% \usetikzlibrary{shadows} % preamble % \usetikzlibrary{decorations.pathmorphing} % preamble \tcbset{skin=enhanced,fonttitle=\bfseries,boxrule=1mm, - frame style={draw=FireBrick,fill=Salmon,drop shadow}, + frame style={draw=FireBrick,fill=Salmon},drop fuzzy shadow, interior style={draw=FireBrick,top color=Salmon!10,bottom color=Salmon!20}, segmentation style={draw=FireBrick,solid,decorate, decoration={coil,aspect=0,segment length=10.1mm}}} @@ -851,9 +1348,37 @@ Of course, skins can be used for listings also. \end{tcblisting} \end{dispExample} +\begin{docTcbKey}{enhanced standard}{}{style, no value} + For unbreakable boxes, this is identical to using \refKey{/tcb/enhanced}. + But, for breakable boxes, the \emph{break sequence} is identical to the \refSkin{standard} skin, + see Section \ref{subsec:breaksequence} from page \pageref{subsec:breaksequence}. +\end{docTcbKey} + + \clearpage +\begin{docTcbKey}{blank}{}{style, initially unset} + This style relies on the skin \refSkin{enhanced}. All drawing operations + are disabled and all margins are set to |0pt|. +\begin{dispExample} +\begin{tcolorbox}[blank,watermark text=A blank box] +\lipsum[1] +\end{tcolorbox} +\end{dispExample} + +\begin{dispExample} +% \tcbuselibrary{fitting} +\newtcboxfit{\mybox}[1]{blank,width=4cm,height=7cm,top=4pt, + watermark text=#1} + +\begin{tabular}{|c|c|c|}\hline +A & B & C\\\hline +\mybox{A}{\lipsum[1]} & \mybox{B}{\lipsum[2]} & \mybox{C}{\lipsum[3]}\\\hline +\end{tabular} +\end{dispExample} +\end{docTcbKey} +\clearpage \begin{docCommand}{tcbline}{} Sometimes, a line is only a line. With \refCom{tcblower} you separate the box content into two functional units. |\tcbline| draws only a line @@ -1139,7 +1664,7 @@ Nevertheless, this skin can be applied independently. \end{dispExample} \clearpage -\subsection{Skin family 'bicolor'} +\subsection{Skin Family 'bicolor'} \begin{docSkin}{bicolor} This skin is quite similar to the \refSkin{standard} and \refSkin{enhanced} skin. But instead of a segmentation line, the optional lower part of the box is filled with a @@ -1375,15 +1900,15 @@ Nevertheless, this skin can be applied independently. \clearpage -\subsection{Skin family 'beamer'} +\subsection{Skin Family 'beamer'} \begin{docSkin}{beamer} This skin resembles boxes known from the |beamer| class and therefore is called 'beamer'. It uses the normal colors from the core package but shades - them a little bit. To use this skin, the |tikz| libraries |shadings| - and |shadows| have to be included in the preamble by: + them a little bit. To use this skin, the |tikz| library |shadings| + has to be included in the preamble by: \begin{dispListing} -\usetikzlibrary{shadings,shadows} +\usetikzlibrary{shadings} \end{dispListing} The appearance of the skin can be controlled by \refKey{/tcb/frame style} and \refKey{/tcb/interior style}, if needed. Here, the \emph{segmentation} @@ -1444,8 +1969,27 @@ This box looks like a box provided by the \texttt{beamer} class. \end{dispExample} +\begin{dispExample} +\begin{tcolorbox}[beamer,colframe=blue,colback=black, + watermark graphics=lichtspiel.jpg, + coltext=white,watermark opacity=0.75,watermark stretch=1.0, + title=Beamer Box with background picture] +\lipsum[1] +\end{tcolorbox} +\end{dispExample} + + +\begin{dispExample} +\newtcolorbox{myblock}[2][]{% + beamer,breakable,colback=LightBlue,colframe=DarkBlue,#1,title=#2}% + +\begin{myblock}{Beamerish \texttt{block}: \texttt{myblock}} +\lipsum[1] +\end{myblock} +\end{dispExample} +\clearpage \begin{docSkin}{beamerfirst} This is a flavor of \refSkin{beamer} which is used as a \emph{first} part in a break sequence for \refSkin{beamer}. @@ -1579,7 +2123,7 @@ Nevertheless, this skin can be applied independently. \clearpage -\subsection{Skin family 'widget'} +\subsection{Skin Family 'widget'} \begin{docSkin}{widget} This skin uses the normal colors from the core package but shades them a little bit. To use this skin, the |tikz| library |shadings| diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.theorems.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.theorems.tex index 4700bdc5dbd..ba46a78dfe0 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.theorems.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.theorems.tex @@ -412,11 +412,37 @@ referenced with the marker \texttt{cor:nullstellen}.\bigskip \end{Theorem} \end{dispExample} + +\begin{dispExample} +% \tcbuselibrary{skins} +\tcbmaketheorem{YetAnotherTheorem}{Theorem}{enhanced,frame hidden, + boxrule=2mm,titlerule=0mm,toptitle=1mm,bottomtitle=1mm, + fonttitle=\bfseries\large,fontupper=\normalsize, + coltitle=green!35!black,colbacktitle=green!15!white, + colback=green!50!yellow!15!white, + borderline={1pt}{0pt}{green!25!blue}, + }{mytheorem}{theo} + +\begin{YetAnotherTheorem}{Mittelwertsatz f\"{u}r $n$ Variable}{mittelwertsatz_n}% + Es sei $n\in\mathbb{N}$, $D\subseteq\mathbb{R}^n$ eine offene Menge und + $f\in C^{1}(D,\mathbb{R})$. Dann gibt es auf jeder Strecke + $[x_0,x]\subset D$ einen Punkt $\xi\in[x_0,x]$, so dass gilt + \begin{equation*} + f(x)-f(x_0) = \operatorname{grad} f(\xi)^{\top}(x-x_0) + \end{equation*} +\end{YetAnotherTheorem} +\end{dispExample} + + +\clearpage You need more attention for your theorems? Here, you are \ldots \begin{dispExample} % tcbuselibrary{skins} % preamble -\begin{Theorem}[enhanced,frame style={circular glow={fill=yellow}}, +\begin{Theorem}[enhanced, + fuzzy halo=3mm with yellow, + fuzzy halo=2mm with red, + fuzzy halo=1mm with yellow, watermark color=red!35!white, watermark text={Overacting\\Fundamental Theorem}]% {Fundamental Theorem of Theorems}{fundamental}% diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf Binary files differindex 08269fd3609..80af6a0abdd 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex index 2dc6d526ec6..0a157f82294 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex @@ -1,5 +1,5 @@ % \LaTeX-Main\ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcolorbox.tex: Manual %% %% ------------------------------------------------------------------------------------------- @@ -28,7 +28,6 @@ \usepackage[svgnames,table,hyperref]{xcolor} \usepackage{tikz} \usepackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref} -\urlstyle{sf} \usepackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm, marginparsep=5mm,marginparwidth=10mm, @@ -59,8 +58,12 @@ \usepackage{amsmath} \usepackage{lipsum} -\usepackage[listings,theorems,documentation,skins,breakable,hooks]{tcolorbox} +\usepackage{changepage} +\strictpagecheck + +\usepackage[all]{tcolorbox} \tcbset{skin=enhanced} +\urlstyle{sf} \tcbmakedocSubKey{docTcbKey}{tcb} \tcbmakedocSubKey{langTcbKey}{tcb/doclang} @@ -73,7 +76,11 @@ \def\refSkin#1{\ref@doc{skin:#1}} \makeatother -\newenvironment{marker}[1][]{\begin{tcolorbox}[marker,#1]}{\end{tcolorbox}} +\newtcolorbox{marker}[1][]{marker,#1} + +\def\version{2.32}% +\def\datum{2013/06/23}% +\makeindex \hypersetup{ pdftitle={Manual for the tcolorbox package}, @@ -82,12 +89,6 @@ pdfkeywords={colored boxes, LaTeX examples, theorems} } -\def\version{2.22}% -\def\datum{2013/05/15}% -\makeindex - - - \newcounter{texexp} \newcounter{texercise} \newcounter{mytheorem}[section] @@ -104,11 +105,12 @@ classoffset=1, % tcolorbox macros moretexcs={% core - endtcolorbox,endtcbverbatimwrite,newtcolorbox,newtcbox,tcbusetemp, - tcblower,tcbox,tcbset,tcbuselibrary,tcolorbox,tcbverbatimwrite, + endtcolorbox,endtcbverbatimwrite,newtcolorbox,newtcbox,newtcboxfit,tcbusetemp, + tcblower,tcbox,tcboxfit,tcbset,tcbuselibrary,tcolorbox,tcbverbatimwrite, % listings endtcblisting,newtcblisting, tcblisting,tcbinputlisting,tcbuselistingtext,tcbuselistinglisting,tcbusetemplisting, + tcbfitdim,tcbfitsteps, % theorems tcbmaketheorem,tcboxmath,tcbhighmath, % documentation @@ -128,19 +130,19 @@ % tcolorbox options morekeywords={% core adjusted,adjust,after,arc,auto,autoparskip,align, - before,bottom,boxsep,boxrule,bottomtitle,bottomrule,broken, - collower,coltext,coltitle,colback,colframe,colupper,center,code, + before,bottom,boxsep,boxrule,bottomtitle,bottomrule,broken,basedim, + collower,coltext,coltitle,colback,colframe,colupper,center,code,capture, equal,enlarge,enlargement,extrude, - fontupper,fontlower,fonttitle,first,floatplacement,float, + fontupper,fontlower,fonttitle,first,floatplacement,float,fit,fontsize,flushleft,flushright, group,gap, height, lowerbox,left,leftrule,lefttitle,leftupper,leftlower,lower,last,lefthand, - middle,minimum, + middle,minimum,maxstep,macros, notitle,natural,noparskip,nobeforeafter,nofloat, parskip,parbox, outer,oversize,overlay, right,rightrule,righttitle,rightupper,rightlower,righthand,ratio, - savelowerto,savedelimiter,space,split,shrink,sidebyside, + savelowerto,savedelimiter,space,split,shrink,sidebyside,skip, title,top,toptitle,toprule,titlerule,tabularx,tikz,toggle,tight,tempfile,text, upper,unbroken, valign, @@ -176,17 +178,17 @@ quote, settings, % skins - beamer,bicolor, + beamer,bicolor,blank,borderline,clip, colbacktitle,code,colbacklower, - draft, + draft,drop, enhanced,engine, - frame,freelance, + frame,freelance,fuzzy, graphical,geometry,graphics, - hidden, + hidden,halo, interior, opacity, nodes, - skin,segmentation,stretch,standard, + skin,segmentation,stretch,standard,shadow, titled, watermark,widget, zoom, @@ -204,28 +206,31 @@ \tcbset{documentation listing style=mydocumentation,% sbs/.style={sidebyside,before lower app={\tcbset{sidebyside=false}}},% innerbox/.style={standard,frame style={},colback=black!5!white,colframe=black!75!white,coltext=black,coltitle=white,docexample/.style={docexample original}, - frame code,interior code,interior titled code,segmentation code}, + frame code,interior code,interior titled code,segmentation code,no shadow}, docexample/.style={colframe=Navy!50!ExampleFrame,colback=Navy!5!ExampleBack,fontlower=\footnotesize, - bicolor,colbacklower=ExampleBack!5!white,frame style={drop shadow}, + bicolor,colbacklower=ExampleBack!5!white,drop fuzzy shadow,%, before upper={\tcbset{innerbox}},before lower={\tcbset{innerbox}}}, docexample original/.style={colframe=ExampleFrame,colback=ExampleBack,fontlower=\footnotesize,frame style={}}, } -%\includeonly{tcolorbox.doc.coremacros,tcolorbox.doc.theorems} +%\includeonly{tcolorbox.doc.abstract} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} + \include{tcolorbox.doc.abstract} \include{tcolorbox.doc.intro} \include{tcolorbox.doc.coremacros} \include{tcolorbox.doc.coreoptions} \include{tcolorbox.doc.verbatim} +\include{tcolorbox.doc.skins} \include{tcolorbox.doc.listings} \include{tcolorbox.doc.theorems} -\include{tcolorbox.doc.documentation} -\include{tcolorbox.doc.skins} \include{tcolorbox.doc.breakable} +\include{tcolorbox.doc.fitting} \include{tcolorbox.doc.hooks} +\include{tcolorbox.doc.documentation} \include{tcolorbox.doc.references} \include{tcolorbox.doc.index} \end{document} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex index b6b98be075f..455d18d6686 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbbreakable.code.tex: Code for breakable colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@breakable@loaded{} +\tcb@set@library@version{2.32} \let\tcb@parboxrestore@true=\tcb@parboxrestore \def\tcb@parboxrestore@false{\vskip-\parskip} @@ -103,9 +102,6 @@ \tcb@comp@h@page% % % height calculation - %\tcbdimto\tcb@h@padding{\kvtcb@bbtop@stand+\kvtcb@bbbottom@stand+\kvtcb@top@rule@stand+\kvtcb@bottom@rule@stand+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom}% - % - %\tcbdimto\tcb@h@total{\tcb@h@before+\tcb@h@after+\tcb@h@padding+\tcb@h@padtitle+\tcb@h@upper+\tcb@h@segment+\tcb@h@lower}% \tcb@comp@h@total@standalone% % \let\tcb@split@next=\relax% @@ -251,7 +247,7 @@ \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@before-\tcb@h@padding@first-\tcb@h@padtitle}% \ifdim\tcb@split@dim<\tcb@h@upper\relax% \tcb@split@upper@box% - \ifvoid\tcb@totalupperbox% + \ifdim\wd\tcb@totalupperbox=0pt\relax% \iftcb@lowerspace% \tcb@sdraw@U% \let\tcb@split@next=\tcb@split@SL% @@ -275,7 +271,7 @@ \fi% \else \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@standalone% \tcb@drawcolorbox@standalone% \else% @@ -318,7 +314,7 @@ \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@padding@middle-\tcb@h@padtitle}% \ifdim\tcb@split@dim<\tcb@h@upper\relax% \tcb@split@upper@box% - \ifvoid\tcb@totalupperbox% + \ifdim\wd\tcb@totalupperbox=0pt\relax% \iftcb@lowerspace% \tcb@sdraw@U% \let\tcb@split@next=\tcb@split@SL% @@ -339,7 +335,7 @@ \let\tcb@split@next=\tcb@split@SL% \else \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@last% \tcb@sdraw@USL% \else% @@ -374,7 +370,7 @@ \tcb@split@setstate@middle% \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@padding@middle+\kvtcb@top+\kvtcb@boxsep-\tcb@h@padtitle-\tcb@h@segment}% \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@last% \tcb@sdraw@SL% \else @@ -403,7 +399,7 @@ \tcb@split@setstate@middle% \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@padding@middle-\tcb@h@padtitle}% \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@last% \tcb@sdraw@L% \else @@ -424,6 +420,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -435,7 +432,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% @@ -454,6 +451,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -464,7 +462,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% @@ -482,6 +480,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -493,7 +492,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@lower% @@ -511,6 +510,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -521,7 +521,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@lower% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex index 7cb9b5cf1d2..2bd4ad3b087 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbdocumentation.code.tex: Code for LaTeX documentations %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@documentation@loaded{} +\tcb@set@library@version{2.32} \tcbuselibrary{listings} @@ -84,6 +83,7 @@ index actual/.store in=\idx@actual, index quote/.store in=\idx@quote, index level/.store in=\idx@level, + index format/.store in=\idx@format, } % styles @@ -104,6 +104,7 @@ % presets \tcbset{ + index format=pgf, english language, documentation listing style=tcbdocumentation, index default settings, @@ -114,7 +115,9 @@ after example=, } -\AtBeginDocument{\hypersetup{ +\AtBeginDocument{% + \csname tcb@doc@index@\idx@format\endcsname% + \hypersetup{ citecolor=\kvtcb@colhyper, linkcolor=\kvtcb@colhyper, urlcolor=\kvtcb@colhyper, @@ -208,22 +211,31 @@ {\endlist} %--- index macros taken from pgfmanual-en-macros -\def\index@prologue{\section*{\kvtcb@text@index}\addcontentsline{toc}{section}{\kvtcb@text@index}% - \par\noindent% -} -\c@IndexColumns=2 +\def\tcb@doc@index@pgf{% + \def\index@prologue{\section*{\kvtcb@text@index}\addcontentsline{toc}{section}{\kvtcb@text@index}% + \par\noindent% + }% + \c@IndexColumns=2 \def\theindex{\@restonecoltrue \columnseprule \z@ \columnsep 29\p@ \twocolumn[\index@prologue]% - \parindent -30pt% - \columnsep 15pt% - \parskip 0pt plus 1pt% - \leftskip 30pt% - \rightskip 0pt plus 2cm% - \small% - \def\@idxitem{\par}% - \let\item\@idxitem\ignorespaces} - \def\endtheindex{\onecolumn} -\def\noindexing{\let\index=\@gobble} + \parindent -30pt% + \columnsep 15pt% + \parskip 0pt plus 1pt% + \leftskip 30pt% + \rightskip 0pt plus 2cm% + \small% + \def\@idxitem{\par}% + \let\item\@idxitem\ignorespaces} + \def\endtheindex{\onecolumn}% + \def\noindexing{\let\index=\@gobble}% +} +\def\tcb@doc@index@doc{% + \let\index@Com=\SpecialMainIndex%% + \let\index@Env=\SpecialMainEnvIndex% + \tcbset{index german settings}% + \EnableCrossrefs% + \PageIndex% +} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex new file mode 100644 index 00000000000..174b062f093 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex @@ -0,0 +1,269 @@ +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) +%% tcbfitting.code.tex: Code for fit boxes +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2012 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% 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 +\tcb@set@library@version{2.32} + +\newdimen\tcbfitdim +\newdimen\tcb@lowerfitdim +\newdimen\tcb@upperfitdim +\newif\iftcb@continue + +\tcbset{% + fit/.style={capture=fitbox},% + fit to/.style args={#1 and #2}{capture=fitbox,width=#1,height=#2},% + fit to height/.style={capture=fitbox,height=#1},% + fit basedim/.code={\def\kvtcb@fit@basedim{#1}\tcbfitdim\kvtcb@fit@basedim},% + fit skip/.store in=\kvtcb@fit@skip,% + fit fontsize macros/.code={% + \renewcommand\tiny{\tcb@setfontsize\tiny{0.5}}% + \renewcommand\scriptsize{\tcb@setfontsize\scriptsize{0.7}}% + \renewcommand\footnotesize{\tcb@setfontsize\footnotesize{0.8}}% + \renewcommand\small{\tcb@setfontsize\small{0.9}}% + \renewcommand\normalsize{\tcb@setfontsize\normalsize{1}}% + \renewcommand\large{\tcb@setfontsize\large{1.2}}% + \renewcommand\Large{\tcb@setfontsize\Large{1.44}}% + \renewcommand\LARGE{\tcb@setfontsize\LARGE{1.728}}% + \renewcommand\huge{\tcb@setfontsize\huge{2.0736}}% + \renewcommand\Huge{\tcb@setfontsize\Huge{2.48832}}},% + fit height plus/.dimstore in=\kvtcb@fit@plus@height,% + fit width plus/.dimstore in=\kvtcb@fit@plus@width,% + fit height from/.style args={#1 to #2}{fit,height={#1},fit height plus={#2-#1}}, + fit width from/.style args={#1 to #2}{fit,width={#1},fit width plus={#2-#1}}, + fit maxstep/.store in=\kvtcb@fit@maxstep,% + fit maxfontdiff/.store in=\kvtcb@fit@maxfontdiff,% + fit maxfontdiffgap/.store in=\kvtcb@fit@maxfontdiffgap,% + fit maxwidthdiff/.store in=\kvtcb@fit@maxwidthdiff,% + fit maxwidthdiffgap/.store in=\kvtcb@fit@maxwidthdiffgap,% +} + +\tcbset{% + fit basedim=10pt,fit skip=1.2, + fit height plus=0pt,fit width plus=0pt, + fit maxstep=20,fit maxfontdiff=0.1pt,fit maxfontdiffgap=1pt, + fit maxwidthdiff=1pt,fit maxwidthdiffgap=10pt, +} + +\def\tcb@@capture@fitbox{% + \let\endtcolorbox=\relax% + \Collect@Body\tcbox@inner@fitbox% +} + + +\def\tcbfontsize#1{\fontsize{#1\tcbfitdim}{#1\dimexpr\kvtcb@fit@skip\tcbfitdim}\selectfont} + +\def\tcb@setfontsize#1#2{\@setfontsize#1{#2\tcbfitdim}{#2\dimexpr\kvtcb@fit@skip\tcbfitdim}} + +\long\def\tcbox@inner@fitbox#1{% + \tcbset{breakable@false,sidebyside=false}% + \let\tcb@val@raisebase=\tcb@zpt% + \unless\ifdefined\tcb@height@fixed% + \tcbset{height=\kvtcb@width}% + \fi% + \tcb@hasLowerfalse% + % + \count@\z@% + \tcbfitdim\kvtcb@fit@basedim% + % + % + \def\tcb@fit@@box{% + \tcbdimto\tcb@fit@@line{\kvtcb@fit@skip\tcbfitdim}% + \tcbdimto\tcb@w@upper{\tcb@width-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@leftupper-\kvtcb@rightupper}% + \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}% + \color{\kvtcb@colupper}% + \kvtcb@fontupper\fontsize{\tcbfitdim}{\tcb@fit@@line}\selectfont% + \kvtcb@before@upper#1\kvtcb@after@upper% + \end{tcb@savebox}% + \tcbdimto\tcb@fit@@h{\ht\tcb@upperbox+\dp\tcb@upperbox}% + \tcbdimto\tcb@fit@@target{\tcb@height@fixed-\kvtcb@top@rule@stand-\kvtcb@bottom@rule@stand-\kvtcb@top-\kvtcb@bottom-\kvtcb@boxsep*2-\tcb@h@titletotal}% + \advance\count@ 1\relax% + }% + \def\tcb@fit@@box@titled{% + \tcb@set@@dim@and@title% + \iftcb@hasTitle% + \tcbdimto\tcb@h@titletotal{\ht\tcb@titlebox+\dp\tcb@titlebox+\kvtcb@title@rule+\kvtcb@boxsep*2+\kvtcb@toptitle+\kvtcb@bottomtitle}% + \else% + \let\tcb@h@titletotal=\tcb@zpt% + \fi% + \tcb@fit@@box% + } + % + \tcb@fit@@box@titled% + % + % height fit + \ifdim\kvtcb@fit@plus@height>0pt\relax% + \let\tcb@fit@@minheight=\tcb@height@fixed% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \ifdim\dimexpr\tcb@fit@@h>\dimexpr\tcb@fit@@target+\kvtcb@fit@plus@height\relax% + \tcbdimto\tcb@height@fixed{\tcb@height@fixed+\kvtcb@fit@plus@height}% + \tcbdimto\tcb@fit@@target{\tcb@fit@@target+\kvtcb@fit@plus@height}% + \else% + \tcbdimto\tcb@height@fixed{\tcb@height@fixed+\tcb@fit@@h-\tcb@fit@@target}% + \let\tcb@fit@@target=\tcb@fit@@h% + \fi% + \fi% + \fi% + % + % width fit + \ifdim\kvtcb@fit@plus@width>0pt\relax% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@lowerfitdim\kvtcb@width% + \tcb@upperfitdim\dimexpr\kvtcb@width+\kvtcb@fit@plus@width\relax% + \tcbdimto\kvtcb@width{\tcb@upperfitdim}% + \tcb@fit@@box@titled% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \else% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcbdimto\kvtcb@width{(\tcb@lowerfitdim+\tcb@upperfitdim)/2}% + \loop% + \tcb@fit@@box@titled% + \tcb@continuetrue% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxwidthdiff\relax% + \tcb@continuefalse% + \else% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxwidthdiffgap\relax% + \ifdim\dimexpr\tcb@fit@@gap<\tcb@fit@@line\relax% + \tcb@continuefalse% + \fi% + \fi% + \fi% + \else% + \tcb@continuefalse% + \fi% + \iftcb@continue% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@lowerfitdim\kvtcb@width% + \tcbdimto\kvtcb@width{(\tcb@lowerfitdim+\tcb@upperfitdim)/2}% + \else% + \tcb@upperfitdim\kvtcb@width% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcbdimto\kvtcb@width{(\tcb@lowerfitdim+\tcb@upperfitdim)/2}% + \fi% + \else% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcbdimto\kvtcb@width{\tcb@upperfitdim}% + \tcb@fit@@box@titled% + \fi% + \fi% + \iftcb@continue \repeat% + \fi% + \fi% + \fi% + \fi% + \fi% + % + % font fit + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@continuetrue% + \loop% + \tcbfitdim.5\tcbfitdim% + \tcb@fit@@box% + \ifnum\count@=\kvtcb@fit@maxstep\relax% + \tcb@continuefalse% + \else% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \ifdim\tcbfitdim<18000sp\relax% + \count@\kvtcb@fit@maxstep\relax% + \tcb@continuefalse% + \fi% + \else% + \tcb@continuefalse% + \fi% + \fi% + \iftcb@continue \repeat% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcb@lowerfitdim\tcbfitdim% + \tcb@upperfitdim2\tcbfitdim% + \tcbfitdim1.5\tcbfitdim% + \loop% + \tcb@fit@@box% + \tcb@continuetrue% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxfontdiff\relax% + \tcb@continuefalse% + \else% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxfontdiffgap\relax% + \ifdim\dimexpr\tcb@fit@@gap<\tcb@fit@@line\relax% + \tcb@continuefalse% + \fi% + \fi% + \fi% + \else% + \tcb@continuefalse% + \fi% + \iftcb@continue% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@upperfitdim\tcbfitdim% + \advance\tcbfitdim\tcb@lowerfitdim% + \tcbfitdim0.5\tcbfitdim% + \else% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcb@lowerfitdim\tcbfitdim% + \advance\tcbfitdim\tcb@upperfitdim% + \tcbfitdim0.5\tcbfitdim% + \fi% + \else% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcbfitdim\tcb@lowerfitdim% + \tcb@fit@@box% + \fi% + \fi% + \iftcb@continue \repeat% + \fi% + \fi% + \fi% + % + % last height fit + \ifdim\kvtcb@fit@plus@height>0pt\relax% + \ifdim\dimexpr\tcb@fit@@h<\tcb@fit@@target\relax% + \tcbdimto\tcb@temp{\tcb@height@fixed+\tcb@fit@@h-\tcb@fit@@target}% + \ifdim\dimexpr\tcb@temp<\tcb@fit@@minheight\relax% + \else% + \let\tcb@height@fixed=\tcb@temp% + \fi% + \fi% + \fi% + % + \edef\tcbfitsteps{\the\count@}% + \tcb@draw@color@box% +} + + +\newcommand{\tcboxfit}[2][]{% + \tcb@ox{capture=fitbox,#1}{#2}% +} + +\long\def\tcb@newtcboxfit#1#2{\newcommand{#1}{\tcboxfit[#2]}} + +\long\def\tcb@new@tcboxfit#1[#2]#3{\newcommand{#1}[#2]{\tcboxfit[#3]}} + +\long\def\tcb@new@@tcboxfit#1[#2][#3]#4{\newcommand{#1}[#2][#3]{\tcboxfit[#4]}} + +\long\def\new@tcboxfit#1[#2]{% + \@ifnextchar[{\tcb@new@@tcboxfit{#1}[#2]}{\tcb@new@tcboxfit{#1}[#2]}} + +\long\def\newtcboxfit#1{% + \@ifnextchar[{\new@tcboxfit{#1}}{\tcb@newtcboxfit{#1}}} + + diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex index 3a5dbc4f98f..1cc71312634 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- @@ -17,27 +17,8 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@hooks@loaded{} - -% expandonce from etoolbox -\newcommand{\tcb@expandonce}[1]{\unexpanded\expandafter{#1}} - -% slim version of etoolbox'es more general macro -\newcommand{\tcb@appto}[2]{% - \ifx#1\relax% - \edef#1{\unexpanded{#2}}% - \else% - \edef#1{\tcb@expandonce#1\unexpanded{#2}}% - \fi} - -% slim version of etoolbox'es more general macro -\newcommand{\tcb@preto}[2]{% - \ifx#1\relax% - \edef#1{\unexpanded{#2}}% - \else% - \edef#1{\unexpanded{#2}\tcb@expandonce#1}% - \fi} +%\makeatletter +\tcb@set@library@version{2.32} \tcbset{% before upper app/.code={\tcb@appto\kvtcb@before@upper{#1}},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex index 3c12ec06328..e3b5c89614e 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcblistings.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,8 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@listings@loaded{} +%\makeatletter +\tcb@set@library@version{2.32} \RequirePackage{listings}[2007/02/22] @@ -119,8 +119,9 @@ \tcbset{% listing file/.store in=\kvtcb@listingfile,% listing options/.store in=\kvtcb@listingoptions,% - comment/.store in=\kvtcb@listingcomment,% listing style/.style={listing options={style=#1}},% + no listing options/.style={listing options=},% + comment/.store in=\kvtcb@listingcomment,% listing and text/.code={\tcb@set@listing@process{\tcb@listing@listingAndText}},% text and listing/.code={\tcb@set@listing@process{\tcb@listing@textAndListing}},% listing and comment/.code={\tcb@set@listing@process{\tcb@listing@listingAndComment}},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex index bc2b02ebd0b..9288f75428e 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8 %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@listingsutf8@loaded{} +\tcb@set@library@version{2.32} \RequirePackage{listingsutf8}[2011/11/10] \tcbuselibrary{listings} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex index 9c2bf760b1f..0d585183416 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbskins.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@skins@loaded{} +\tcb@set@library@version{2.32} \RequirePackage{tikz}[2010/10/13] @@ -118,9 +117,10 @@ } \long\def\tcb@pseudo@segmentation#1{% -{\parskip\z@\par\nointerlineskip}\begingroup% +{\parskip\z@\par\nointerlineskip\hfilneg\kern-\@totalleftmargin}\begingroup% \begin{tikzpicture}% - \path[use as bounding box] (0,{\the\dimexpr-\kvtcb@middle-\kvtcb@boxsep\relax}) rectangle (0,{\the\dimexpr\kvtcb@middle+\kvtcb@boxsep\relax}); + \path[use as bounding box] (0,{\the\dimexpr-\kvtcb@middle-\kvtcb@boxsep\relax}) + rectangle (\linewidth,{\the\dimexpr\kvtcb@middle+\kvtcb@boxsep\relax}); \node[line width=0mm,inner sep=0mm,draw=none,fill=none,rectangle, name=segmentation,at={({\the\dimexpr-#1-\kvtcb@boxsep\relax},0)},right,% minimum width=\tcb@innerwidth,minimum height=\the\dimexpr\kvtcb@middle*2\relax]{}; @@ -268,43 +268,66 @@ } -\tcbset{skin@enhanced/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{% + base@unbroken/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@unbroken},% + set@extensions@postframe={\tcb@draw@border@unbroken\tcb@apply@overlay},% + },% + base@first/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@first},% + set@extensions@postframe={\tcb@draw@border@first\tcb@apply@overlay},% + },% + base@middle/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@middle},% + set@extensions@postframe={\tcb@draw@border@middle\tcb@apply@overlay},% + },% + base@last/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@last},% + set@extensions@postframe={\tcb@draw@border@last\tcb@apply@overlay},% + },% +} + +\tcbset{skin@enhanced/.style={base@unbroken,% frame engine=path,interior titled engine=path, interior engine=path,segmentation engine=path,title engine=path, skin first=enhancedfirst,skin middle=enhancedmiddle,skin last=enhancedlast}, - enhanced/.style={skin=enhanced}} + enhanced/.style={skin=enhanced},% + enhanced standard/.style={skin=enhanced, + skin first=enhanced,skin middle=enhanced,skin last=enhanced},% + blank/.style={enhanced,frame hidden,interior hidden,segmentation hidden,% + arc=0pt,boxsep=0pt,top=0pt,bottom=0pt,left=0pt,right=0pt,boxrule=0pt,% + bottomtitle=6pt,middle=3pt},% +} -\tcbset{skin@enhancedfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@enhancedfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=pathfirst, interior engine=pathfirst,segmentation engine=path,title engine=pathfirst, skin first=enhancedfirst,skin middle=enhancedmiddle,skin last=enhancedmiddle }} -\tcbset{skin@enhancedmiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@enhancedmiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=pathmiddle, interior engine=pathmiddle,segmentation engine=path,title engine=pathmiddle, skin first=enhancedmiddle,skin middle=enhancedmiddle,skin last=enhancedmiddle }} -\tcbset{skin@enhancedlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@enhancedlast/.style={base@last,% frame engine=pathlast,interior titled engine=pathlast, interior engine=pathlast,segmentation engine=path,title engine=pathlast, skin first=enhancedmiddle,skin middle=enhancedmiddle,skin last=enhancedlast }} -\tcbset{skin@freelance/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@freelance/.style={base@unbroken,% frame engine=freelance,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=freelance, skin first=freelance,skin middle=freelance,skin last=freelance}, freelance/.style={skin=freelance}} -\tcbset{skin@bicolor/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolor/.style={base@unbroken,% frame engine=path,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=path, interior titled code={% @@ -329,8 +352,7 @@ skin first=bicolorfirst,skin middle=bicolormiddle,skin last=bicolorlast}, bicolor/.style={skin=bicolor}} -\tcbset{skin@bicolorfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolorfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathfirst, interior titled code={% @@ -355,8 +377,7 @@ skin first=bicolorfirst,skin middle=bicolormiddle,skin last=bicolormiddle }} -\tcbset{skin@bicolormiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolormiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathmiddle, interior titled code={% @@ -381,8 +402,7 @@ skin first=bicolormiddle,skin middle=bicolormiddle,skin last=bicolormiddle }} -\tcbset{skin@bicolorlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolorlast/.style={base@last,% frame engine=pathlast,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathlast, interior titled code={% @@ -411,8 +431,7 @@ \tikzset{beamer@color/.style={top color=\kvtcb@colback,bottom color=\kvtcb@colback!85!black}} \tcbset{% - skin@beamer/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamer/.style={base@unbroken,% frame engine=path,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=path, interior titled code={% @@ -431,12 +450,12 @@ segmentation code={\iftcb@sidebyside\tcb@drawlower@path\else\tcb@drawspec@LR{beamer@color}\fi},% skin first=beamerfirst,skin middle=beamermiddle,skin last=beamerlast}, beamer/.style={skin=beamer,boxrule=0mm,titlerule=1mm,toptitle=0.5mm,arc=2mm,fonttitle=\bfseries, - frame style={fill=\kvtcb@colframe,drop shadow}}, + drop fuzzy shadow, + }, } \tcbset{% - skin@beamerfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamerfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathfirst, interior titled code={% @@ -455,8 +474,7 @@ skin first=beamerfirst,skin middle=beamermiddle,skin last=beamermiddle}} \tcbset{% - skin@beamermiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamermiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathmiddle, interior titled code={% @@ -476,8 +494,7 @@ skin first=beamermiddle,skin middle=beamermiddle,skin last=beamermiddle}} \tcbset{% - skin@beamerlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamerlast/.style={base@last,% frame engine=pathlast,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathlast, interior titled code={% @@ -508,8 +525,7 @@ \tikzset{widget@color/.style={left color=\kvtcb@colframe!75!white,right color=\kvtcb@colframe!75!white!25!\kvtcb@colback}} -\tcbset{skin@widget/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widget/.style={base@unbroken,% frame engine=path,interior titled engine=path, interior engine=path,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@path}}, @@ -519,16 +535,14 @@ titlerule=0mm,toprule at break=0mm}, } -\tcbset{skin@widgetfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widgetfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=pathfirst, interior engine=pathfirst,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathfirst}}, segmentation code={\tcb@drawspec@widgetsegment},% skin first=widgetfirst,skin middle=widgetmiddle,skin last=widgetmiddle}} -\tcbset{skin@widgetmiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widgetmiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=pathmiddle, interior engine=pathmiddle,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathmiddle}}, @@ -536,13 +550,12 @@ skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetmiddle}} -\tcbset{skin@widgetlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widgetlast/.style={base@last,% frame engine=pathlast,interior titled engine=pathlast, interior engine=pathlast,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathlast}}, segmentation code={\tcb@drawspec@widgetsegment},% - skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetlast}} + skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetlast}} \tcbset{skin@draft/.style={clear@spec,% @@ -590,7 +603,7 @@ +(\tcb@w@lower,\tcb@height@upper); \fi% \or% - \ifvoid\tcb@upperbox + \ifdim\wd\tcb@upperbox=0pt\relax \path[fill=white,draw,dotted] ([xshift={\kvtcb@boxsep},yshift={\kvtcb@boxsep+\tcb@break@bottomsep}]interior.south west) rectangle ([xshift={-\kvtcb@boxsep},yshift={-\kvtcb@boxsep-\tcb@break@topsep}]interior.north east); @@ -627,9 +640,46 @@ \path[draw=blue!10!white,double,line width=1pt,dashed,opacity=0.3] (current bounding box.south west) rectangle (current bounding box.north east); \pgfsetfillopacity{0.3} }, - interior titled code=,interior code=,overlay=,}, + set@extensions@postframe={},% + interior titled code=,interior code=,}, draft/.style={skin=draft}} +\def\tcb@clip@interior{% + \begingroup% + \tcbset{interior hidden}% + \tcb@spec{forced clip}% + \def\tcb@spec##1{}% + \iftcb@hasTitle% + \csname tcb@drawwithtitle@\kvtcb@engine@interiortitled\endcsname% + \else% + \csname tcb@drawwithouttitle@\kvtcb@engine@interior\endcsname% + \fi% + \endgroup% +} + +\def\tcb@clip@frame{% + \begingroup% + \tcbset{frame hidden}% + \tcb@spec{forced clip}% + \def\tcb@spec##1{}% + \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% + \endgroup% +} + +\def\tcb@clip@title{% + \begingroup% + \tcbset{title hidden}% + \tcb@spec{forced clip}% + \def\tcb@spec##1{}% + \iftcb@hasTitle% + \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% + \fi% + \endgroup% +} + +\newenvironment{tcbclipinterior}{\begin{scope}\tcb@clip@interior}{\end{scope}} +\newenvironment{tcbclipframe}{\begin{scope}\tcb@clip@frame}{\end{scope}} +\newenvironment{tcbcliptitle}{\begin{scope}\tcb@clip@title}{\end{scope}} \newbox\tcb@waterbox @@ -648,11 +698,23 @@ \ifdim\dimexpr\tcb@scale@x pt\relax<\dimexpr\tcb@scale@y pt\relax\let\tcb@scale@y=\tcb@scale@x\else\let\tcb@scale@x=\tcb@scale@y\fi% } -\def\tcb@drawspec@watermark{% +\def\tcb@comp@wm@overzoom{% + \tcb@setratiorobust\tcb@scale@x{\dimexpr\kvtcb@watermark@factor\dimexpr\tcb@innerwidth\relax\relax}{\wd\tcb@waterbox}% + \tcb@setratiorobust\tcb@scale@y{\dimexpr\kvtcb@watermark@factor\dimexpr\tcb@innerheight\relax\relax}{\ht\tcb@waterbox+\dp\tcb@waterbox}% + \ifdim\dimexpr\tcb@scale@x pt\relax>\dimexpr\tcb@scale@y pt\relax\let\tcb@scale@y=\tcb@scale@x\else\let\tcb@scale@x=\tcb@scale@y\fi% +} + +\def\tcb@drawspec@watermark@@noclip{% \tcb@comp@wm% \node[opacity=\kvtcb@watermark@opacity,anchor=center] at (interior) {\scalebox{\tcb@scale@x}[\tcb@scale@y]{\box\tcb@waterbox}};% } +\def\tcb@drawspec@watermark@@clip{% + \begin{tcbclipinterior}% + \tcb@drawspec@watermark@@noclip% + \end{tcbclipinterior}% +} + \def\tcb@drawspec@watermark@tikz#1{% \setbox\tcb@waterbox=\hbox{\pgfinterruptpicture{\begin{tikzpicture}[color=\kvtcb@watermark@color]#1\end{tikzpicture}}\endpgfinterruptpicture}% \tcb@drawspec@watermark% @@ -667,10 +729,13 @@ \tcb@drawspec@watermark@tikz{\node[inner sep=0pt,align=flush center]{#1};}% } +\tikzset{forced clip/.code={\tikz@addmode{\tikz@mode@cliptrue}\let\tikz@options=\pgfutil@empty}} + \tcbset{% watermark opacity/.store in=\kvtcb@watermark@opacity,% watermark color/.store in=\kvtcb@watermark@color,% watermark zoom/.code={\def\kvtcb@watermark@factor{#1}\let\tcb@comp@wm=\tcb@comp@wm@zoom},% + watermark overzoom/.code={\def\kvtcb@watermark@factor{#1}\let\tcb@comp@wm=\tcb@comp@wm@overzoom},% watermark stretch/.code={\def\kvtcb@watermark@factor{#1}\let\tcb@comp@wm=\tcb@comp@wm@stretch},% % watermark tikz/.style={overlay={\tcb@drawspec@watermark@tikz{#1}}}, @@ -680,10 +745,48 @@ watermark text/.style={overlay={\tcb@drawspec@watermark@text{#1}}}, watermark text on/.style args={#1 is #2}{overlay #1={\tcb@drawspec@watermark@text{#2}}}, no watermark/.style={no overlay}, + clip watermark/.is choice, + clip watermark/true/.code={\let\tcb@drawspec@watermark=\tcb@drawspec@watermark@@clip}, + clip watermark/false/.code={\let\tcb@drawspec@watermark=\tcb@drawspec@watermark@@noclip}, + clip watermark/.default=true, % watermark opacity=1.00, watermark color=\kvtcb@colback!85!\kvtcb@colframe, watermark zoom=0.75, + clip watermark, +} + +\def\tcb@tdraw@title@clip{% + \begin{tcbcliptitle}% + \tcb@tdraw@title@core% + \end{tcbcliptitle}% +} + +\def\tcb@tdraw@upper@clip{% + \begin{tcbclipinterior}% + \tcb@tdraw@upper@core% + \end{tcbclipinterior}% +} + +\def\tcb@tdraw@lower@clip{% + \begin{tcbclipinterior}% + \tcb@tdraw@lower@core% + \end{tcbclipinterior}% +} + +\tcbset{% + clip title/.is choice, + clip title/true/.code={\let\tcb@tdraw@title=\tcb@tdraw@title@clip}, + clip title/false/.code={\let\tcb@tdraw@title=\tcb@tdraw@title@core}, + clip title/.default=true, + clip upper/.is choice, + clip upper/true/.code={\let\tcb@tdraw@upper=\tcb@tdraw@upper@clip}, + clip upper/false/.code={\let\tcb@tdraw@upper=\tcb@tdraw@upper@core}, + clip upper/.default=true, + clip lower/.is choice, + clip lower/true/.code={\let\tcb@tdraw@lower=\tcb@tdraw@lower@clip}, + clip lower/false/.code={\let\tcb@tdraw@lower=\tcb@tdraw@lower@core}, + clip lower/.default=true, } @@ -703,7 +806,175 @@ width=\the\dimexpr\linewidth+1.6cm\relax, frame style={top color=\kvtcb@colframe,bottom color=\kvtcb@colframe,middle color=yellow!75!\kvtcb@colframe}, title style={left color=\kvtcb@colframe,right color=\kvtcb@colframe,middle color=yellow!75!\kvtcb@colframe}, - watermark tikz={\draw[line width=2mm] (interior) circle (1cm) node{\fontfamily{ptm}\fontseries{b}\fontsize{20mm}{20mm}\selectfont!};}, + watermark tikz={\draw[line width=2mm] circle (1cm) node{\fontfamily{ptm}\fontseries{b}\fontsize{20mm}{20mm}\selectfont!};}, watermark zoom=0.75, }} + +\def\tcb@border@prepare#1#2{% + \tcbdimto\tcb@border@ts{#2+(#1)/2}% + \ifdim\dimexpr\tcb@outer@arc>\tcb@border@ts\relax% + \tcbdimto\tcb@border@arc{\tcb@outer@arc-\tcb@border@ts}% + \else% + \let\tcb@border@arc=\tcb@zpt% + \fi% +} + +\def\tcb@border@unbroken#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,rounded corners=\tcb@border@arc,#3] + ([xshift=\tcb@border@ts,yshift=\tcb@border@ts]frame.south west)% + rectangle ([xshift=-\tcb@border@ts,yshift=-\tcb@border@ts]frame.north east);% +} + +\def\tcb@border@first#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,rounded corners=\tcb@border@arc,#3] + ([xshift=\tcb@border@ts]frame.south west) -- + ([xshift=\tcb@border@ts,yshift=-\tcb@border@ts]frame.north west) -- + ([xshift=-\tcb@border@ts,yshift=-\tcb@border@ts]frame.north east) -- + ([xshift=-\tcb@border@ts]frame.south east);% +} + +\def\tcb@border@middle#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,#3] + ([xshift=\tcb@border@ts]frame.north west) -- ([xshift=\tcb@border@ts]frame.south west);% + \draw[line width=#1,#3] + ([xshift=-\tcb@border@ts]frame.north east) -- ([xshift=-\tcb@border@ts]frame.south east);% +} + +\def\tcb@border@last#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,rounded corners=\tcb@border@arc,#3] + ([xshift=\tcb@border@ts]frame.north west) -- + ([xshift=\tcb@border@ts,yshift=\tcb@border@ts]frame.south west) -- + ([xshift=-\tcb@border@ts,yshift=\tcb@border@ts]frame.south east) -- + ([xshift=-\tcb@border@ts]frame.north east);% +} + + +\def\tcb@draw@border@unbroken{% + \let\tcb@border=\tcb@border@unbroken% + \kvtcb@borderline% +} + +\def\tcb@draw@border@first{% + \let\tcb@border=\tcb@border@first% + \kvtcb@borderline% +} + +\def\tcb@draw@border@middle{% + \let\tcb@border=\tcb@border@middle% + \kvtcb@borderline% +} + +\def\tcb@draw@border@last{% + \let\tcb@border=\tcb@border@last% + \kvtcb@borderline% +} + +\tcbset{% + border@line app/.code={\tcb@appto\kvtcb@borderline{#1}},% + borderline/.style args={#1#2#3}{border@line app={\tcb@border{#1}{#2}{#3}}},% + no borderline/.code={\def\kvtcb@borderline{}},% + % + no borderline,% +} + +\def\tcb@shadow@prepare#1#2{% + \ifdim#2>0pt\relax\tcbdimto\tcb@shadow@ts{#1-#2/2}%% + \else\tcbdimto\tcb@shadow@ts{#1+#2/2}\fi% + \ifdim\dimexpr\tcb@outer@arc>\tcb@shadow@ts\relax% + \tcbdimto\tcb@shadow@arc{\tcb@outer@arc-\tcb@shadow@ts}% + \else% + \let\tcb@shadow@arc=\tcb@zpt% + \fi% +} + +\def\tcb@shadow@unbroken#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,rounded corners=\tcb@shadow@arc,#4]% + ([xshift=#1+#3,yshift=#2+#3]frame.south west)% + rectangle ([xshift=#1-#3,yshift=#2-#3]frame.north east);% +} + + +\def\tcb@shadow@first#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,rounded corners=\tcb@shadow@arc,#4] + ([xshift=#1+#3,yshift=#2+#3]frame.south west) -- + ([xshift=#1+#3,yshift=#2-#3]frame.north west) -- + ([xshift=#1-#3,yshift=#2-#3]frame.north east)[sharp corners] -- + ([xshift=#1-#3,yshift=#2+#3]frame.south east) -- cycle;% +} + +\def\tcb@shadow@middle#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,sharp corners,#4]% + ([xshift=#1+#3,yshift=#2+#3]frame.south west)% + rectangle ([xshift=#1-#3,yshift=#2-#3]frame.north east);% +} + +\def\tcb@shadow@last#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,rounded corners=\tcb@shadow@arc,#4] + ([xshift=#1-#3,yshift=#2-#3]frame.north east) -- + ([xshift=#1-#3,yshift=#2+#3]frame.south east) -- + ([xshift=#1+#3,yshift=#2+#3]frame.south west)[sharp corners] -- + ([xshift=#1+#3,yshift=#2-#3]frame.north west) -- cycle;% +} + +\def\tcb@draw@shadow@unbroken{% + \let\tcb@shadow=\tcb@shadow@unbroken% + \kvtcb@shadow% +} + +\def\tcb@draw@shadow@first{% + \let\tcb@shadow=\tcb@shadow@first% + \kvtcb@shadow% +} + +\def\tcb@draw@shadow@middle{% + \let\tcb@shadow=\tcb@shadow@middle% + \kvtcb@shadow% +} + +\def\tcb@draw@shadow@last{% + \let\tcb@shadow=\tcb@shadow@last% + \kvtcb@shadow% +} + + +\tcbset{% + shad@w app/.code={\tcb@appto\kvtcb@shadow{#1}},% + shadow/.style args={#1#2#3#4}{shad@w app={\tcb@shadow{#1}{#2}{#3}{#4}}},% + no shadow/.code={\def\kvtcb@shadow{}},% + fuzzy shadow/.style args={#1#2#3#4#5}{shad@w app={% + \begin{scope}[#5]% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-4\dimexpr#4\relax}{opacity=0.01}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-3\dimexpr#4\relax}{opacity=0.02}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-2\dimexpr#4\relax}{opacity=0.04}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-#4\relax}{opacity=0.07}% + \tcb@shadow{#1}{#2}{#3}{opacity=0.11}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+#4\relax}{opacity=0.11}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+2\dimexpr#4\relax}{opacity=0.07}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+3\dimexpr#4\relax}{opacity=0.04}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+4\dimexpr#4\relax}{opacity=0.02}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+5\dimexpr#4\relax}{opacity=0.01}% + \end{scope}}},% + % + drop shadow/.style={shadow={0.9mm}{-0.9mm}{0mm}{opacity=0.5,#1}}, + drop shadow/.default={black!50!white},% + halo/.style args={#1 with #2}{shadow={0mm}{0mm}{-#1}{opacity=0.5,#2}}, + halo/.default={0.9mm with yellow},% + drop fuzzy shadow/.style={fuzzy shadow={1.0mm}{-1.0mm}{0mm}{0.12mm}{#1}}, + drop fuzzy shadow/.default={black!50!white},% + fuzzy halo/.style args={#1 with #2}{fuzzy shadow={0mm}{0mm}{-#1}{0.12mm}{#2}}, + fuzzy halo/.default={1.0mm with yellow},% + % + no shadow,% + % + % +} + diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex index 4bb334b5d5b..b587416f7a6 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbtheorems.code.tex: Code for theorems in colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,8 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@theorems@loaded{} +%\makeatletter +\tcb@set@library@version{2.32} \RequirePackage{amsmath} @@ -26,8 +26,7 @@ \tcbset{ theorem/.code args={#1#2#3#4}{% - \refstepcounter{#2}\label{#4}% - \pgfkeysalso{title={\setbox\z@=\hbox{#1~\csname the#2\endcsname:\ }\hangindent\wd\z@\hangafter=1 \mbox{#1~\csname the#2\endcsname:\ }#3}}},% + \pgfkeysalso{title={\refstepcounter{#2}\setbox\z@=\hbox{#1~\csname the#2\endcsname:\ }\hangindent\wd\z@\hangafter=1 \mbox{#1~\csname the#2\endcsname:\label{#4}\ }#3}}},% math upper/.style={before upper=$\displaystyle,after upper=$},% math lower/.style={before lower=$\displaystyle,after lower=$},% math/.style={math upper,math lower},% @@ -50,7 +49,7 @@ ams gather* lower/.style={before lower=\tcb@hack@amsmath\csname gather*\endcsname,after lower=\endgather},% ams gather*/.style={ams gather* upper,ams gather* lower},% ams nodisplayskip upper/.style={before upper=\vskip-\abovedisplayskip},% - ams nodisplayskip lower/.style={before upper=\vskip-\abovedisplayskip},% + ams nodisplayskip lower/.style={before lower=\vskip-\abovedisplayskip},% ams nodisplayskip/.style={ams nodisplayskip upper,ams nodisplayskip lower},% highlight math style/.style={highlight math/.style={#1}},% highlight math style={colframe=red,colback=yellow!25!white,notitle},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty index 8238c1589b5..a4f76aab89b 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcolorbox.sty: Text color boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,10 +18,12 @@ %% This work consists of all files listed in README %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tcolorbox}[2013/05/15 version 2.22 text color boxes] +\ProvidesPackage{tcolorbox}[2013/06/23 version 2.32 text color boxes] +\def\tcb@version{2.32} \RequirePackage{pgf}[2008/01/15] \RequirePackage{verbatim}[2003/08/22] +\RequirePackage{environ}[2013/04/01] % register \newif\iftcb@lowerignored @@ -42,6 +44,7 @@ \def\tcbset{\pgfqkeys{/tcb}} +\def\tcb@dim@to#1#2{\def#1{\the\dimexpr#2\relax}} \def\tcbdimto#1#2{\edef#1{\the\dimexpr#2\relax}} \def\tcb@zpt{0pt} @@ -87,12 +90,14 @@ \tcbdimto\tcb@w@upper{\tcb@w@sbs-\tcb@w@lower}% } -\tcbset{ +\pgfkeys{/handlers/.dimstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{\the\dimexpr##1\relax}}} + +\tcbset{% title/.store in=\kvtcb@title, notitle/.style={title=}, adjust text/.store in=\kvtcb@adjusttext, adjusted title/.style={title={#1\vphantom{\kvtcb@adjusttext}}}, - width/.store in=\kvtcb@width, + width/.dimstore in=\kvtcb@width, boxsep/.store in=\kvtcb@boxsep, toprule/.code={% \def\kvtcb@top@rule@stand{#1}% @@ -157,7 +162,7 @@ lowerbox/invisible/.code={\tcb@lowerignoredfalse\tcb@lowervisiblefalse}, lowerbox/ignored/.code={\tcb@lowerignoredtrue\tcb@lowervisiblefalse}, natural height/.code={\let\tcb@ch=\tcb@ch@natural}, - height/.code={\def\tcb@height@fixed{#1}\let\tcb@ch=\tcb@ch@fixed}, + height/.code={\tcb@dim@to\tcb@height@fixed{#1}\let\tcb@ch=\tcb@ch@fixed}, equal height group/.code={\edef\tcb@ehgid{#1}\let\tcb@ch=\tcb@ch@equalheight}, minimum for equal height group/.code args={#1:#2}{\edef\tcb@ehgid{#1}\tcb@ehgadd{#2}}, space/.code={\def\tcb@height@fraction{#1}\let\tcb@ch@fixed@both=\tcb@ch@fixed@space}, @@ -186,13 +191,18 @@ title engine/.store in=\kvtcb@engine@title, geometry nodes/.store in=\kvtcv@geonodes, geometry nodes/.default=true,% + set@extensions@preframe/.store in=\tcb@extensions@preframe,% + set@extensions@postframe/.store in=\tcb@extensions@postframe,% skin first/.store in=\kvtcb@skin@first, skin middle/.store in=\kvtcb@skin@middle, skin last/.store in=\kvtcb@skin@last, skin@standard/.style={frame engine=standard,interior titled engine=standard, interior engine=standard,segmentation engine=standard,title engine=standard, graphical environment=pgfpicture, - geometry nodes=false,skin first=standard,skin middle=standard,skin last=standard}, + geometry nodes=false, + set@extensions@preframe=,% + set@extensions@postframe={\tcb@apply@overlay},% + skin first=standard,skin middle=standard,skin last=standard}, skin/.style={skin@#1}, parbox/.store in=\kvtcv@parbox, parbox/.default=true,% @@ -223,9 +233,15 @@ after upper/.store in=\kvtcb@after@upper,% before lower/.store in=\kvtcb@before@lower,% after lower/.store in=\kvtcb@after@lower,% - center title/.style={before title=\begin{center},after title=\end{center}},% - center upper/.style={before upper=\begin{center},after upper=\end{center}},% - center lower/.style={before lower=\begin{center},after lower=\end{center}},% + center title/.style={before title=\centering},% + center upper/.style={before upper=\centering},% + center lower/.style={before lower=\centering},% + flushleft title/.style={before title=\raggedright},% + flushleft upper/.style={before upper=\raggedright},% + flushleft lower/.style={before lower=\raggedright},% + flushright title/.style={before title=\raggedleft},% + flushright upper/.style={before upper=\raggedleft},% + flushright lower/.style={before lower=\raggedleft},% tabularx*/.style 2 args={% boxsep=0pt,top=0pt,bottom=0pt,leftupper=0pt,rightupper=0pt, toptitle=1mm,bottomtitle=1mm,boxrule=0.5mm, @@ -233,14 +249,15 @@ \tcb@hack@currenvir\tabularx{\linewidth}{#2}}, after upper=\endtabularx}, tabularx/.style={tabularx*={}{#1}}, - tikz upper/.style={before upper=\begin{center}\begin{tikzpicture}[#1],after upper=\end{tikzpicture}\end{center}},% - tikz lower/.style={before lower=\begin{center}\begin{tikzpicture}[#1],after lower=\end{tikzpicture}\end{center}},% + tikz upper/.style={before upper=\centering\tikzpicture[#1],after upper=\endtikzpicture},% + tikz lower/.style={before lower=\centering\tikzpicture[#1],after lower=\endtikzpicture},% oversize/.style={% width=\the\dimexpr\dimexpr\linewidth\relax+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax,% enlarge left by=\the\dimexpr-\kvtcb@left@rule-\kvtcb@leftupper-\kvtcb@boxsep\relax,% enlarge right by=\the\dimexpr-\kvtcb@boxsep-\kvtcb@rightupper-\kvtcb@right@rule\relax},% - tcbox raise/.store in=\kvtcb@box@raise,% - tcbox raise base/.style={tcbox raise=\the\dimexpr-\tcb@temp@dp-\kvtcb@bbbottom@stand\relax},% + baseline/.store in=\kvtcb@baseline,% + tcbox raise/.style={baseline=-#1},% + tcbox raise base/.style={baseline=\tcb@val@raisebase},% shrink tight/.style={boxsep=0mm,top=-\kvtcb@top@rule@stand,bottom=-\kvtcb@bottom@rule@stand,left=-\kvtcb@left@rule,right=-\kvtcb@right@rule},% extrude left by/.code={\tcbdimto\kvtcb@leftupper{\kvtcb@leftupper+#1}\tcbdimto\kvtcb@bbleft{\kvtcb@bbleft-#1}},% extrude right by/.code={\tcbdimto\kvtcb@rightupper{\kvtcb@rightupper+#1}\tcbdimto\kvtcb@bbright{\kvtcb@bbright-#1}},% @@ -259,6 +276,15 @@ \let\endtcb@savebox=\endtcb@lrbox% \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone}, code/.code={#1}, + capture/.store in=\kvtcb@capture,% + hbox/.style={capture=hbox},% + minipage/.style={capture=minipage},% + check odd page/.is choice, + check odd page/true/.code={\let\tcb@checkoddpage=\checkoddpage% + \let\tcb@setbb@toggle@evenpage=\tcb@setbb@toggle@evenpage@strict}, + check odd page/false/.code={\let\tcb@checkoddpage=\relax% + \let\tcb@setbb@toggle@evenpage=\tcb@setbb@toggle@evenpage@easy}, + check odd page/.default=true, } \tcbset{notitle,width=\linewidth,boxsep=1mm,boxrule=0.5mm,adjust text={\"Apgjy}, @@ -270,8 +296,9 @@ toggle enlargement=none,toptitle=0mm,bottomtitle=0mm, standard,parbox,overlay=,auto outer arc, before title=,after title=,before upper=,after upper=,before lower=,after lower=, - tcbox raise=0pt,sidebyside=false,sidebyside align=center,sidebyside gap=10mm, - lefthand ratio=0.5, + baseline=0pt,sidebyside=false,sidebyside align=center,sidebyside gap=10mm, + lefthand ratio=0.5,capture=minipage,check odd page=false, + set@extensions@preframe=,set@extensions@postframe=,% }% \let\tcb@parboxrestore=\@parboxrestore @@ -330,15 +357,20 @@ \long\def\tcb@colorbox{% \@ifnextchar[{\tcb@@icolorbox}{\tcb@@icolorbox[]}} -\long\def\tcb@@icolorbox[#1]{% - % setting the keys - \tcbset{#1}% - \tcb@hasLowerfalse% +\def\tcb@set@@dim@and@title{% % computation of text width \tcbdimto\tcb@width{\kvtcb@width}% \tcbdimto\tcb@innerwidth{\tcb@width-\kvtcb@left@rule-\kvtcb@right@rule}% \tcbdimto\tcb@temp{\tcb@innerwidth-\kvtcb@boxsep*2}% \tcbdimto\tcb@w@upper{\tcb@temp-\kvtcb@leftupper-\kvtcb@rightupper}% + \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\else% + \tcb@hasTitletrue% + \tcbdimto\tcb@w@title{\tcb@temp-\kvtcb@lefttitle-\kvtcb@righttitle}% + \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{\kvtcb@coltitle}\kvtcb@fonttitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}% + \fi% +} + +\def\tcb@set@@sidebyside{% \iftcb@sidebyside% \tcbset{breakable@false}% \def\tcb@minipage{\csname tcb@minipage@\kvtcb@sbs@align\endcsname}% @@ -346,11 +378,9 @@ \tcbdimto\tcb@w@sbs{\tcb@w@upper@real-\kvtcb@sbs@gap}% \tcb@sbs@quota% \fi% - \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\else% - \tcb@hasTitletrue% - \tcbdimto\tcb@w@title{\tcb@temp-\kvtcb@lefttitle-\kvtcb@righttitle}% - \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{\kvtcb@coltitle}\kvtcb@fonttitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}% - \fi% +} + +\def\tcb@set@@upper@and@lower{% \let\tcb@after@box=\kvtcb@after@upper% % switch for lower box \def\tcblower{% @@ -376,6 +406,25 @@ \tcb@saveupperbox% } + +\def\tcb@@capture@minipage{% + \let\tcb@val@raisebase=\tcb@zpt% + \tcb@set@@dim@and@title% + \tcb@set@@sidebyside% + \tcb@set@@upper@and@lower% +} + +\def\tcb@@capture@hbox{% + \let\endtcolorbox=\relax% + \Collect@Body\tcbox@inner@hbox% +} + +\long\def\tcb@@icolorbox[#1]{% + \tcbset{capture=minipage,#1}% + \tcb@hasLowerfalse% + \csname tcb@@capture@\kvtcb@capture\endcsname% +} + \let\tcolorbox\tcb@colorbox \def\tcb@endboxanddraw{% @@ -520,39 +569,49 @@ {\pgfpoint{\the\dimexpr\tcb@width+\kvtcb@bbleft\relax}{\the\dimexpr\tcb@height+\kvtcb@bbtop\relax}}% } -\def\tcb@setbb@toggle@evenpage{% +\def\tcb@setbb@toggle@evenpage@easy{% \ifodd\thepage\tcb@setbb@toggle@none\else\tcb@setbb@toggle@forced\fi% } +\let\tcb@setbb@toggle@evenpage=\tcb@setbb@toggle@evenpage@easy + +\def\tcb@setbb@toggle@evenpage@strict{% + \ifoddpage\tcb@setbb@toggle@none\else\tcb@setbb@toggle@forced\fi% +} + \def\tcb@creategeonodes@false{} \def\tcb@bbdraw{% + \tcb@checkoddpage% \csname tcb@setbb@toggle@\kvtcb@bbtoggle\endcsname% \pgfusepath{use as bounding box}% \csname tcb@creategeonodes@\kvtcv@geonodes\endcsname% } -\def\tcb@tdraw@title{% +\def\tcb@tdraw@title@core{% \iftcb@hasTitle% \pgftext[x=\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@lefttitle\relax, y=\the\dimexpr\tcb@height-\kvtcb@top@rule-\kvtcb@boxsep-\kvtcb@toptitle\relax, left,top]{\usebox{\tcb@titlebox}}% \fi% } +\let\tcb@tdraw@title=\tcb@tdraw@title@core -\def\tcb@tdraw@upper{% +\def\tcb@tdraw@upper@core{% \csname tcb@dbox@\kvtcb@valign\endcsname{\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper\relax}% {\the\dimexpr\tcb@innerheight+\kvtcb@bottom@rule-\kvtcb@boxsep-\tcb@break@topsep-\kvtcb@top-\tcb@height@upper\relax}% {\tcb@height@upper}{\tcb@upperbox}% } +\let\tcb@tdraw@upper=\tcb@tdraw@upper@core -\def\tcb@tdraw@lower{% +\def\tcb@tdraw@lower@core{% \iftcb@lowervisible% \csname tcb@dbox@\kvtcb@valignlower\endcsname{\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftlower\relax}% {\the\dimexpr\kvtcb@bottom@rule+\kvtcb@boxsep+\tcb@break@bottomsep+\kvtcb@bottom\relax}% {\tcb@height@lower}{\tcb@lowerbox}% \fi% } +\let\tcb@tdraw@lower=\tcb@tdraw@lower@core \def\tcb@sbs@mix{% \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper@real} @@ -594,8 +653,10 @@ \tcb@drawcolorbox% } +\def\tcb@apply@overlay{\csname tcb@overlay@\tcb@split@state\endcsname}% \def\tcb@drawcolorbox{% + \edef\tcb@split@state{unbroken}% \let\kvtcb@top@rule=\kvtcb@top@rule@stand% \let\kvtcb@bottom@rule=\kvtcb@bottom@rule@stand% \let\kvtcb@bbtop=\kvtcb@bbtop@stand% @@ -622,6 +683,8 @@ \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% \begin{tcb@float}\begin{\kvtcb@graphenv}% \tcb@bbdraw% + \pgfsetbaseline{\the\dimexpr\kvtcb@baseline-\kvtcb@bbbottom\relax}% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -637,7 +700,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \tcb@overlay@unbroken% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% @@ -645,23 +708,44 @@ \end{\kvtcb@graphenv}\end{tcb@float}% } +\def\tcb@draw@border#1{} + \let\tcb@drawcolorbox@standalone=\tcb@drawcolorbox -\newcommand{\tcbox}[2][]{% +\long\def\tcbox@inner@hbox#1{% + \tcbset{breakable@false,sidebyside=false}% + \setbox\tcb@upperbox=\hbox{\begingroup\color{\kvtcb@colupper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper\endgroup}% + \tcbdimto{\tcb@temp@wd}{\wd\tcb@upperbox}% + \tcbdimto{\tcb@val@raisebase}{\the\dimexpr\dp\tcb@upperbox+\kvtcb@bottom+\kvtcb@boxsep+\kvtcb@bottom@rule@stand+\kvtcb@bbbottom@stand\relax}% + \tcbset{width=\the\dimexpr\tcb@temp@wd+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax}% + \tcb@hasLowerfalse% + \tcb@set@@dim@and@title% + \tcb@draw@color@box% +} + +\long\def\tcbox@inner@minipage#1{% + \tcbset{breakable@false,sidebyside=false}% + \let\tcb@val@raisebase=\tcb@zpt% + \tcb@set@@dim@and@title% + \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}\color{\kvtcb@colupper}\kvtcb@fontupper\kvtcb@before@upper#1\kvtcb@after@upper\end{tcb@savebox}% + \tcbdimto{\tcb@temp@wd}{\wd\tcb@upperbox}% + \tcbset{width=\the\dimexpr\tcb@temp@wd+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax}% + \tcb@hasLowerfalse% + \tcb@draw@color@box% +} + + +\long\def\tcb@ox#1#2{% \begingroup% - \tcbset{#1,breakable@false}% - \setbox0=\hbox{\begingroup\color{\kvtcb@colupper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#2\kvtcb@after@upper\endgroup}% - \tcbdimto{\tcb@temp@wd}{\wd0}% - \tcbdimto{\tcb@temp@dp}{\dp0+\kvtcb@bottom+\kvtcb@boxsep+\kvtcb@bottom@rule@stand}% - \let\kvtcb@fontupper=\relax% - \let\kvtcb@before@upper\relax% - \let\kvtcb@after@upper\relax% - \raisebox{\kvtcb@box@raise}{\begin{tcolorbox}[width=\the\dimexpr\tcb@temp@wd+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax]% - \unhbox0% - \end{tcolorbox}}% + \tcbset{#1}% + \csname tcbox@inner@\kvtcb@capture\endcsname{#2}% \endgroup% } +\newcommand{\tcbox}[2][]{% + \tcb@ox{capture=hbox,#1}{#2}% +} + \long\def\tcb@newtcolorbox#1#2{\newenvironment{#1}{\tcolorbox[savedelimiter=#1,#2]}{\endtcolorbox}} \long\def\tcb@new@tcolorbox#1[#2]#3{\newenvironment{#1}[#2]{\tcolorbox[savedelimiter=#1,#3]}{\endtcolorbox}} @@ -674,6 +758,7 @@ \long\def\newtcolorbox#1{% \@ifnextchar[{\new@tcolorbox{#1}}{\tcb@newtcolorbox{#1}}} + \long\def\tcb@newtcbox#1#2{\newcommand{#1}{\tcbox[#2]}} \long\def\tcb@new@tcbox#1[#2]#3{\newcommand{#1}[#2]{\tcbox[#3]}} @@ -686,6 +771,7 @@ \long\def\newtcbox#1{% \@ifnextchar[{\new@tcbox{#1}}{\tcb@newtcbox{#1}}} + % verbatim output as in 'verbatim' \newwrite\tcb@out @@ -733,15 +819,64 @@ \def\tcbusetemp{\input{\kvtcb@tempfile}} +% expandonce from etoolbox +\newcommand{\tcb@expandonce}[1]{\unexpanded\expandafter{#1}} + +% slim version of etoolbox'es more general macro +\newcommand{\tcb@appto}[2]{% + \ifx#1\relax% + \edef#1{\unexpanded{#2}}% + \else% + \edef#1{\tcb@expandonce#1\unexpanded{#2}}% + \fi} + +% slim version of etoolbox'es more general macro +\newcommand{\tcb@preto}[2]{% + \ifx#1\relax% + \edef#1{\unexpanded{#2}}% + \else% + \edef#1{\unexpanded{#2}\tcb@expandonce#1}% + \fi} % libraries \def\tcb@optionlist{} +\def\tcb@set@library@version#1{% + \def\tcb@library@version{#1}% + \typeout{Library (tcolorbox): '\tcb@library@inload' version '\tcb@library@version'} + \tcb@check@library@version% +} + +\def\tcb@check@library@version{% + \ifx\tcb@library@version\tcb@version\else% + \PackageError{tcolorbox}{tcolorbox version '\tcb@version' loads library '\tcb@library@inload' with version '\tcb@library@version'} + \fi% +} + \def\tcbuselibrary#1{\tcbset{library/.cd,#1}} +\@onlypreamble\tcbuselibrary + +\providecommand{\tcbpkgprefix}{} + +\def\tcb@load@library#1#2{% + \pgfkeysifdefined{/tcb/libload/#1}{}{% + \pgfkeyssetvalue{/tcb/libload/#1}{}% + \def\tcb@library@inload{#2}% + \def\tcb@library@version{-}% + \edef\tcb@at@catcode{\the\catcode`@}% + \catcode`\@11\relax% + \input\tcbpkgprefix#2\relax% + \catcode`\@\tcb@at@catcode\relax% + \tcb@check@library@version}{}% +} \def\tcb@add@library#1#2{% - \tcbset{library/#1/.code={\@ifundefined{tcblibrary@#1@loaded}{\input #2}{}}}% - \DeclareOption{#1}{\edef\tcb@optionlist{\tcb@optionlist,#1}}% + \tcbset{library/#1/.code={\tcb@load@library{#1}{#2}}}% + \DeclareOption{#1}{\tcb@appto\tcb@optionlist{,#1}}% +} +\def\tcb@add@library@style#1#2{% + \tcbset{library/#1/.style={#2}}% + \DeclareOption{#1}{\tcb@appto\tcb@optionlist{,#1}}% } \tcb@add@library{listings}{tcblistings.code.tex} @@ -751,6 +886,10 @@ \tcb@add@library{skins}{tcbskins.code.tex} \tcb@add@library{breakable}{tcbbreakable.code.tex} \tcb@add@library{hooks}{tcbhooks.code.tex} +\tcb@add@library{fitting}{tcbfitting.code.tex} + +\tcb@add@library@style{most}{skins,breakable,listingsutf8,hooks,theorems,fitting} +\tcb@add@library@style{all}{most,documentation} \ProcessOptions* \edef\tcb@temp{\noexpand\tcbuselibrary{\tcb@optionlist}} |