rework thmstyle package into LaTeX3 syntax and proper expansion
This commit is contained in:
parent
ceb43f1672
commit
5437b8606c
3 changed files with 344 additions and 0 deletions
6
src/environments/thmstyle/.latexmkrc
Normal file
6
src/environments/thmstyle/.latexmkrc
Normal file
|
@ -0,0 +1,6 @@
|
|||
@default_files = ("thmstyle.dtx");
|
||||
$makeindex = "makeindex -s gind.ist %O -o %D %S";
|
||||
$clean_ext .= ' glo';
|
||||
$clean_ext .= ' hd';
|
||||
$clean_full_ext .= ' sty';
|
||||
$emulate_aux = 1;
|
10
src/environments/thmstyle/Makefile
Normal file
10
src/environments/thmstyle/Makefile
Normal file
|
@ -0,0 +1,10 @@
|
|||
pdf:
|
||||
latexmk
|
||||
|
||||
full:
|
||||
latexmk -gg
|
||||
|
||||
clean:
|
||||
latexmk -C
|
||||
|
||||
.PHONY: clean
|
328
src/environments/thmstyle/thmstyle.dtx
Normal file
328
src/environments/thmstyle/thmstyle.dtx
Normal file
|
@ -0,0 +1,328 @@
|
|||
% \iffalse meta-comment
|
||||
%<*internal>
|
||||
\begingroup
|
||||
\input docstrip.tex
|
||||
\keepsilent
|
||||
\usedir{tex/latex/mkessler/thmstyle}
|
||||
\askforoverwritefalse
|
||||
\generate{\file{thmstyle.sty}{\from{thmstyle.dtx}{package}}}
|
||||
\def\tmpa{plain}
|
||||
\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
|
||||
\endgroup
|
||||
%</internal>
|
||||
%
|
||||
%% File: thmstyle.dtx
|
||||
%
|
||||
% Copyright (C) 2022 Maximilian Keßler
|
||||
%
|
||||
% It may be distributed and/or modified under the conditions of the
|
||||
% LaTeX Project Public License (LPPL), either version 1.3c of this
|
||||
% license or (at your option) any later version. The latest version
|
||||
% of this license is in the file
|
||||
%
|
||||
% https://www.latex-project.org/lppl.txt
|
||||
%
|
||||
% -----------------------------------------------------------------------
|
||||
%<package>\ProvidesExplPackage{thmstyle}{2022/01/17}{0.0.1}{Grouped theorems.}
|
||||
%
|
||||
%<*driver>
|
||||
\documentclass[full,kernel]{l3doc}
|
||||
\begin{document}
|
||||
\DocInput{\jobname.dtx}
|
||||
\end{document}
|
||||
%</driver>
|
||||
% \fi
|
||||
%
|
||||
% \title{^^A
|
||||
% The \pkg{thmstyle} package^^A
|
||||
% }
|
||||
%
|
||||
% \author{^^A
|
||||
% Maximilian Ke\ss ler
|
||||
% }
|
||||
%
|
||||
% \date{Released 2022-01-12}
|
||||
%
|
||||
% \maketitle
|
||||
%
|
||||
% \begin{documentation}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \end{documentation}
|
||||
%
|
||||
%
|
||||
% \begin{implementation}
|
||||
%
|
||||
% \section{\pkg{thmstyle} implementation}
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
%<*package>
|
||||
% \end{macrocode}
|
||||
%
|
||||
% \begin{macrocode}
|
||||
%<@@=thmstyle>
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsection{Dependencies}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\RequirePackage{amsthm}
|
||||
\RequirePackage{thmtools}
|
||||
\RequirePackage{mdframed}
|
||||
\RequirePackage{xcolor}
|
||||
\RequirePackage{l3keys2e}
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
% \subsection{Initialization}
|
||||
% \begin{variable}{\g_@@_default_styles_bool}
|
||||
%
|
||||
% Indicates whether the package will provide default styles.
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\bool_new:N \g_@@_default_styles_bool
|
||||
% \end{macrocode}
|
||||
% \end{variable}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{variable}{gold}
|
||||
% New color
|
||||
% \begin{macrocode}
|
||||
\definecolor{gold}{RGB}{218,165,32}
|
||||
% \end{macrocode}
|
||||
% \end{variable}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsection{Package options}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\keys_define:nn { thmstyle }
|
||||
{
|
||||
default styles .set_bool:N = \g_@@_default_styles_bool,
|
||||
default styles .default:n = { false },
|
||||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\ProcessKeyOptions { thmstyle }
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \subsection{Private Wrappers}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\@@_mdframed_define_style:nn, \@@_mdframed_define_style:nx}
|
||||
% \begin{syntax}
|
||||
% \cs{@@_mdframed_define_style:nn}\marg{key=value list}\marg{style}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \@@_mdframed_define_style:nn #1 #2
|
||||
{
|
||||
\mdfdefinestyle{#2}{#1}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\@@_thmtools_declare_style:nn, \@@_thmtools_declare_style:xx}
|
||||
% \begin{syntax}
|
||||
% \cs{@@_thmtools_declare_style:nn}\marg{key=value list}\marg{style}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \@@_thmtools_declare_style:nn #1 #2
|
||||
{
|
||||
\declaretheoremstyle[#1]{#2}
|
||||
}
|
||||
\cs_generate_variant:Nn \@@_thmtools_declare_style:nn { x x }
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \subsection{Generation of styles}
|
||||
%
|
||||
% \begin{macro}{\thmstyle_declare_mdf_style:nnn}
|
||||
% \begin{syntax}
|
||||
% \cs{thmstyle_declare_mdf_style:nnn}\marg{style}\marg{margin color}\marg{background color}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\cs_new:Npn \thmstyle_declare_mdf_style:nnn #1 #2 #3
|
||||
{
|
||||
\@@_mdframed_define_style:nn
|
||||
{
|
||||
linecolor = #2,
|
||||
linewidth = 2pt,
|
||||
leftmargin = 0pt,
|
||||
rightmargin = 0pt,
|
||||
rightline = false,
|
||||
topline = false,
|
||||
bottomline = false,
|
||||
backgroundcolor = #3
|
||||
}
|
||||
{
|
||||
#1
|
||||
}
|
||||
}
|
||||
\cs_generate_variant:Nn \thmstyle_declare_mdf_style:nnn { x n x }
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\DeclareFancyMdfStyle}
|
||||
% \begin{syntax}
|
||||
% \cs{DeclareFancyMdfStyle}\oarg{background color}\marg{line color}\oarg{style}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\NewDocumentCommand { \DeclareFancyMdfStyle } { o m o }
|
||||
{
|
||||
\thmstyle_declare_mdf_style:xnx
|
||||
{
|
||||
\IfValueTF { #3 }
|
||||
{
|
||||
#3
|
||||
}
|
||||
{
|
||||
md #2 margin
|
||||
\IfValueT { #1 }
|
||||
{
|
||||
and #1 fill
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
#2
|
||||
}
|
||||
{
|
||||
\IfValueTF { #1 }
|
||||
{
|
||||
#1
|
||||
}
|
||||
{
|
||||
white
|
||||
}
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macro}{\DeclareFancyThmStyle}
|
||||
% \begin{syntax}
|
||||
% \cs{DeclareFancyThmStyle}\oarg{background color}\marg{line color}\oarg{style}
|
||||
% \end{syntax}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\NewDocumentCommand { \DeclareFancyThmStyle } { o m o }
|
||||
{
|
||||
\DeclareFancyMdfStyle { #1 } { #2 }
|
||||
\@@_thmtools_declare_style:xx
|
||||
{
|
||||
mdframed =
|
||||
{
|
||||
style = md #2 margin \IfValueT { #1 } { and #1 fill }
|
||||
},
|
||||
postheadspace = { 0.3em },
|
||||
notefont = \mdseries,
|
||||
}
|
||||
{
|
||||
\IfValueTF { #3 }
|
||||
{ #3 }
|
||||
{
|
||||
thm #2 margin
|
||||
\IfBooleanT { #1 }
|
||||
{
|
||||
and #1 fill
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
% \end{macrocode}
|
||||
% \end{macro}
|
||||
%
|
||||
%
|
||||
% \subsection{Default styles}
|
||||
%
|
||||
%
|
||||
% Here, we provide the default styles:
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
\bool_if:NT \g_@@_default_styles_bool
|
||||
{
|
||||
\DeclareFancyThmStyle[red!8]{red}[thmredmarginandfill]
|
||||
\DeclareFancyThmStyle[orange!10]{orange}[thmorangemarginandfill]
|
||||
\DeclareFancyThmStyle[blue!7]{blue}[thmbluemarginandfill]
|
||||
\DeclareFancyThmStyle{green!70!black}[thmgreenmargin]
|
||||
\DeclareFancyThmStyle{gold}[thmgoldmargin]
|
||||
\DeclareFancyThmStyle{yellow!80!orange}[thmyellowmargin]
|
||||
\DeclareFancyThmStyle{gray}[thmgraymargin]
|
||||
\DeclareFancyThmStyle[violet!7]{violet}[thmvioletmarginandfill]
|
||||
\DeclareFancyThmStyle{violet}[thmvioletmargin]
|
||||
\DeclareFancyThmStyle[blue!7]{red}[thmredmarginbluefill]
|
||||
\DeclareFancyThmStyle{red}[thmredmargin]
|
||||
\DeclareFancyThmStyle[blue!7]{orange}[thmorangemarginbluefill]
|
||||
\DeclareFancyThmStyle[violet!20!gray!20]{black}[thmblackmarginandfill]
|
||||
\DeclareFancyThmStyle{black}[thmblackmargin]
|
||||
}
|
||||
% \end{macrocode}
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
%
|
||||
% \begin{macrocode}
|
||||
%</package>
|
||||
% \end{macrocode}
|
||||
%
|
||||
% \end{implementation}
|
||||
%
|
||||
%
|
||||
%
|
||||
% \newpage
|
||||
% \PrintIndex
|
Loading…
Reference in a new issue