diff options
Diffstat (limited to 'macros/latex/contrib/tutodoc/code/tutodoc.sty')
-rw-r--r-- | macros/latex/contrib/tutodoc/code/tutodoc.sty | 1063 |
1 files changed, 0 insertions, 1063 deletions
diff --git a/macros/latex/contrib/tutodoc/code/tutodoc.sty b/macros/latex/contrib/tutodoc/code/tutodoc.sty deleted file mode 100644 index 5e0ea7a0fb..0000000000 --- a/macros/latex/contrib/tutodoc/code/tutodoc.sty +++ /dev/null @@ -1,1063 +0,0 @@ -% ------------------------------------------------------- % -% - This is file `tutodoc.sty' generated automatically. - % -% - - % -% - Copyright (C) 2023-2024 by Christophe BAL - % -% - - % -% - This file may be distributed and/or modified under - % -% - the conditions of the GNU 3 License. - % -% ------------------------------------------------------- % - -\ProvidesExplPackage - {tutodoc} - {2024-01-06} % Creation: 2023-11-29 - {1.1.0} - {This package proposes tools for writing "human friendly" documentations of LaTeX packages.} - -\RequirePackage[ - top = 2.5cm, - bottom = 2.5cm, - left = 2.5cm, - right = 2.5cm, - marginparwidth = 2cm, - marginparsep = 2mm, - heightrounded -]{geometry}[2020-01-02] - -\RequirePackage[raggedright]{titlesec}[2021/07/05] -\RequirePackage{tocbasic} - -\RequirePackage{xcolor}[2022/06/12] -\RequirePackage{hyperref}[2023-02-07] - - -% We delegate the management of quoting to the `csquotes' package, -% which takes care of the linguistic parameters. -\RequirePackage{csquotes}[2022-09-14] - - -\RequirePackage{amsthm}[2017/09] - - -\RequirePackage{clrstrip}[2021-08-28] - - -\RequirePackage{tcolorbox}[2023/06/19] -\tcbuselibrary{minted, breakable, skins} - - -\RequirePackage{marginnote}[2023-09-07] - - -% -- LOCALE LANG -- % - -\ExplSyntaxOn - -% :: SOME MESSAGES :: % - -\msg_set:nnnn { tdoc } { package-option-lang-unknown } - { Unknown ~ language. } - { See ~ the ~ documentation ~ for ~ the ~ supported ~ languages. } - - -% :: SETTING SOME KEYS :: % - -\str_new:N \l_tdoc_opt_lang_str - -%%% -% We define the key-val options that will be exposed by the package. -%%% -\keys_define:nn { tdoc } { - lang .choices:nn = - { french, english } - { - \tl_set:Nn \l_tdoc_opt_lang_str - { \tl_use:N \l_keys_choice_tl } - }, - lang .initial:n = english, - lang / unknown .code:n = - \msg_error:nnxxx { tdoc } { package-option-lang-unknown } - { lang } % Name of choice key - { french, english } % Valid choices - { \exp_not:n {#1} } % Invalid choice given -} - -\ProcessKeyOptions[tdoc] - -\ExplSyntaxOff - - -% -- LOCALE SETTINGS -- % - -\NewDocumentCommand{\tutodoc@colon}{}{:} - -% We must take care of the colons, babel and spacing. -\@ifpackageloaded{babel}{ - \iflanguage{french}{ - \RenewDocumentCommand{\tutodoc@colon}{}{\babelshorthand{:}} - }{} -}{} - -\ExplSyntaxOn - -\input{tutodoc-locale-main-\l_tdoc_opt_lang_str.cfg.sty} - -\ExplSyntaxOff - - -% -- GENERAL SETTINGS -- % - -\setlength{\parindent}{0cm} - - -% -- LINKS -- % - -\hypersetup{ - colorlinks, - citecolor = orange!75!black, - filecolor = orange!75!black, - linkcolor = orange!75!black, - urlcolor = orange!75!black -} - - -% -- TOC & Co. -- % - -\ifcsundef{chapter}% - {}% - {\renewcommand\thechapter{\Alph{chapter}.}} - -\renewcommand\thesection{\Roman{section}.} -\renewcommand\thesubsection{\arabic{subsection}.} -\renewcommand\thesubsubsection{\roman{subsubsection}.} - -\titleformat{\paragraph}[hang]% - {\normalfont\normalsize\bfseries}% - {\theparagraph}{1em}% - {} - -\titlespacing*{\paragraph}% - {0pt}% - {3.25ex plus 1ex minus .2ex}% - {0.5em} - -% Source -% * https://tex.stackexchange.com/a/558025/6880 -\DeclareTOCStyleEntries[ - raggedentrytext, - linefill = \hfill, - indent = 0pt, - dynindent, - numwidth = 0pt, - numsep = 1ex, - dynnumwidth -]{tocline}{ - chapter, - section, - subsection, - subsubsection, - paragraph, - subparagraph -} - -\DeclareTOCStyleEntry[indentfollows = chapter]{tocline}{section} - - -% -- QUOTING -- % - -%%% -% prototype:: -% #1 : a text to quote. -% -% For example, ''\tdocquote{Something}'' prints something like **"Something"**. -%%% -\NewDocumentCommand{\tdocquote}{m}{% - \enquote{\emph{#1}}% -} - - -% -- EXPLAINING ENGLISH NAMES -- % - -%%% -% prototype:: -% #1 : an english text to explain in another language. -% -% :extra: this macro has a star version. -% -% For example, if the language chosen is ''french'', we have -% the following outputs. -% -% 1) ''\tdocinEN{Something}'' prints -% **"Something" en anglais**. -% -% 2) ''\tdocinEN*{Something}'' just prints -% **"Something"**. -% This can be useful in a case like -% ''\tdocinEN*{Something} et \tdocinEN{Another thing}'' -% which gives -% **"Something" et "Another thing" en anglais**. -%%% -\NewDocumentCommand{\tdocinEN}{s m}{% - \tdocquote{#2}% - \IfBooleanF{#1}{% No star used. - \ \tutodoc@trans@in@EN{}% - }% -} - - -% -- FOCUS ON SOME CONTENT -- % - -% :: EXAMPLE - HIDDEN VERSIONS :: % - -%%% -% See the \doc of the macro ''\newtheorem'' from the package ''amsthm'' -% to have \infos about the environment ''@@tdocexa@nb''. -%%% -\newtheorem{@@tdocexa@nb}{\tutodoc@trans@exa@title}% - [subsubsection] - -%%% -% We redefine the counter associated to the environment ''@@tdocexa@nb'' -% to obtain only one single arabic number. -%%% -\renewcommand{\the@@tdocexa@nb}{\arabic{@@tdocexa@nb}} - - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''@@tdocexa@no@nb''. -%%% -\newtheorem*{@@tdocexa@no@nb}{\tutodoc@trans@exa@title} - - -% :: EXAMPLE - PUBLIC VERSION :: % - -\ExplSyntaxOn - -\msg_set:nnnn { tdoc } { env-tdocexa-unknown-option } - { Unknown ~ rafters ~ option. } - { See ~ the ~ documentation ~ for ~ the ~ supported ~ options. } - -\NewDocumentEnvironment{tdocexa}{D<>{nb} O{}}{ - \str_case:nnF { #1 } { - { nb } { - \begin{@@tdocexa@nb}[#2] - } - { nonb } { - \begin{@@tdocexa@no@nb}[#2] - } - }{ - \msg_error:nn { tdoc } { env-tdocexa-unknown-option } - } -}{ - \str_case:nnF { #1 } { - { nb } { - \end{@@tdocexa@nb} - } - { nonb } { - \end{@@tdocexa@no@nb} - } - }{} -} - -\ExplSyntaxOff - - -% :: REMARK :: % - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''tdocrem''. -%%% -\newtheorem*{tdocrem}{\tutodoc@trans@rmk@title} - - -% :: IMPORTANT :: % - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''tdocimportant''. -%%% -\newtheorem*{tdocimportant}{\tutodoc@trans@important@title} - - -% :: NOTE :: % - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''tdocnote''. -%%% -\newtheorem*{tdocnote}{\tutodoc@trans@note@title} - - -% :: TIP :: % - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''tdoctip''. -%%% -\newtheorem*{tdoctip}{\tutodoc@trans@tip@title} - - -% :: CUATION :: % - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''tdoccaution''. -%%% -\newtheorem*{tdoccaution}{\tutodoc@trans@caution@title} - - -% :: WARNING :: % - -%%% -% See the \doc of the macro ''\newtheorem*'' from the package ''amsthm'' -% to have \infos about the environment ''tdocwarn''. -%%% -\newtheorem*{tdocwarn}{\tutodoc@trans@warn@title} - - -% -- NAMES OF PACKAGES, MACROS & ENVIRONMENTS -- % - -%%% -% prototype:: -% #1 : the name of a class -% -% :action: ''\tdoccls{myclass}'' prints verb::''myclass''. -%%% -\NewDocumentCommand{\tdoccls}{m}{% - \texttt{#1}% -} - - -%%% -% prototype:: -% #1 : the name of a package -% -% :action:''\tdocpack{mypack}'' prints verb::''mypack''. -%%% -\NewDocumentCommand{\tdocpack}{m}{% - \texttt{#1}% -} - - -%%% -% prototype:: -% #1 : the name of a macro -% -% :action: ''\tdocmacro{mymacro}'' prints verb::''\mymacro''. -%%% -\NewDocumentCommand{\tdocmacro}{m}{% - \texttt{\textbackslash{}#1}% -} - - -%%% -% prototype:: -% #1 : hard typed options with the good delimiters -% #2 : the name of an environment -% -% :action: ''\tdocenv{myenv}'' prints verb::''\begin{myenv} ... \end{myenv}'' -% or something like verb::''\begin{myenv}<opt1> ... \end{myenv}'', -% the spaces being secable. -%%% -% -% Cleaner code from https://tex.stackexchange.com/a/703379/6880 . -\NewDocumentCommand{\tdocenv}{O{}m}{% - \texttt{\string\begin\string{#2\string}#1 % - \!\!...\@\!\!\! % - \string\end\string{#2\string}}% -} - - -% -- EXPLAINING PREFIXES -- % - -\ExplSyntaxOn - -% :: MESSAGES :: % - -\msg_set:nnnn { bdoc } { prefixwhy-bad-format } -{ Bad ~ format, ~ something ~ like ~ ''pre.fix'' ~ expected. } -{ You ~ must ~ use ~ one ~ single ~ point. } - - -% :: PREFIX FROM... :: % - -%%% -% prototype:: -% #1 : a prefix and a suffix separated by one colon. -% -% :action: ''\tdocprewhy{pre.fix}'' prints verb::''pre''.fix. -%%% -\NewDocumentCommand{\tdocprewhy}{m}{% -% Do we have 2 parts? - \seq_set_split:Nnn \l_tmpa_seq { . } { #1 } - - \int_set:Nn \l_tmpa_int - {\int_eval:n {\seq_count:N \l_tmpa_seq}} - - \if_int_compare:w \l_tmpa_int = 2 - \else: - \msg_error:nn { bdoc } { prefixwhy-bad-format } - \fi: - -% Let's go. - \seq_pop:NN \l_tmpa_seq \l_tmpa_tl - \seq_pop:NN \l_tmpa_seq \l_tmpb_tl - - \textbf{\tdocpre{\tl_use:N \l_tmpa_tl}\kern.5pt\textperiodcentered\kern.5pt{\tl_use:N \l_tmpb_tl}} -} - -\ExplSyntaxOff - - -% :: JUST ONE PREFIX :: % - -%%% -% prototype:: -% #1 : just a prefix -% -% :action: ''\tdocpre{pre}'' only prints verb::''pre''. -% This can be useful in a case like -% ''\tdocpre{pre} comes from \tdocprewhy{pre}{fix}'' -% which prints: -% verb::''pre'' comes from verb::''pre''-fix. -%%% -\NewDocumentCommand{\tdocpre}{m}{% - \texttt{#1}% -} - - -% -- GENERAL FORMATTING -- % - -% :: TEXT INSIDE A RULE :: % - -\ExplSyntaxOn - -%%% -% prototype:: -% #1 : a text -% #2 : a color -% -% :action: this macro adds two horizontal lines on either side of the text. -% The final output is centered. -% -% note:: -% The code used comes from -% cf::''this post ; -% https://tex.stackexchange.com/a/604708/6880''. -%%% -\NewDocumentCommand{\tdocruler}{m m}{ - \par - { - \centering - \scriptsize - \itshape - \bfseries - \color{#2} - - \hbox_set:Nn \l_tmpa_box { \,\, #1 \,\, } - \dim_set:Nn \l_tmpa_dim { - .35 \linewidth - .5 \box_wd:N \l_tmpa_box - } - - \rule[.75pt] { \dim_use:N \l_tmpa_dim } - { 2.5pt } - \box_use:N \l_tmpa_box - \rule[.75pt] { \dim_use:N \l_tmpa_dim } - { 2.5pt } - \par - } -} - -\ExplSyntaxOff - - -% :: COLOR TRANSFORMATIONS :: % - -%%% -% prototype:: -% #1 : one color following the ''xcolor'' format. -% -% :return: a "darker" version of the color ''#1''. -%%% -\NewExpandableDocumentCommand{\tdocdarkcolor}{m}{% - #1!50!black% -} - - -%%% -% prototype:: -% #1 : one color following the ''xcolor'' format. -% -% :return: a "transparent" version of the color `#1`. -%%% -\NewExpandableDocumentCommand{\tdoclightcolor}{m}{% - #1!5% -} - - -% :: INTERNAL ENVIRONMENTS :: % - -%%% -% prototype:: -% #1 : the text before the real output -% #2 : the text after the real output -% #3 : one color following the ''xcolor'' format. -% This color is used to set the one for the decorated texts printed -% corresponding to the two first arguments. -% -% :action: this environment just adds its content processed by \latex -% between centered materials produced by the macro ''\tdocruler'' -% such as to stress the start and the end of the content. -%%% -\NewDocumentEnvironment{tdoc@showcase@basic}{m m m}{ - \tdocruler{#1}{\tdocdarkcolor{#3}} - \nopagebreak\medskip\nopagebreak -}{ - \nopagebreak\medskip\nopagebreak - \tdocruler{#2}{\tdocdarkcolor{#3}} -} - - -%%% -% prototype:: -% #1 : the text before the real output -% #2 : the text after the real output -% #3 : the color following the ''xcolor'' format. -% This color is used to set the ones of the stripe and the decorated -% texts printed (see the two first arguments). -% -% :action: this environment adds a page-width colored stripe in the -% background of the environment content processed by \latex. -% This stripe is preceded and followed by centered materials -% produced by the macro ''\tdocruler'' such as to stress the -% start and the end of the content. -%%% - -\NewDocumentEnvironment{tdoc@showcase@colorstrip}{m m m}{ - \begin{colorstrip}{\tdoclightcolor{#3}} - \begin{tdoc@showcase@basic}{#1}{#2}{#3} -}{ - \end{tdoc@showcase@basic} - \end{colorstrip} -} - - -\ExplSyntaxOn - -% :: SETTING SOME KEYS :: % - -\tl_new:N \l_tdoc_showcase_before_tl -\tl_new:N \l_tdoc_showcase_after_tl -\tl_new:N \l_tdoc_showcase_color_tl -\bool_new:N \l_tdoc_showcase_nostripe_bool - - -%%% -% prototype:: -% :see: env.tdocshowcase -% -% We define the key-val options that will be exposed by the \env -% ''tdocshowcase''. -%%% -\keys_define:nn { tdoc/showcase } { -% Texts. - before .tl_set:N = \l_tdoc_showcase_before_tl, - before .initial:n = \tutodoc@trans@latex@show@start, - after .tl_set:N = \l_tdoc_showcase_after_tl, - after .initial:n = \tutodoc@trans@latex@show@end, -% Decorations. - color .tl_set:N = \l_tdoc_showcase_color_tl, - color .initial:n = cyan, - nostripe .bool_set:N = \l_tdoc_showcase_nostripe_bool, - nostripe .initial:n = false, -} - - -% :: SHOWCASE FROM TYPED CODE :: % - -% prototype:: -% #1 : the key-value options. -% -% :action: this \env formats \latex code, given as an argument, -% by framing it with texts decorated by ''\tdocruler'', -% in order to clearly identify a rendering used as an -% example. -% It is also possible to have a coloured strip of the width -% of the page in the background of the content. -% -% :see: env.tdoc@showcase@basic , -% env.tdoc@showcase@colorstrip -%%% -\NewDocumentEnvironment{tdocshowcase}{ O{} }{ - \group_begin: - \keys_set:nn { tdoc/showcase } { #1 } - - \bool_if:NTF \l_tdoc_showcase_nostripe_bool { - \begin{tdoc@showcase@basic}% - { \tl_use:N \l_tdoc_showcase_before_tl }% - { \tl_use:N \l_tdoc_showcase_after_tl }% - { \tl_use:N \l_tdoc_showcase_color_tl } - }{ - \begin{tdoc@showcase@colorstrip}% - { \tl_use:N \l_tdoc_showcase_before_tl }% - { \tl_use:N \l_tdoc_showcase_after_tl }% - { \tl_use:N \l_tdoc_showcase_color_tl } - } -}{ - \bool_if:NTF \l_tdoc_showcase_nostripe_bool { - \end{tdoc@showcase@basic} - }{ - \end{tdoc@showcase@colorstrip} - } - \group_end: -} - - -% :: SHOWCASE FROM FILE :: % - -%%% -% prototype:: -% #1 : the key-value options supported by the ''tdocshowcase'' \env. -% #2 : the path of a file -% -% :see: env.tdocshowcase -%%% -\NewDocumentCommand{\tdocshowcaseinput}{O{} m}{ - \group_begin: - \keys_set_known:nnN { tdoc/latexshow } { #1 } \l_tmpa_tl - - \exp_last_unbraced:NNV \tdocshowcase [\l_tmpa_tl] - \input{#2} - \endtdocshowcase - \group_end: -} - -\ExplSyntaxOff - - -% -- LATEX EXAMPLES -- % - -% :: INLINE SHORT LATEX CODE :: % - -%%% -% See the \doc of the macro ''\newmintinline'' from the package ''minted'' -% to have \infos about the macro ''tdocinlatex''. -%%% -\newmintinline[tdocinlatex]{latex}{bgcolor = yellow!4} - - -% :: SHORTCUTS FOR TCOLORBOX LISTING FORMATING :: % - -\ExplSyntaxOn - -%%% -% In the following easy-to-understand macro, we use one fictive ''tcolorbox'' -% style such as to indicate an unknown ''tdoc'' style to the user. -% For example, this can give one message similar to the following one. -% -% term:: -% Package pgfkeys Error: I do not know the key '/tcb/tdoclatex bad option -% "NOT-A-STYLE"' and I am going to ignore it. Perhaps you misspelled it. -% -% See the pgfkeys package documentation for explanation. -%%% -\NewExpandableDocumentCommand{\tutodoc@latex@listing@formating}{ m }{ - \str_case:nnF { #1 } { - { sbs } { listing ~ side ~ text } - { code } { listing ~ only } - { std } { listing ~ and ~ text } - } { tdoclatex ~ bad ~ option ~ "#1" } -} - -\ExplSyntaxOff - - -% :: THE TCOLORBOX LISTING STYLE :: % - -%%% -% note:: -% The settings used come from the following sources. -% * https://tex.stackexchange.com/a/604821/6880 -% * https://tex.stackexchange.com/a/327983/6880 -%%% -\tcbset{ - tdoclatex_tcbstyle/.style = { - minted language = latex, - breakable, -% Code and output - colback = yellow!5, -% Frame - colframe = darkgray, - shadow = {.75mm}{-.75mm}{0mm}{black!30}, - arc = .75mm, - left = 1mm, right = 1mm, - bottom = 1mm, top = 1mm, -% We can use ''sharp corners'' to obtain an "old school" style. -% -% Separating line - enhanced, - segmentation style = { - gray, - dash pattern = {on 5pt off 2.5pt}, - line width = 1.25pt - }, - #1 - }, -} - - -% :: TCOLORBOX LISTING ENVIRONMENT :: % - -%%% -% prototype:: -% #1 : the style to be used (code only, code and output side by side, -% or the standard style corresponding to the code followed by -% its output) -% @ #1 in [code, sbs, std] -% -% note:: -% See the \doc of the macro ''\newtcblisting'' from the package -% ''tcolorbox'' to have \infos about the environment ''tdoclatex''. -%%% -\newtcblisting{tdoclatex}[1][std]{% - tdoclatex_tcbstyle = \tutodoc@latex@listing@formating{#1} -} - - -% :: TCOLORBOX IMPORTED LISTING MACRO :: % - -%%% -% prototype:: -% #1 : :see: \newtcblisting{tdoclatex}. -% #2 : the path of the file to input and format. -% -% note:: -% See the \doc of the macro ''\newtcbinputlisting'' from the package -% ''tcolorbox'' to have more \infos about the macro ''\tdoclatexinput''. -%%% -\newtcbinputlisting{\tdoclatexinput}[2][std]{ - listing file = {#2}, - tdoclatex_tcbstyle = \tutodoc@latex@listing@formating{#1} -} - - -% -- LATEX REAL USE CASES -- % - -\ExplSyntaxOn - -% :: SETTING SOME KEYS :: % - -\tl_new:N \l_tdoc_listing_explain_tl - -%%% -% prototype:: -% :see: macro.tdoclatexshow -% -% We define the key-val options that will be exposed by ''\tdoclatexshow''. -%%% -\keys_define:nn { tdoc/latexshow } { - explain .tl_set:N = \l_tdoc_listing_explain_tl, - explain .initial:n = { \tutodoc@trans@this@gives \tutodoc@colon }, -} - - -% :: LATEXSHOW MACRO :: % - -%%% -% prototype:: -% #1 : the key-value options supported by the ''tdocshowcase'' \env, -% plus one allowing you to change the description of a line -% printed between the code and its focused output. -% #2 : the path of a file -% -% :see: env.tdocshowcase , -% macro.tdoclatexinput -%%% -\NewDocumentCommand{\tdoclatexshow}{O{} m}{ - \group_begin: - \keys_set_known:nnN { tdoc/latexshow } { #1 } \l_tmpa_tl - - \tdoclatexinput[code]{#2} - - \tl_use:N \l_tdoc_listing_explain_tl - -% Source: https://tex.stackexchange.com/a/696700/6880 - \exp_last_unbraced:NNV \tdocshowcaseinput [\l_tmpa_tl] {#2} - \group_end: -} - -\ExplSyntaxOff - - -% -- CHANGES - WHEN? --% - -\ExplSyntaxOn - -% :: MESSAGES :: % - -\msg_set:nnnn { tdoc } { date-bad-format } - { Bad ~ format ~ for ~ a ~ date. } - { Use ~ YYYY-MM-DD. } - - -% :: MARGIN NOTE :: % - -\reversemarginpar{} - -%%% -% prototype:: -% #1 : the color of the margin note -% #2 : the first material (a date or nothing) -% #3 : the second material (a version number or nothing) -% #4 : the last negative vertical spacing for the 2nd rule -% -% :action: this macro factorizes the printing of the changes -% in the left margin. -% -% :see: \__tdoc_translate_date:n -%%% -\NewDocumentCommand{\tutodoc@new@change@margin}{m m m m}{ - \marginnote{ - \color{#1} - \scriptsize - \centering - - \vspace{0pt} - \rule{1.65cm}{.95pt} - \vspace{-2.9pt} - - \IfBlankTF{#2}{}{ - \par - \__tdoc_translate_date:n { #2 } - \par - } - - \vspace{1pt} - - \par - #3 - \par - - \vspace{#4} - \rule{1.65cm}{.95pt} - }[-.345cm] -} - - -%%% -% prototype:: -% :action: this function checks if we have something like -% ''YYYY-MM-DD'' and then it calls the function -% ''\__tdoc_translate_date_process:w'' to finish -% the job. -% -% :see: \__tdoc_translate_date_process:w -%%% -\cs_new:Nn \__tdoc_translate_date:n { - \regex_match:nnTF { \A \d{1,4} \- \d{2} \- \d{2} \Z } { #1 }{ - \__tdoc_translate_date_process:w #1 \q_stop - }{ - \msg_error:nn { tdoc } { date-bad-format } - } -} - - -%%% -% prototype:: -% :action: this function extracts year, month and day in something -% like ''YYYY-MM-DD'' and then it calls ''\tutodoc@trans@date'' -% to use the format expected for a "localised" date. -%%% -\cs_new:Npn \__tdoc_translate_date_process:w #1 - #2 - #3 \q_stop { - \tutodoc@trans@date{#1} - {#2} - {#3} -} - - -% :: VERSION AND DATE :: % - -%%% -% prototype:: -% #1 : the color of the margin note -% #2 : a version number -% #3 : a date ''YYYY-MM-DD'' -% -% :action: this macro prints a margin note showing a version number -% below a date, and the optional argument is used to colorize -% all this text. -% -% warning:: -% The date must use an english formatting like ''2021-07-14''. This allows -% to parse the date such as to display it following the standard convention -% of the language chosen when loading the package. -%%% -\NewDocumentCommand{\tdocversion}{O{blue} m O{}}{ - \tutodoc@new@change@margin{#1} % Color - {#3} % Date - {#2} % Version - {-4.25pt} % Last negative vertical spacing -} - - -% :: DATE :: % - -%%% -% prototype:: -% #1 : the color of the margin note -% #2 : a date ''YYYY-MM-DD'' -% -% :action: this macro is similar to ''\tdocversion'' except that it just -% prints a date. -%%% -\NewDocumentCommand{\tdocdate}{O{blue} m}{ - \tutodoc@new@change@margin{#1} % Color - {#2} % Date - {} % Version - {-5.35pt} % Last negative spacing -} - - -% -- CHANGES - WHAT? - -% :: MESSAGES :: % - -\msg_set:nnnn { tdoc } { changes-topic-missing-title } - { Missing ~ title. } - { One ~ single ~ title ~ must ~ be ~ indicated. } - - -% :: CHANGES - TOPIC :: % - -%%% -% prototype:: -% #1 : a title that will be followed by a colon. -% -% :action: this environment prints some ¨infos about specific changes -% achieved in a new version (no special formatting is applied). -%%% -\NewDocumentEnvironment{tdoctopic}{ m }{ - \IfBlankT{#1}{ - \msg_fatal:nn { tdoc } { changes-topic-missing-title } - } - - \textbf{ - \textsc{#1.} - } - - \begin{itemize} -}{ - \end{itemize} -} - - -% :: CHANGES - NEW THINGS :: % - -%%% -% prototype:: -% :see: env.tdoctopic -% -% :action: similar to the \env ''tdoctopic'' with the title "New" -% translated into the good language. -%%% -\NewDocumentEnvironment{tdocnew}{}{ - \begin{tdoctopic}{\tutodoc@trans@chges@new} -}{ - \end{tdoctopic} -} - - -% :: CHANGES - UPDATE :: % - -%%% -% prototype:: -% :see: env.tdoctopic -% -% :action: similar to the \env ''tdoctopic'' with the title "Update" -% translated into the good language. -%%% -\NewDocumentEnvironment{tdocupdate}{}{ - \begin{tdoctopic}{\tutodoc@trans@chges@update} -}{ - \end{tdoctopic} -} - - -% :: CHANGES - BREAK :: % - -%%% -% prototype:: -% :see: env.tdoctopic -% -% :action: similar to the \env ''tdoctopic'' with the title "Break" -% translated into the good language. -%%% -\NewDocumentEnvironment{tdocbreak}{}{ - \begin{tdoctopic}{\tutodoc@trans@chges@break} -}{ - \end{tdoctopic} -} - - -% :: CHANGES - PROBLEM :: % - -%%% -% prototype:: -% :see: env.tdoctopic -% -% :action: similar to the \env ''tdoctopic'' with the title "Problem" -% translated into the good language. -%%% -\NewDocumentEnvironment{tdocprob}{}{ - \begin{tdoctopic}{\tutodoc@trans@chges@pb} -}{ - \end{tdoctopic} -} - - -% :: CHANGES - FIX :: % - -%%% -% prototype:: -% :see: env.tdoctopic -% -% :action: similar to the \env ''tdoctopic'' with the title "Fix" -% translated into the good language. -%%% -\NewDocumentEnvironment{tdocfix}{}{ - \begin{tdoctopic}{\tutodoc@trans@chges@fix} -}{ - \end{tdoctopic} -} - -\ExplSyntaxOff - - -% -- DECORATIONS -- % - -% Source for \addvspace{\medskipamount} instead of \medskip. -% * https://tex.stackexchange.com/a/705938/6880 - -%%% -% prototype:: -% :action: this macro draws a centered horizontal rule with a height -% of qty::''0.75 pt'', and a width equal to half of the current -% text width. -% Extra vertical spaces are added above and below the rule. -%%% -\NewDocumentCommand{\tdocsep}{}{ - \par\addvspace{\medskipamount} - \hfill\rule{0.5\textwidth}{0.75pt}\hfill\null - \medskip - \smallskip -} - - -%%% -% prototype:: -% :action: this macro adds a tiny vertical spacing. -%%% -\NewDocumentCommand{\tdocxspace}{}{ - \vspace{0.25em} -} |