diff options
Diffstat (limited to 'macros/latex/contrib/projlib/projlib-draft.sty')
-rw-r--r-- | macros/latex/contrib/projlib/projlib-draft.sty | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/macros/latex/contrib/projlib/projlib-draft.sty b/macros/latex/contrib/projlib/projlib-draft.sty new file mode 100644 index 0000000000..6c7fe818c7 --- /dev/null +++ b/macros/latex/contrib/projlib/projlib-draft.sty @@ -0,0 +1,140 @@ +\NeedsTeXFormat{LaTeX2e}[2020-10-01] +\RequirePackage{l3keys2e} +\ProvidesExplPackage + {projlib-draft} + {2022/02/24} {} + {Useful commands during draft stage} + +\keys_define:nn { projlib-draft } + { + , draft .bool_set:N = \l__projlib_draft_fast_bool + , draft .initial:n = { false } + , fast .bool_set:N = \l__projlib_draft_fast_bool + , unknown .code:n = {} + } +\ProcessKeysOptions { projlib-draft } + +\RequirePackage { projlib-language } +\RequirePackage { xcolor } + +\bool_if:NTF \l__projlib_draft_fast_bool + { + \NewDocumentCommand \projlib_draft_plain_box { O{-paper} m } + { + \group_begin: + \color { #1 } + \dim_set:Nn \fboxsep { 1.5pt } + \dim_set:Nn \fboxrule { 1.5pt } + \fbox { #2 } + \group_end: + } + } + { + \PassOptionsToPackage { many } { tcolorbox } + \RequirePackage { tcolorbox } + \NewTCBox \projlib_draft_plain_box { O{-paper} } + { + enhanced~jigsaw, breakable, + on~line, arc = 1.2pt, outer~arc = 1pt, + colframe = #1, colupper = #1, opacityback = 0, + boxsep = 1pt, boxrule = 1.2pt, + left = 1pt, right = 1pt, top = 0pt, bottom = 0pt, + } + } + +\projlib_langauge_define_multilingual_text:Nn \__dnf_text + { + EN = To\ be\ finished , + FR = Pas\ encore\ fini , + DE = Nicht\ beendet , + IT = Per\ essere\ finito , + PT = Não\ terminou , + BR = Não\ terminou , + ES = Estar\ terminado , + CN = 这里尚未完成 , + TC = 這裡尚未完成 , + JP = 終わってない , + RU = Не\ закончен , + } + +\projlib_langauge_define_multilingual_text:Nn \__dnf_report_text + { + EN = { Below\ is\ a\ list\ of\ outstanding\ items, + \ followed\ by\ the\ corresponding\ page\ numbers. } , + FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens, + \ suivie\ des\ numéros\ de\ page\ correspondants. } , + DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten, + \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } , + IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso, + \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } , + PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes, + \ seguida\ dos\ números\ de\ página\ correspondentes. } , + BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes, + \ seguida\ dos\ números\ de\ página\ correspondentes. } , + ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes, + \ seguida\ de\ los\ números\ de\ página\ correspondientes. } , + CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } , + TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } , + JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } , + RU = { Ниже\ приведен\ список\ невыполненных\ пунктов + \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } , + } + +\tl_new:c { __dnf_font } +\tl_gset:cn { __dnf_font } { \normalfont \ttfamily \bfseries \small } + +\definecolor { __dnf_color } { RGB } { 21, 122, 20 } + +\newcounter { __dnf_counter } + +\tl_new:N \g__projlib_draft_dnf_report_tl + +\NewDocumentCommand \dnf { d<> } + { + \noindent + \projlib_draft_plain_box [ __dnf_color ] + { + \stepcounter { __dnf_counter } + \__dnf_font + \__dnf_text + \c_space_tl + \# \the__dnf_counter + \IfNoValueF { #1 } { \, : ~ #1 } + \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl + { + \# \, + \int_value:w \the__dnf_counter + \c_space_tl \c_space_tl + $\langle$ + \skip_horizontal:n { 0.1em } + \cs_if_exist:cTF { hyperlink } + { + \exp_not:N \hyperlink { page.\thepage } { \thepage } + } + { + \thepage + } + \skip_horizontal:n { 0.1em } + $\rangle$ + \c_space_tl + \IfNoValueF { #1 } { : ~ #1 } + \\ + } + } + } + +\hook_gput_code:nnn { enddocument } { projlib-draft } + { + \tl_if_blank:VF \g__projlib_draft_dnf_report_tl + { + \clearpage \noindent + \color { __dnf_color } + \__dnf_font + \__dnf_report_text \\[0.75\baselineskip] + \g__projlib_draft_dnf_report_tl + } + } + +\endinput +%% +%% End of file `projlib-draft.sty'. |