From 1d543d293d1c8d586821f89ad4f9ef0bc5d368d7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 16 Mar 2015 20:46:53 +0000 Subject: tcolorbox (16mar15) git-svn-id: svn://tug.org/texlive/trunk@36534 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tcolorbox/CHANGES | 25 +- Master/texmf-dist/doc/latex/tcolorbox/README | 4 +- .../doc/latex/tcolorbox/tcolorbox-example.pdf | Bin 361340 -> 361332 bytes .../doc/latex/tcolorbox/tcolorbox-example.tex | 2 +- .../latex/tcolorbox/tcolorbox.doc.coreoptions.tex | 84 +++- .../tcolorbox/tcolorbox.doc.documentation.tex | 22 +- .../doc/latex/tcolorbox/tcolorbox.doc.external.tex | 517 +++++++++++++++++++++ .../latex/tcolorbox/tcolorbox.doc.initoptions.tex | 45 ++ .../doc/latex/tcolorbox/tcolorbox.doc.intro.tex | 12 +- .../doc/latex/tcolorbox/tcolorbox.doc.s_main.sty | 206 ++++++++ .../latex/tcolorbox/tcolorbox.doc.s_snippet.sty | 183 ++++++++ .../texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf | Bin 5287003 -> 5576333 bytes .../texmf-dist/doc/latex/tcolorbox/tcolorbox.tex | 356 +------------- .../tex/latex/tcolorbox/tcbbreakable.code.tex | 10 +- .../tex/latex/tcolorbox/tcbdocumentation.code.tex | 42 +- .../tex/latex/tcolorbox/tcbexternal.code.tex | 280 +++++++++++ .../tex/latex/tcolorbox/tcbfitting.code.tex | 9 +- .../tex/latex/tcolorbox/tcbhooks.code.tex | 4 +- .../tex/latex/tcolorbox/tcblistings.code.tex | 4 +- .../tex/latex/tcolorbox/tcblistingscore.code.tex | 34 +- .../tex/latex/tcolorbox/tcblistingsutf8.code.tex | 4 +- .../tex/latex/tcolorbox/tcbminted.code.tex | 4 +- .../tex/latex/tcolorbox/tcbraster.code.tex | 4 +- .../tex/latex/tcolorbox/tcbskins.code.tex | 4 +- .../tex/latex/tcolorbox/tcbskinsjigsaw.code.tex | 4 +- .../tex/latex/tcolorbox/tcbtheorems.code.tex | 4 +- .../tex/latex/tcolorbox/tcbxparse.code.tex | 6 +- .../texmf-dist/tex/latex/tcolorbox/tcolorbox.sty | 124 +++-- 28 files changed, 1546 insertions(+), 447 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.external.tex create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty create mode 100644 Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_snippet.sty create mode 100644 Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/tcolorbox/CHANGES b/Master/texmf-dist/doc/latex/tcolorbox/CHANGES index 94501ca2cc6..e6b7c245856 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% %% ------------------------------------------------------------------------------------------- %% Copyright (c) 2006-2014 by Prof. Dr. Dr. Thomas F. Sturm @@ -728,3 +728,26 @@ version 3.40 (2015/01/14) * new option: 'titlerule style' - library 'breakable': algorithm for handling overfull boxes revised; new warnings implemented + +version 3.50 (2015/03/16) +- bug fix: \tcbline was broken for \tcboxfit-boxes since 3.36 +- text color implementation changed to fix some color problems +- before/after settings changed to detect special situations +- 'sidebyside align': new selections 'top seam', 'center seam', 'bottom seam' +- new options: + 'force nobeforeafter', 'blend before title', 'blend before title code' +- library 'documentation': + 'before example', 'after example' are deprecated; 'docexample' is changed +- new library 'external' + * new macros and environments: + 'tcbexternal', '\tcbEXTERNALIZE', 'extikzpicture', 'extcolorbox', + '\tcbifexternal', + '\newtcbexternalizeenvironment', 'renewtcbexternalizeenvironment', + 'newtcbexternalizetcolorbox', 'renewtcbexternalizetcolorbox' + * new options: + 'runner', 'externalize', 'force remake', '!', + 'name', 'externalize listing', 'externalize listing!', + 'externalize example', 'externalize example!', + 'prefix', 'environment', 'minipage', 'plain', 'compiler', 'runs', + 'input source on error', 'safety', 'preamble' +- documentation structure revised diff --git a/Master/texmf-dist/doc/latex/tcolorbox/README b/Master/texmf-dist/doc/latex/tcolorbox/README index 25413d9a425..2604cad3cab 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% %% ------------------------------------------------------------------------------------------- %% Copyright (c) 2006-2014 by Prof. Dr. Dr. Thomas F. Sturm @@ -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) + 'tcbexternal.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) @@ -62,6 +63,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 + 'tcbexternal.code.tex' -> /tex/latex/tcolorbox 'tcbfitting.code.tex' -> /tex/latex/tcolorbox 'tcbhooks.code.tex' -> /tex/latex/tcolorbox 'tcblistings.code.tex' -> /tex/latex/tcolorbox diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf index 1192d920622..b3e3fb5d614 100644 Binary files a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf and b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.pdf differ diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox-example.tex index a6c1cd73488..66582b8d98c 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcolorbox-example.tex: an example for tcolorbox %% %% ------------------------------------------------------------------------------------------- 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 e8f294be19d..64affa53651 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.coreoptions.tex @@ -30,7 +30,7 @@ This is a \textbf{tcolorbox}. This option makes sense for single line headings if boxes are set side by side with equal height. Note that it is very easy to trick this adjustment. -\begin{dispExample} +\begin{exdispExample}[runs=2]{options_adjusted_title} \tcbset{colback=White,arc=0mm,width=(\linewidth-4pt)/4, equal height group=AT,before=,after=\hfill,fonttitle=\bfseries} @@ -42,7 +42,7 @@ Now, we try again with adjusted titles:\\ \foreach \n in {xxx,ggg,AAA,\"Agypten} {\begin{tcolorbox}[adjusted title=\n,colframe=blue!75!black] Some content.\end{tcolorbox}} -\end{dispExample} +\end{exdispExample} \end{docTcbKey} @@ -181,7 +181,7 @@ just like any other \refEnv{tcolorbox}. \begin{docTcbKey}[][doc new=2014-10-10]{subtitle style}{=\meta{options}}{no default, initially empty} Adds |tcolorbox| \meta{options} to the settings for \refCom{tcbsubtitle}. -\begin{dispExample*}{sbs,lefthand ratio=0.6} +\begin{exdispExample*}{options_subtitle_style}{sbs,lefthand ratio=0.6} \begin{tcolorbox}[title=My title, colback=red!5!white, colframe=red!75!black, @@ -196,7 +196,7 @@ just like any other \refEnv{tcolorbox}. \tcbsubtitle{Second subtitle} Further text. \end{tcolorbox} -\end{dispExample*} +\end{exdispExample*} \end{docTcbKey} \clearpage @@ -293,7 +293,7 @@ Now, we load the saved text:\\ If set to |true|, the lower part is visually separated from the upper part. It depends on the chosen skin how the visualization of the separation is done. \enlargethispage*{1cm} -\begin{dispExample} +\begin{exdispExample}{options_lower_separated} % \tcbuselibrary{skins,raster} \begin{tcbraster}[colback=red!5!white,colframe=red!75!black, fonttitle=\bfseries,fontlower=\itshape] @@ -335,7 +335,7 @@ This is the lower part. \end{tcolorbox} % \end{tcbraster} -\end{dispExample} +\end{exdispExample} \end{docTcbKey} @@ -1808,6 +1808,7 @@ One & Two & Three \\\hline\hline \end{dispExample} \end{docTcbKey} + \clearpage \begin{docTcbKey}{tikz upper}{\colOpt{=\meta{options}}}{style} This style adds a centered |tikzpicture| environment to the start and end @@ -1856,7 +1857,8 @@ One & Two & Three \\\hline\hline \begin{dispExample} % \usepackage{tikz} \newtcbox{\headline}[1][]{enhanced,before=\begin{center},after=\end{center}, - fontupper=\Large\bfseries,colframe=red!50!black,colback=red!10!white, + ignore nobreak,fontupper=\Large\bfseries, + colframe=red!50!black,colback=red!10!white, drop fuzzy shadow=yellow,tikznode upper,#1} \headline{Important\\Headline} @@ -1946,7 +1948,7 @@ is recommended which allows |tikz| code and gives access to \begin{scope}[shift={([xshift=\x]frame.north west)}] \path[draw=green!65!black,fill=green!10,line width=1mm] (0,0) arc (0:180:5mm); \path[fill=black] (-0.2,0) arc (0:180:1mm); - \end{scope}}}]}} + \end{scope}}}}} \begin{tcolorbox}[frogbox,title=My title] This is a \textbf{tcolorbox}. @@ -2217,9 +2219,10 @@ This is the lower (\textit{right-handed}) part. \end{docTcbKey} -\begin{docTcbKey}{sidebyside align}{=\meta{alignment value}}{no default, initially |center|} +\begin{docTcbKey}[][doc updated=2015-02-06]{sidebyside align}{=\meta{alignment value}}{no default, initially |center|} Sets the vertical alignment for the left-handed and right-handed part. - Feasible values are \docValue{center}, \docValue{top}, and \docValue{bottom}. + Feasible values are \docValue{center}, \docValue{top}, \docValue{bottom}, + \docValue{center seam}, \docValue{top seam}, and \docValue{bottom seam}. \begin{dispExample} \tcbset{colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,nobeforeafter, left=2mm,right=2mm,sidebyside,sidebyside gap=6mm,width=(\linewidth-2mm)/3} @@ -2240,6 +2243,48 @@ This is a text which is too long for one line. This is a short text. \end{tcolorbox} \end{dispExample} + +\clearpage +\docValue{center}, \docValue{top}, and \docValue{bottom} are identical +to the known corresponding |minipage| options. For example, \docValue{top} +aligns the top lines of the lefthand and righthand side +according to their baselines. +While this is the preferred approach for text content, the result for +boxed content like tables or images may not be as expected. + +For such content, one may use \docValue{center seam}, \docValue{top seam}, +and \docValue{bottom seam}. For example, \docValue{top seam} aligns +the very top seam of the lefthand and righthand side. + + +\begin{dispExample} +\tcbset{colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, + size=small,righthand width=4cm,sidebyside,sidebyside gap=6mm,lower separated=false} + +\begin{tcolorbox}[adjusted title=center seam,sidebyside align=center seam] + This is my description text for the pictures displayed on the righthand side. + \tcblower + \includegraphics[width=\linewidth/2]{goldshade}% + \includegraphics[width=\linewidth/2]{blueshade} +\end{tcolorbox} + +\begin{tcolorbox}[adjusted title=top seam,sidebyside align=top seam] + This is my description text for the pictures displayed on the righthand side. + \tcblower + \includegraphics[width=\linewidth/2]{goldshade}% + \includegraphics[width=\linewidth/2]{blueshade} +\end{tcolorbox} + +\begin{tcolorbox}[adjusted title=bottom seam,sidebyside align=bottom seam] + This is my description text for the pictures displayed on the righthand side. + \tcblower + \includegraphics[width=\linewidth/2]{goldshade}% + \includegraphics[width=\linewidth/2]{blueshade} +\end{tcolorbox} +\end{dispExample} + + + \end{docTcbKey} \clearpage @@ -2384,7 +2429,7 @@ This behavior is controlled by the keys |before| and |after|. \end{dispListing} \end{docTcbKey} -\begin{docTcbKey}{noparskip}{}{style, no value} +\begin{docTcbKey}[][doc updated=2015-03-16]{noparskip}{}{style, no value} Sets the keys |before| and |after| to values which are recommended, if the package |parskip| is \emph{not} used and there is no better idea for |before| and |after|. @@ -2420,6 +2465,15 @@ This behavior is controlled by the keys |before| and |after|. \end{dispExample} \end{docTcbKey} +\enlargethispage*{1cm} +\begin{docTcbKey}{forces nobeforeafter}{}{style, no value} + Forces the setting of \refKey{/tcb/nobeforeafter} even if + \refKey{/tcb/before} and \refKey{/tcb/after} are set to other values + later. Do not use this option globally unless you \emph{really} know what you do. + Note that embedded boxes do not inherit this forced clearance. +\end{docTcbKey} + + \clearpage \begin{docTcbKey}{baseline}{=\meta{length}}{no default, initially |0pt|} @@ -2491,7 +2545,7 @@ Some text\dotfill \end{docTcbKey} -\begin{docTcbKey}[][doc new and updated={2014-10-10}{2014-12-16}]{before skip}{=\meta{glue}}{style, no default} +\begin{docTcbKey}[][doc new and updated={2014-10-10}{2015-03-16}]{before skip}{=\meta{glue}}{style, no default} Inserts some vertical space of the given \meta{glue} before the colored box. This style sets \refKey{/tcb/before}. \begin{dispExample*}{sbs,lefthand ratio=0.6} @@ -2503,7 +2557,7 @@ Some text. \end{dispExample*} \end{docTcbKey} -\begin{docTcbKey}[][doc new and updated={2014-10-10}{2014-12-16}]{after skip}{=\meta{glue}}{style, no default} +\begin{docTcbKey}[][doc new and updated={2014-10-10}{2015-03-16}]{after skip}{=\meta{glue}}{style, no default} Inserts some vertical space of the given \meta{glue} after the colored box. This style sets \refKey{/tcb/after}. \begin{dispExample*}{sbs,lefthand ratio=0.6} @@ -3358,6 +3412,10 @@ box content. \clearpage \subsection{Externalization} +\begin{marker} +See \Fullref{sec:external} for the \mylib{external} library of |tcolorbox|. +\end{marker} + If the \emph{externalization} library of the \texttt{tikz} package is used and \refKey{/tcb/graphical environment} is set to |tikzpicture|, a |tcolorbox| could trigger the externalization process which will arise 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 27c4e505ded..5542303fe98 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.documentation.tex @@ -469,11 +469,19 @@ with another note. \clearpage \subsection{Option Keys of the Library} -\begin{docTcbKey}{docexample}{}{style, no value} +\begin{docTcbKey}[][doc updated=2015-03-16]{docexample}{}{style, no value} Sets the style for \refEnv{dispExample} and \refEnv{dispListing} with the colors |ExampleBack| and |ExampleFrame|. To change the appearance of the examples, this style can be redefined. +\begin{dispListing} +% Predefined style: +\tcbset{ + docexample/.style={colframe=ExampleFrame,colback=ExampleBack, + before skip=\medskipamount,after skip=\medskipamount, + fontlower=\footnotesize} +} +\end{dispListing} \end{docTcbKey} \begin{docTcbKey}{documentation listing options}{=\meta{key list}}{no default,\\\hspace*{\fill} initially |style=tcbdocumentation|} @@ -509,18 +517,26 @@ with another note. Used for \refKey{/tcb/listing engine}|=minted| only. \end{docTcbKey} +\begin{marker} +The following two keys are deprecated and without function (v3.50 and above). +Use \refKey{/tcb/before} and \refKey{/tcb/after} with appropriate values +instead. Also see \refKey{/tcb/docexample}. +\end{marker} -\begin{docTcbKey}{before example}{=\meta{macros}}{no default, initially \cs{par}\cs{smallskip}} +\begin{docTcbKey}[][doc updated=2015-03-16]{before example}{=\meta{macros}}{no default, initially empty} +\smallskip\begin{deprecated} Sets the \meta{macros} which are executed before \refEnv{dispExample} and \refEnv{dispListing} additional to \refKey{/tcb/before}. +\end{deprecated} \end{docTcbKey} \begin{docTcbKey}{after example}{=\meta{macros}}{no default, initially empty} +\smallskip\begin{deprecated} Sets the \meta{macros} which are executed after \refEnv{dispExample} and \refEnv{dispListing} additional to \refKey{/tcb/after}. +\end{deprecated} \end{docTcbKey} - \clearpage \begin{docTcbKey}[][doc new=2015-01-09]{index command}{=\meta{macro}}{no default, initially \cs{index}} Replaces the internally used \cs{index} macro by the given \meta{macro}. diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.external.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.external.tex new file mode 100644 index 00000000000..c8736787d2c --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.external.tex @@ -0,0 +1,517 @@ +% !TeX root = tcolorbox.tex +% include file of tcolorbox.tex (manual of the LaTeX package tcolorbox) +\clearpage +\section{Library \mylib{external}}\label{sec:external} +The library is loaded by a package option or inside the preamble by: +\begin{dispListing} +\tcbuselibrary{external} +\end{dispListing} + +The purpose of this library is to support externalization of document +snippets like graphics or boxes which can be compiled stand-alone. +These snippets are written to external files, compiled and the resulting +pdf files are included to the main document as images. +The whole procedure saves compilation time, if such a snippet is costly to +compile but needs to compile just once or very seldom. + +There are very good alternatives to this library. One should consider +the |standalone| package or the \tikzname\ externalization library instead. +The \mylib{external} library is something in between and can be seen as +poor man variant of the \tikzname\ externalization library. + +The main differences between \tikzname\ externalization and \mylib{external} are: +\begin{itemize} +\item\tikzname\ |external| compiles the whole original document in a sophisticated + way while \mylib{external} uses only the preamble or a part of the preamble + of the original document. +\item\tikzname\ |external| can automatically externalize all |tikzpicture| + environments while \mylib{external} externalizes marked snippets only. +\item Code snippets to be externalized by \mylib{external} are not restricted to + |tikzpicture| environments. But these snippets have to be stand-alone without + dependencies to the rest of the document. +\end{itemize} +Why should one use \mylib{external} instead of the more powerful \tikzname\ |external|? +One reason could be compilation speed, but the main reason for creating the +library at all was that \tikzname\ |external| tends to choke on complicated +documents where the sophisticated mechanism stumbles. Since \mylib{external} does +not use the original document body for compilation, this cannot happen. + +\begin{marker} +Source snippets are compiled, if their |md5| checksum has changed. +They are not compiled automatically, if option settings are changed or +anything outside the snippet is changed. +Use \refKey{/tcb/external/force remake} to force compilation in this case +or simply delete the externalized snippets. +\end{marker} + + +\clearpage +\subsection{Preparation of a Document for Externalization}\label{subsec:external_preparation} + +The preamble of the main document has to contain the \refCom{tcbEXTERNALIZE} +command. Without this command, no externalization operation will be +executed. + +\begin{docCommand}[doc new=2015-03-11]{tcbEXTERNALIZE}{} + It is mandatory for externalization that this command is used once + in the preamble of the main document. Every setting \emph{before} + \refCom{tcbEXTERNALIZE} will also be used for compiling an external + snippet. Every setting \emph{after} \refCom{tcbEXTERNALIZE} will be + ignored for compiling an external snippet. + Place this command right before |\begin{document}|, if you are not + absolutely sure about another place. + + The main document has to look like the following: + +\begin{dispListing} +\documentclass[a4paper]{book}% for example +\usepackage{...}% anything +% ... +% Tpyically, all or the very most settings for the document. + +\tcbEXTERNALIZE% Typically, just before \begin{document} + +% Additional settings which are ABSOLUTELY irrelevant for the +% stand-alone snippets. +% +\begin{document} + % The document. + % This also contains the marked snippets for externalization. +\end{document} +\end{dispListing} +\end{docCommand} + +During compilation, a \refKey{/tcb/external/runner} file +is dynamically created (several times). This is the actual main file for +compiling an externalized snippet. + +\begin{extTcbKey}[][doc new=2015-03-11]{runner}{=\meta{file name}}{no default, + initially \texttt{\cs{jobname}\detokenize{_run.tex}}} +Sets the \meta{file name} for dynamically created |runner| file. +This is the actual main file for a document snippet. +Typically, the initial setting is not needed to be changed. +\begin{dispListing} +\tcbset{external/runner=myrunner.tex} +\end{dispListing} +\end{extTcbKey} + +\begin{extTcbKey}[][doc new=2015-03-11]{prefix}{=\meta{text}}{no default, + initially \texttt{external/}} +The \meta{text} is prefixed to any \refKey{/tcb/external/name} for an +externalization snippet. The initial setting implies saving all snippets +into an |external/| subdirectory. Depending on the operation system, +the subdirectory may have to be created manually once. +\begin{dispListing} +% Use a 'real' prefix instead of writing into a subdirectory: +\tcbset{external/prefix=ext_} +\end{dispListing} +\end{extTcbKey} + + +\begin{extTcbKey}[][doc new=2015-03-11]{externalize}{\colOpt{=true\textbar false}}{default |true|, + initially |true|} +If set to |true|, the marked snippets are compiled if necessary. +If set to |false|, the marked snippets are not compiled but included as text. +\refKey{/tcb/external/externalize} can only be used after \refCom{tcbEXTERNALIZE}. +\end{extTcbKey} + +\begin{extTcbKey}[][doc new=2015-03-11]{force remake}{\colOpt{=true\textbar false}}{default |true|, + initially |false|} +If set to |true|, the marked snippets are always compiled. +If set to |true|, the marked snippets are compiled only if necessary. +The necessity is given, if a compiled pdf file is missing or the +|md5| checksum of the source snippet has changed. +\end{extTcbKey} + +\begin{extTcbKey}[][doc new=2015-03-11]{!}{}{style} + Shortcut for setting \refKey{/tcb/external/force remake} to |true|. +\end{extTcbKey} + + + +\subsection{Marking Externalization Snippets}\label{subsec:external_marking} + +\begin{docEnvironment}[doc new=2015-03-11]{tcbexternal}{\oarg{options}\marg{name}} +Marks the environment content as a snippet for externalization. +Typically, the content is a |tikzpicture| or something similar. +It is important to note that the snippet should not have any dependencies +with the rest of the document, e.g. referencing counters or setting counters +is not possible. +The \meta{name} is automatically prefixed with \refKey{/tcb/external/prefix}. +In combination, this has to be a unique file name. It is advised to not +use spaces or umlauts for the name. +The \meta{options} are keys from the |/tcb/external/| key tree. + +\begin{dispExample} +\begin{tcbexternal}{example_tikzpicture} + \begin{tikzpicture} + \path[fill=yellow!50!white] (0,0) circle (11mm); + \path[fill=white] (0,0) circle (9mm); + \foreach \w/\c in {90/red,210/green,330/blue} + {\path[shading=ball,ball color=\c] (\w:1cm) circle (7mm);} + \end{tikzpicture} +\end{tcbexternal} +\end{dispExample} + +\medskip + +If a \refEnv{tcolorbox} is externalized, one should use +\refKey{/tcb/nobeforeafter} for the box. Indention and distances to +the text before and after have to be given separately outside the +\refEnv{tcbexternal} environment. + +\begin{dispExample} +\noindent% +\begin{tcbexternal}[minipage]{example_tcolorbox} + \begin{tcolorbox}[nobeforeafter,enhanced, + fonttitle=\bfseries,title=Externalized Box, + colframe=red!50!black,drop fuzzy shadow, + interior style={fill overzoom image=goldshade.png}] + This complete tcolorbox is externalized. One cannot use numbered + boxes here. Note the \texttt{minipage} option which tells the + current line width to the external snippet. + \end{tcolorbox} +\end{tcbexternal} +\end{dispExample} + +\begin{dispExample} +\begin{tcolorbox}[nobeforeafter,enhanced, + fonttitle=\bfseries,title=Externalized Box, + colframe=blue!50!black, + interior style={fill overzoom image=blueshade.png}] + \begin{tcbexternal}[minipage]{example_tcolorbox2} + \color{white}% + The interior of the tcolorbox is externalized. + One can use numbered boxes without problem. + Note that the text color has to be set for the text manually + since it is converted into picture. + \end{tcbexternal} +\end{tcolorbox} +\end{dispExample} + +\begin{dispExample} +\begin{tcbexternal}[minipage]{example_tabularx} + \newcolumntype{Y}{>{\raggedleft\arraybackslash}X}% + \begin{tabularx}{\linewidth}{|l||Y|Y|Y|Y||Y|}\hline + Group & One & Two & Three & Four & Sum\\\hline\hline + Red & 1000.00 & 2000.00 & 3000.00 & 4000.00 & 10000.00\\\hline + Green & 2000.00 & 3000.00 & 4000.00 & 5000.00 & 14000.00\\\hline + Blue & 3000.00 & 4000.00 & 5000.00 & 6000.00 & 18000.00\\\hline\hline + Sum & 6000.00 & 9000.00 & 12000.00 & 15000.00 & 42000.00\\\hline + \end{tabularx} +\end{tcbexternal} +\end{dispExample} + + +\end{docEnvironment} + +\begin{extTcbKey}[][doc new=2015-03-11]{name}{=\meta{name}}{no default, + initially \texttt{unnamed}} +The \meta{name} is automatically prefixed with \refKey{/tcb/external/prefix}. +In combination, this has to be a unique file name for externalization. +Typically, this key is not used directly but is set indirectly as +mandatory parameter, see \refEnv{tcbexternal}. +\end{extTcbKey} + + +\clearpage +\begin{docEnvironment}[doc new=2015-03-11]{extcolorbox}{\oarg{options}\marg{name}\oarg{tcolorbox options}} + This is an externalized version of \refEnv{tcolorbox} created + using\\ \refCom{newtcbexternalizetcolorbox}: +\begin{dispListing} +\newtcbexternalizetcolorbox{extcolorbox}{tcolorbox}{}{} +\end{dispListing} + \meta{options} and \meta{name} are given to the underlying \refEnv{tcbexternal} + environment, while \meta{tcolorbox options} are given to \refEnv{tcolorbox}. + + \begin{marker} + Note that you should not redefine \refKey{/tcb/before} and \refKey{/tcb/after} + inside the \meta{tcolorbox options}, since the + externalized version would not be identical to the non-externalized + otherwise. + \end{marker} + +\begin{dispExample} +\begin{extcolorbox}[minipage]{example_extcolorbox} + [ enhanced,colframe=red!50!black,colback=yellow!10, + fonttitle=\bfseries,drop fuzzy shadow, + title=My external box ] + + This box is completely externalized. + + \begin{tcolorbox}[colframe=blue,colback=blue!5,before skip=6pt] + Inner box. + \end{tcolorbox} +\end{extcolorbox} +\end{dispExample} +\end{docEnvironment} + +\begin{marker} +\begin{itemize} +\item\textbf{Never} externalize numbered boxes. +\item\textbf{Never} externalize boxes which contain references to other + things, e.g. using |\ref| or |\cite|. +\item\textbf{Never} externalize breakable boxes. +\end{itemize} +\kern6pt +\end{marker} + +\clearpage +\begin{docEnvironment}[doc new=2015-03-11]{extikzpicture}{\oarg{options}\marg{name}\oarg{tikz options}} + This is an externalized version of |tikzpicture| created + using\\ \refCom{newtcbexternalizeenvironment}: +\begin{dispListing} +\newtcbexternalizeenvironment{extikzpicture}{tikzpicture}{}{}{} +\end{dispListing} + \meta{options} and \meta{name} are given to the underlying \refEnv{tcbexternal} + environment, while \meta{tikz options} are given to |tikzpicture|. + +\begin{dispExample} +\begin{center} +\begin{extikzpicture}[ + preamble={\usepackage{pgfplots}}, % add package for external graph + input source on error=false, % do not load source on error +]{example_pgfplots} + \pgfplotsset{width=12cm} + \begin{axis}[3d box=background,grid=major, + xlabel=$x$, ylabel=$y$, zlabel=$z$, view/h=40, + mesh/interior colormap name=hot, + colormap/blackwhite, + z buffer=sort,domain=0:90,y domain=0:60, + zmin=0,zmax=2,z post scale=1.2, + ] + \addplot3[surf,mesh/interior colormap name=blackwhite, + colormap/hot,] ( {cos(x)},{sin(x)}, {2*sin(y)} ); + \addplot3[surf] ( {2*cos(x)*cos(y)},{2*sin(x)*cos(y)}, {2*sin(y)} ); + \end{axis} +\end{extikzpicture} +\end{center} +\end{dispExample} + +\end{docEnvironment} + + + + +\clearpage +\begin{docTcbKey}[][doc new=2015-03-11]{externalize listing}{=\meta{name}}{style, no default} + The text content of a \refEnv{tcblisting} is externalized with the + given \meta{name}. Note that the listing part is not externalized. +\end{docTcbKey} + + +\begin{dispExample} +\begin{tcblisting}{externalize listing=example_listing, + bicolor,colback=yellow!10,colframe=yellow!50!black, + colbacklower=white,center lower} +\begin{tikzpicture} + \path[fill=yellow!50!white] (0,0) circle (11mm); + \path[fill=white] (0,0) circle (9mm); + \foreach \w/\c in {90/red,210/green,330/blue} + {\path[shading=ball,ball color=\c] (\w:1cm) circle (7mm);} +\end{tikzpicture} +\end{tcblisting} +\end{dispExample} + + +\begin{docTcbKey}[][doc new=2015-03-11]{externalize listing!}{=\meta{name}}{style, no default} +Combination of \refKey{/tcb/externalize listing} and \refKey{/tcb/external/force remake}. +\end{docTcbKey} + +\begin{docTcbKey}[][doc new=2015-03-11]{externalize example}{=\meta{name}}{style, no default} + The text content of a \refEnv{dispExample*} is externalized with the + given \meta{name}. Note that the listing part is not externalized. + +\begin{dispExample} +\begin{dispExample*}{sidebyside,externalize example=example_example} +\tikz\path[shading=ball, + ball color=red] circle (7mm); +\end{dispExample*} +\end{dispExample} +\end{docTcbKey} + +\begin{docTcbKey}[][doc new=2015-03-11]{externalize example!}{=\meta{name}}{style, no default} +Combination of \refKey{/tcb/externalize example} and \refKey{/tcb/external/force remake}. +\end{docTcbKey} + +\clearpage +\subsection{Customization}\label{subsec:external_custom} + +\begin{extTcbKey}[][doc new=2015-03-11]{safety}{=\meta{length}}{no default, + initially |2mm|} +The snippet box is surrounded with a safety border with a thickness of +\meta{length}. This border is automatically trimmed during picture inclusion. +The reason for this mechanism is to catch box content which +extrudes over the bounding box. For example, shadows of a |tcolorbox| are +painted outside the bounding box and would be lost otherwise. +\end{extTcbKey} + +\begin{extTcbKey}[][doc new=2015-03-11]{environment}{=\meta{env}}{no default, initially unset} +Surrounds the exported snippet text with an environment \meta{env} without +parameters. +Note that this option is ignored for \refKey{/tcb/externalize listing}. +\end{extTcbKey} + + +\begin{extTcbKey}[][doc new=2015-03-11]{minipage}{\colOpt{=\meta{length}}}{default \texttt{\cs{linewidth}}, + initially unset} +Surrounds the exported snippet text with a minipage. The optional \meta{length} +parameter sets the width of the minipage. Note that the default width is the +current line width of the main document. +See \refEnv{tcbexternal} for examples. +Note that this option is ignored for \refKey{/tcb/externalize listing}. +\end{extTcbKey} + + +\begin{extTcbKey}[][doc new=2015-03-11]{plain}{}{no value, initially set} + Removes any text which was set to surround the snippet. + This removes the setting of \refKey{/tcb/external/minipage}, but is + independent of \refKey{/tcb/external/safety}. +\end{extTcbKey} + + +\begin{extTcbKey}[][doc new=2015-03-11]{compiler}{=\meta{text}}{no default, + initially \texttt{pdflatex}} + Sets the name of the compiler for the snippets. Note that this compiler + has to support the |\pdfmdfivesum| primitive e.g. using the + |pdftexcmds| package. This should work for |xelatex| and |lualatex|. +\end{extTcbKey} + +\begin{extTcbKey}[][doc new=2015-03-11]{runs}{=\meta{number}}{no default, + initially |1|} + Sets the number of compiler runs for the snippet. +\begin{dispExample} +\begin{tcbexternal}[minipage,runs=2]{example_raster} + \begin{tcbitemize}[raster equal height, + size=small,colframe=red!50!black,colback=red!10!white] + \tcbitem One + \tcbitem \Huge Two + \tcbitem Three + \tcbitem Four + \end{tcbitemize} +\end{tcbexternal} +\end{dispExample} +\end{extTcbKey} + + +\begin{extTcbKey}[][doc new=2015-03-11]{input source on error}{\colOpt{=true\textbar false}}{default |true|, + initially |true|} +If set to |true|, the source code of the snippet is loaded instead of +the failed pdf picture. Typically, this will lead to an error stop at the +faulty place of the source and such helps detecting the cause. +If the source input compiles without error, the document setup +may be incorrect, see \Fullref{subsec:external_preparation}. +Maybe, the |external/| subdirectory has to be created manually in this case, +see \refKey{/tcb/external/prefix}.\par +If the option is set to |false|, the compilation stops immediately on an error. +The log file of the external snippet has to be consulted for error messages +in this case. +\end{extTcbKey} + + +\clearpage +\begin{extTcbKey}[][doc new=2015-03-11]{preamble}{=\meta{macro}}{no default, + initially unset} + The give \meta{macro} is added to the preamble of the snippet document. + It is not used for compilation of the main document. +\end{extTcbKey} + + +\begin{extTcbKey}[][doc new=2015-03-16]{clear preamble}{}{no value} + Removes all additional \refKey{/tcb/external/preamble} settings. +\end{extTcbKey} + + + +\begin{docCommand}[doc new=2015-03-11]{tcbifexternal}{\marg{true}\marg{false}} + Expands to \meta{true}, if executed during snippet compilation, + and to \meta{false}, if executed during main document compilation. + This can be used \emph{before} \refCom{tcbEXTERNALIZE} to + give different setting to snippet and main document. +\begin{dispListing} +\tcbifexternal{ + \usepackage{onlyforexternal} +}{ + \usepackage{onlyformain} +} +\end{dispListing} +\end{docCommand} + + + +\begin{docCommand}[doc new=2015-03-11]{newtcbexternalizeenvironment}{\marg{newenv}\marg{env}\marg{options}\marg{begin}\marg{end}} + Creates a new environment \meta{newenv} which is based on + \refEnv{tcbexternal}. This enviroment takes \emph{at least} + one optional parameter and one mandatory parameter. + These two parameters are passed to \refEnv{tcbexternal}. + Further, the given \meta{options} are always added to the option list of \refEnv{tcbexternal}.\par + The environment content is externalized and the external snippet is surrounded + by an environment \meta{env}. All further parameters of \meta{newenv} + are given to \meta{env} as parameters.\par + The included image is prepended by \meta{begin} and appended by \meta{end}.\par + \refEnv{extikzpicture} is an example application + for \refCom{newtcbexternalizeenvironment}. + +\begin{dispExample} +\newtcbexternalizeenvironment{extabular}{tabular}{}{\par\centering}{\par} + +\begin{extabular}{example_tabular}{|l|p{6cm}|r|}\hline +A & B & C\\\hline +a & This table is externalized as snippet. Obviously, + this only makes sense for highly complex tables. +& b\\\hline +\end{extabular} +\end{dispExample} +\end{docCommand} + + +\begin{docCommand}[doc new=2015-03-11]{renewtcbexternalizeenvironment}{\marg{newenv}\marg{env}\marg{options}\marg{begin}\marg{end}} + Identical to \refCom{newtcbexternalizeenvironment}, but the environment \meta{newenv} + is created by |\renewenvironment| instead of |\newenvironment|. +\end{docCommand} + + +\clearpage +\begin{docCommand}[doc new=2015-03-11]{newtcbexternalizetcolorbox}{\marg{newenv}\marg{env}\marg{options}\marg{begin end options}} + Creates a new environment \meta{newenv} which is based on + \refEnv{tcbexternal}. This enviroment takes \emph{at least} + one optional parameter and one mandatory parameter. + These two parameters are passed to \refEnv{tcbexternal}. + Further, the given \meta{options} are always added to the option list of \refEnv{tcbexternal}.\par + The environment content is externalized and the external snippet is surrounded + by an environment \meta{env}. All further parameters of \meta{newenv} + are given to \meta{env} as parameters. + \textbf{In contrast to \refCom{newtcbexternalizeenvironment}, the + environment \meta{env} is intended to be based on \refEnv{tcolorbox} + or \refEnv{tcblisting}.}\par + The \meta{begin end options} are options for settings the space before + and after the included image using \refKey{/tcb/before}, \refKey{/tcb/before skip}, + \refKey{/tcb/after}, or \refKey{/tcb/after skip}. + \begin{marker} + Use the exact identical values for \refKey{/tcb/before} and \refKey{/tcb/after} + inside \meta{begin end options} as they where used for definition of + \meta{env}! Otherwise, externalized and non-externalized version will have + different spacings. + \end{marker} + \refEnv{extcolorbox} is an example application for\refCom{newtcbexternalizetcolorbox}. + + +\inputpreamblelisting{M} + +{ +\tcbset{external/preamble={\input{tcolorbox_preamble_M.tex}}} +\begin{dispExample} +\begin{exmyownlisting}{example_mylisting}% <- name for the external file + {My externalized example box} +This is my \LaTeX\ box. +\end{exmyownlisting} +\end{dispExample} +} +\end{docCommand} + + +\begin{docCommand}[doc new=2015-03-11]{renewtcbexternalizetcolorbox}{\marg{newenv}\marg{env}\marg{options}\marg{begin end options}} + Identical to \refCom{newtcbexternalizetcolorbox}, but the environment \meta{newenv} + is created by |\renewenvironment| instead of |\newenvironment|. +\end{docCommand} + diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.initoptions.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.initoptions.tex index 57500d9ffbf..d33aebfe9e0 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.initoptions.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.initoptions.tex @@ -235,6 +235,51 @@ Feasible values for \meta{name} are: {\tcbusetemp} + +\clearpage +\begin{docTcbKey}[][doc new=2015-03-13]{blend before title}{=\meta{value}}{no default, initially \docValue{colon}} + This option formats the title output of \refKey{/tcb/new/blend into}. + Note that this is a common |tcolorbox| option which should be set + globally or in the normal option part of \refCom{newtcolorbox}. + +Feasible values for \meta{value} are: +\begin{itemize} +\item\docValue{colon}: use name/number plus colon. +\item\docValue{dash}: use name/number plus dash. +\item\docValue{colon hang}: use name/number plus colon with hanging indent. +\item\docValue{dash hang}: use name/number plus dash with hanging indent. +\end{itemize} + +\begin{dispListing} +\newtcolorbox[blend into=figures]{myfigure}[2][]{float=htb,capture=hbox, + blend before title=dash hang,title={#2},every float=\centering,#1} + +\begin{myfigure}{A tcolorbox figure with quite a long title} + \includegraphics[height=5cm]{lichtspiel.jpg} +\end{myfigure} +\end{dispListing} +{\tcbusetemp} +\end{docTcbKey} + +\clearpage +\begin{docTcbKey}[][doc new=2015-03-13]{blend before title code}{=\meta{code}}{no default} + This option formats the title output of \refKey{/tcb/new/blend into}. + The \meta{code} takes one parameter, the name/number. + Use this, if \refKey{/tcb/blend before title} is not flexible enough. + +\begin{dispListing} +\newtcolorbox[blend into=figures]{myfigure}[2][]{float=htb,capture=hbox, + blend before title code={\fbox{##1}\ },title={#2},every float=\centering,#1} + +\begin{myfigure}{A tcolorbox figure} + \includegraphics[height=6cm]{lichtspiel.jpg} +\end{myfigure} +\end{dispListing} +{\tcbusetemp} +\end{docTcbKey} + + + \clearpage \subsection{Lists of \texttt{tcolorbox}es}\label{sec:listsof} For figures and tables, \LaTeX\ provides the |\listoffigures| and 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 6cb0825b13e..7161bed29ac 100644 --- a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.intro.tex +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.intro.tex @@ -142,7 +142,12 @@ The following keys are used inside |\tcbuselibrary| respectively see Section~\ref{sec:xparse} from page~\pageref{sec:xparse}. \end{docTcbKey} +\begin{docTcbKey}[library]{external}{}{\mylib{external}} + Provides externalization support for stand-alone document snippets, + see \Fullref{sec:external}. +\end{docTcbKey} +\clearpage \begin{docTcbKey}[library]{documentation}{}{\mylib{documentation}} Provides additional macros for typesetting \LaTeX\ documentations @@ -150,7 +155,6 @@ The following keys are used inside |\tcbuselibrary| respectively from page~\pageref{sec:documentation}. \end{docTcbKey} -\clearpage \begin{docTcbKey}[library]{many}{}{style, no value} Loads the libraries \mylib{skins}, \mylib{breakable}, \mylib{raster}, \mylib{hooks}, \mylib{theorems}, \mylib{fitting}, and \mylib{xparse}. @@ -172,7 +176,8 @@ The following keys are used inside |\tcbuselibrary| respectively \end{docTcbKey} -\begin{tcolorbox}[title={Package \texttt{tcolorbox}},center title,fonttitle=\bfseries,arc=0pt, +\begin{extcolorbox}[runs=2]{intro_packageoverview} + [title={Package \texttt{tcolorbox}},center title,fonttitle=\bfseries,arc=0pt, colback=red!10!white, interior style={fill tile image*={width=2cm}{pink_marble.png},fill image opacity=0.5}, colframe=red!50!black] @@ -188,6 +193,7 @@ The following keys are used inside |\tcbuselibrary| respectively \mylib{theorems}\\ \mylib{fitting}\\ \mylib{hooks}\\ + \mylib{external}\\ \mylib{xparse} \tcbitem[adjusted title=Advanced Listings] \mylib{listings}\\ @@ -197,5 +203,5 @@ The following keys are used inside |\tcbuselibrary| respectively \tcbitem[adjusted title=Documentation] \mylib{documentation} \end{tcbitemize} -\end{tcolorbox} +\end{extcolorbox} diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty new file mode 100644 index 00000000000..bb8cc39535a --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_main.sty @@ -0,0 +1,206 @@ +% !TeX root = tcolorbox.tex +% include file (style) of tcolorbox.tex (manual of the LaTeX package tcolorbox) +\RequirePackage[T1]{fontenc} +\RequirePackage[latin1]{inputenc} +\RequirePackage[english]{babel} +\RequirePackage{lmodern,parskip,array,ifthen,calc} +\RequirePackage{amsmath,amssymb} +\RequirePackage[svgnames,table,hyperref]{xcolor} +\RequirePackage{tikz} +\RequirePackage{varioref} +\RequirePackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref} +\RequirePackage{varwidth,cleveref,incgraph} + +\RequirePackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm, + marginparsep=3mm,marginparwidth=18mm, + headheight=0mm,headsep=0cm, + footskip=1.5cm,includeheadfoot%,showframe + ]{geometry} +\RequirePackage{fancyhdr} +\fancyhf{} +\fancyfoot[C]{\thepage}% +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\pagestyle{fancy} +\tolerance=2000% +\setlength{\emergencystretch}{20pt}% + + +\usetikzlibrary{shadings,shadows} +\usetikzlibrary{decorations.pathmorphing} +\usetikzlibrary{patterns} +\usetikzlibrary{spy} +\usetikzlibrary{arrows.meta} + +\RequirePackage{array,tabularx} +\RequirePackage{amsmath} +\RequirePackage{lipsum} +\RequirePackage{empheq} + +%\RequirePackage[cache]{minted}% minted 2.0 + +\RequirePackage{changepage} +\strictpagecheck + +\providecommand{\tcbpkgprefix}{} +\RequirePackage[all]{\tcbpkgprefix tcolorbox} +\RequirePackage[extendedchars,encoding,filenameencoding=utf-8]{grffile} + +\tcbset{skin=enhanced, + doc head={colback=yellow!10!white,interior style=fill}, + doc head key={colback=magenta!5!white,interior style=fill}, + color key=DarkViolet, + color value=Teal, + color color=Teal, + color counter=Orange!85!black, + color length=Orange!85!black, + index colorize, + index annotate, +} +\urlstyle{sf} + +\tcbmakedocSubKey{docTcbKey}{tcb} +\tcbmakedocSubKey{langTcbKey}{tcb/doclang} +\tcbmakedocSubKey{newTcbKey}{tcb/new} +\tcbmakedocSubKey{boxTcbKey}{tcb/boxtitle} +\tcbmakedocSubKey{extTcbKey}{tcb/external} +\tcbmakedocSubKey{docTikzKey}{tikz} + +\def\tikzname{Ti\emph{k}Z} + +\makeatletter +\newrobustcmd{\tcbIndexPrintSkinCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{Skin}} +\newrobustcmd{\tcbIndexPrintSkinC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@key}} +\def\tcb@index@Skin#1{\iftcb@doc@toindex\index{#1\idx@actual\tcbIndexPrintSkinCA{#1}}\index{Skins\idx@level#1\idx@actual\tcbIndexPrintSkinC{#1}}\fi}% + +\newenvironment{docSkin}[1]{\begin{tcb@manual@entry}% + \begin{tcb@doc@head}{colback=magenta!5!white,interior style=fill}% + \hypertarget{skin:#1}{\tcb@Print@Key{/tcb/skin=}\tcb@Print@Val{#1}\tcb@index@Skin{#1}\protected@edef\@currentlabel{#1}\label{skin:#1}\hfill(skin)}% + \end{tcb@doc@head}}% + {\end{tcb@manual@entry}} +\def\refSkin{\tcb@ref@doc{skin}} +\makeatother + +\newtcolorbox{marker}[1][]{marker,#1} + +\renewcommand*{\tcbdocnew}[1]{\textcolor{green!50!black}{\sffamily\bfseries N} #1} +\renewcommand*{\tcbdocupdated}[1]{\textcolor{blue!75!black}{\sffamily\bfseries U} #1} + +\newcounter{texexp} +\newcounter{texercise} +\newcounter{mytheorem}[section] + +\newcounter{myexample} + +\newcounter{example} +\newlength{\examlen} +\newsavebox\mysavebox + +\lstdefinestyle{mydocumentation}{style=tcbdocumentation, + classoffset=0, + texcsstyle=*\color{blue}, + % LaTeX and other packages + moretexcs={arrayrulecolor,draw,includegraphics,ifthenelse,isodd,lipsum,path,pgfkeysalso}, + classoffset=1, + % tcolorbox macros + moretexcs={% core + endtcolorbox,endtcbverbatimwrite,newtcolorbox,newtcbox,newtcboxfit,tcbusetemp,tcbtitle,tcbtitletext, + tcblower,tcbox,tcboxfit,tcbset,tcbuselibrary,tcolorbox,tcbverbatimwrite,tcbsetforeverylayer,tcbsubtitle, + tcolorboxenvironment,tcblistof,tcbstartrecording,tcbrecord,tcbstoprecording,tcbinputrecords, + % listings + endtcblisting,newtcblisting,newtcbinputlisting, + tcblisting,tcbinputlisting,tcbuselistingtext,tcbuselistinglisting,tcbusetemplisting, + tcbfitdim,tcbfitsteps, + % raster + thetcbrasternum,tcbitem, + % theorems + tcbmaketheorem,tcboxmath,tcbhighmath,thetcbcounter,newtcbtheorem, + % documentation + brackets, + colDef,colOpt,cs, + docAuxCommand,docColor,docAuxEnvironment,docAuxKey, + docCounter,docLength, + meta,marg, + oarg, + refCom,refEnv,refKey, + tcbmakedocSubKey,tcbdocmarginnote,tcbdocnew,tcbdocupdated, + % skins + tcbincludegraphics,tcbincludepdf,pdfpages,imagepage,imagepath,imagename, + tcbline,tcboxedtitleheight,tcboxedtitlewidth, + tcbsettowidthofnode,tcbsetmacrotowidthofnode,tcbsettoheightofnode,tcbsetmacrotoheightofnode, + % xparse + DeclareTColorBox,NewTColorBox,RenewTColorBox,ProvideTColorBox, + DeclareTotalTColorBox,NewTotalTColorBox,RenewTotalTColorBox,ProvideTotalTColorBox, + DeclareTCBox,NewTCBox,RenewTCBox,ProvideTCBox, + DeclareTotalTCBox,NewTotalTCBox,RenewTotalTCBox,ProvideTotalTCBox, + DeclareTCBListing,NewTCBListing,RenewTCBListing,ProvideTCBListing, + DeclareTCBInputListing,NewTCBInputListing,RenewTCBInputListing,ProvideTCBInputListing, + DeclareTCBoxFit,NewTCBoxFit,RenewTCBoxFit,ProvideTCBoxFit, + DeclareTotalTCBoxFit,NewTotalTCBoxFit,RenewTotalTCBoxFit,ProvideTotalTCBoxFit, + tcboxverb, + % externalization + tcbEXTERNALIZE,tcbifexternal,newtcbexternalizeenvironment, + renewtcbexternalizeenvironment,extcolorbox,extikzpicture, + newtcbexternalizetcolorbox,renewtcbexternalizetcolorbox, + }, + texcsstyle=*\color{Definition}\bfseries, + classoffset=0% restore default + } + + +\definecolor{Green_Dark}{rgb}{0.078431,0.407843,0.176471} +\definecolor{Blue_Dark}{rgb}{0.078431,0.188235,0.615686} + + +\tcbset{ + documentation listing style=mydocumentation,% + sbs/.style={sidebyside,before lower app={\tcbset{sidebyside=false}}},% + innerbox/.style={reset,documentation listing style=mydocumentation, + docexample/.style={docexample original},% + }, + base example/.style={bicolor, + before skip=4pt plus 2pt minus 1pt, + after skip=8pt plus 4pt minus 2pt, + colback=white,opacityback=0.87, + fontlower=\footnotesize, + frame style={top color=Green_Dark,bottom color=Blue_Dark}, + colbacklower=ExampleBack!5!white, + drop fuzzy shadow, + }, + docexample/.style={base example,% + every box on layer 2/.style={every box}, + before upper={\tcbset{innerbox}},before lower={\tcbset{innerbox}} + }, + docexample original/.style={colframe=ExampleFrame,colback=ExampleBack,fontlower=\footnotesize, + before skip=\medskipamount,after skip=\medskipamount,frame style={}}, +} + +\newtcbexternalizetcolorbox{exdispExample}{dispExample}{minipage}% + {before skip=4pt plus 2pt minus 1pt,after skip=8pt plus 4pt minus 2pt} + +\newtcbexternalizetcolorbox{exdispExample*}{dispExample*}{minipage}% + {before skip=4pt plus 2pt minus 1pt,after skip=8pt plus 4pt minus 2pt} + +\newcommand{\inputpreamblelisting}[1]{% + \tcbinputlisting{title=Definition in the preamble:, + base example,coltitle=black,fonttitle=\itshape,titlerule=0pt, + colbacktitle=Navy!15!ExampleBack, + top=0mm, + before=\par\smallskip,% + listing style=mydocumentation, + listing only,listing file={\jobname_preamble_#1.tex}}% +} + +\newtcolorbox{deprecated}{blank,breakable,watermark text=deprecated} + +\newtcbox{\mylib}{enhanced,nobeforeafter,tcbox raise base,boxrule=0.4pt,top=0mm,bottom=0mm, + right=0mm,left=4mm,arc=1pt,boxsep=2pt,before upper={\vphantom{dlg}}, + colframe=green!50!black,coltext=green!25!black,colback=green!10!white, + overlay={\begin{tcbclipinterior}\fill[green!75!blue!50!white] (frame.south west) + rectangle node[text=white,font=\sffamily\bfseries\tiny,rotate=90] {LIB} ([xshift=4mm]frame.north west);\end{tcbclipinterior}}} + +\robustify{\mylib} + +\pdfstringdefDisableCommands{% + \def\mylib#1{'#1'}% +} diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_snippet.sty b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_snippet.sty new file mode 100644 index 00000000000..95429f41af9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.doc.s_snippet.sty @@ -0,0 +1,183 @@ +% !TeX root = tcolorbox.tex +% include file (style) of tcolorbox.tex (manual of the LaTeX package tcolorbox) + +\begin{tcbverbatimwrite}{\jobname_preamble_A.tex} +\newtcolorbox[auto counter,number within=section]{pabox}[2][]{% + colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, + title=Examp.~\thetcbcounter: #2,#1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_A.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_B.tex} +% counter from previous example +\newtcbox[use counter from=pabox]{\pbbox}[2][]{% + colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, + title=(\thetcbcounter) #2,#1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_B.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_C.tex} +\newtcblisting[auto counter]{mycbox}[1]{% + colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, + title=Listing \thetcbcounter: #1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_C.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_D.tex} +\tcbset{ + 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/.style 2 args={texexp, + title={Example \thetcbcounter: #1},label={#2}}, +} + + +\newtcblisting{texexp}[1]{texexp,#1} +\newtcblisting[auto counter,number within=section]{texexptitled}[3][]{% + example={#2}{#3},#1} +\newtcolorbox[use counter from=texexptitled]{texexptitledspec}[3][]{% + example={#2}{#3},#1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_D.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_E.tex} +\newtcolorbox[auto counter,number within=section,list inside=exam]{texercise}[2][]{% + texercisestyle, + listing file={solutions/texercise\thetcbcounter.tex}, + label={exe:#2}, + record={\string\processsol{solutions/texercise\thetcbcounter.tex}{#2}}, + title={Exercise \thetcbcounter\hfill\mdseries Solution on page \pageref{sol:#2}}, + list text={Exercise with solution on page \pageref{sol:#2}},#1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_E.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_F.tex} +\newtcbtheorem[number within=section]{mytheo}{My Theorem}% + {colback=green!5,colframe=green!35!black,fonttitle=\bfseries}{th} +\end{tcbverbatimwrite} +\input{\jobname_preamble_F.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_G.tex} +% \usepackage{cleveref} +\tcbset{ + defstyle/.style={fonttitle=\bfseries\upshape, fontupper=\slshape, + arc=0mm, colback=blue!5!white,colframe=blue!75!black}, + theostyle/.style={fonttitle=\bfseries\upshape, fontupper=\slshape, + colback=red!10!white,colframe=red!75!black}, +} +\newtcbtheorem[number within=subsection,crefname={definition}{definitions}]% + {Definition}{Definition}{defstyle}{def} +\newtcbtheorem[use counter from=Definition,crefname={theorem}{theorems}]% + {Theorem}{Theorem}{theostyle}{theo} +\newtcbtheorem[use counter from=Definition,crefname={corollary}{corollaries}]% + {Corollary}{Corollary}{theostyle}{cor} +\end{tcbverbatimwrite} +\input{\jobname_preamble_G.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_H.tex} +\newtcolorbox[auto counter,number within=section, + number freestyle={(Q/\noexpand\thesection/\noexpand\Alph{\tcbcounter})}, + ]{phbox}[2][]{% + colback=yellow!15!white,colframe=blue!75!black,fonttitle=\bfseries, + title=Question~\thetcbcounter: #2,#1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_H.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_I.tex} +% \usepackage{cleveref} +\newtcolorbox[auto counter,number within=section, + crefname={bluebox}{blueboxes}]% + {mybluebox}[2][]{colback=blue!5!white,colframe=blue!75!black,fonttitle=\bfseries, + title=Bluebox \thetcbcounter: #2,#1} +\end{tcbverbatimwrite} +\input{\jobname_preamble_I.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_J.tex} +\newtcbtheorem[use counter from=mytheo]{theorem}{Theorem}{% + fonttitle=\bfseries\upshape,fontupper=\itshape, + colframe=green!50!black,colback=green!10!white, + colbacktitle=green!20!white,coltitle=blue!75!black}{theo} +\end{tcbverbatimwrite} +\input{\jobname_preamble_J.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_K.tex} +\usepackage{amsthm} + +\theoremstyle{plain}% from 'amsthm' +\newtheorem{lem}{Lemma}% from 'amsthm' + +\tcolorboxenvironment{lem}{ + enhanced jigsaw,colframe=cyan,interior hidden, + breakable,before skip=10pt,after skip=10pt } + +\tcolorboxenvironment{proof}{% 'proof' from 'amsthm' + blanker,breakable,left=5mm, + before skip=10pt,after skip=10pt, + borderline west={1mm}{0pt}{red}} +\end{tcbverbatimwrite} +\input{\jobname_preamble_K.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_L.tex} +% \tcbuselibrary{skins,xparse} + +\NewTColorBox[auto counter,number within=section]{exercise}{+O{}}{% + enhanced,colframe=green!20!black,colback=yellow!10!white,coltitle=green!40!black, + fonttitle=\bfseries, + underlay={\begin{tcbclipinterior} + \shade[inner color=green!80!yellow,outer color=yellow!10!white] + (interior.north west) circle (2cm); + \draw[help lines,step=5mm,yellow!80!black,shift={(interior.north west)}] + (interior.south west) grid (interior.north east); + \end{tcbclipinterior}}, + title={Exercise~\thetcbcounter:}, + label={exercise@\thetcbcounter}, + attach title to upper=\quad, + after upper={\par\hfill\textcolor{green!40!black}% + {\itshape Solution on page~\pageref{solution@\thetcbcounter}}}, + lowerbox=ignored, + savelowerto=solutions/exercise-\thetcbcounter.tex, + record={\string\solution{\thetcbcounter}{solutions/exercise-\thetcbcounter.tex}}, + #1 +} + +\NewTotalTColorBox{\solution}{mm}{% + enhanced,colframe=red!20!black,colback=yellow!10!white,coltitle=red!40!black, + fonttitle=\bfseries, + underlay={\begin{tcbclipinterior} + \shade[inner color=red!50!yellow,outer color=yellow!10!white] + (interior.north west) circle (2cm); + \draw[help lines,step=5mm,yellow!80!black,shift={(interior.north west)}] + (interior.south west) grid (interior.north east); + \end{tcbclipinterior}}, + title={Solution of Exercise~\ref{exercise@#1} on page~\pageref{exercise@#1}:}, + phantomlabel={solution@#1}, + attach title to upper=\par, +}{\input{#2}} + +\tcbset{no solution/.style={no recording,after upper=}} +\end{tcbverbatimwrite} +\input{\jobname_preamble_L.tex} + + +\begin{tcbverbatimwrite}{\jobname_preamble_M.tex} +\newtcblisting{myownlisting}[2][]{ + enhanced,colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, + colbacktitle=red!50!yellow,before skip=6pt,after skip=6pt, + title={#2},#1} + +\newtcbexternalizetcolorbox{exmyownlisting}{myownlisting}{minipage}% + {before skip=6pt,after skip=6pt}% same values as for mylisting +\end{tcbverbatimwrite} +\input{\jobname_preamble_M.tex} diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf index 5139fe5be3c..d0ffff46c95 100644 Binary files a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf and b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.pdf differ diff --git a/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex b/Master/texmf-dist/doc/latex/tcolorbox/tcolorbox.tex index 101d95b3e64..a4dc2e96bc0 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcolorbox.tex: Manual %% %% ------------------------------------------------------------------------------------------- @@ -20,98 +20,20 @@ %% \documentclass[a4paper,11pt]{ltxdoc} -\usepackage[T1]{fontenc} -\usepackage[latin1]{inputenc} -\usepackage[english]{babel} -\usepackage{lmodern,parskip,array,ifthen,calc} -\usepackage{amsmath,amssymb} -\usepackage[svgnames,table,hyperref]{xcolor} -\usepackage{tikz} -\usepackage{varioref} -\usepackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref} -\usepackage{varwidth,cleveref,incgraph} +\usepackage{tcolorbox.doc.s_main} +\tcbEXTERNALIZE +\usepackage{tcolorbox.doc.s_snippet} -\usepackage[a4paper,left=2.5cm,right=2.5cm,top=1.5cm,bottom=1.5cm, - marginparsep=3mm,marginparwidth=18mm, - headheight=0mm,headsep=0cm, - footskip=1.5cm,includeheadfoot%,showframe - ]{geometry} -\usepackage{fancyhdr} -\fancyhf{} -\fancyfoot[C]{\thepage}% -\renewcommand{\headrulewidth}{0pt} -\renewcommand{\footrulewidth}{0pt} -\pagestyle{fancy} -\tolerance=2000% -\setlength{\emergencystretch}{20pt}% - -\usepackage{csquotes} -\usepackage[style=numeric-comp,sorting=nyt, +\RequirePackage{csquotes} +\RequirePackage[style=numeric-comp,sorting=nyt, maxnames=8,minnames=8,abbreviate=false,backend=biber]{biblatex} \DeclareFieldFormat{url}{\newline\url{#1}}% \DeclareListFormat{language}{}% \setlength{\bibitemsep}{\smallskipamount} \addbibresource{tcolorbox.doc.bib} -\usetikzlibrary{shadings,shadows} -\usetikzlibrary{decorations.pathmorphing} -\usetikzlibrary{patterns} -\usetikzlibrary{spy} -\usetikzlibrary{arrows.meta} - -\usepackage{array,tabularx} -\usepackage{amsmath} -\usepackage{lipsum} -\usepackage{empheq} - -%\usepackage[cache]{minted}% minted 2.0 - -\usepackage{changepage} -\strictpagecheck - -\providecommand{\tcbpkgprefix}{} -\usepackage[all]{\tcbpkgprefix tcolorbox} -\usepackage[extendedchars,encoding,filenameencoding=utf-8]{grffile} - -\tcbset{skin=enhanced, - doc head={colback=yellow!10!white,interior style=fill}, - doc head key={colback=magenta!5!white,interior style=fill}, - color key=DarkViolet, - color value=Teal, - color color=Teal, - color counter=Orange!85!black, - color length=Orange!85!black, - index colorize,index annotate} -\urlstyle{sf} - -\tcbmakedocSubKey{docTcbKey}{tcb} -\tcbmakedocSubKey{langTcbKey}{tcb/doclang} -\tcbmakedocSubKey{newTcbKey}{tcb/new} -\tcbmakedocSubKey{boxTcbKey}{tcb/boxtitle} -\tcbmakedocSubKey{docTikzKey}{tikz} - -\def\tikzname{Ti\emph{k}Z} - -\makeatletter -\newrobustcmd{\tcbIndexPrintSkinCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{Skin}} -\newrobustcmd{\tcbIndexPrintSkinC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@key}} -\def\tcb@index@Skin#1{\iftcb@doc@toindex\index{#1\idx@actual\tcbIndexPrintSkinCA{#1}}\index{Skins\idx@level#1\idx@actual\tcbIndexPrintSkinC{#1}}\fi}% - -\newenvironment{docSkin}[1]{\begin{tcb@manual@entry}% - \begin{tcb@doc@head}{colback=magenta!5!white,interior style=fill}% - \hypertarget{skin:#1}{\tcb@Print@Key{/tcb/skin=}\tcb@Print@Val{#1}\tcb@index@Skin{#1}\protected@edef\@currentlabel{#1}\label{skin:#1}\hfill(skin)}% - \end{tcb@doc@head}}% - {\end{tcb@manual@entry}} -\def\refSkin{\tcb@ref@doc{skin}} -\makeatother - -\newtcolorbox{marker}[1][]{marker,#1} - -\renewcommand*{\tcbdocnew}[1]{\textcolor{green!50!black}{\sffamily\bfseries N} #1} -\renewcommand*{\tcbdocupdated}[1]{\textcolor{blue!75!black}{\sffamily\bfseries U} #1} - -\def\version{3.40}% -\def\datum{2015/01/14}% +\def\version{3.50}% +\def\datum{2015/03/16}% \makeindex \hypersetup{ @@ -121,267 +43,10 @@ pdfkeywords={colored boxes, LaTeX examples, theorems} } -\newcounter{texexp} -\newcounter{texercise} -\newcounter{mytheorem}[section] - -\newcounter{myexample} - -\newcounter{example} -\newlength{\examlen} -\newsavebox\mysavebox - -\lstdefinestyle{mydocumentation}{style=tcbdocumentation, - classoffset=0, - texcsstyle=*\color{blue}, - % LaTeX and other packages - moretexcs={arrayrulecolor,draw,includegraphics,ifthenelse,isodd,lipsum,path,pgfkeysalso}, - classoffset=1, - % tcolorbox macros - moretexcs={% core - endtcolorbox,endtcbverbatimwrite,newtcolorbox,newtcbox,newtcboxfit,tcbusetemp,tcbtitle,tcbtitletext, - tcblower,tcbox,tcboxfit,tcbset,tcbuselibrary,tcolorbox,tcbverbatimwrite,tcbsetforeverylayer,tcbsubtitle, - tcolorboxenvironment,tcblistof,tcbstartrecording,tcbrecord,tcbstoprecording,tcbinputrecords, - % listings - endtcblisting,newtcblisting,newtcbinputlisting, - tcblisting,tcbinputlisting,tcbuselistingtext,tcbuselistinglisting,tcbusetemplisting, - tcbfitdim,tcbfitsteps, - % raster - thetcbrasternum,tcbitem, - % theorems - tcbmaketheorem,tcboxmath,tcbhighmath,thetcbcounter,newtcbtheorem, - % documentation - brackets, - colDef,colOpt,cs, - docAuxCommand,docColor,docAuxEnvironment,docAuxKey, - docCounter,docLength, - meta,marg, - oarg, - refCom,refEnv,refKey, - tcbmakedocSubKey,tcbdocmarginnote,tcbdocnew,tcbdocupdated, - % skins - tcbincludegraphics,tcbincludepdf,pdfpages,imagepage,imagepath,imagename, - tcbline,tcboxedtitleheight,tcboxedtitlewidth, - tcbsettowidthofnode,tcbsetmacrotowidthofnode,tcbsettoheightofnode,tcbsetmacrotoheightofnode, - % xparse - DeclareTColorBox,NewTColorBox,RenewTColorBox,ProvideTColorBox, - DeclareTotalTColorBox,NewTotalTColorBox,RenewTotalTColorBox,ProvideTotalTColorBox, - DeclareTCBox,NewTCBox,RenewTCBox,ProvideTCBox, - DeclareTotalTCBox,NewTotalTCBox,RenewTotalTCBox,ProvideTotalTCBox, - DeclareTCBListing,NewTCBListing,RenewTCBListing,ProvideTCBListing, - DeclareTCBInputListing,NewTCBInputListing,RenewTCBInputListing,ProvideTCBInputListing, - DeclareTCBoxFit,NewTCBoxFit,RenewTCBoxFit,ProvideTCBoxFit, - DeclareTotalTCBoxFit,NewTotalTCBoxFit,RenewTotalTCBoxFit,ProvideTotalTCBoxFit, - tcboxverb, - }, - texcsstyle=*\color{Definition}\bfseries, - classoffset=0% restore default - } - -\tcbset{documentation listing style=mydocumentation,% - sbs/.style={sidebyside,before lower app={\tcbset{sidebyside=false}}},% - innerbox/.style={reset,documentation listing style=mydocumentation, - docexample/.style={docexample original},%listing engine=minted,documentation minted style=manni,documentation minted options={tabsize=2,fontsize=\footnotesize}, - }, - base example/.style={bicolor, - colframe=Navy!50!ExampleFrame,colback=Navy!5!ExampleBack,fontlower=\footnotesize, - %interior style={fill stretch image=blueshade.png,fill image opacity=0.15}, - frame style={fill stretch image*={angle=180,origin=c}{blueshade.png},fill image opacity=0.75}, - colbacklower=ExampleBack!5!white,opacityback=0.9, - drop fuzzy shadow}, - docexample/.style={base example,% - every box on layer 2/.style={every box}, - before upper={\tcbset{innerbox}},before lower={\tcbset{innerbox}} - }, - docexample original/.style={colframe=ExampleFrame,colback=ExampleBack,fontlower=\footnotesize,frame style={}}, -} - -\newcommand{\inputpreamblelisting}[1]{% - \tcbinputlisting{title=Definition in the preamble:, - base example,coltitle=black,fonttitle=\itshape,titlerule=0pt, - colbacktitle=Navy!15!ExampleBack, - top=0mm, - before=\par\smallskip,% - listing style=mydocumentation, - listing only,listing file={\jobname_preamble_#1.tex}}% -} - -\newtcolorbox{deprecated}{blank,breakable,watermark text=deprecated} - -\newtcbox{\mylib}{enhanced,nobeforeafter,tcbox raise base,boxrule=0.4pt,top=0mm,bottom=0mm, - right=0mm,left=4mm,arc=1pt,boxsep=2pt,before upper={\vphantom{dlg}}, - colframe=green!50!black,coltext=green!25!black,colback=green!10!white, - overlay={\begin{tcbclipinterior}\fill[green!75!blue!50!white] (frame.south west) - rectangle node[text=white,font=\sffamily\bfseries\tiny,rotate=90] {LIB} ([xshift=4mm]frame.north west);\end{tcbclipinterior}}} - -\robustify{\mylib} - -%\tcbset{every box/.style={enhanced}} - -\begin{tcbverbatimwrite}{\jobname_preamble_A.tex} -\newtcolorbox[auto counter,number within=section]{pabox}[2][]{% - colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, - title=Examp.~\thetcbcounter: #2,#1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_A.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_B.tex} -% counter from previous example -\newtcbox[use counter from=pabox]{\pbbox}[2][]{% - colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, - title=(\thetcbcounter) #2,#1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_B.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_C.tex} -\newtcblisting[auto counter]{mycbox}[1]{% - colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries, - title=Listing \thetcbcounter: #1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_C.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_D.tex} -\tcbset{ - 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/.style 2 args={texexp, - title={Example \thetcbcounter: #1},label={#2}}, -} - -\newtcblisting{texexp}[1]{texexp,#1} -\newtcblisting[auto counter,number within=section]{texexptitled}[3][]{% - example={#2}{#3},#1} -\newtcolorbox[use counter from=texexptitled]{texexptitledspec}[3][]{% - example={#2}{#3},#1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_D.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_E.tex} -\newtcolorbox[auto counter,number within=section,list inside=exam]{texercise}[2][]{% - texercisestyle, - listing file={solutions/texercise\thetcbcounter.tex}, - label={exe:#2}, - record={\string\processsol{solutions/texercise\thetcbcounter.tex}{#2}}, - title={Exercise \thetcbcounter\hfill\mdseries Solution on page \pageref{sol:#2}}, - list text={Exercise with solution on page \pageref{sol:#2}},#1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_E.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_F.tex} -\newtcbtheorem[number within=section]{mytheo}{My Theorem}% - {colback=green!5,colframe=green!35!black,fonttitle=\bfseries}{th} -\end{tcbverbatimwrite} -\input{\jobname_preamble_F.tex} - - -\begin{tcbverbatimwrite}{\jobname_preamble_G.tex} -% \usepackage{cleveref} -\tcbset{ - defstyle/.style={fonttitle=\bfseries\upshape, fontupper=\slshape, - arc=0mm, colback=blue!5!white,colframe=blue!75!black}, - theostyle/.style={fonttitle=\bfseries\upshape, fontupper=\slshape, - colback=red!10!white,colframe=red!75!black}, -} -\newtcbtheorem[number within=subsection,crefname={definition}{definitions}]% - {Definition}{Definition}{defstyle}{def} -\newtcbtheorem[use counter from=Definition,crefname={theorem}{theorems}]% - {Theorem}{Theorem}{theostyle}{theo} -\newtcbtheorem[use counter from=Definition,crefname={corollary}{corollaries}]% - {Corollary}{Corollary}{theostyle}{cor} -\end{tcbverbatimwrite} -\input{\jobname_preamble_G.tex} - - -\begin{tcbverbatimwrite}{\jobname_preamble_H.tex} -\newtcolorbox[auto counter,number within=section, - number freestyle={(Q/\noexpand\thesection/\noexpand\Alph{\tcbcounter})}, - ]{phbox}[2][]{% - colback=yellow!15!white,colframe=blue!75!black,fonttitle=\bfseries, - title=Question~\thetcbcounter: #2,#1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_H.tex} - - -\begin{tcbverbatimwrite}{\jobname_preamble_I.tex} -% \usepackage{cleveref} -\newtcolorbox[auto counter,number within=section, - crefname={bluebox}{blueboxes}]% - {mybluebox}[2][]{colback=blue!5!white,colframe=blue!75!black,fonttitle=\bfseries, - title=Bluebox \thetcbcounter: #2,#1} -\end{tcbverbatimwrite} -\input{\jobname_preamble_I.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_J.tex} -\newtcbtheorem[use counter from=mytheo]{theorem}{Theorem}{% - fonttitle=\bfseries\upshape,fontupper=\itshape, - colframe=green!50!black,colback=green!10!white, - colbacktitle=green!20!white,coltitle=blue!75!black}{theo} -\end{tcbverbatimwrite} -\input{\jobname_preamble_J.tex} - -\begin{tcbverbatimwrite}{\jobname_preamble_K.tex} -\usepackage{amsthm} - -\theoremstyle{plain}% from 'amsthm' -\newtheorem{lem}{Lemma}% from 'amsthm' - -\tcolorboxenvironment{lem}{ - enhanced jigsaw,colframe=cyan,interior hidden, - breakable,before skip=10pt,after skip=10pt } - -\tcolorboxenvironment{proof}{% 'proof' from 'amsthm' - blanker,breakable,left=5mm, - before skip=10pt,after skip=10pt, - borderline west={1mm}{0pt}{red}} -\end{tcbverbatimwrite} -\input{\jobname_preamble_K.tex} - - -\begin{tcbverbatimwrite}{\jobname_preamble_L.tex} -% \tcbuselibrary{skins,xparse} - -\NewTColorBox[auto counter,number within=section]{exercise}{+O{}}{% - enhanced,colframe=green!20!black,colback=yellow!10!white,coltitle=green!40!black, - fonttitle=\bfseries, - underlay={\begin{tcbclipinterior} - \shade[inner color=green!80!yellow,outer color=yellow!10!white] - (interior.north west) circle (2cm); - \draw[help lines,step=5mm,yellow!80!black,shift={(interior.north west)}] - (interior.south west) grid (interior.north east); - \end{tcbclipinterior}}, - title={Exercise~\thetcbcounter:}, - label={exercise@\thetcbcounter}, - attach title to upper=\quad, - after upper={\par\hfill\textcolor{green!40!black}% - {\itshape Solution on page~\pageref{solution@\thetcbcounter}}}, - lowerbox=ignored, - savelowerto=solutions/exercise-\thetcbcounter.tex, - record={\string\solution{\thetcbcounter}{solutions/exercise-\thetcbcounter.tex}}, - #1 -} - -\NewTotalTColorBox{\solution}{mm}{% - enhanced,colframe=red!20!black,colback=yellow!10!white,coltitle=red!40!black, - fonttitle=\bfseries, - underlay={\begin{tcbclipinterior} - \shade[inner color=red!50!yellow,outer color=yellow!10!white] - (interior.north west) circle (2cm); - \draw[help lines,step=5mm,yellow!80!black,shift={(interior.north west)}] - (interior.south west) grid (interior.north east); - \end{tcbclipinterior}}, - title={Solution of Exercise~\ref{exercise@#1} on page~\pageref{exercise@#1}:}, - phantomlabel={solution@#1}, - attach title to upper=\par, -}{\input{#2}} - -\tcbset{no solution/.style={no recording,after upper=}} -\end{tcbverbatimwrite} -\input{\jobname_preamble_L.tex} - +\usepackage{pgfplots} %\tcbset{draftmode} -%\includeonly{tcolorbox.doc.skins} +%\includeonly{tcolorbox.doc.coreoptions} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} @@ -404,6 +69,7 @@ \include{tcolorbox.doc.fitting} \include{tcolorbox.doc.hooks} \include{tcolorbox.doc.xparse} +\include{tcolorbox.doc.external} \include{tcolorbox.doc.documentation} \appendix \include{tcolorbox.doc.picturecredits} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex index d57cd4e4f01..f87080b974c 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbbreakable.code.tex: Code for breakable colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \let\tcb@parboxrestore@true=\tcb@parboxrestore \def\tcb@parboxrestore@false{\vskip-\parskip\linewidth\hsize\noindent} @@ -264,7 +264,11 @@ \tcb@handle@nobreak% \fi% \else% - \kvtcb@beforebox% + %\ifnum\lastnodetype=-1\relax% + % \lineskip=0pt% + %\else% + \kvtcb@beforebox% + %\fi% \fi% \def\kvtcb@beforebox{\parskip\z@\nointerlineskip\noindent}% \noindent% applies parskip diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex index 1c6d8136290..15cf264ffc5 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbdocumentation.code.tex: Code for LaTeX documentations %% %% ------------------------------------------------------------------------------------------- @@ -17,9 +17,9 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} -\tcbuselibrary{listings,skins,xparse} +\tcbuselibrary{listings,skins,xparse,external} \RequirePackage{doc}[2010/02/04] \RequirePackage{pifont}[2005/04/12] @@ -108,8 +108,6 @@ color option/.store in=\kvtcb@col@opt, color hyperlink/.store in=\kvtcb@colhyper, color frame/.store in=\kvtcb@colhyper, - before example/.store in=\kvtcb@beforeexample, - after example/.store in=\kvtcb@afterexample, index actual/.store in=\idx@actual, index quote/.store in=\idx@quote, index level/.store in=\idx@level, @@ -137,7 +135,9 @@ % styles \tcbset{ - docexample/.style={colframe=ExampleFrame,colback=ExampleBack,fontlower=\footnotesize}, + docexample/.style={colframe=ExampleFrame,colback=ExampleBack, + before skip=\medskipamount,after skip=\medskipamount, + fontlower=\footnotesize}, documentation minted style=, documentation minted options={tabsize=2,fontsize=\small}, index default settings/.style={index actual={@},index quote={"},index level={!}}, @@ -166,32 +166,32 @@ menucolor=\kvtcb@colhyper }} -\def\dispExample{\tcb@layer@pushup\tcbset{docexample}\tcbwritetemp} +\def\dispExample{\tcb@layer@pushup\tcbset{docexample}\begingroup\tcbwritetemp} \def\enddispExample{% - \endtcbwritetemp% - \kvtcb@beforeexample\begin{tcolorbox}% + \endtcbwritetemp\endgroup% + \begin{tcolorbox}% \tcb@doc@usetemplisting% \tcblower% \tcbusetemp% - \end{tcolorbox}\kvtcb@afterexample% + \end{tcolorbox}% } \newenvironment{dispExample*}[1]{% - \tcb@layer@pushup\tcbset{docexample,#1}\tcbwritetemp% + \tcb@layer@pushup\tcbset{docexample,#1}\begingroup\tcbwritetemp% }{\enddispExample} -\def\dispListing{\tcb@layer@pushup\tcbset{docexample}\tcbwritetemp} +\def\dispListing{\tcb@layer@pushup\tcbset{docexample}\begingroup\tcbwritetemp} \def\enddispListing{% - \endtcbwritetemp% - \kvtcb@beforeexample\begin{tcolorbox}% + \endtcbwritetemp\endgroup% + \begin{tcolorbox}% \tcb@doc@usetemplisting% - \end{tcolorbox}\kvtcb@afterexample% + \end{tcolorbox}% } \newenvironment{dispListing*}[1]{% - \tcb@layer@pushup\tcbset{docexample,#1}\tcbwritetemp% + \tcb@layer@pushup\tcbset{docexample,#1}\begingroup\tcbwritetemp% }{\enddispListing} % index auxiliary macros @@ -445,8 +445,6 @@ color option=Option, color definition=Definition, color hyperlink=Hyperlink, - before example=\par\smallskip, - after example=, doc left=2em, doc right=0pt, doc left indent=-2em, @@ -460,3 +458,11 @@ }, initialize@reset=reset@documentation, } + +% deprecated +\tcbset{ + before example/.store in=\kvtcb@beforeexample, + after example/.store in=\kvtcb@afterexample, + before example=\par\smallskip, + after example=, +} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex new file mode 100644 index 00000000000..c5c38983786 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbexternal.code.tex @@ -0,0 +1,280 @@ +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) +%% tcbexternal.code.tex: Code for externalization +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2015 by Prof. Dr. Dr. Thomas F. Sturm +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +%\makeatletter +\tcb@set@library@version{3.50} + +{ +\catcode`\"=12 +\xdef\tcbexternal@normal@dq{"} +\catcode`\"=13 +\gdef\tcbexternal@activate@normal@dq{\let"=\tcbexternal@normal@dq} +} + +\long\def\tcbifexternal#1#2{% + \ifdefined\TCBEXTERNALINPUT% + #1% + \else% + #2% + \fi% +} + +\tcbifexternal{% + \def\tcbEXTERNALIZE{% + \RequirePackage{incgraph}% + \TCBEXTERNALPREAMBLE% + \begin{document}% + \begin{inctext}[border=\TCBEXTERNALSAFETY]% + \input{\TCBEXTERNALINPUT}% + \end{inctext}% + \end{document}% + }% +}{% + \def\tcbEXTERNALIZE{% + \tcbset{ + external/.cd, + externalize/.is if=tcb@externalize, + externalize=true, + }% + }% +} + +\@onlypreamble\tcbEXTERNALIZE + +\def\tcbexternal@setbasename#1{% + \gdef\tcbexternal@basename{#1}% + \begingroup\edef\x{\endgroup\noexpand\def\noexpand\tcbexternal@job@name{\expandonce{\tcbexternal@prefix}\expandonce{\tcbexternal@basename}}}\x% + \begingroup\edef\x{\endgroup\noexpand\def\noexpand\tcbexternal@job@mdfive{\expandonce{\tcbexternal@job@name.md5}}}\x% + \begingroup\edef\x{\endgroup\noexpand\def\noexpand\tcbexternal@job@source{\expandonce{\tcbexternal@job@name.tex}}}\x% + \begingroup\edef\x{\endgroup\noexpand\def\noexpand\tcbexternal@job@pdf{\expandonce{\tcbexternal@job@name.pdf}}}\x% +} + +\def\tcbexternal@corecompile{% + \begingroup% + \ifnum\the\catcode`\"=13 \tcbexternal@activate@normal@dq\fi% + \message{=== Compile external '\tcbexternal@job@name': }% + \immediate\openout\tcb@out="\tcbexternal@run@tex" + \immediate\write\tcb@out{\string\gdef\string\TCBEXTERNALINPUT{"\tcbexternal@job@source"}}% + \immediate\write\tcb@out{\string\gdef\string\TCBEXTERNALSAFETY{\tcbexternal@safety}}% + \immediate\write\tcb@out{\string\gdef\string\TCBEXTERNALPREAMBLE{\expandonce{\tcbexternal@preamble}}}% + \immediate\write\tcb@out{\string\input{"\jobname.tex"}}% + \immediate\closeout\tcb@out% + \foreach \n in {1,...,\tcbexternal@runs} + {% + \immediate\write18{% + \tcbexternal@compiler\space + -shell-escape + -halt-on-error + -interaction=batchmode + -jobname="\tcbexternal@job@name" + "\tcbexternal@run@tex" + }% + }% + \endgroup% +} + +\def\tcbexternal@inputsource{ + \IfFileExists{\tcbexternal@job@source}% + {\input{\tcbexternal@job@source}}% + {\tcb@error{File '\tcbexternal@job@source' missing.}{}}% +} + +\def\tcbexternal@pdfmissing@warning{% + \tcb@warning{File '\tcbexternal@job@pdf' missing. + Compilation error or shell-escape wasn't enabled or a subdirectory could'nt be generated}% + \message{Load '\tcbexternal@job@source' instead}% + \tcbexternal@inputsource% +} + +\def\tcbexternal@pdfmissing@error{% + \tcb@error{File '\tcbexternal@job@pdf' missing. + Compilation error or shell-escape wasn't enabled or a subdirectory could'nt be generated}{}% +} + +\def\tcbexternal@inputpdf{% + \IfFileExists{\tcbexternal@job@pdf}% + {% + \begingroup\edef\x{\endgroup% + \noexpand\includegraphics[trim=\tcbexternal@safety\space\tcbexternal@safety% + \space\tcbexternal@safety\space\tcbexternal@safety]{\expandonce{\tcbexternal@job@pdf}}}% + \x% + }% + {\tcbexternal@pdfmissing}% +} + +\newif\iftcb@externalize +\tcb@externalizefalse + +\def\tcbexternal@generatemdivesum{% + \iftcb@externalize% + \def\tcbexternallastmdfivesum{}% + \IfFileExists{\tcbexternal@job@mdfive}{\input{\tcbexternal@job@mdfive}}{}% + \edef\tcbexternalmdfivesum{\pdfmdfivesum file {\tcbexternal@job@source}}% + \else% + \def\tcbexternallastmdfivesum{x}% + \edef\tcbexternalmdfivesum{}% + \fi% + \immediate\openout\tcb@out=\tcbexternal@job@mdfive + \immediate\write\tcb@out{\string\def\string\tcbexternallastmdfivesum{\tcbexternalmdfivesum}\@percentchar}% + \immediate\closeout\tcb@out% +} + +\def\tcbexternal@conditionalcompile{% + \IfFileExists{\tcbexternal@job@pdf}{% + \ifdefstrequal{\tcbexternallastmdfivesum}{\tcbexternalmdfivesum}{% + }{% + \tcbexternal@corecompile% + }% + }{% + \tcbexternal@corecompile% + }% +} + +\def\tcb@useexternal{% + \tcbexternal@generatemdivesum% + \iftcb@externalize% + \tcbexternal@compile% + \tcbexternal@inputpdf% + \else% + \tcbexternal@inputsource% + \fi% +} + +\newenvironment{tcbexternal}[2][]{% + \tcbset{external/.cd,#1,name=#2}% + \begingroup% + \let\tcb@verbatim@begin@hook=\tcbexternal@out@begin% + \let\tcb@verbatim@end@hook=\tcbexternal@out@end% + \tcbverbatimwrite{\tcbexternal@job@source}}% +{% + \endtcbverbatimwrite\endgroup% + \tcb@useexternal% +} + +\long\def\new@tcb@externalizeenvironment#1#2#3#4#5{% + \tcb@newenvironment{#1}[2][]{% + #4% + \begingroup% + \tcbexternal[#3,##1,environment=#2]{##2}% + }{% + \endtcbexternal% + \endgroup% + #5% + }% +} + +\def\newtcbexternalizeenvironment{% + \let\tcb@newenvironment\newenvironment% + \new@tcb@externalizeenvironment% +} + +\def\renewtcbexternalizeenvironment{% + \let\tcb@newenvironment\renewenvironment% + \new@tcb@externalizeenvironment% +} + +\long\def\new@tcb@externalizetcolorbox#1#2#3#4{% + \new@tcb@externalizeenvironment{#1}{#2}% + {preamble tcbset={force nobeforeafter},#3}% + {\tcbset{#4}\tcb@set@normal@unbroken@beforeafter\tcb@before@unbroken}% + {\tcb@after@unbroken}% +} + +\def\newtcbexternalizetcolorbox{% + \let\tcb@newenvironment\newenvironment% + \new@tcb@externalizetcolorbox% +} + +\def\renewtcbexternalizetcolorbox{% + \let\tcb@newenvironment\renewenvironment% + \new@tcb@externalizetcolorbox% +} + + +\newtcbexternalizeenvironment{extikzpicture}{tikzpicture}{}{}{} + +\newtcbexternalizetcolorbox{extcolorbox}{tcolorbox}{}{} + + +\tcbset{ + external/.cd, + % + runner/.code={% + \begingroup\edef\x{\endgroup\noexpand\def\noexpand\tcbexternal@run@tex{\expandonce{#1}}}\x% + }, + % + prefix/.store in=\tcbexternal@prefix, + compiler/.store in=\tcbexternal@compiler, + runs/.code={\numdef\tcbexternal@runs{#1}}, + name/.code={\tcbexternal@setbasename{#1}}, + safety/.store in=\tcbexternal@safety, + preamble/.code={\appto\tcbexternal@preamble{#1}}, + preamble tcbset/.code={\appto\tcbexternal@preamble{\tcbset{#1}}}, + clear preamble/.code={\def\tcbexternal@preamble{}}, + externalize/.code={}, + % + force remake/.is choice, + force remake/true/.code={\let\tcbexternal@compile=\tcbexternal@corecompile}, + force remake/false/.code={\let\tcbexternal@compile=\tcbexternal@conditionalcompile}, + force remake/.default=true, + !/.style=force remake, + % + input source on error/.is choice, + input source on error/true/.code={\let\tcbexternal@pdfmissing=\tcbexternal@pdfmissing@warning}, + input source on error/false/.code={\let\tcbexternal@pdfmissing=\tcbexternal@pdfmissing@error}, + input source on error/.default=true, + % + plain/.code={% + \let\tcbexternal@out@begin=\@empty% + \let\tcbexternal@out@end=\@empty% + }, + minipage/.code={% + \appto\tcbexternal@out@begin{\immediate\write\tcb@out{\string\begin{minipage}{\the\dimexpr#1\relax}\string\ignorespaces\@percentchar}}% + \preto\tcbexternal@out@end{\immediate\write\tcb@out{\string\unskip\string\end{minipage}\@percentchar}}% + }, + minipage/.default=\linewidth, + % + environment/.code={% + \appto\tcbexternal@out@begin{\immediate\write\tcb@out{\string\begin{#1}\@percentchar}}% + \preto\tcbexternal@out@end{\immediate\write\tcb@out{\string\end{#1}\@percentchar}}% + },% + runner=\jobname_run.tex, + prefix={external/}, + compiler=pdflatex, + runs=1, + name=unnamed, + safety=2mm, + clear preamble, + force remake=false, + input source on error, + plain +} + +\tcbset{% + externalize example/.style={% + external/name=#1,tempfile=\tcbexternal@job@source, + code={\let\tcbusetemp=\tcb@useexternal}% + }, + externalize example!/.style={externalize example=#1,external/force remake}, + externalize listing/.style={% + external/name=#1,listing file=\tcbexternal@job@source, + code={\let\tcbuselistingtext@input=\tcb@useexternal}% + }, + externalize listing!/.style={externalize listing=#1,external/force remake}, +} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex index 7b4494f51cc..29926d0ccdc 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbfitting.code.tex: Code for fit boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \newdimen\tcbfitdim \newdimen\tcb@lowerfitdim @@ -251,11 +251,14 @@ \tcb@fit@warn@begin% % \def\tcb@fit@@boxsave##1{% + \tcbdimto\tcb@innerwidth{\kvtcb@width-\kvtcb@left@rule-\kvtcb@right@rule}% + \colorlet{tcbcol@origin}{.}% + \tcb@set@color{tcbcol@upper}% \begin{tcb@savebox}{\tcb@upperbox}{##1}% - \color{tcbcol@upper}% \kvtcb@fontupper\fontsize{\tcbfitdim}{\tcb@fit@@line}\selectfont% \kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper% \end{tcb@savebox}% + \tcb@reset@color% \advance\count@ 1\relax% }% % diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex index eaca77d7971..512bf4c75c8 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \tcbset{% before upper app/.code={\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 36027d98a50..6cabae81769 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcblistings.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{listings}[2007/02/22] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex index 675bbae9f42..04d1f07266f 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,11 +18,12 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{pdftexcmds} -\def\tcbuselistingtext{\input{\kvtcb@listingfile}}% +\def\tcbuselistingtext@input{\input{\kvtcb@listingfile}}% +\def\tcbuselistingtext{\tcbuselistingtext@input}% \def\tcbuselistingcomment{\kvtcb@listingcomment}% \def\tcb@listing@listing{\tcbuselistinglisting} @@ -113,16 +114,28 @@ \fi% } +\def\tcb@use@lower@outside@side#1{% + \setbox\z@=\hbox{\begin{tcb@lower@outside}{#1}% + \tcb@use@listing@other@reset% + \end{tcb@lower@outside}}% + \tcb@box@align\z@% + \tcbdimto{\tcb@temp@wd}{\wd\z@}% + \unhbox\z@% +} + \def\tcb@inputlisting@out@listingAndOther{% \tcb@inputlisting@out@prepare% \tcbdimto\tcb@w@outside{\tcb@w@lower}% \tcbdimto\tcb@w@inside{\tcb@width-\tcb@w@lower-\kvtcb@sbs@gap}% \begin{tcb@outside@environment}% - \tcb@minipage{\tcb@w@inside}% + \setbox\z@=\hbox{\tcb@minipage{\tcb@w@inside}% \begin{tcolorbox}[width=\tcb@w@inside,nobeforeafter,nofloat,sidebyside=false,savedelimiter=tcolorbox]\tcbuselistinglisting\end{tcolorbox}% - \endminipage\kern\kvtcb@sbs@gap% + \endminipage}% + \tcb@box@align\z@% + \unhbox\z@% + \kern\kvtcb@sbs@gap% \iftcb@lowervisible% - \tcb@use@lower@outside{\tcb@w@outside}% + \tcb@use@lower@outside@side{\tcb@w@outside}% \fi% \end{tcb@outside@environment}% } @@ -133,14 +146,17 @@ \tcbdimto\tcb@w@inside{\tcb@width-\tcb@w@upper-\kvtcb@sbs@gap}% \begin{tcb@outside@environment}% \iftcb@lowervisible% - \tcb@use@lower@outside{\tcb@w@outside}% + \tcb@use@lower@outside@side{\tcb@w@outside}% \tcbdimto{\tcb@temp@wd}{\tcb@w@outside-\tcb@temp@wd+\kvtcb@sbs@gap}% \else% \tcbdimto{\tcb@temp@wd}{\tcb@w@outside+\kvtcb@sbs@gap}% \fi% - \kern\tcb@temp@wd\tcb@minipage{\tcb@w@inside}% + \kern\tcb@temp@wd% + \setbox\z@=\hbox{\tcb@minipage{\tcb@w@inside}% \begin{tcolorbox}[width=\tcb@w@inside,nobeforeafter,nofloat,sidebyside=false,savedelimiter=tcolorbox]\tcbuselistinglisting\end{tcolorbox}% - \endminipage% + \endminipage}% + \tcb@box@align\z@% + \unhbox\z@% \end{tcb@outside@environment}% } diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex index acf5b37acd5..984f34d83d9 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8 %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{listingsutf8}[2011/11/10] \tcbuselibrary{listings} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex index 6cd3b50e566..87dd742387b 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbminted.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{minted}[2011/09/17] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex index 0a8ec07071a..18b8b6328ac 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbraster.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \newcounter{tcbrastercolumn} \newcounter{tcbrasterrow} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex index 839276d50ac..578437722bd 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbskins.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{tikz}[2010/10/13] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex index e9e37a4845c..f1da9d6971b 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \tcbuselibrary{skins} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex index 3e5488bb996..5be3e04e054 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcbtheorems.code.tex: Code for theorems in colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{amsmath} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex index ec3fc14afab..628bce6e0f7 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex @@ -1,5 +1,5 @@ -%% The LaTeX package tcolorbox - version 3.40 (2015/01/14) -%% tcbhooks.code.tex: Code for adding hooks +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) +%% tcbxparse.code.tex: Code for xparse features %% %% ------------------------------------------------------------------------------------------- %% Copyright (c) 2006-2014 by Prof. Dr. Dr. Thomas F. Sturm @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{3.40} +\tcb@set@library@version{3.50} \RequirePackage{xparse}[2013/12/31] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty index 13d6b24083c..599509c476d 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 3.40 (2015/01/14) +%% The LaTeX package tcolorbox - version 3.50 (2015/03/16) %% tcolorbox.sty: Text color boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,8 +18,8 @@ %% This work consists of all files listed in README %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tcolorbox}[2015/01/14 version 3.40 text color boxes] -\def\tcb@version{3.40} +\ProvidesPackage{tcolorbox}[2015/03/16 version 3.50 text color boxes] +\def\tcb@version{3.50} \RequirePackage{pgf}[2008/01/15] \RequirePackage{verbatim}[2003/08/22] @@ -224,16 +224,21 @@ after/.code={\def\kvtcb@afterbox{#1}\let\tcb@use@autoparskip=\relax}, autoparskip/.code={\let\tcb@use@autoparskip=\tcb@use@auto@parskip}, parskip/.style={before={\par\pagebreak[0]\parindent=0pt},after={\par}}, - noparskip/.style={before={\par\smallskip\pagebreak[0]\parindent=0pt},after={\par\smallskip}}, + noparskip/.style={before={\ifnum\lastnodetype=-1\relax\else\par\smallskip\pagebreak[0]\fi\parindent=0pt},after={\par\smallskip}}, nobeforeafter/.style={before=,after=}, + force nobeforeafter/.code={\tcbset@late@options{nobeforeafter}}, before skip/.style={before={% - \par\nointerlineskip\lineskip=0pt% - \addvspace{\glueexpr#1-\parskip}% - \noindent% + \ifnum\lastnodetype=-1\relax% + \else% + \par\ifvmode\nointerlineskip% + \addvspace{\glueexpr#1-\parskip}% + \fi% + \fi% + \lineskip=0pt\noindent% }}, after skip/.style={after={% - \par\nointerlineskip% - \addvspace{\glueexpr#1-\parskip}% + \par\ifvmode\nointerlineskip% + \addvspace{\glueexpr#1-\parskip}\fi% }}, beforeafter skip/.style={before skip={#1},after skip={#1}}, before nobreak/.store in=\kvtcb@beforebox@nobreak, @@ -423,7 +428,13 @@ extrude bottom by/.code={\tcbdimto\kvtcb@bottom{\kvtcb@bottom+#1}\tcbdimto\kvtcb@bbbottom@stand{\kvtcb@bbbottom@stand-#1}},% extrude by/.style={extrude left by=#1,extrude right by=#1,extrude top by=#1,extrude bottom by=#1},% sidebyside/.is if=tcb@sidebyside,% - sidebyside align/.store in=\kvtcb@sbs@align,% + sidebyside align/.is choice,% + sidebyside align/top/.code={\def\kvtcb@sbs@align{top}\def\tcb@box@align##1{}},% + sidebyside align/center/.code={\def\kvtcb@sbs@align{center}\def\tcb@box@align##1{}},% + sidebyside align/bottom/.code={\def\kvtcb@sbs@align{bottom}\def\tcb@box@align##1{}},% + sidebyside align/top seam/.code={\def\kvtcb@sbs@align{top}\let\tcb@box@align\tcb@box@align@top},% + sidebyside align/center seam/.code={\def\kvtcb@sbs@align{center}\let\tcb@box@align\tcb@box@align@center},% + sidebyside align/bottom seam/.code={\def\kvtcb@sbs@align{bottom}\let\tcb@box@align\tcb@box@align@bottom},% sidebyside gap/.dimstore in=\kvtcb@sbs@gap,% lefthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@leftwidth}, righthand width/.code={\def\kvtcb@sbs@ratio{#1}\let\tcb@sbs@quota=\tcb@sbs@quota@rightwidth}, @@ -626,6 +637,16 @@ \fi% } +\def\tcb@set@color#1{% + \letcs{\current@color}{\string\color@#1}% + \colorlet{.}{#1}% +} + +\def\tcb@reset@color{% + \colorlet{.}{tcbcol@origin}% + \letcs{\current@color}{\string\color@tcbcol@origin}% +} + \def\tcb@set@@upper@and@lower{% \colorlet{tcbcol@origin}{.}% \let\tcb@after@box=\kvtcb@after@upper% @@ -633,7 +654,7 @@ \def\tcblower{% \unskip\tcb@after@box% \end{tcb@savebox}% - \letcs{\current@color}{\string\color@tcbcol@lower}% + \tcb@set@color{tcbcol@lower}% \unless\iftcb@sidebyside% \tcbdimto\tcb@w@lower{\tcb@innerwidth-\kvtcb@boxsep*2-\kvtcb@leftlower-\kvtcb@rightlower}% \fi% @@ -649,7 +670,7 @@ \tcb@startbox}% % start of upper box \let\endtcolorbox\tcb@endboxanddraw% - \letcs{\current@color}{\string\color@tcbcol@upper}% + \tcb@set@color{tcbcol@upper}% \tcb@saveupperbox% } @@ -702,6 +723,8 @@ \stepcounter{tcblayer}% \ifnum\c@tcblayer>1% \tcbset{breakable@true/.code=}% + \else% + \ifinner\ifhmode\tcbset{breakable@true/.code=}\fi\fi% \fi% \ifnum\c@tcblayer>\tcb@managed@layers@max% \tcbset{every box on higher layers}% @@ -716,6 +739,8 @@ \stepcounter{tcblayer}% \ifnum\c@tcblayer>1% \tcbset{breakable@true/.code=}% + \else% + \ifinner\ifhmode\tcbset{breakable@true/.code=}\fi\fi% \fi% \ifnum\c@tcblayer>\tcb@managed@layers@max% \tcbset{every box on higher layers}% @@ -752,7 +777,7 @@ \def\tcb@endboxanddraw{% \unskip\tcb@after@box% \end{tcb@savebox}% - \letcs{\current@color}{\string\color@tcbcol@origin}% + \tcb@reset@color% \tcb@draw@color@box% \tcb@finalize@environment% } @@ -1118,8 +1143,21 @@ } \let\tcb@tdraw@lower=\tcb@tdraw@lower@core +\def\tcb@box@align@top#1{% + \setbox#1=\hbox{\raise-\ht#1\box#1}% +} + +\def\tcb@box@align@center#1{% + \setbox#1=\hbox{\raise\dimexpr(\dp#1-\ht#1)/2\relax\box#1}% +} + +\def\tcb@box@align@bottom#1{% + \setbox#1=\hbox{\raise\dp#1\box#1}% +} + \def\tcb@sbs@mix{% \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper@real}% + \tcb@box@align{\tcb@upperbox}% \iftcb@uppervisible% \tcbdimto{\tcb@temp@wd}{\tcb@w@upper-\wd\tcb@upperbox+\kvtcb@sbs@gap}% \noindent\unhbox\tcb@upperbox\kern\tcb@temp@wd% @@ -1129,6 +1167,7 @@ \rule[-\dp\tcb@upperbox]{0pt}{\the\dimexpr\ht\tcb@upperbox+\dp\tcb@upperbox\relax}% \fi% \iftcb@hasLower% + \tcb@box@align{\tcb@lowerbox}% \iftcb@lowervisible\color{tcbcol@lower}\unhbox\tcb@lowerbox% \else% \iftcb@lowerignored\else\rule[-\dp\tcb@lowerbox]{0pt}{\the\dimexpr\ht\tcb@lowerbox+\dp\tcb@lowerbox\relax}\fi% @@ -1200,6 +1239,15 @@ \csname tcb@after@\tcb@split@state\endcsname% } +\def\tcb@set@normal@unbroken@beforeafter{% + \let\tcb@before@unbroken=\kvtcb@beforebox% + \if@nobreak% + \iftcb@ignorenobreak\else% + \let\tcb@before@unbroken=\kvtcb@beforebox@nobreak% + \fi% + \fi% + \let\tcb@after@unbroken=\kvtcb@afterbox% +} \def\tcb@drawcolorbox{% \edef\tcb@split@state{unbroken}% @@ -1211,13 +1259,7 @@ \let\tcb@break@bottomsep=\tcb@zpt% % floats \ifx\kvtcb@float\@empty% - \let\tcb@before@unbroken=\kvtcb@beforebox% - \if@nobreak% - \iftcb@ignorenobreak\else% - \let\tcb@before@unbroken=\kvtcb@beforebox@nobreak% - \fi% - \fi% - \let\tcb@after@unbroken=\kvtcb@afterbox% + \tcb@set@normal@unbroken@beforeafter% \else% \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]\noexpand\kvtcb@everyfloat}% \let\tcb@after@unbroken=\tcb@float@env@end% @@ -1263,7 +1305,10 @@ \long\def\tcbox@inner@hbox#1{% \tcbset{breakable@false,sidebyside=false}% \tcb@set@@phantom% - \sbox\tcb@upperbox{\color{tcbcol@upper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper}% + \colorlet{tcbcol@origin}{.}% + \tcb@set@color{tcbcol@upper}% + \sbox\tcb@upperbox{\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper}% + \tcb@reset@color% \tcbdimto\tcb@val@raisebase{\the\dimexpr\dp\tcb@upperbox+\kvtcb@bottom+\kvtcb@boxsep+\kvtcb@bottom@rule@stand+\kvtcb@bbbottom@stand\relax}% \tcbdimto\kvtcb@width{\wd\tcb@upperbox+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule}% \tcb@hasLowerfalse% @@ -1278,7 +1323,10 @@ \tcb@set@@phantom% \tcb@set@@title% \tcb@set@@dimensions% - \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}\color{tcbcol@upper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper\end{tcb@savebox}% + \colorlet{tcbcol@origin}{.}% + \tcb@set@color{tcbcol@upper}% + \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper\end{tcb@savebox}% + \tcb@reset@color% \tcb@hasLowerfalse% \tcb@draw@color@box% } @@ -1330,6 +1378,20 @@ \def\tcb@new@label@type{\begingroup\edef\x{\endgroup\noexpand\appto\noexpand\tcb@new@colopt{,label type=\tcb@new@boxname}}\x} +\def\tcb@blend@beforetitle#1{#1:\ } + +\tcbset{% + blend before title code/.code={\def\tcb@blend@beforetitle##1{#1}}, + blend before title/.is choice, + blend before title/colon/.style={blend before title code={##1:\ }}, + blend before title/dash/.style={blend before title code={##1 --\ }}, + blend before title/colon hang/.style={blend before title code={% + \setbox\z@=\hbox{##1:\ }\hangindent\wd\z@\hangafter=1\mbox{\unhbox\z@}}}, + blend before title/dash hang/.style={blend before title code={% + \setbox\z@=\hbox{##1 --\ }\hangindent\wd\z@\hangafter=1\mbox{\unhbox\z@}}}, + blend before title=colon, +} + \tcbset{% new/.cd,% use counter/.code={\edef\kvtcb@new@counter{#1}\let\tcb@proc@counter=\tcb@proc@counter@use}, @@ -1350,9 +1412,9 @@ Crefname/.code 2 args={\begingroup\edef\x{\endgroup\noexpand\Crefname{\tcb@new@boxname}}\x{#1}{#2}\tcb@new@label@type}, % blend into/.is choice,% - blend into/figures/.style={use counter*=figure,list inside=lof,/tcb/code={\appto\tcb@new@colopt{,before title={\fnum@figure:\ }}}},% - blend into/tables/.style={use counter*=table,list inside=lot,/tcb/code={\appto\tcb@new@colopt{,before title={\fnum@table:\ }}}},% - blend into/listings/.style={use counter*=lstlisting,list inside=lol,/tcb/code={\appto\tcb@new@colopt{,before title={\lstlistingname~\thetcbcounter:\ }}}},% + blend into/figures/.style={use counter*=figure,list inside=lof,/tcb/code={\appto\tcb@new@colopt{,before title={\tcb@blend@beforetitle{\fnum@figure}}}}},% + blend into/tables/.style={use counter*=table,list inside=lot,/tcb/code={\appto\tcb@new@colopt{,before title={\tcb@blend@beforetitle{\fnum@table}}}}},% + blend into/listings/.style={use counter*=lstlisting,list inside=lol,/tcb/code={\appto\tcb@new@colopt{,before title={\tcb@blend@beforetitle{\lstlistingname~\thetcbcounter}}}}},% % reset@new/.style={no counter,number within=,number format=\arabic,number freestyle=,list inside=,list type=tcolorbox,init@hook@clear}, } @@ -1521,9 +1583,13 @@ \newwrite\tcb@out +\let\tcb@verbatim@begin@hook\@empty +\let\tcb@verbatim@end@hook\@empty + \def\tcbverbatimwrite#1{% \@bsphack - \immediate\openout \tcb@out #1 + \immediate\openout\tcb@out #1 + \tcb@verbatim@begin@hook% \let\do\@makeother\dospecials \catcode`\^^M\active \catcode`\^^I=12 \def\verbatim@processline{% @@ -1533,6 +1599,7 @@ \def\endtcbverbatimwrite{% + \tcb@verbatim@end@hook% \immediate\closeout\tcb@out \@esphack% } @@ -1705,10 +1772,11 @@ \tcb@add@library{hooks}{tcbhooks.code.tex} \tcb@add@library{fitting}{tcbfitting.code.tex} \tcb@add@library{xparse}{tcbxparse.code.tex} +\tcb@add@library{external}{tcbexternal.code.tex} \tcb@add@library@style{many}{raster,skins,breakable,hooks,theorems,fitting,xparse} -\tcb@add@library@style{most}{many,listingsutf8} -\tcb@add@library@style{all}{many,minted,listingsutf8,documentation} +\tcb@add@library@style{most}{many,listingsutf8,external} +\tcb@add@library@style{all}{many,minted,listingsutf8,external,documentation} \ProcessOptions* \edef\tcb@temp{\noexpand\tcbuselibrary{\tcb@optionlist}} -- cgit v1.2.3