diff options
author | Norbert Preining <norbert@preining.info> | 2021-12-01 03:00:56 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-12-01 03:00:56 +0000 |
commit | e127e502f1bc7386699c44d75c89991f1a5e0ac6 (patch) | |
tree | 09f9704271735fd37227a9c34d888dccc4153dc9 /macros | |
parent | 37729ddea335ca0dfe40ada381d05bde37c5ea61 (diff) |
CTAN sync 202112010300
Diffstat (limited to 'macros')
51 files changed, 21600 insertions, 5556 deletions
diff --git a/macros/generic/polexpr/README.md b/macros/generic/polexpr/README.md index de201582d3..c52baa8b75 100644 --- a/macros/generic/polexpr/README.md +++ b/macros/generic/polexpr/README.md @@ -92,8 +92,11 @@ Releases - 0.8.4 (2021/11/01) Bugfix: `PolSturmIsolateZeros**` did not declare the square free part of the original polynomial if no real root existed. +- 0.8.5 (2021/11/30) + Bugfix: `intfrom()` was documented at `0.8` but not declared to parser. + Track (belatedly) `xintexpr` 1.4g changes -Files of 0.8.4 release: +Files of 0.8.5 release: - polexpr.sty, polexprcore.tex, polexprexpr.tex, polexprsturm.tex, - README.md, diff --git a/macros/generic/polexpr/polexpr.html b/macros/generic/polexpr/polexpr.html index 3fdb584ea8..9b6f99138d 100644 --- a/macros/generic/polexpr/polexpr.html +++ b/macros/generic/polexpr/polexpr.html @@ -598,7 +598,7 @@ a { text-decoration: none; } <body> <div class="document" id="package-polexpr-documentation"> <h1 class="title">Package polexpr documentation</h1> -<p class="subtitle" id="id1">0.8.4 (2021/11/01)</p> +<p class="subtitle" id="id1">0.8.5 (2021/11/30)</p> <div class="contents topic" id="contents"> <p class="topic-title">Contents</p> @@ -1799,7 +1799,7 @@ immediate priority though (perhaps support of multivariate polynomials would be more important feature; or localization of complex roots).</p> <ul> <li><p>To make printed decimal numbers more enjoyable than via -<span class="docutils literal">\xintSignedFrac</span> (or <span class="docutils literal">\xintSignedFwOver</span> with Plain):</p> +<span class="docutils literal">\xintTeXsignedFrac</span> (or <span class="docutils literal">\xintTeXsignedOver</span> with Plain):</p> <pre class="literal-block">\def\PolTypesetOne#1{\PolDecToString{\xintREZ{#1}}}%</pre> <p><span class="docutils literal">\PolDecToString</span> will use decimal notation to incorporate the power of ten part; and the <span class="docutils literal">\xintREZ</span> will have the effect to suppress @@ -2337,7 +2337,7 @@ plus or minus one, and <span class="docutils literal">F</span> if not. It choos <div class="section" id="poltypesetone-raw-coeff"> <span id="poltypesetone"></span><h3><a class="toc-backref" href="#id91"><span class="docutils literal"><span class="pre">\PolTypesetOne{<raw_coeff>}</span></span></a></h3> <blockquote> -<p>Defaults to <span class="docutils literal">\xintSignedFrac</span> (LaTeX) or <span class="docutils literal">\xintSignedFwOver</span> +<p>Defaults to <span class="docutils literal">\xintTeXsignedFrac</span> (LaTeX) or <span class="docutils literal">\xintTeXsignedOver</span> (else). But these <a class="reference external" href="http://www.ctan.org/pkg/xint">xintfrac</a> old legacy macros are a bit annoying as they insist in exhibiting a power of ten rather than using simpler decimal notation.</p> @@ -2365,7 +2365,7 @@ for the constant term, <span class="docutils literal">\PolVar</span> for the fir <blockquote> <p>Expands to a <span class="docutils literal">+</span> if the <span class="docutils literal">raw_coeff</span> is zero or positive, and to nothing if <span class="docutils literal">raw_coeff</span> is negative, as in latter case the -<span class="docutils literal">\xintSignedFrac</span> (or <span class="docutils literal">\xintSignedFwOver</span>) used by +<span class="docutils literal">\xintTeXsignedFrac</span> (or <span class="docutils literal">\xintTeXsignedOver</span>) used by <a class="reference internal" href="#poltypesetcmd-raw-coeff">\PolTypesetCmd{<raw_coeff>}</a> will put the <span class="docutils literal">-</span> sign in front of the fraction (if it is a fraction) and this will thus serve as separator in the typeset formula. Not used for the first term.</p> @@ -2812,7 +2812,7 @@ example of customization.</p> definition:</p> <pre class="literal-block">\newcommand\POL@@PrintIntervalsPrintExactZero{% \displaystyle - \xintSignedFrac{\PolPrintIntervalsTheLeftEndPoint}% + \xintTeXsignedFrac{\PolPrintIntervalsTheLeftEndPoint}% }%</pre> <p>Multiplicities are printed using this auxiliary macro:</p> </blockquote> @@ -4204,6 +4204,14 @@ declare the <span class="docutils literal"><sturmname>_norr</span> and <sp polynomials if original polynomial had no real root!</p></li> </ul> </li> +<li><p>v0.8.5 (2021/11/30)</p> +<ul class="simple"> +<li><p>bugfix: support for the <span class="docutils literal">intfrom()</span> function was in the code, +but the declaration to the polynomial parser had not been done.</p></li> +<li><p>track (belatedly) upstream deprecation of <span class="docutils literal">\xintSignedFrac</span> and +<span class="docutils literal">\xintSignedFwOver</span> at <a class="reference external" href="http://www.ctan.org/pkg/xint">xintexpr</a> <span class="docutils literal">1.4g</span></p></li> +</ul> +</li> </ul> </div> <div class="section" id="acknowledgments"> diff --git a/macros/generic/polexpr/polexpr.sty b/macros/generic/polexpr/polexpr.sty index a2334e9724..04d189de8b 100644 --- a/macros/generic/polexpr/polexpr.sty +++ b/macros/generic/polexpr/polexpr.sty @@ -2,7 +2,7 @@ % License: LPPL 1.3c (author-maintained) % Usage: \input polexpr.sty (Plain or other macro formats) % or \usepackage{polexpr} (LaTeX macro format) -% Release 0.8.4 (2021/11/01) of polexpr.sty. This file inputs +% Release 0.8.5 (2021/11/30) of polexpr.sty. This file inputs % polexprcore.tex % polexprexpr.tex % polexprsturm.tex @@ -767,9 +767,9 @@ \let\PolIfCoeffIsPlusOrMinusOne\xint_secondoftwo}% }% \ifdefined\frac -\def\PolTypesetOne{\xintSignedFrac}% +\def\PolTypesetOne{\xintTeXsignedFrac}% \else -\def\PolTypesetOne{\xintSignedFwOver}% +\def\PolTypesetOne{\xintTeXsignedOver}% \fi \catcode`^ 7 % \def\PolTypesetMonomialCmd{% diff --git a/macros/generic/polexpr/polexprcore.tex b/macros/generic/polexpr/polexprcore.tex index 3315790b95..3648bc8ccb 100644 --- a/macros/generic/polexpr/polexprcore.tex +++ b/macros/generic/polexpr/polexprcore.tex @@ -1,4 +1,4 @@ -%% This file polexprcore.tex is part of the polexpr package (0.8.4, 2021/11/01) +%% This file polexprcore.tex is part of the polexpr package (0.8.5, 2021/11/30) %% Core routines to match infix operators +, -, *, //, /:, ^, ** and some %% functions %% The atoms representing polynomials inside \xintexpr are diff --git a/macros/generic/polexpr/polexprexpr.tex b/macros/generic/polexpr/polexprexpr.tex index d896e4b39b..f3cc5ac28e 100644 --- a/macros/generic/polexpr/polexprexpr.tex +++ b/macros/generic/polexpr/polexprexpr.tex @@ -1,4 +1,4 @@ -%% This file polexprexpr.tex is part of the polexpr package (0.8.4, 2021/11/01) +%% This file polexprexpr.tex is part of the polexpr package (0.8.5, 2021/11/30) %% Extending \xintexpr syntax: %% %% 1. Authorize ' in variable and function names @@ -156,6 +156,7 @@ \POL_tmp {diffn} \XINT:NEhook:f:one:from:two \xintPolDiffN \POL_tmp {antider} \XINT:NEhook:f:one:from:one \xintPolAntiOne \POL_tmp {integral} \XINT:NEhook:f:one:from:two \xintPolIntegral +\POL_tmp {intfrom} \XINT:NEhook:f:one:from:two \xintPolIntFrom \POL_tmp {quorem} \XINT:NEhook:f:one:from:two \xintPolQuoRem \POL_tmp {quo} \XINT:NEhook:f:one:from:two \xintPolQuo \POL_tmp {rem} \XINT:NEhook:f:one:from:two \xintPolRem diff --git a/macros/generic/polexpr/polexprsturm.tex b/macros/generic/polexpr/polexprsturm.tex index 317b9cbcd3..d590d48aa5 100644 --- a/macros/generic/polexpr/polexprsturm.tex +++ b/macros/generic/polexpr/polexprsturm.tex @@ -1,4 +1,4 @@ -%% This file polexprsturm.tex is part of the polexpr package (0.8.4, 2021/11/01) +%% This file polexprsturm.tex is part of the polexpr package (0.8.5, 2021/11/30) %% Sturm Algorithm (polexpr 0.4) %% 0.5 uses primitive polynomials for faster evaluations afterwards %% 0.6 corrects misuse of \@ifstar! (mumble). \PolToSturm* was broken. @@ -1528,12 +1528,12 @@ \ifdefined\frac \def\POL@@PrintIntervalsPrintExactZero{% \displaystyle - \xintSignedFrac{\PolPrintIntervalsTheLeftEndPoint}% + \xintTeXsignedFrac{\PolPrintIntervalsTheLeftEndPoint}% }% \else \def\POL@@PrintIntervalsPrintExactZero{% \displaystyle - \xintSignedFwOver{\PolPrintIntervalsTheLeftEndPoint}% + \xintTeXsignedOver{\PolPrintIntervalsTheLeftEndPoint}% }% \fi \def\POL@@PrintIntervalsUnknownRoot{% diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index c4e52d8a91..18a9524c2c 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,12 +15,12 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/11/28}{1.41B} +\ProvidesExplClass{easybook}{2021/11/29}{1.41C} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool \bool_set_false:N \l__eb_title_newline_bool -\bool_set_true:N \l__eb_class_book_bool +\bool_set_true:N \l__eb_class_mode_book_bool \tl_new:N \g__eb_config_tl \tl_new:N \l__eb_font_choice_tl \clist_new:N \g__eb_options_clist @@ -58,7 +58,7 @@ class/book .code:n = { }, class/article .code:n = { - \bool_set_false:N \l__eb_class_book_bool + \bool_set_false:N \l__eb_class_mode_book_bool \eb_put_ctexbook:n { oneside } }, book .meta:n = { class = book }, @@ -253,7 +253,7 @@ \ctex_set:n { secnumdepth = 3, - tocdepth = \bool_if:NTF \l__eb_class_book_bool { 1 } { 2 }, + tocdepth = \bool_if:NTF \l__eb_class_mode_book_bool { 1 } { 2 }, part = { pagestyle = empty, @@ -325,7 +325,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/11/28}{1.41B} +\ProvidesExplPackage{easybase}{2021/11/29}{1.41C} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -423,8 +423,8 @@ { \BeforeBeginEnvironment{document} } \cs_gset_eq:NN \PackageWarning \PackageInfo -\bool_if_exist:NF \l__eb_class_book_bool - { \bool_set_true:N \l__eb_class_book_bool } +\bool_if_exist:NF \l__eb_class_mode_book_bool + { \bool_set_true:N \l__eb_class_mode_book_bool } \bool_if_exist:NF \l__eb_compile_draft_bool { \bool_set_false:N \l__eb_compile_draft_bool } \clist_new:N \g__eb_ctex_options_clist @@ -446,7 +446,7 @@ class/book .code:n = { }, class/article .code:n = { - \bool_set_false:N \l__eb_class_book_bool + \bool_set_false:N \l__eb_class_mode_book_bool \boolfalse{@twoside} \boolfalse{@mparswitch} }, @@ -491,21 +491,21 @@ \eb_clist_map_inline:nn { style,subfont,spread,bibset,thmset,hdrset,tocset } { - \msg_new:nnn { easybase } { ignore-#1 } + \msg_new:nnn { easybase } { abandon-#1 } { - ##1~is~an~unknown~option~of~#1. \\ - Please~check~the~user~manual~for~the~supported~options. + ##1~is~an~abandoned~option~of~#1~module. \\ + Please~browse~the~user~manual~for~the~new~options. } } -\cs_new:Npn \eb_msg_unknown_option:n #1 - { \msg_warning:nnx { easybase } { ignore-#1 } { \l_keys_key_str } } +\cs_new:Npn \eb_msg_abandon_option:n #1 + { \msg_warning:nnx { easybase } { abandon-#1 } { \l_keys_key_str } } \cs_if_exist:NF \chapter { \newcounter{chapter} - \bool_set_false:N \l__eb_class_book_bool + \bool_set_false:N \l__eb_class_mode_book_bool \ctex_define:n { chapter/tocline .code:n = { } } } -\bool_if:NF \l__eb_class_book_bool +\bool_if:NF \l__eb_class_mode_book_bool { \cs_undefine:N \chapter \ctex_after_end_preamble:n @@ -710,24 +710,21 @@ { \eb_mark_nouppercase:n } { \use:c { eb_fancyhf_#1_mark:n } {#2} } } +\cs_set:Npn \markdouble #1 { \markboth{#1}{\ifbool{@twoside}{#1}{}} } \cs_new:Npn \eb@level@markdouble #1#2 - { - \markboth - {\eb_mark_if_uppercase:nn {#1} {#2}} - {\ifbool{@twoside}{\eb_mark_if_uppercase:nn {#1} {#2}}{}} - } + { \markdouble{\eb_mark_if_uppercase:nn {#1} {#2}} } \cs_new:Npn \eb@level@markright #1#2 { \markright{\eb_mark_if_uppercase:nn {#1} {#2}} } \cs_gset:Npn \chaptermark #1 { \eb@level@markdouble{chapter}{#1} } \cs_gset:Npn \sectionmark #1 { - \bool_if:NTF \l__eb_class_book_bool + \bool_if:NTF \l__eb_class_mode_book_bool { \eb@level@markright{section}{#1} } { \eb@level@markdouble{section}{#1} } } \cs_gset:Npn \subsectionmark #1 { - \bool_if:NF \l__eb_class_book_bool + \bool_if:NF \l__eb_class_mode_book_bool { \eb@level@markright{subsection}{#1} } } \cs_gset_eq:NN \ps@plain \ps@empty @@ -915,7 +912,7 @@ fntext-num/unknown .code:n = \eb_fnmate_short_label_set:nn {#1} { thefootnote }, fnmate-num .meta:n = { fntext-num = #1,fnmark-num = #1 }, fnmate-num .initial:n = plain, - unknown .code:n = \eb_msg_unknown_option:n { hdrset } + unknown .code:n = \eb_msg_abandon_option:n { hdrset } } \eb_at_end_preamble:n @@ -1287,26 +1284,29 @@ lolskip .skip_set:N = \eb@toc@lolskip, lolskip .initial:n = 10pt, main-voffset .skip_set:N = \l__eb_toc_main_voffset_skip, - main-voffset .initial:n = \bool_if:NTF \l__eb_class_book_bool { 1pc } { 0.2pc }, + main-voffset .initial:n = \bool_if:NTF \l__eb_class_mode_book_bool { 1pc } { 0.2pc }, dotalign .bool_set:N = \l__eb_toc_dot_align_bool, dotalign .default:n = true, dotalign .initial:n = true, hang .bool_set:N = \eb@titletoc@hang@fix@bool, hang .default:n = true, hang .initial:n = false, - unknown .code:n = \eb_msg_unknown_option:n { tocset } + unknown .code:n = \eb_msg_abandon_option:n { tocset } } -\NewDocumentCommand{\tocrule}{sO{0.7pc}D(){1.2}mO{}} +\NewDocumentCommand{\tocrule}{st-O{0.7pc}D(){1.2}mO{}} { \normalsize\normalfont - \titlerule*[#2]{\scalebox{#3}{#4}}#5 + \titlerule*[#3]{\scalebox{#4}{#5}}#6 \bgroup - \IfBooleanTF{#1} - {\thecontentspage} + \IfBooleanF{#2} { - \bool_if:NTF \l__eb_toc_dot_align_bool - { \contentspage } - { \thecontentspage } + \IfBooleanTF{#1} + {\thecontentspage} + { + \bool_if:NTF \l__eb_toc_dot_align_bool + { \contentspage } + { \thecontentspage } + } } \egroup } @@ -1340,23 +1340,27 @@ chapter/tocindent = 0em, chapter/tocrule = \tocrule{$\cdot$}[\bfseries], chapter/tocline = \CTEXnumberline{#1}#2, - section/tocformat = \addvspace{0.2pc}\bool_if:NF \l__eb_class_book_bool { \sffamily }, - section/tocindent = \bool_if:NTF \l__eb_class_book_bool { 1.5em } { 0em }, + section/tocformat = + { + \addvspace{0.2pc} + \bool_if:NF \l__eb_class_mode_book_bool { \sffamily } + }, + section/tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 1.5em } { 0em }, section/tocrule = { - \bool_if:NTF \l__eb_class_book_bool + \bool_if:NTF \l__eb_class_mode_book_bool { \tocrule{$\cdot$} } { \tocrule{$\cdot$}[\bfseries] } }, section/tocline = \CTEXnumberline{#1}#2, subsection/tocformat = \addvspace{0.2pc}, - subsection/tocindent = \bool_if:NTF \l__eb_class_book_bool { 3.8em } { 1.4em }, + subsection/tocindent = \bool_if:NTF \l__eb_class_mode_book_bool { 3.8em } { 1.4em }, subsection/tocrule = \tocrule{$\cdot$}, subsection/tocline = \CTEXnumberline{#1}#2, list/tocformat = \addvspace{0.2pc}, list/tocindent = 0em, list/tocrule = \tocrule{$\cdot$}, - list/voffset = 0.2pc\bool_if:NT \l__eb_class_book_bool { + 10pt }, + list/voffset = 0.2pc\bool_if:NT \l__eb_class_mode_book_bool { + 10pt }, table/tocline = \listnumberline{table}, figure/tocline = \listnumberline{figure}, lstlisting/tocline = \listnumberline{lstlisting} @@ -1491,7 +1495,7 @@ listing-connect = #1,equation-connect = #1 }, connect-all .initial:n = { . }, - unknown .code:n = \eb_msg_unknown_option:n { style } + unknown .code:n = \eb_msg_abandon_option:n { style } } \eb_clist_map_inline:nn { figure,table,lstlisting,equation } @@ -1507,14 +1511,14 @@ } } -\tl_set:Nx \l__eb_toc_type_tl - { \bool_if:NTF \l__eb_class_book_bool { chapter } { section } } +\tl_set:Nx \l__eb_toc_title_level_tl + { \bool_if:NTF \l__eb_class_mode_book_bool { chapter } { section } } \tl_new:N \eb@bitoc@title \keys_define:nn { eb/listoc } { - section .code:n = \tl_set:Nn \l__eb_toc_type_tl { section }, - chapter .code:n = \tl_set:Nn \l__eb_toc_type_tl { chapter }, - none .code:n = \tl_set:Nn \l__eb_toc_type_tl { none }, + section .code:n = \tl_set:Nn \l__eb_toc_title_level_tl { section }, + chapter .code:n = \tl_set:Nn \l__eb_toc_title_level_tl { chapter }, + none .code:n = \tl_set:Nn \l__eb_toc_title_level_tl { none }, article .meta:n = section, book .meta:n = chapter, multoc .int_set:N = \l__eb_toc_columns_int, @@ -1523,7 +1527,7 @@ columns .meta:n = { multoc = #1 }, title .code:n = \eb_assign_toc_title:n {#1} } -\bool_if:NTF \l__eb_class_book_bool +\bool_if:NTF \l__eb_class_mode_book_bool { \keys_define:nn { } { eb/listoc .inherit:n = ctex/chapter } } { \keys_define:nn { } { eb/listoc .inherit:n = ctex/section } } \NewDocumentCommand{\eb_assign_toc_title:n} @@ -1537,17 +1541,17 @@ { \tl_set:Nn \eb@bitoc@title {#2} } } -\cs_new_protected:Npn \eb_toc_type_section_initial: +\cs_new_protected:Npn \eb_toc_title_level_initial: { - \bool_if:NF \l__eb_class_book_bool + \bool_if:NF \l__eb_class_mode_book_bool { - \tl_if_eq:NnT \l__eb_toc_type_tl { chapter } - { \tl_set:Nn \l__eb_toc_type_tl { section } } + \tl_if_eq:NnT \l__eb_toc_title_level_tl { chapter } + { \tl_set:Nn \l__eb_toc_title_level_tl { section } } } } \cs_new_protected:Npn \eb_title_mark_intoc:n #1 { - \str_case:Vn \l__eb_toc_type_tl + \str_case:Vn \l__eb_toc_title_level_tl { { chapter } { \bichapter*{#1}{\eb@bitoc@title} } { section } { \bisection*{#1}{\eb@bitoc@title} } @@ -1555,7 +1559,7 @@ } \cs_new_protected:Npn \eb_title_mark_notoc:n #1 { - \str_case:Vn \l__eb_toc_type_tl + \str_case:Vn \l__eb_toc_title_level_tl { { chapter } { \chapter*{\phantomsection #1}\chaptermark{#1} } { section } { \section*{\phantomsection #1}\sectionmark{#1} } @@ -1563,10 +1567,10 @@ } \cs_new_protected:Npn \eb_title_number_intoc_spec:nn #1#2 { - \eb_toc_type_section_initial: + \eb_toc_title_level_initial: \IfBooleanTF{#1} { - \str_case:Vn \l__eb_toc_type_tl + \str_case:Vn \l__eb_toc_title_level_tl { { chapter } { \bichapter{\eb@toc@title}{\eb@bitoc@title} } { section } { \bisection{\eb@toc@title}{\eb@bitoc@title} } @@ -1579,7 +1583,7 @@ } \cs_new_protected:Npn \eb_biber_title_level_spec:n #1 { - \bool_if:NTF \l__eb_class_book_bool + \bool_if:NTF \l__eb_class_mode_book_bool { \bichapter*{#1}{\l__eb_bib_en_bitoc_title_tl} } { \bisection*{#1}{\l__eb_bib_en_bitoc_title_tl} } \sectionmark{#1} @@ -1596,7 +1600,7 @@ } \cs_new_protected:Npn \eb_toc_if_title_voffset:n #1 { - \tl_if_eq:NnF \l__eb_toc_type_tl { none } + \tl_if_eq:NnF \l__eb_toc_title_level_tl { none } { \vspace*{-\dim_use:c { l__eb_toc_#1_voffset_skip }} } } \cs_new_protected:Npn \eb_toc_list_parse:nnnnn #1#2#3#4#5 @@ -1628,7 +1632,7 @@ \tl_set_eq:NN \eb@toc@title \contentsname \tl_set:Nn \eb@bitoc@title { Contents } \IfValueT{#2}{\keys_set:nn { eb/listoc } {#2}} - \eb_toc_type_section_initial: + \eb_toc_title_level_initial: \eb_title_mark_notoc:n { \eb@toc@title } \eb_toc_if_title_voffset:n { main } \eb_toc_start_multi_column_ext:n { toc }#3 @@ -1727,7 +1731,7 @@ footnote .initial:n = \rmfamily, marginpar .tl_set:N = \marginfont, marginpar .initial:n = \rmfamily\footnotesize, - unknown .code:n = \eb_msg_unknown_option:n { subfont } + unknown .code:n = \eb_msg_abandon_option:n { subfont } } \fp_new:N \l__eb_spread_table_fp @@ -1748,7 +1752,7 @@ footnote .fp_set:N = \l__eb_spread_footnote_fp, footnote .initial:n = 1.2, spread-all .meta:n = { line = #1,table = #1,math = #1,caption = #1,footnote = #1 }, - unknown .code:n = \eb_msg_unknown_option:n { spread } + unknown .code:n = \eb_msg_abandon_option:n { spread } } \DeclareCaptionLabelFormat{parens}{\bothIfFirst{#1}{~}(#2)} @@ -1987,7 +1991,7 @@ thmbox .meta:n = { thmframe = #1 }, thmbox .default:n = true, notebraces .tl_set:N = \l__eb_thm_notebraces_tl, - unknown .code:n = \eb_msg_unknown_option:n { thmset } + unknown .code:n = \eb_msg_abandon_option:n { thmset } } \eb_patch_cmd:wnn \thmt@setheadstyle { \def\NAME{\the\thm@headfont ##1} } @@ -2006,7 +2010,7 @@ headfont = \color{ctex@emph}\sffamily, postheadspace = 1em, notebraces = {(}{)}, - within = \bool_if:NT \l__eb_class_book_bool { chapter }, + within = \bool_if:NT \l__eb_class_mode_book_bool { chapter }, headformat = \NAME\NUMBER\NOTE } \msg_new:nnn { easybase } { need-tcolorbox } @@ -2108,7 +2112,7 @@ datafile .clist_set:N = \l__eb_bib_datafile_clist, bitoc-title .tl_set:N = \l__eb_bib_en_bitoc_title_tl, bitoc-title .initial:n = Reference, - unknown .code:n = \eb_msg_unknown_option:n { bibset } + unknown .code:n = \eb_msg_abandon_option:n { bibset } } \cs_new_protected:Npn \eb_natbib_bibtex_set: @@ -2366,7 +2370,8 @@ \ctex_define:n { lstlistlistingname .tl_set:N = \listlstlistingname, - lstlistingname .tl_set:N = \lstlistingname + lstlistingname .tl_set:N = \lstlistingname, + exercisename .tl_set:N = \exercisename } \tl_if_eq:NnTF \l__ctex_scheme_tl { chinese } { @@ -2378,7 +2383,8 @@ listfigurename = 图片索引, listtablename = 表格索引, lstlistlistingname = 代码索引, - lstlistingname = 代码 + lstlistingname = 代码, + exercisename = 练习 } \labelformat{equation}{式(#1)} \labelformat{section}{节 #1} @@ -2389,7 +2395,8 @@ { abstractname = Abstract, lstlistlistingname = List~of~Codes, - lstlistingname = Code + lstlistingname = Code, + exercisename = Exercise } \labelformat{equation}{Equation~(#1)} \labelformat{section}{Section~#1} @@ -2397,17 +2404,18 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/11/28}{1.41B} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/11/29}{1.41C} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \setexercise #1 { \keys_set:nn { eb/exercise } {#1} } \cs_set_protected:Npn \addtcbstyle #1#2 { \tcbset{#1/.append~style = {#2}} } -\cs_set_protected:Npn \newtcbstyle #1#2 +\cs_set_protected:Npn \deftcbstyle #1#2 { \tcbset{#1/.style = {#2}} } \cs_new_protected:Npn \tcbappstyle - { \@ifstar{\newtcbstyle}{\addtcbstyle} } + { \@ifstar{\deftcbstyle}{\addtcbstyle} } +\cs_set_eq:NN \newtcbstyle \deftcbstyle \keys_define:nn { eb/exercise } { color .tl_set:N = \eb@tc@background@color, @@ -2415,7 +2423,7 @@ number .tl_set:N = \eb@tc@list@number, number .initial:n = 1., title .tl_set:N = \eb@tc@exercise@title, - title .initial:n = \c__eb_name_exercise_tl, + title .initial:n = \exercisename, numsep .dim_set:N = \eb@toc@exercise@numsep, numsep .initial:n = 0.5em, tocnumsep .dim_set:N = \eb@toc@exertoc@numsep, @@ -2426,7 +2434,7 @@ } \tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip } -\newtcbstyle{tc-theorem} +\deftcbstyle{tc-theorem} { enhanced~jigsaw,pad~at~break* = 3pt, opacityback = 0, @@ -2437,7 +2445,7 @@ top = \eb@tc@line@skip,bottom = \eb@tc@line@skip, middle = \eb@tc@line@skip } -\newtcbstyle{tc-outline} +\deftcbstyle{tc-outline} { enhanced,nofloat, tikznode~boxed~title, @@ -2450,14 +2458,14 @@ arc = 3pt, left = 2pc,right = 2pc,top = 1.5pc,bottom = 1pc } -\newtcbstyle{tc-exercise} +\deftcbstyle{tc-exercise} { blank,on~line,center, sharpish~corners, fontupper = \Large\sffamily, beforeafter~skip = 3.75ex plus .2ex minus .1ex } -\newtcbstyle{tc-easybox} +\deftcbstyle{tc-easybox} { enhanced~jigsaw,pad~at~break* = 3pt, center~title, @@ -2471,7 +2479,7 @@ titlerule = 0pt, beforeafter~skip = 1.75ex plus .2ex minus .1ex } -\newtcbstyle{tc-ebparbox} +\deftcbstyle{tc-ebparbox} { frame~hidden, enhanced~jigsaw,pad~at~break* = 3pt, @@ -2481,15 +2489,15 @@ middle = \eb@tc@line@skip,bottomtitle = \eb@tc@line@skip, beforeafter~skip = 1.75ex plus .2ex minus .1ex } -\newtcbstyle{tc-ebemph}{on~line,blank} -\newtcbstyle{tc-eblink} +\deftcbstyle{tc-ebemph}{on~line,blank} +\deftcbstyle{tc-eblink} { standard~jigsaw,on~line, top = 1.5pt,bottom = 1.5pt,left = 1.5pt,right = 1.5pt, boxrule = 0.5pt,arc = 1pt, opacityback = 0.2 } -\newtcbstyle{tc-ebfbox} +\deftcbstyle{tc-ebfbox} { on~line,sharpish~corners, top = 1.5pt,bottom = 1.5pt,left = 1pt,right = 1pt, @@ -2511,7 +2519,6 @@ \tl_gset:Nn \eb@tc@exercise@ifnametrue {#1} \tl_gset:Nn \eb@tc@exercise@ifnamefalse {#2} } -\eb_thm_name_set:nnn { exercise } { Exercise } { 练习 } \tcphantomifname { \markright diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf Binary files differindex 45d99e1141..c039368412 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index 168e49d8e4..af55466e62 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -20,8 +20,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.41B, - date = 2021/11/28, + version = v1.41C, + date = 2021/11/29, authors = 瞿毅, info = 排版简体中文学位论文和书籍, email = q1jx@foxmail.com, @@ -75,6 +75,7 @@ \newsplitarg{\splitmarg}{\{}{\}} \newcommand{\spemmeta}{\splitmeta[\code{|}]} \newsplitarg[\spemmeta]{\spemcoarg}{[}{]} +\newcommand{\harg}{\textcolor{argument}{\code{-}}} \NewDocumentCommand{\passto}{smm} {\IfBooleanF{#1}{\color{Blue}}#3\ifblank{#2}{}{\ttfamily[#2]}} \newcommand{\insertblr}[2] @@ -591,7 +592,7 @@ \kvsplit*{notebraces}{\meta{左括号}\code{\}\{}\meta{右括号}}\Default{\Carg{(}\Carg{)}} 设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。 \keyval-{headformat}{标题排列}\Default{\cs*{NAME}\cs*{NUMBER}\cs*{NOTE}} - 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中参数 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 + 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中命令 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 \end{options} \subsubsection{新建定理环境} @@ -619,7 +620,7 @@ \begin{itemize} \item 中英文模式下标题不同,英文标题为可选项,默认为首字母大写的 \meta{环境名}。 \item 自动定义交叉引用的格式,引用标签前缀为相应定理名。 - \item 定理盒子选项 \option{thmframe} 仍然生效,\meta{盒子风格} 可以使用 \cs{newtcbstyle} 命令创建。 + \item 定理盒子选项 \option{thmframe} 仍然生效,\meta{盒子风格} 可以使用 \cs{deftcbstyle} 命令创建。 \item 新建定理环境默认使用的 \meta{定理样式} 为 \code{easy-theorem},而不是 \pkg*{thmtools} 的默认样式。 \end{itemize} @@ -697,9 +698,10 @@ \end{commands} \begin{commands}\noitemsep - \command*{markboth}[\marg{左页页眉内容}\marg{右页页眉内容}]\default{} - \command*{markright}[\marg{右页页眉内容}] - 命令 \cs*{markboth} 和 \cs*{markright} 用于手动设置当前页标题标记,一般紧随标题命令,特殊情况下可以使用它们得到需要的页眉标志。上述标记命令内容的选项便是基于这两个命令。如果是单面打印,则 \meta{左页页眉内容} 无效。 + \command*{markboth}[\marg{左页标题标记}\marg{右页标题标记}]\default{} + \command*{markright}[\marg{右页标题标记}]\default{} + \command{markdouble}[\marg{双页标题标记}] + 这三个命令用于手动设置当前页标题标记,一般紧随标题命令,特殊情况下可以使用它们得到需要的页眉页脚内容。上述标记命令内容的选项便是基于这三个命令。其中 \cs{markdouble} 根据是否是双面打印设置相应标记。如果是单面打印,则 \meta{左页标题标记} 无效。 \end{commands} \begin{commands} @@ -801,8 +803,8 @@ \end{options} \begin{commands} - \command{tocrule}[\sarg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}] - 目录命令 \cs{tocrule} 生成目录引导线,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令会使当前级别的目录引导线右边与页码相连而不是对齐。\meta{引导点间距} 需带有长度单位,\meta{放大因子} 不带单位,为 \meta{引导点} 的放大倍数,\meta{引导点} 一般为英文句号或 \cs*{cdot} 中心点符号。\meta{页码格式} 的代码位于页码前面,可以设置页码字体和距离等,最后一个命令可以带有一个参数,这个参数为页码编号。 + \command{tocrule}[\sarg\harg\oarg{引导点间距}\darg{放大因子}\marg{引导点}\oarg{页码格式}] + 目录命令 \cs{tocrule} 生成目录引导线,需要在引导线选项 \option{tocrule} 中使用。带有星号的命令会使当前级别的目录引导线右端与页码相连而不是对齐。带有 \harg{} 号的命令不添加引导线后的目录页码。\meta{引导点间距} 需带有长度单位,\meta{放大因子} 不带单位,为 \meta{引导点} 的放大倍数,\meta{引导点} 一般为英文句号或 \cs*{cdot} 中心点符号。\meta{页码格式} 的代码位于页码前面,可以设置页码字体和距离等,最后一个命令可以带有一个参数,这个参数为页码编号。 \command*{CTEXnumberline}[\marg{编号级别}] 目录命令 \cs*{CTEXnumberline} 用于在 C\TeX 文档类的 \option*{tocline} 选项中设置目录的标签,它已经被重新定义,使得目录标签后代码选项 \option{tocafter} 仍然有效。\meta{编号级别} 为 \code{chapter} 和 \code{section} 等,也可用参数 \code{\#1} 代替当前级别类型,标题名用参数 \code{\#2} 代替一般不变。 \begin{ctexexam} @@ -829,7 +831,7 @@ \keyval-{main-voffset}{弹性长度} 文档主目录标题下方的间距补偿,一般为正值,用于抵消目录中首行的额外垂直间距。 \keybool{dotalign}\Default{true} - 引导线选项 \option{dotalign} 可以使目录引导线右边对齐并与页码保持一定间隙,否则会与页码连接。 + 引导线选项 \option{dotalign} 可以使目录引导线右端对齐并与页码保持一定间隙,否则会与页码连接。 \keyval-{tocafter-all}{距离命令}\Default{\cs*{hspace}\Carg{1em}} 统一设置所有级别在目录中标签与标题间的代码。 \keyval-{tocindent-all}{刚性长度} @@ -995,7 +997,7 @@ \keyval-{color}{标题背景颜色名}\Default{DeepSkyBlue} 习题标题盒子背景颜色,可以使用 \pkg*{xcolor} 自定义颜色或使用色库。 \keyval-{title}{环境标题} - 习题的标题,可以匹配中英文模式,习题环境使用 \parg{} 参数时无效。 + 习题的标题,可以匹配中英文模式,习题环境使用 \parg{} 参数时无效。也可以使用 \option{exercisename} 选项设置习题环境标题的默认值。 \keyval-{number}{习题编号类型}\Default{1.} 标题编号输出选项 \option{number} 为短编号形式,应当包含 \code{A}、\code{a}、\code{I}、\code{i}、或 \code{1} 其中一个符号。 \keyval-{numsep}{编号与标题的间距}\Default{0.5em} @@ -1021,12 +1023,12 @@ \label{subsec:box} 使用盒子以及小节 \ref{subsec:exercise} 中的 \env{exercise} 环境需要在导言区\textbf{手动载入} \pkg*{tcolorbox} 宏包,它们 \meta{配置选项} 的键值列表同样由 \pkg*{tcolorbox} 提供支持,具体选项可见宏包文档的 Option Keys 一节,可以进行边距、字体及背景颜色等各种个性化设置,一些配置会覆盖预设。 \begin{commands} - \command{newtcbstyle}[\marg{盒子风格}\marg{键值列表}] + \command{deftcbstyle}[\marg{盒子风格}\marg{键值列表}] 新建或重置一个名称为 \meta{盒子风格} 的 \pkg*{tcolorbox} 宏包盒子风格,可以与 \cs{addtcbstyle} 命令联用。 \command{addtcbstyle}[\marg{盒子风格}\marg{键值列表}] 修改已存在的 \pkg*{tcolorbox} 宏包盒子风格。这个命令可以调整以下即将介绍的预置盒子风格,对于预置盒子来说参数 \meta{盒子风格} 即为它们对应的环境或命令名。 \begin{ctexexam} - \newtcbstyle{mytcb} % 新建一个盒子风格mytcb + \deftcbstyle{mytcb} % 新建一个盒子风格mytcb { colback = Snow,colframe = LimeGreen,coltext = Coral, fontupper = \bfseries,arc = 6pt, diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/CHANGELOG.md b/macros/latex/contrib/gzt/doc/latex/gzt/CHANGELOG.md new file mode 100644 index 0000000000..0f36ea2a83 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/CHANGELOG.md @@ -0,0 +1,59 @@ +# [Unreleased] + +# [1.0.1] - 2021-02-14 + +## Added +- Option to create moral reports (`gzt` class only). +- Local (to a given article) table of contents + +## Changed +- The class now relies on the new LaTeX core hooks. +- Documentation revised. +- Various improvements. + +## Fixed +- Superflous uppercases removed (cont.). +- `gztcode` environments partially gobble their content under certain + conditions. +- Various other small bugs. + +# [1.0.0] - 2020-03-17 + +## Added +- CHANGELOG file (following https://keepachangelog.com/en/1.0.0/). +- Semantic versionning (following https://semver.org/). + +## Changed +- Compilation date displayed only if the issue number is not specified + (`gztarticle` class only). +- Prevent column breaks within items of "Comité de rédaction" (at the price of + unbalanced columns). + +## Fixed +- Track changes in `expl3`. +- Superflous uppercases removed. +- Index directive in `latexmk` config file modernized. + +# [0.98] - 2018-04-09 + +## Changed +- Support for `biblatex` 3.8 changes. +- Track changes in `expl3`. +- Special editions implemented. + +## Fixed +- Several bug fixes. + +# [0.96] - 2017-04-07 + +## Changed +- Figures and tables: + - with recurrent label and number but without any caption, + - with caption but without any recurrent label nor numbered, + implemented. +- Frames without any label, number nor caption implemented. +- Track changes in `expl3`. + +# [0.9] - 2015-05-02 + +- Initial CTAN release of the `gzt` bundle. diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/README.md b/macros/latex/contrib/gzt/doc/latex/gzt/README.md new file mode 100644 index 0000000000..63cb2cd7e1 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/README.md @@ -0,0 +1,10 @@ +This bundle provides two classes and BibLaTeX styles for the French journal [“La +Gazette des Mathématiciens”](https://smf.emath.fr/les-publications/la-gazette): + +- `gzt` for the complete issues of the journal, aimed at the Gazette’s team, +- `gztarticle`, intended for authors who wish to publish an article in the + Gazette. This class’s goals are to + - faithfully reproduce the layout of the Gazette, thus enabling the authors to + be able to work their document in actual conditions, and + - provide a number of tools (commands and environments) to facilitate the + drafting of documents, in particular those containing mathematical formulas. diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/english/README-TRANSLATION.md b/macros/latex/contrib/gzt/doc/latex/gzt/english/README-TRANSLATION.md new file mode 100644 index 0000000000..b8709820a3 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/english/README-TRANSLATION.md @@ -0,0 +1,4 @@ +# Contributions welcome! + +Currently, the `gzt` documentation is not translated in English. In case you're +interested, please contact the maintainer: `denis.bitouze@univ-littoral.fr` diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/denis.png b/macros/latex/contrib/gzt/doc/latex/gzt/french/denis.png Binary files differnew file mode 100644 index 0000000000..545b4a409e --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/denis.png diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.bib b/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.bib new file mode 100644 index 0000000000..40b8198d46 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.bib @@ -0,0 +1,36 @@ +% Encoding: UTF-8 + + +@Online{Bitouze, + Title = {Conférence \LaTeX{} \no6}, + Author = {Bitouzé, Denis}, + Date = {2020-11-25}, + Url = {https://frama.link/en-ligne6}, + Language = {french}, + Organization = {Université du Littoral Côte d'Opale}, + Subtitle = {Bibliographie (biber/biblatex), citations d’extraits}, +} + +@Online{Bitouze7, + Title = {Conférence \LaTeX{} \no7}, + Author = {Bitouzé, Denis}, + Date = {2020-11-25}, + Url = {https://frama.link/en-ligne7}, + Language = {french}, + Organization = {Université du Littoral Côte d'Opale}, + Subtitle = {Glossaires et (liste d’)acronymes, index}, +} + +@Manual{Ensenbach, + Title = {Liste des péchés des utilisateurs de \LaTeXe}, + Author = {Ensenbach, Marc and Trettin, Mark and Alfonsi, Bernard}, + Date = {2011-09-20}, + Language = {french}, + Subtitle = {Commandes et extensions obsolètes, et autres erreurs}, + Url = {http://mirrors.ctan.org/info/l2tabu/french/l2tabufr.pdf}, + + Owner = {bitouze}, + Timestamp = {2015.03.18} +} + +@Comment{jabref-meta: databaseType:biblatex;} diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.pdf b/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.pdf Binary files differnew file mode 100644 index 0000000000..9f253543c4 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.pdf diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.tex b/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.tex new file mode 100644 index 0000000000..52839b4fec --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/gzt-fr.tex @@ -0,0 +1,118 @@ +\documentclass{gztarticle} +% +\usepackage[gzt]{denisbdoc} +\usepackage[firstpage]{draftwatermark} +% +\lstset{% + alsolanguage=[varioref]TeX,% +} +% +\indexsetup{level=\section*,toclevel=section,noclearpage,firstpagestyle=__gzt_mainmatter_ps} +\makeindex[columns=3] +\tcbset{index format=off} +% +\etocsettocstyle{\section*{\contentsname}}{}% +\etocsetstyle {section} +{} +{\leavevmode\leftskip 0cm\relax} +{\bfseries\normalsize\makebox[.6cm][l]{\etocnumber}% + \etocname\nobreak\hfill\nobreak% + \makebox[.5cm][r]{% + \etocpage% + }% + \par% +} +{\medskip} +\etocsetstyle {subsection} +{} +{\leavevmode\leftskip .6cm\relax } +{\mdseries\normalsize\makebox[1cm][l]{\etocnumber}% + \etocname\nobreak\leaders\etoctoclineleaders\hfill\nobreak + \makebox[.5cm][r]{% + \etocpage% + }% + \par% +} +{} +% +\ExplSyntaxOn +\renewpagestyle{__gzt_mainmatter_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_evenpage_headrule_tl} + ]% + [% + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{__gzt_rubric_head_text_color}\g__gzt_short_title_tl% + }% + ]% + []% + {}% + {% + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \bfseries\color{__gzt_rubric_head_text_color}\sectiontitle% + } + }% + { + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_oddpage_headrule_tl} + }% + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \uppercase{\c__gzt_footer_string_tl} + ]% + []% + {}% + {% + \uppercase{\c__gzt_footer_string_tl}% + }% + {\c__gzt_footer_size_font_tl\thepage}% +} +\ExplSyntaxOff +% +\SetWatermarkColor{gray!10}% +\SetWatermarkFontSize{30mm}% +\SetWatermarkText{\MakeUppercase{travail en cours}}% +% +\addbibresource{gzt-fr.bib} +% +\input{sections/fixed-footnotes} +% +\DTMsavedate{filedate}{\gztfiledate} +% +\begin{document} +\title[short=Documentation de la classe de la \emph{Gazette} destinée aux +auteurs]{Documentation de la classe \LaTeX{} de la \gzt*{} destinée aux + auteurs} +\subtitle[short=Version \gztfileversion{} +(\DTMusedate{filedate})]{\bigskip\Large Version \gztfileversion{} en date du + \DTMusedate{filedate}}% +% +\author[% +affiliation={% + Université du Littoral Côte d'Opale, Laboratoire de mathématiques pures et + appliquées% +},% +photo=./denis,% +email=denis.bitouze@univ-littoral.fr,% +webpage=https://gte.univ-littoral.fr/Members/denis-bitouze/pub/latex,% +]{Bitouzé, Denis} +% +\maketitle* +% +\localtableofcontents +% +\input{sections/gztarticle} +\input{sections/packages-charges} +\input{sections/notations} +% +\printindex +% +\printbibliography +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/latexmkrc b/macros/latex/contrib/gzt/doc/latex/gzt/french/latexmkrc new file mode 100644 index 0000000000..d324cb3be2 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/latexmkrc @@ -0,0 +1,20 @@ +$pdf_mode = 1; + +$bibtex_use = 1; +$bibtex = 'biber %O %B'; + +add_cus_dep('glo', 'gls', 0, 'makeglossaries'); +add_cus_dep('acn', 'acr', 0, 'makeglossaries'); +add_cus_dep('slo', 'sls', 0, 'makeglossaries'); +sub makeglossaries{ + system( "makeglossaries \"$_[0]\"" ); +} + +$makeindex = 'texindy -L french -C utf8'; + +push @generated_exts, 'acn', 'acr', 'alg', 'bcf', 'fls', 'gl*', 'sbl*', 'sl*', 'sym*' ; + +$clean_ext .= 'synctex.gz* run.xml tex.bak ind idx out bbl bcf fdb_latexmk run + tdo listing *~ lo* unq mw tcbtemp ins drv atfi db* ain' ; + +$quote_filenames = 0; diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/fixed-footnotes.tex b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/fixed-footnotes.tex new file mode 100644 index 0000000000..87986360db --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/fixed-footnotes.tex @@ -0,0 +1,14 @@ +\DeclareFixedFootnote{\conseilslatex}{Et donne de façon subliminale quelques + conseils \LaTeX{}. On consultera \autocite{Ensenbach} pour un panorama plus + complet des commandes et extensions obsolètes (et autres erreurs).} +\DeclareFixedFootnote{\suitecompilations}{Pour automatiser ces compilations, on + pourra recourir au \enquote{compilateur} \program{latexmk}, fourni par toute + distribution \TeX{} moderne, en s'aidant du fichier de configuration + \file{latexmkrc} joint à la présente classe.} + +%%% Local Variables: +%%% mode: latex +%%% eval: (latex-mode) +%%% ispell-local-dictionary: "fr_FR" +%%% TeX-master: "../gzt-fr.tex" +%%% End: diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/gztarticle.tex b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/gztarticle.tex new file mode 100644 index 0000000000..06bde597b7 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/gztarticle.tex @@ -0,0 +1,1521 @@ +\section{Introduction} +\label{sec-introduction} + +\begin{dbremark}{Documentation : travail en cours}{} + La présente documentation est un travail en cours. Nous remercions d'avance + les lecteurs qui ont des remarques à formuler ou qui trouveront des erreurs de + nous les signaler à l'adresse courriel figurant en fin de document. +\end{dbremark} + +La \smf fournit la classe \LaTeX{} \gztauthor{} destinée aux auteurs souhaitant +publier un article dans la +\href{http://smf4.emath.fr/Publications/Gazette/}{\gzt*{}}. Cette classe a pour +but : +\begin{enumerate} +\item de reproduire fidèlement la maquette de la \gzt{}, permettant ainsi aux + auteurs de pouvoir travailler la mise en page de leur document dans des + conditions (quasi-)réelles ; +\item de fournir un certain nombre d'outils (commandes et environnements) + destinés à faciliter la composition de documents, notamment ceux contenant des + formules de mathématiques. +\end{enumerate} + +\section{Avertissements préliminaires} +\label{sec-avert-prel} + +\begin{dbwarning}{Codage d'entrée \protect\lstinline+UTF-8+ obligatoire}{} + La \gztauthorcl{} de la \gzt{} repose de façon cruciale sur un codage + d'entrée en |UTF-8| : + \begin{itemize} + \item elle charge le \Package{inputenc}\footnote{% + Il convient donc de \emph{ne pas} charger ce package : on se reportera + à la \vref{sec-canevas-de-fichier} pour un canevas de fichier source + destiné à la \gzt{} et notamment pour un préambule typique.% + % + } avec l'option \docAuxKey{utf8} ; + \item elle suppose que les fichiers sources \file{.tex} sont effectivement + codés en |UTF-8| : on veillera donc à ce que l'éditeur utilisé soit réglé + sur ce codage d'entrée. + \end{itemize} +\end{dbwarning} + +\begin{dbwarning}{Format et compilation \hologo{pdfLaTeX}}{} + La composition des numéros de la \gzt*{} met en œuvre : + \begin{itemize} + \item le format \hologo{LaTeX}\footnote{Sous sa version \hologo{LaTeXe}, la + plus courante de nos jours.}. On évitera donc les commandes des autres + formats tels que \hologo{plainTeX} ; + \item le compilateur \hologo{pdfLaTeX}. En particulier, le compilateur + \hologo{LaTeX} n'étant pas utilisé : + \begin{enumerate} + \item les formats d'images acceptés sont \format{jpg}, \format{png} et + \format{pdf}\footnote{Le format recommandé est \format{pdf} car il est + vectoriel si bien que la qualité des images n'est pas dégradée en cas de + redimensionnement.}. Le \Format{eps}, quoique indirectement + supporté, est déconseillé ; + \item le code \program{PostScript}, notamment via \program{PSTricks}, n'est + pas directement pris en charge. Bien qu'il soit accepté, il est à éviter + dans la mesure du possible. + \end{enumerate} + \end{itemize} +\end{dbwarning} + +\begin{dbremark}{Composition par défaut en bi-colonne}{} + Sauf cas particuliers, tous les articles de la \gzt{} sont composés en mode + bi-colonne. +\end{dbremark} + +\section{Article standard} +\label{sec-article-standard} + +Nous commençons par décrire les éléments caractéristiques d'un article standard. + +\subsection{Préparation du \enquote{titre} de l'article} +\label{sec-prep-de-lart} + +Cette section liste les commandes, options et environnement permettant de +\emph{préparer} le \enquote{titre} de l'article ainsi que son éventuelle partie +finale. + +\subsubsection{Titre, sous-titre} +\label{sec-titre} + +\begin{docCommand}[doc description=\mandatory]{title}{\oarg{option}\marg{titre}} + Cette commande définit le \meta{titre} de l'article. Celui-ci apparaît alors + en début d'article et aussi comme métadonnée \enquote{Titre} du fichier + \textsc{pdf} correspondant. +\end{docCommand} + +\begin{docCommand}{subtitle}{\oarg{option}\marg{sous-titre}} + Cette commande définit l'éventuel \meta{sous-titre} de l'article. Celui-ci + est automatiquement ajouté au titre. +\end{docCommand} + +Les commandes \refCom{title} et \refCom{subtitle} admettent un argument +optionnel permettant de spécifier un (sous-)titre court au moyen de la clé +\refKey{short}. + +\begin{docKey}{short}{=\meta{(sous-)titre court}}{pas de valeur par défaut, + initialement vide} + Cette clé définit un (sous-)titre \enquote{court} de l'article qui figure + alors à la place du (sous-)titre \enquote{normal} dans le sommaire et en titre + courant\footnote{En entête.}. +\end{docKey} + +\begin{bodycode}[listing options={deletekeywords={[1]{exemple,title,label}}}] +\title[short=Les travaux de Martin \surname{Hairer}]{Martin \surname{Hairer}, + l'équation de KPZ et les structures de régularité} +\end{bodycode} + +\begin{dbremark}{Affichage des titre et sous-titre}{} + Pour que les titre et sous-titre soient affichés, il est nécessaire de + recourir à la commande habituelle \refCom{maketitle}. +\end{dbremark} + +\subsubsection{Auteur(s)} +\label{sec-auteurs} + +Un auteur d'article est spécifié au moyen de la commande \refCom{author} +suivante. En cas d'auteurs multiples, il suffit de recourir à plusieurs +occurrences de cette commande. + +\begin{docCommand}{author}{\oarg{options}\brackets{\meta{Nom}, \meta{Prénom}}} + Cette commande, facultative, définit un auteur d'article. +\end{docCommand} +% +\begin{dbwarning}{Format des prénom et nom de l'auteur}{} + On veillera à ce que : + \begin{enumerate} + \item la saisie des prénom et nom de l'auteur soit conforme à la syntaxe + (identique à celle de \hologo{BibTeX} et \package{biblatex}) : + % +\begin{bodycode}[listing options={showspaces}] +"\meta{Nom}", "\meta{Prénom}" +\end{bodycode} + % + \item les éventuels accents figurent dans les \meta{Prénom} et + \meta{Nom} ; + \item le \meta{Nom} \emph{ne} soit \emph{pas} saisi en capitales + (sauf pour la ou les majuscules) car il sera automatiquement + composé en petites capitales. + \end{enumerate} +\end{dbwarning} + +\begin{dbwarning}{Affichage des prénoms et noms du ou des auteurs}{} + Pour que les prénoms et noms du ou des auteurs soient affichés, il est + nécessaire : + \begin{enumerate} + \item de recourir à la commande habituelle \refCom{maketitle} ; + \item de procéder à une suite de compilations\suitecompilations{} : + \begin{enumerate} + \item \hologo{pdfLaTeX} ; + \item \hologo{biber} ; + \item \hologo{pdfLaTeX}. + \end{enumerate} + \end{enumerate} +\end{dbwarning} + +\subsubsection{Auteur(s) : détails} +\label{sec-auteurs-details} + +La commande \refCom{author} admet un argument optionnel permettant, pour chaque +auteur, de spécifier un certain nombre de détails complémentaires : son affiliation, sa +photo, son email, sa page Web, sa biographie express au moyen des clés +respectives % (à séparer par des virgules) +\refKey{affiliation}, \refKey{photo}, \refKey{email}, \refKey{webpage} et +\refKey{minibio} : +\begin{bodycode} +\author[% + affiliation="\marg{affiliation(s)}",% + photo="\meta{photo}",% + email="\meta{email}",% + webpage="\meta{page Web}",% + minibio="\marg{biographie express}"% +]{"\meta{Nom}", "\meta{Prénom}"} +\end{bodycode} + +\begin{docKey}{affiliation}{={\marg{affiliation(s)}}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier une ou plusieurs affiliations. En cas + d'affiliations multiples, celles-ci peuvent être séparées par la commande + \docAuxCommand*{newline}. +\end{docKey} + +\begin{docKey}{photo}{={\meta{photo}}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier la photographie de l'auteur au moyen d'un + fichier image\footnote{Si ce fichier ne figure pas dans le dossier courant, il + faut faire figurer le chemin (relatif) y menant.}. +\end{docKey} + +\begin{docKey}{email}{={\meta{email}}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier l'adresse courriel de l'auteur. +\end{docKey} + +\begin{docKey}{webpage}{={\meta{page Web}}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier la page Web de l'auteur. +\end{docKey} + +\begin{docKey}{minibio}{={\marg{biographie express}}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier la biographie express de l'auteur. +\end{docKey} + +\begin{dbwarning}{Paires d'accolades + % des clés \refKey{affiliation} et \refKey{minibio} + (relativement) obligatoires}{} + Au cas (probable) où les valeurs \meta{affiliation(s)} et \meta{biographie + express} des clés \refKey{affiliation} et \refKey{minibio} contiennent des + virgules, les paires d'accolades les entourant sont obligatoires. +\end{dbwarning} + +\begin{dbwarning}{Courriels et pages Web à saisir tels quels}{} + Les valeurs \meta{email} et \meta{webpage} des clés \refKey{email} et + \refKey{webpage} doivent être saisies telles quelles, sans recours aucun aux + commandes \refCom{url}, \docAuxCommand{href} ou assimilées des packages + \package{url} ou \package{hyperref}. +\end{dbwarning} + +\begin{dbremark}{Affichage des détails complémentaires sur les auteurs}{} + Pour que les détails complémentaires précédents soient affichés, il est + nécessaire de recourir aux commandes \refCom{printauthorsdetails} ou + \refCom{printbibliography}, destinées à être utilisées en fin d'article. + + Ces commandes affichent également d'éventuels remerciements à spécifier au + moyen de la commande \refCom{acknowledgements} suivante. +\end{dbremark} + +\begin{docCommand}{acknowledgements}{\marg{remerciements}} + Cette commande, facultative, permet de spécifier des \meta{remerciements} pour + un article. +\begin{bodycode} +\acknowledgements{% + L'auteur remercie Frédéric Patras, pour les nombreuses discussions qu'il + a eues avec lui sur le sujet. Il remercie également le relecteur anonyme, + qui a lu le texte avec un très grand soin, et dont les commentaires et + suggestions ont été très utiles.% +} +\end{bodycode} +\end{docCommand} + +\subsubsection{Résumé} +\label{sec-resume} + +\begin{docEnvironment}[doclang/environment content=résumé]{abstract}{} + Cet environnement, facultatif, est destiné à recevoir le \meta{résumé} de + l'article. +\end{docEnvironment} + +\subsection{Production du titre de l'article} +\label{sec-creation-du-titre} + +Le titre proprement dit de l'article, regroupant tous les éléments saisis à la +\vref{sec-prep-de-lart}, est produit par la commande standard +\refCom{maketitle}. + +\begin{docCommand}[doc description=\mandatory]{maketitle}{} + Cette commande \emph{produit} l'affichage du \enquote{titre} de l'article, + c'est-à-dire : + \begin{itemize} + \item son titre et son éventuel sous-titre (commandes \refCom{title} et + \refCom{subtitle}) ; + \item son ou ses éventuels auteurs, sous la forme de leurs noms et + prénoms\footnote{Les prénoms sont alors abrégés au moyen de leurs + initiales.} (commande(s) \refCom{author}) ; + \item son éventuel résumé (environnement \refEnv{abstract}). + \end{itemize} +\end{docCommand} + +L'exemple suivant\footnote{Les commandes \refCom{surname} et \refCom{enquote} + qui y figurent sont documentées plus loin.} illustre la plupart des commandes +et options vues jusqu'ici. + +\begin{bodycode}[listing options={deletekeywords={[2]{article}}}] +\title[short=Les travaux de Manjul \surname{Bhargava}]{Manjul \surname{Bhargava}, + anneaux de petit rang et courbes elliptiques} +% +\author[% + affiliation={% + Univ. Bordeaux, IMB, UMR 5251, F-33400 Talence, France\newline% + CNRS, IMB, UMR 5251, F-33400 Talence, France\newline% + INRIA, F-33400 Talence, France% + },% + photo=Belabas,% + email=Karim.Belabas@math.u-bordeaux.fr,% + minibio={% + Karim Belabas est professeur à l'université de Bordeaux. Ses centres + d'intérêts sont la théorie des nombres sous toutes ses formes et le calcul + formel. Il développe le système libre PARI/GP.% + }% +]{Belabas, Karim} +% +\author[% + affiliation={% + Laboratoire de Mathématiques de Besançon, Facultés des sciences et techniques, + CNRS, UMR 6623, 16 route de Gray, 25030 Besançon, France% + },% + photo=Delaunay,% + email=Christophe.Delaunay@univ-fcomte.fr,% + minibio={% + Christophe Delaunay est professeur à l'université de Franche-Comté et membre + du laboratoire de mathématiques de Besançon. Il est spécialiste de théorie des + nombres.% + }% +]{Delaunay, Christophe} +% +\begin{abstract} + Manjul Bhargava a reçu la médaille Fields au congrès international de Séoul + \enquote{pour avoir développé de nouvelles méthodes en géométrie des nombres, + qu'il a appliquées au comptage des anneaux de petit rang et pour borner le + rang moyen de courbes elliptiques}. Cet article est un survol d'une partie + de ses travaux. +\end{abstract} +% +\maketitle +\end{bodycode} + +\subsection{Affichage des détails complémentaires sur les auteurs} + +\begin{docCommand}{printauthorsdetails}{} + Cette commande, facultative, \emph{produit} l'affichage : + \begin{itemize} + \item des détails complémentaires sur les auteurs (options + \refKey{affiliation}, \refKey{photo}, \refKey{email}, \refKey{webpage} et + \refKey{minibio}) ; + \item des éventuels remerciements (commande \refCom{acknowledgements}) ; + \end{itemize} + tels que définis à la \vref{sec-auteurs-details}. +\end{docCommand} + +\begin{dbwarning}{Commande \protect\docAuxCommand*{printauthorsdetails} inutile + en cas de bibliographie}{} + En cas de bibliographie (cf. commande \refCom{printbibliography}), l'usage de + la commande \refCom{printauthorsdetails} est inutile car l'affichage des + détails complémentaires sur les auteurs est alors automatique. +\end{dbwarning} + +\section{Article sans auteur mais avec signature \enquote{académique}} +\label{sec-article-sans-auteur} + +Les articles standard précédents sont écrits par une ou plusieurs personnes +physiques clairement identifiées en tant qu'auteurs. + +D'autres types d'articles n'ont pas véritablement d'auteurs mais sont plutôt +\enquote{signés} par, par exemple, un comité. Pour ce type d'article, on ne +recourra pas à la commande \refCom{author}, mais plutôt à la commande +\refCom{academicsignature} suivante. + +\begin{docCommand}{academicsignature}{\marg{signature}} + Cette commande permet de spécifier une \meta{signature} académique. +\begin{bodycode} +\academicsignature{% + Au nom du comité éditorial, Serge Nicaise (éditeur en chef) et Nicolas + Wicker (directeur technique).% +} +\end{bodycode} +\end{docCommand} + +\begin{dbwarning}{Commande \protect\docAuxCommand*{academicsignature} à effet \enquote{immédiat}}{} + La commande \refCom{author} \enquote{prépare} un auteur qui n'est affiché que + là où est employée la commande \refCom{maketitle}. Au contraire, la commande + \refCom{academicsignature} affiche \enquote{immédiatement} la \meta{signature} + passée en argument. +\end{dbwarning} + +\section{Articles de type \enquote{entretien}} +\label{sec-entretiens} + +Les entretiens sont caractérisés par l'alternance de questions et de +réponses. Les questions, qui doivent être composées de façon spécifique, sont +à passer en argument de la commande \refCom{question} suivante. + +\begin{docCommand}{question}{\marg{question}} + Cette commande permet de spécifier une \meta{question}. +\end{docCommand} + +\begin{dbremark}{Composition des réponses aux questions}{} + Les réponses aux questions ne nécessitant pas de mise en page particulière, + elles seront insérées telles quelles. +\end{dbremark} + +\begin{bodycode} +\question{Ton sujet principal est celui des systèmes dynamiques, mais quels + sont les autres thèmes qui t'intéressent ?} + +L'étude des systèmes dynamiques est un sujet qui peut être abordé de façon les +plus diverses. Certains les considèrent d'un point de vue combinatoire, +d'autres sont plus axés sur les probabilités ou encore sur l'analyse. [...] +Mais si mes capacités d'analystes n'avaient pu se réaliser dans les systèmes +dynamiques j'aurais fait autre chose. + +\question{Parmi ses lauréats de cette édition, on compte deux dynamiciens : + Maryam Mirzakhani et toi. Quelles sont les différences entre vos + approches ?} + +Ces travaux sont principalement concentrés sur un objet lié aux échanges +d'intervalles : le flot de Teichmüller. [...] +\end{bodycode} + +\begin{dbwarning}{Insertion manuelle d'espacements inutile}{} + On évitera de modifier l'agencement des questions et réponses en insérant + manuellement des espacements horizontaux ou verticaux + (\docAuxCommand*{hspace}, \docAuxCommand*{hskip}, \docAuxCommand*{vspace}, + \docAuxCommand*{vskip}, etc.). +\end{dbwarning} + +Les entretiens sont des articles en général sans auteur mais les personnes ayant +recueilli les propos peuvent être signalées dans le résumé (cf. environnement +\refEnv{abstract}), par exemple ainsi : + +\begin{bodycode} +\title{Entretien avec Artur \surname{Avila}} +\begin{abstract} + Propos recueillis à Séoul, pendant l'ICM, par Boris Adamczewski et Gaël Octavia. +\end{abstract} +\maketitle +\end{bodycode} + +\section{Outils communs à tous types d'articles, fournis par \texorpdfstring{\gztauthor}{la classe}} +\label{sec-outils-communs-tous} + +Cette section donne une liste exhaustive des outils (commandes et +environnements) fournis par la \gztauthorcl. + +\subsection{Table des matières locale} +\label{sec:table-des-matieres} + +\begin{docCommand}{gztlocaltableofcontents}{} + Cette commande, facultative, permet de faire figurer une table des matières + locale à un article. +\end{docCommand} + +Une telle table des matières n'affiche que les sections de l'article. + +\subsection{Images, tableaux et cadres} + +La \gztauthorcl{} fournit des environnements : +\begin{itemize} +\item spécifiques aux images et tableaux, respectivement : + \begin{itemize} + \item \refEnv{gztfigure} et \refEnv{gztfigure*} ; + \item \refEnv{gzttable} et \refEnv{gzttable*} ; + \end{itemize} +\item plus neutres permettant de placer du contenu dans des cadres : + \refEnv{gztframe} et \refEnv{gztframe*}. +\end{itemize} + +% Les images et tableaux destinés à illustrer ou à synthétiser un article doivent +% être insérés dans les environnements : +% \begin{itemize} +% \item \refEnv{gztfigure}, \refEnv{gztfigure*} ; +% \item \refEnv{gzttable}, \refEnv{gzttable*} ; +% \end{itemize} +% analogues, décrits dans cette section. +% +% La \gztauthorcl{} fournit en outre les environnements plus neutres +% \refEnv{gztframe} et \refEnv{gztframe*} qui permettent de placer du contenu dans +% des cadres. +% +% Tous ces environnements acceptent des options décrites \vref{sec-options-gzt}. + +\begin{docEnvironments}[ + doclang/environment content=image, + doc parameter = \oarg{options} + ]{ + { + doc name=gztfigure, + doclang/environment content=image, + }, + { + doc name=gztfigure*, + doclang/environment content=image, + }, + { + doc name=gzttable, + doclang/environment content=tableau, + }, + { + doc name=gzttable*, + doclang/environment content=tableau, + }, + { + doc name=gztframe, + doclang/environment content=contenu à encadrer, + }, + { + doc name=gztframe*, + doclang/environment content=contenu à encadrer, + } + } + Ces environnements insèrent l'\meta{image}, le \meta{tableau} ou le + \meta{contenu à encadrer}\footnote{Mais sans être estampillé \enquote{Figure} + ou \enquote{Tableau}.} dans un cadre : + \begin{description} + \item[de largeur :]\leavevmode + \begin{description} + \item[versions non étoilées :] celle de la ligne courante, donc notamment + celle de la ligne d'une colonne en mode bi-colonne ; + \item[versions étoilées :] celle de l'empagement, donc + à cheval sur les deux colonnes en mode bi-colonne ; + \end{description} + \item[placé :]\leavevmode + \begin{description} + \item[versions non étoilées :] là où l'environnement a été + utilisé\footnote{Il s'agit d'un environnement \enquote{non flottant}.} ; + \item[versions étoilées :] si possible en haut de la page où l'environnement + a été utilisé\footnote{Il s'agit d'un environnement \phantom{non} + \enquote{flottant}.}. + \end{description} + \end{description} +\end{docEnvironments} + +% \begin{docEnvironment}[doclang/environment content=tableau créé avec \docAuxEnvironment{tabular}]{gzttable}{\oarg{option(s)}} +% Cet environnement insère le tableau : +% \begin{itemize} +% \item \emph{à l'emplacement où il est utilisé} ; +% \item dans un cadre de largeur la ligne courante, donc notamment de la largeur +% de la ligne d'une colonne en mode bi-colonne. +% \end{itemize} +% \end{docEnvironment} +% +% \begin{docEnvironment}[doclang/environment content=tableau créé avec \docAuxEnvironment{tabular}]{gzttable*}{\oarg{option(s)}} +% Cet environnement insère le tableau : +% \begin{itemize} +% \item en haut de la page où il a été employé, donc probablement \emph{pas} +% à l'emplacement où il est utilisé (il s'agit d'un tableau +% \enquote{flottant}) ; +% \item dans un cadre de largeur celle de l'empagement, donc à cheval sur les +% deux colonnes en mode bi-colonne. +% \end{itemize} +% \end{docEnvironment} +% +% \subsubsection{Cadres} +% \label{sec-cadres} +% +% Le contenu +% % \footnote{Notamment des images et, le cas échéant, des tableaux.} +% devant être encadré mais sans être estampillé \enquote{Figure} ou +% \enquote{Tableau} le sera au moyen de l'un des deux environnements +% \refEnv{gztframe} et \refEnv{gztframe*} suivants. +% +% \begin{docEnvironment}[doclang/environment content=contenu à encadrer]{gztframe}{\oarg{option(s)}} +% Cet environnement insère le \meta{contenu à encadrer} : +% \begin{itemize} +% \item \emph{à l'emplacement où il est utilisé} ; +% \item dans un cadre +% \begin{itemize} +% \item de largeur la ligne courante, donc notamment de la largeur de la ligne +% d'une colonne en mode bi-colonne ; +% \item pourvu d'une zone de titre seulement si un titre est spécifié au moyen de +% la clé \refKey{title}. +% \end{itemize} +% \end{itemize} +% \end{docEnvironment} +% +% \begin{docEnvironment}[doclang/environment content=contenu à encadrer]{gztframe*}{\oarg{option(s)}} +% Cet environnement insère le \meta{contenu à encadrer} : +% \begin{itemize} +% \item en haut de la page où il a été employé, donc probablement \emph{pas} +% à l'emplacement où il est utilisé (il s'agit d'un cadre +% \enquote{flottant}) ; +% \item dans un cadre : +% \begin{itemize} +% \item de largeur celle de l'empagement, donc à cheval sur les deux colonnes +% en mode bi-colonne ; +% \item pourvu d'une zone de titre seulement si un titre est spécifié au moyen de +% la clé \refKey{title}. +% \end{itemize} +% \end{itemize} +% \end{docEnvironment} +% +% \subsubsection{Options} +% \label{sec-options-gzt} + +Ces environnements admettent en \meta{options} : +\begin{itemize} +\item la plupart des (très nombreuses) options de l'environnement + \docAuxEnvironment{tcolorbox} du \Package*{tcolorbox}. On retiendra notamment + les options suivantes : +\begin{docKey}{title}{=\meta{titre}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier l'éventuel \meta{titre} (au sens de + \enquote{légende} de flottant). +\end{docKey} +\begin{docKey}{label}{=\meta{label}}{pas de valeur par défaut, initialement + vide} + Cette clé permet de spécifier l'éventuel \meta{label} de l'image ou du + tableau\footnote{Option sans objet pour les environnements + \protect\refEnv{gztframe} et \protect\refEnv{gztframe*}.} de sorte à y faire + référence, notamment au moyen de la commande \refCom{vref}. +\end{docKey} +\item la clé \refKey{copyright} suivante : + \begin{docKey}{copyright}{=\meta{titulaire}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de spécifier un éventuel \meta{titulaire} de + \emph{copyright}. +\end{docKey} +\end{itemize} + +\begin{dbremark}{Production des images et tableaux}{} + \begin{itemize} + \item Une \meta{image} est incluse au moyen : + \begin{itemize} + \item soit de la commande standard + \docAuxCommand{includegraphics}\footnote{Il est possible de passer à cette + commande toutes ses options définies par le \Package{graphicx}.} ; + \item soit de code \LaTeX{} de création de dessins\footnote{Cf. par exemple + les packages \package{TikZ} et dérivés (notamment \package{pgfplots}).}. + \end{itemize} + \item Un \meta{tableau} est créé au moyen de l'environnement standard + \docAuxEnvironment{tabular} ou + assimilé\footnote{P. ex. \docAuxEnvironment{tabularx} du package + éponyme.}. Il est recommandé de faire usage du \Package*{booktabs} pour + produire des tableaux plus lisibles. + \end{itemize} +\end{dbremark} + +Les exemples suivants illustrent les environnements et options qui viennent +d'être vus. +\begin{bodycode}[listing options={deletekeywords={[1]{exemple,title,label}},morekeywords={[2]{title,label}}}] +L'exemple avec $a=-1$ et $b=0$ donne la courbe de la \vref{elliptique}. +% +\begin{gztfigure}[title=Courbe elliptique correspondant à l'équation + $y^2=x^3-x$,label=elliptique] + \includegraphics[width=\linewidth]{courbe-elliptique} +\end{gztfigure} +\end{bodycode} + +\begin{bodycode}[listing options={morekeywords={[2]title,label},deletekeywords={[3]section}}] +En analysant les chiffres des \vref{recru-mc-25,recru-mc-26} correspondant au +recrutement des maîtres de conférences, on voit que la proportion des femmes +recrutées est [...] +% +\begin{gzttable*}[label=recru-mc-25,title=Recrutement des maîtres de + conférences section 25] + \begin{tabular}{|l|cccccc|} + \hline + & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 \\ \hline + [...] + \end{tabular} +\end{gzttable*} +% +\begin{gzttable*}[label=recru-mc-26,title=Recrutement des maîtres de + conférences section 26] + \begin{tabular}{|l|cccccc|} + \hline + & 2008 & 2009 & 2010 & 2011 & 2012 & 2013 \\ \hline + [...] + \end{tabular} +\end{gzttable*} +\end{bodycode} + +\begin{dbremark}{Zone de titre des figures, tableaux et cadres employés sans + option \refKey{title}}{} + Si l'option \refKey{title} n'est pas employée, la zone de titre : + \begin{itemize} + \item contient néanmoins le titre récurrent \enquote{Figure} ou + \enquote{Tableau} avec les environnements respectivement : + \begin{itemize} + \item \refEnv{gztfigure} et \refEnv{gztfigure*} ; + \item \refEnv{gzttable} et \refEnv{gzttable*} ; + \end{itemize} + \item est absente avec les environments \refEnv{gztframe} et \refEnv{gztframe*} + \end{itemize} +\end{dbremark} + +\subsection{Bibliographie} +\label{sec-bibliographie} + +Pour composer les bibliographies, la \gzt{} recourt aux outils modernes que sont +le \Package*{biblatex} et le moteur \hologo{biber}. Leur usage est détaillé dans +\autocite{Bitouze} et peut être brièvement résumé comme suit. +\begin{enumerate} +\item Construire, dans un \meta{fichier bibliographique}\footnote{De tels + fichiers sont d'extension \file{.bib}.}, une base bibliographique. + + Nous conseillons pour ce faire de recourir à un logiciel dédié, par exemple + \href{http://jabref.sourceforge.net/}{\program{JabRef}} + à configurer\footnote{La version décrite ici est la 3.2.} en se rendant + dans le menu : + \begin{itemize} + \item \enquote{\menuentry{File}} et en sélectionnant \enquote{\menuentry{BibLaTeX mode}} ; + \item \enquote{\menuentry{Options>Preferences}} puis dans l'onglet \enquote{\menuentry{General}}, + en choisissant \enquote{\menuentry{UTF8}} dans la liste déroulante \enquote{\menuentry{Default + encoding}}\footnote{On pourra en profiter pour changer la langue de + l'interface dans la liste déroulante \enquote{\menuentry{Language}}.}. + \end{itemize} + + On n'oubliera pas de donner à chaque entrée bibliographique une \meta{clé} + permettant de l'identifier de façon unique dans la base + bibliographique\footnote{Sous \program{JabRef}, on pourra se faire aider pour + cela par l'icône en forme de \enquote{baguette magique}.}. +\item Dans le fichier source \file{.tex} : + \begin{enumerate} + \item \emph{En préambule}, utiliser la commande \docAuxCommand{addbibresource} + pour indiquer le \meta{fichier bibliographique} à considérer : +\begin{preamblecode}[listing options={moretexcs={addbibresource}}] +\addbibresource{"\meta{fichier bibliographique}".bib} +\end{preamblecode} + \item Dans le corps du document, utiliser la commande + \docAuxCommand{autocite}\footnote{De préférence à la commande + \docAuxCommand{cite}.} du \Package*{biblatex} pour citer les références + bibliographiques (pourvue d'une \meta{clé}) : +\begin{bodycode}[listing options={moretexcs={autocite}}] +\autocite{"\meta{clé}"} +\end{bodycode} + \item À la fin du document, faire figurer la liste des références + bibliographiques au moyen de la commande \refCom{printbibliography} + suivante. + \end{enumerate} +\item Procéder à une suite de compilations \hologo{pdfLaTeX}, \hologo{biber} et + \hologo{pdfLaTeX}\suitecompilations. +\end{enumerate} + +\begin{docCommand}{printbibliography}{} + Cette commande produit la liste des références bibliographiques saisies selon + la syntaxe du \Package*{biblatex}. + Cette commande est fournie sous deux formes, non étoilée et étoilée : + \begin{description} + \item[sous sa forme non étoilée :] elle affiche, en sus des références bibliographiques, + les \hyperref[sec-auteurs-details]{détails complémentaires sur les auteurs} + (s'ils ont été renseignés) ; + \item[sous sa forme étoilée :] elle n'affiche que les références bibliographiques. + \end{description} +\end{docCommand} + +\subsection{Commandes diverses} +\label{sec-commandes-diverses} + +La \gztauthorcl{} fournit des commandes généralistes ou propres aux +mathématiques destinées à faciliter la saisie d'un article à paraître dans la +\gzt{}. + +\subsubsection{Commandes généralistes} +\label{sec-comm-gener} + +\begin{docCommand}{smf}{} + Cette commande produit l'acronyme \textsc{smf} de la Société Mathématique de + France. +\end{docCommand} + +\begin{docCommand}{gzt}{} + Cette commande : + \begin{description} + \item[sous sa forme non étoilée :] produit l'abréviation \enquote{\gzt}. + \item[sous sa forme étoilée :] produit la forme complète \enquote{\gzt*}. + \end{description} +\end{docCommand} + +\begin{docCommand}{cad}{} + Cette commande : + \begin{description} + \item[sous sa forme non étoilée :] produit l'abréviation \enquote{c.-à-d.}. + \item[sous sa forme étoilée :] produit la forme complète + \enquote{c'est-à-dire}. + \end{description} +\end{docCommand} + +\begin{docCommand}{Cad}{} + Cette commande : + \begin{description} + \item[sous sa forme non étoilée :] produit l'abréviation \enquote{C.-à-d.}. + \item[sous sa forme étoilée :] produit la forme complète + \enquote{C'est-à-dire}. + \end{description} +\end{docCommand} + +\begin{docCommand}{surname}{\marg{nom de famille}} + Cette commande compose le \meta{nom de famille} en petites capitales. + \begin{dbwarning}{Petites capitales : à employer avec parcimonie}{} + \begin{itemize} + \item De manière générale, quand elles sont appliquées aux noms de + personnes, les petites capitales doivent ne s'appliquer qu'au nom de + famille, et notamment \emph{pas} aux prénoms. + \item Pour un article de la \gzt{}, on évitera d'appliquer systématiquement + les petites capitales (et donc la commande \refCom{surname}) à tous les + noms de famille : on les réservera aux noms d'auteurs, notamment à ceux + spécialement mis à l'honneur, par exemple s'ils figurent dans le titre + d'un article. + \end{itemize} + \end{dbwarning} +\end{docCommand} + +\begin{docCommand}{century}{\marg{numéro}} + Cette commande affiche le \meta{numéro}\footnote{Ce numéro doit être un nombre + entier relatif non nul.} ordinal d'un siècle en chiffre romain composé en + petites capitales, suivi du suffixe constitué, selon que la langue en cours + est le français ou l'anglais : + \begin{itemize} + \item du mot \enquote{siècle} puis, si \meta{numéro} $<0$, de l'expression + \enquote{avant J.-C.}\footnote{Sauf si le caractère qui suit est un point, + auquel cas l'expression est \enquote{avant J.-C}.} ; + \item du mot \enquote{century} puis, si \meta{numéro} $<0$, de l'expression + \enquote{BC}. + \end{itemize} + Ainsi : +\begin{bodycode}[listing and text] +Au \century{8}, [...]. Auparavant, au \century{1}, [...]. Il en fût de même au +\century{-3} et au \century{-2}. +\end{bodycode} + Cette commande dispose également d'une version étoilée ne faisant figurer + le suffixe que si \meta{numéro} $<0$, à utiliser par exemple dans un cas tel + que le suivant : +\begin{bodycode}[listing and text] +Toute la poésie du \century*{19} mérite d'être lue. +\end{bodycode} +\end{docCommand} + +\begin{docCommand}{aside}{\marg{texte}} + Cette commande permet de composer du \meta{texte} entre tirets longs, pour une + \enquote{incise} (un peu à la manière de parenthèses). + \begin{description} + \item[Sous sa forme non étoilée,] elle insère le \meta{texte} entre deux + tirets longs. + \item[Sous sa forme étoilée,] elle fait (seulement) précéder le \meta{texte} + d'un tiret, ce qui est à utiliser en fin de phrase. + \end{description} + Ainsi : +\begin{bodycode}[listing and text] +Des expériences \aside{dans le monde \enquote{réel}} ont même été suscitées +par des expériences numériques. +\end{bodycode} + et : +\begin{bodycode}[listing and text] +On soupçonne que non \aside*{par exemple on s'attend à ce que $1/\pi$ ne +soit pas une période}. +\end{bodycode} +\end{docCommand} + +% ^^A smf,cad,Cad,gzt,century,aside + +\subsubsection{Commandes propres aux mathématiques} +\label{sec-comm-propr-aux} + +La \gztauthorcl{} : +\begin{itemize} +\item charge les packages : + \begin{itemize} + \item \package*{kpfonts} qui fournit tous les symboles standard, y compris + ceux du \Package{amssymb}, mais en propose également de nombreux autres ; + \item \package*{mathtools} qui lui-même charge \package*{amsmath} (mais en + l'étendant et en corrigeant certains de ses défauts), si bien que toutes les + commandes de ces deux packages sont disponibles ; + \item \package*{rsfso} qui fournit de jolies lettres calligraphiques (via + la commande \docAuxCommand{mathscr}) ; + \end{itemize} +\item redéfinit certaines commandes et en fournit quelques nouvelles, listées + ci-dessous ; +\item fournit (en s'appuyant sur les packages \package*{amsthm} et + \package*{thmtools}) des environnements de type \enquote{théorème} classiques, + listés ci-dessous. +\end{itemize} + +\paragraph{Ensembles courants} + +\begin{docCommand}{N}{} + Cette commande affiche l'ensemble des nombres entiers positifs : + \enquote{$\mathbb{N}$}. +\end{docCommand} + +\begin{docCommand}{Z}{} + Cette commande affiche l'ensemble des nombres entiers relatifs : + \enquote{$\mathbb{Z}$}. +\end{docCommand} + +\begin{docCommand}{D}{} + Cette commande affiche l'ensemble des nombres décimaux : + \enquote{$\mathbb{D}$}. +\end{docCommand} + +\begin{docCommand}{Q}{} + Cette commande affiche l'ensemble des nombres rationnels : + \enquote{$\mathbb{Q}$}. +\end{docCommand} + +\begin{docCommand}{R}{} + Cette commande affiche l'ensemble des nombres réels : \enquote{$\mathbb{R}$}. +\end{docCommand} + +\begin{docCommand}{C}{} + Cette commande affiche l'ensemble des nombres complexes : + \enquote{$\mathbb{C}$}. +\end{docCommand} + +\begin{docCommand}{K}{} + Cette commande peut être utilisée pour dénoter un corps quelconque. Elle + affiche \enquote{$\mathbb{K}$}. +\end{docCommand} + +\paragraph{Fonctions trigonométriques circulaires et hyperboliques, directes et + réciproques} + +\begin{docCommand}{cotan}{} + Cette commande affiche la cotangente : \enquote{$\cotan$}. +\end{docCommand} + +\begin{docCommand}{arccos}{} + Cette commande affiche (la détermination principale de) l'arc cosinus : + \enquote{$\arccos$} ou + \enquote{\selectlanguage{english}$\arccos$\selectlanguage{french}} selon que + la langue en cours est le français ou l'anglais. +\end{docCommand} + +\begin{docCommand}{arcsin}{} + Cette commande affiche (la détermination principale de) l'arc sinus : + \enquote{$\arcsin$} ou + \enquote{\selectlanguage{english}$\arcsin$\selectlanguage{french}} selon que + la langue en cours est le français ou l'anglais. +\end{docCommand} + +\begin{docCommand}{arctan}{} + Cette commande affiche (la détermination principale de) l'arc tangente : + \enquote{$\arctan$} ou + \enquote{\selectlanguage{english}$\arctan$\selectlanguage{french}} selon que + la langue en cours est le français ou l'anglais. +\end{docCommand} + +\begin{docCommand}{ch}{} + Cette commande affiche le cosinus hyperbolique : \enquote{$\ch$}. +\end{docCommand} + +\begin{docCommand}{sh}{} + Cette commande affiche le sinus hyperbolique : \enquote{$\sh$}. +\end{docCommand} + +\begin{docCommand}{tanh}{} + Cette commande affiche la tangente hyperbolique : \enquote{$\tanh$} ou + \enquote{\selectlanguage{english}$\tanh$\selectlanguage{french}} selon que la + langue en cours est le français ou l'anglais. + \begin{dbremark}{Pas de commande \protect\lstinline+\\th+ pour la tangente + hyperbolique}{} + La commande |\th| est déjà définie dans \LaTeX{} et ne peut donc pas être + utilisée pour la tangente hyperbolique. + \end{dbremark} +\end{docCommand} + +\paragraph{Fonctions diverses} + +\begin{docCommand}{log}{} + Cette commande : + \begin{description} + \item[sous sa forme non étoilée :] produit \enquote{$\log$}. + \item[sous sa forme étoilée :] produit \enquote{$\log*$}. + \end{description} +\end{docCommand} + +\begin{docCommand}{lg}{} + Cette commande : + \begin{description} + \item[sous sa forme non étoilée :] produit \enquote{$\lg$}. + \item[sous sa forme étoilée :] produit \enquote{$\lg*$}. + \end{description} +\end{docCommand} + +\paragraph{Théorèmes et objets analogues} + +Pour faciliter la composition des théorèmes et objets analogues, la +\gztauthorcl{} fournit des environnements prêts à l'emploi et permet d'en créer +de nouveaux si besoin est (cf. commande \refCom{newtheorem}). + +Le \vref{env-theorems} liste les théorèmes et objets analogues disponibles +% +avec : +\begin{description} +\item[en colonne~1] le nom de l'environnement \LaTeX{} correspondant, et son + éventuel alias (utilisables indifféremment) ; +\item[en colonne~2] les titres récurrents correspondants selon que la langue en + cours est le français ou l'anglais. +\end{description} + +\begin{gzttable}[label=env-theorems,title=Environnements de type \enquote{théorème} fournis] + \begin{tabular}{llll} + \multicolumn{2}{c}{Environnement} & \multicolumn{2}{c}{Titre} \\ + Nom & Alias & En français & En anglais \\\toprule + |theoreme| & |theorem| & Théorème & Theorem \\\midrule + |corollaire| & |corollary| & Corollaire & Corollary \\\midrule + \multicolumn{2}{c}{\lstinline+conjecture+} & \multicolumn{2}{c}{Conjecture} \\\midrule + \multicolumn{2}{c}{\lstinline+proposition+} & \multicolumn{2}{c}{Proposition} \\\midrule + |lemme| & |lemma| & Lemme & Lemma \\\midrule + |axiome| & |axiom| & Axiome & Axiom \\\midrule\midrule + \multicolumn{2}{c}{\lstinline+definition+} & Définition & Definition \\\midrule + |remarque| & |remark| & Remarque & Remark \\\midrule + |exemple| & |example| & Exemple & Example \\\midrule + \multicolumn{2}{c}{\lstinline+notation+} & \multicolumn{2}{c}{Notation} \\\midrule + |preuve| & |proof| & Preuve & Proof \\\bottomrule + \end{tabular} +\end{gzttable} + +\begin{dbremark}{\enquote{Théorèmes} non numérotés : versions étoilées des + environnements}{} + Tous les environnements \LaTeX{} du \vref{env-theorems} admettent une version + étoilée produisant des occurrences \emph{non} numérotées du \enquote{théorème} + correspondant. +\end{dbremark} + +Ces environnements s'emploient de façon classique, c'est-à-dire comme tout +environnement \LaTeX{}. Ils disposent cependant d'un argument optionnel +permettant de préciser le \enquote{théorème}, par exemple en spécifiant son +auteur. + +\begin{bodycode}[listing and text] +\begin{theorem} + Tout espace métrisable séquentiellement compact est compact. +\end{theorem} +\begin{definition}[congruence modulo $n$] + Soit $n$ un entier supérieur ou égal à $2$. Deux entiers $a$ et $b$ + sont dits congruents modulo $n$ si $a - b \in n\Z$ +\end{definition} +\begin{remark*} + \[ + e^{i\pi}+1=0. + \] +\end{remark*} +\begin{proof} + Tout ce qui est rare est cher. Or un cheval bon marché est rare. Donc un + cheval bon marché est cher. +\end{proof} +\end{bodycode} + +On remarque dans l'exemple précédent que les \enquote{théorèmes} ont des mises +en forme variables. La \gztauthorcl{} fournit effectivement trois styles de +\enquote{théorèmes}, \docValue{theorem}, \docValue{definition} et +\docValue{proof}, dont les caractéristiques sont indiquées au +\vref{env-theorems-styles}. + +\begin{gzttable}[label=env-theorems-styles,title=Styles de \enquote{théorèmes} fournis] +\begin{tabular}{lp{3cm}p{3cm}p{5.5cm}} +Style & Titre récurrent & Contenu & Théorèmes concernés \\\toprule +\docValue{theorem} & gras & italique + & théorèmes, corollaires, conjectures, propositions, lemmes, axiomes \\\midrule +\docValue{definition} & gras & romain & définitions, remarques, exemples, notations \\\midrule +\docValue{proof} & italique, non gras, non numéroté & romain, terminé par un carré blanc & preuves \\\bottomrule +\end{tabular} +\end{gzttable} + +% \begin{description} +% \item[\docValue{theorem} :]\ +% \begin{enumerate} +% \item le titre récurrent (et l'éventuelle précision) est en gras ; +% \item le contenu est en italique. +% \end{enumerate} +% Ce style est appliqué aux environnements \enquote{de type théorème}, \cad*{} +% les théorèmes, corollaires, conjectures, propositions, lemmes et axiomes. +% \item[\docValue{definition} :]\ +% \begin{enumerate} +% \item le titre récurrent (et l'éventuelle précision) est en gras ; +% \item le contenu \emph{n'est pas} en italique. +% \end{enumerate} +% Ce style est appliqué aux environnements \enquote{de type définition}, \cad*{} +% les définitions, remarques, exemples et notations. +% \item[\docValue{proof} :]\ +% \begin{enumerate} +% \item le titre récurrent (et l'éventuelle précision) \emph{n'est pas} en gras, +% est en italique et n'est \emph{jamais} numéroté ; +% \item le contenu \emph{n'est pas} en italique et se termine par un carré noir +% en fin de ligne. +% \end{enumerate} +% Ce style est appliqué aux environnements \enquote{de type preuve}, +% \cad*{}... les preuves. +% \end{description} + +Si les environnements de \enquote{théorème} fournis par la classe ne suffisent +pas, la commande \refCom{newtheorem} permet d'en créer de nouveaux. + +\begin{docCommand}{newtheorem}{\oarg{option(s)}\marg{nom}} + Cette commande crée un nouvel environnement \LaTeX{}, \meta{nom}, destiné à la + composition d'un \enquote{théorème} dont, par défaut : + \begin{itemize} + \item le titre récurrent est \meta{Nom}\footnote{\Cad*{}, quelle que soit la + langue en cours, le \meta{nom} de l'environnement \LaTeX{} dont l'initiale + est en majuscule.} ; + \item le style est \docValue{theorem}. + \end{itemize} + Cette commande crée également l'environnement \meta{nom}* produisant des + occurrences \emph{non} numérotées de ce \enquote{théorème}. + + Si les valeurs par défaut du titre récurrent (\meta{Nom}) ou du style + (\docValue{theorem}) ne conviennent pas, il suffit spécifier celles souhaitées + en \meta{option(s)} au moyen des clés \refKey{frenchtitle}, + \refKey{englishtitle} et \refKey{style} suivantes. + \begin{docKey}{frenchtitle}{={\meta{titre récurrent en français}}}{pas de + valeur par défaut, initialement vide} + Cette clé permet de spécifier un \meta{titre récurrent en français} + différent de \meta{Nom}. + \end{docKey} + \begin{docKey}{englishtitle}{={\meta{titre récurrent en anglais}}}{pas de + valeur par défaut, initialement vide} + Cette clé permet de spécifier un \meta{titre récurrent en anglais} différent + de \meta{Nom}. + \end{docKey} + \begin{docKey}{style}{=\docValue{theorem}\textbar\docValue{definition}\textbar\docValue{proof}}{pas + de valeur par défaut, initialement \docValue{theorem}} + Cette clé permet de spécifier le style du \enquote{théorème} à créer, au + moyen des valeurs \docValue{theorem}, \docValue{definition} et + \docValue{proof}. + \end{docKey} + +\newtheorem{article} +\newtheorem[frenchtitle=Fait,style=definition]{fact} +\begin{preamblecode}[listing options={deletekeywords={[1]{definition}},morekeywords={[3]{definition}}}] +\newtheorem{article} +\newtheorem[frenchtitle=Fait,style=definition]{fact} +\end{preamblecode} +\begin{bodycode}[listing and text] +\begin{article}[dit premier] +Les hommes naissent et demeurent libres et égaux en droits\ldots{} +\end{article} +\begin{fact*} +Tout ce qui est rare est cher. +\end{fact*} +\begin{fact} +Un cheval bon marché est rare. +\end{fact} +\end{bodycode} +\end{docCommand} + +\subsubsection{Code informatique} +\label{sec-commande-pour-code} + +La \gztauthorcl{} fournit des outils permettant de faire aisément figurer du +code informatique, notamment du code \LaTeX{} : +\begin{itemize} +\item l'environnement \refEnv{gztcode} pour des listings ; +\item la commande \refCom{gztverb} pour de courts extraits, notamment amenés + à figurer dans des phrases. +\end{itemize} + +\begin{docEnvironment}[doclang/environment content=listing]{gztcode}{\oarg{option(s)}} + Cet environnement permet de faire figurer un listing de code informatique dans + une boîte colorée. +\begin{bodycode}[listing and text] +Nous préconisons l'environnement \verb|align*| : +\begin{gztcode} +\begin{align*} + a & = a\\ + b & = b +\end{align*} +\end{gztcode} +\end{bodycode} +\end{docEnvironment} + +L'environnement \refEnv{gztcode} admet en argument optionnel la plupart des +(très nombreuses) options de l'environnement \docAuxEnvironment{tcblisting} du +\Package*{tcolorbox}. On retiendra notamment les options suivantes. + +\begin{docKey}{title}{=\meta{titre}}{pas de valeur par défaut, + initialement vide} + Cette clé permet de donner un \meta{titre} au listing. +\begin{bodycode}[listing and text,listing options={morekeywords={[2]title}}] +Nous préconisons l'environnement \verb|align*| : +\begin{gztcode}[title=Alignement d'équations] +\begin{align*} + a & = a\\ + b & = b +\end{align*} +\end{gztcode} +\end{bodycode} +\end{docKey} + +\begin{docKey}{listing and text}{}{} + Cette clé permet de, dans la boîte colorée, faire figurer en partie : + \begin{itemize} + \item haute, le listing ; + \item basse, son résultat compilé par \LaTeX{}. + \end{itemize} + % ^^A + \begin{dbwarning}{Option \protect\refKey*{listing and text} : seulement pour + du code \LaTeX{}}{} + L'option \refKey{listing and text} n'a de sens que pour un listing de code + \LaTeX{}. + \end{dbwarning} +\begin{tcboutputlisting} +\begin{gztcode}[listing and text] +L'environnement \verb|eqnarray| est obsolète et nous préconisons plutôt +\verb|align| : + +\begin{minipage}[t]{0.4\linewidth} + Avec l'environnement \verb|eqnarray*| : + \begin{eqnarray*} + a & = & a\\ + b & = & b + \end{eqnarray*} +\end{minipage} +\hspace{1cm} +\begin{minipage}[t]{0.4\linewidth} + Avec l'environnement \verb|align*| : + \begin{align*} + a & = a\\ + b & = b + \end{align*} +\end{minipage} +\end{gztcode} +\end{tcboutputlisting} +L'exemple suivant illustre l'usage de cette option\conseilslatex{}. Le +code : +\tcbinputlisting{codes,listing only,listing options={deletekeywords={listing}}} +donne : +\input{\jobname.listing} +\end{docKey} + +L'environnement \refEnv{gztcode} permet d'afficher du code informatique +arbitraire. Mais, dans les listings précédents, on constate que certaines +commandes \LaTeX{} sont mises en évidence, en l'occurrence en gras. Ceci +provient du fait que l'environnement \refEnv{gztcode} est configuré pour, par +défaut, colorer syntaxiquement le code \LaTeX{}. Mais d'autres langages sont +pris en charge. + +\begin{dbremark}{Environnement \protect\refEnv*{gztcode} : pas seulement pour le + code \LaTeX{}}{} + L'environnement \refEnv{gztcode} permet de colorer syntaxiquement le code + informatique de tout langage connu du \Package*{listings}. Pour ce faire, il + suffit de le spécifier (selon la syntaxe de ce package) en argument de + l'option \refKey{listing options} suivante. +\end{dbremark} + +\begin{docKey}{listing options}{}{} + Cette clé de l'environnement \refEnv{gztcode} permet de passer au listing + toute option connue du \Package*{listings}, notamment le langage sous-jacent + au moyen de l'option \docAuxKey{language}. +\lstset{escapechar={},escapeinside={}} +\begin{bodycode}[listing and text] +\lstdefinestyle{mon-style}{% + language=Python,% + basicstyle=\ttfamily,% + keywordstyle=\color{magenta},% + commentstyle=\color{gray}\itshape,% + stringstyle=\color{cyan}% +} +% +\begin{gztcode}[listing options={style=mon-style}] +"""Calcul de la factorielle""" # En python +def factorielle(x): + if x < 2: + return 1 + else: + return x * factorielle(x-1) +\end{gztcode} +\end{bodycode} +\lstset{escapechar="} +\end{docKey} + +\begin{docCommand}{gztverb}{\marg{code}} + Cette commande permet d'afficher \emph{verbatim}\footnote{\Cad*{} tel quel, + sans être interprété par \LaTeX{}.} un (court) extrait de \meta{code} passé en + argument. + + L'exemple suivant illustre l'usage de cette commande\conseilslatex. +\begin{bodycode}[listing and text,colback=white,listing options={deletekeywords={listing},deletekeywords={[3]style}}] +Dans le cas de \LaTeX, les commandes de style de caractères \gztverb{\bf}, +\gztverb{\it}, \gztverb{\sf}, \gztverb{\tt}, \gztverb{\sc}, \gztverb{\sl}, +\gztverb{\rm} sont désormais à proscrire. Elles doivent être remplacées par +les commutateurs, respectivement \gztverb{\bfseries}, \gztverb{\itshape}, +\gztverb{\sffamily}, \gztverb{\ttfamily}, \gztverb{\scshape}, +\gztverb{\slshape}, \gztverb{\rmfamily}. +\end{bodycode} +\end{docCommand} + +\section{Autres outils communs à tous types d'articles} +\label{sec-outils-communs-tous-1} + +Cette section donne une liste d'outils (commandes et environnements) fournis par +des packages automatiquement chargés par la \gztauthorcl\footnote{La + \vref{sec-packages-charges-par} liste ceux dont les fonctionnalités peuvent + être utiles aux auteurs.}. + +\begin{dbwarning}{Liste des fonctionnalités des packages tiers non exhaustive}{} + Cette liste est \emph{non exhaustive} : + \begin{itemize} + \item seule une infime partie des packages existants est chargée par la + classe ; + \item seuls certains packages chargés par la classe sont cités ; + \item seules certaines fonctionnalités des packages cités sont décrites. Le + lecteur souhaitant en savoir davantage est invité à lire la documentation de + ces packages. + \end{itemize} +\end{dbwarning} + +\subsection{Guillemets, citations} +\label{sec-guillemets-citations} + +Le \Package*{csquotes} est dédié aux citations, formelles et informelles, +d'extraits de textes. Il propose notamment la commande \refCom{enquote} +suivante, simple d'emploi. + +\begin{docCommand}{enquote}{\marg{texte}} + Cette commande compose le \meta{texte} entre guillemets, automatiquement + adaptés : + \begin{itemize} + \item aux standards typographiques de la langue en cours. On pourra donc + l'utiliser dès que du texte est à mettre entre guillemets ; + \item au niveau (1 ou 2) de \enquote{citation} en cas d'emboîtement. On + pourra donc également l'utiliser dès que du texte est à citer de façon + informelle. + \end{itemize} +\begin{bodycode}[listing and text] +Il lui répondit: \enquote{Courteline disait: \enquote{Passer pour un idiot aux + yeux d'un imbécile est une volupté de fin gourmet.}} +\end{bodycode} +\end{docCommand} + +\begin{docCommand}{textelp}{\marg{texte}} + Cette commande est à employer pour signifier une omission, avec éventuel ajout + de \meta{texte}. + + Cf. \vref{sec-epigraphes} pour un exemple d'utilisation de cette commande. +\end{docCommand} + +(\textsc{À suivre...}) + +\subsection{Adresses Web (\enquote{\textsc{url}})} +\label{sec-url} + +Le \Package*{hyperref} fournit (entre autres) la commande \refCom{url} qui permet +de facilement afficher des adresses Web (aussi appelées \enquote{\textsc{url}}), +même si elles comportent des caractères spéciaux de \TeX{} (|#|, |_|, |~|, +\lstinline[commentstyle={}]+%+, |&|, etc.). + +\begin{docCommand}{url}{\marg{adresse Web}} + Cette commande affiche l'\meta{adresse Web} saisie \emph{telle + quelle}\footnote{Notamment sans faire précéder les éventuels caractères + spéciaux qu'elle contient de la commande d'échappement + \protect\lstinline+\\+.} et fait d'elle un lien hypertexte. +\begin{bodycode}[listing and text,listing options={deletekeywords={[2]{url}},deletekeywords={[1]{math}}}] +Pour plus d'information, nous renvoyons à notre site Web +\url{http://math.univ-lille1.fr/~nwejm/}. +\end{bodycode} +\begin{bodycode}[listing and text,listing options={deletekeywords={[2]{url}},deletekeywords={[1]{exemple}}}] +Par exemple, \url{www.cnrs.fr/insmi/IMG/pdf/Parite_ReunionDU290312.pdf}. +\end{bodycode} +\end{docCommand} + +\subsection{Graphiques de très haute qualité} +\label{sec-graphiques-de-tres} + +Le \Package*{pgfplots} permet de créer aisément des graphiques (de dimensions +$2$ ou $3$) de très haute qualité, que ce soit pour représenter des fonctions ou +des jeux de données. + +(\textsc{À suivre...}) + +\subsection{Références croisées} +\label{sec-references-croisees} + +Le \Package*{cleveref}, utilisé conjointement avec le \Package*{varioref}, rend la +commande \refCom{vref} de ce dernier très puissante. + +\begin{docCommand}{vref}{\marg{label}} + Cette commande affiche le numéro de la référence labellisée par \meta{label} + et : + \begin{itemize} + \item affiche (ou pas selon le contexte) la page où se situe cette + référence\footnote{Fonctionnalité fournie par le \Package{varioref}.} ; + \item détecte automatiquement la nature de la référence (section, tableau, + figure, équation, théorème, etc.) et fait précéder le numéro de celle-ci du + mot clé correspondant\footnote{Fonctionnalité fournie par le + \Package{cleveref}.} ; + \item fait de la référence un lien hypertexte\footnote{Fonctionnalité fournie + par le \Package{hyperref}.}. + \end{itemize} +\begin{bodycode}[listing and text,listing options={deletekeywords={[2]url,[1]math}}] +[...] on se reportera à la \vref{sec-canevas-de-fichier} pour un canevas de +fichier source [...] +\end{bodycode} +\end{docCommand} + +\subsection{Épigraphes} +\label{sec-epigraphes} + +Le \Package*{epigraph} permet de composer des épigraphes au moyen de la commande +\refCom{epigraph}. + +\begin{docCommand}{epigraph}{\marg{épigraphe}{\marg{source}}} + Cette commande\footnote{Légèrement redéfinie par la \gztauthorcl.} compose un + \meta{épigraphe} et sa \meta{source} (qui peut éventuellement être vide). +\end{docCommand} + +\begin{bodycode}[listing and text] +\epigraph{% + Parce qu'un secret, ce n'est pas quelque chose qui ne se raconte pas. \textelp{}% +}{% + César\\M. \textsc{Pagnol}, \emph{César}. Livre de Poche~161, p.~115% +} +\end{bodycode} + +\begin{dbremark}{Source de l'épigraphe en entrée bibliographique}{} + La source de l'épigraphe pourra faire l'objet d'une entrée bibliographique en + vue d'être citée en 2\ieme{} argument de \refCom{epigraph} au moyen de la + commande \lstinline[moretexcs={fullcite}]+\fullcite+ du \Package*{biblatex} + (cf. \vref{sec-bibliographie}).% + \footnote{% + \lstset{deletekeywords={options},deletekeywords={[2]skipbib},morekeywords={[2]{options}},morekeywords={[3]skipbib}}% + Dans le fichier \hologo{BibTeX}, on ajoutera à cette entrée la ligne + % + \protect\lstinline+options = \{skipbib\}+ + % + pour éviter que cette source figure dans la liste des + références bibliographiques.% + } +\end{dbremark} + +% Dans le source \hologo{BibTeX} de l'exemple suivant, on notera la ligne +% \lstinline|options = {skipbib}| permettant d'éviter que la source de l'épigraphe +% ne figure dans la liste des références bibliographiques. +% \begin{preamblecode}[title=Source \hologo{BibTeX}] +% @book{pagnol, +% title = {César}, +% author = {Pagnol, Marcel}, +% number = {161}, +% pages = {115}, +% series = {Livre de poche}, +% options = {skipbib} +% } +% \end{preamblecode} +% \begin{bodycode}[listing and text,listing options={deletekeywords={options,[2]number}}] +% \epigraph{Je ne peux pas vous le dire à tous à la fois, et si vite que ça. Parce +% qu'un secret, ce n'est pas quelque chose qui ne se raconte pas. Mais c'est une +% chose qu'on se raconte à voix basse, et séparément.}{César\\\fullcite{pagnol}} +% \end{bodycode} + + +\subsection{Listes en ligne} +\label{sec-listes-en-ligne} + +Le lecteur est certainement familier des environnements +\docAuxEnvironment{itemize}, \docAuxEnvironment{enumerate} et +\docAuxEnvironment{description} permettant de créer des listes respectivement +\enquote{à puces}, \enquote{numérotées} et \enquote{de description}. Le +\Package*{enumitem} fournit des versions étoilées de ces environnements qui +composent ces listes \enquote{en ligne}, \cad*{} au sein d'un même +paragraphe\footnote{Le but premier de ce package est de personnaliser les listes + mais cela est déconseillé dans le cadre de la \gzt{} car cela pourrait + contrevenir à la marche typographique qu'elle a adoptée.}. + +\begin{docEnvironment}[doclang/environment content=liste]{itemize*}{} + Cet environnement compose une liste \enquote{à puces} en ligne. +\end{docEnvironment} + +\begin{docEnvironment}[doclang/environment content=liste]{enumerate*}{} + Cet environnement compose une liste \enquote{numérotée} en ligne. +\end{docEnvironment} + +\begin{docEnvironment}[doclang/environment content=liste]{description*}{} + Cet environnement compose une liste \enquote{de description} en ligne. +\end{docEnvironment} + +\begin{bodycode}[listing and text,listing options={deletekeywords={[1]math,[2]url}}] +\begin{enumerate} +\item Les données que j'ai rassemblées [...] +\item Les données que j'ai recueillies sont + \begin{enumerate*} + \item disponibles publiquement sur internet : [...] ; + \item accessibles par Wikipédia, [...] ; + \item pour 60 des conférenciers [...]. + \end{enumerate*} +\end{enumerate} +\end{bodycode} + +\section{Canevas de fichier source typique} +\label{sec-canevas-de-fichier} + +\newcommand{\attachfilename}{mon-article.tex}% +\newcommand{\attachfiletextlink}{Canevas de fichier source typique}% +\tcbset{listing file=\attachfilename}% +\begin{tcboutputlisting} +\documentclass{gztarticle} +% +% Indiquer le (chemin vers le) fichier .bib utilisé. +\addbibresource{.bib} +% +\begin{document} +\title{} +% \subtitle[short=]{} +% +\author[% + affiliation={% + },% + photo=,% + email=,% + webpage=,% + minibio={% + }% +]{} +% +% \acknowledgements{% +% } +% +% \begin{abstract} +% \end{abstract} +% +\maketitle +% +% Ici vient le contenu de l'article. + +% +\printbibliography % ou \printauthorsdetails +\end{document} +\end{tcboutputlisting} +% +Pour le lecteur souhaitant écrire un article pour la \gzt*{}, un modèle typique +d'article standard\footnote{Où les commandes et environnement moins fréquents + ont été mis en commentaire.} est : +\begin{itemize} +\item reproduit ci-dessous ; +\item attaché à la version \format{pdf} du présent document et atteignable par + simple clic sur l'icône ci-dessous. +\end{itemize} +% +\tcbinputlisting{% + codes, + listing only,% + listing options={moretexcs={addbibresource}},% + title={\attachfiletextlink\ \attachfile{\attachfilename}}% +} + +%%% Local Variables: +%%% mode: latex +%%% eval: (latex-mode) +%%% ispell-local-dictionary: "fr_FR" +%%% TeX-master: "../gzt-fr.tex" +%%% End: diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/notations.tex b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/notations.tex new file mode 100644 index 0000000000..666d6059a9 --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/notations.tex @@ -0,0 +1,138 @@ +\etocsettocdepth.toc{section}% +% +\section{Notations, syntaxe, terminologie et codes couleurs}\label{sec-synt-term-notat} + +Ce chapitre précise les notations, syntaxe, terminologie et codes couleurs de +la présente documentation. + + +\subsection{Commandes, environnements, clés, valeurs}\label{sec-comm-envir-cles} + +Les commandes, environnements, clés et valeurs de clés sont systématiquement +composés en fonte à chasse fixe. En outre, pour plus facilement les +distinguer, ils figurent avec des couleurs propres : +\begin{itemize} +\item les commandes en bleu : \docAuxCommand*{commande} ; +\item les environnements en \enquote{sarcelle} : + \docAuxEnvironment*{environnement} ; +\item les clés en pourpre : \docAuxKey*{clé} ; +\item les valeurs des clés en violet : \docValue*{valeur}. +\end{itemize} + +\subsection{Arguments génériques} +\label{sec-arguments-generiques} + +Pour expliquer le rôle d'une commande, il est parfois nécessaire d'indiquer +à quoi celle-ci s'applique, autrement dit quel en est l'argument générique. +Un tel argument est composé : +\begin{itemize} +\item en fonte à chasse fixe ; +\item en italique ; +\item entre chevrons simples ; +\end{itemize} +le tout en marron, ainsi : \meta{argument générique}. + +\subsection{Liens hypertextes} +\label{sec-liens-hypertextes} + +Les liens hypertextes figurent en couleur, ainsi : +\href{http://gte.univ-littoral.fr/members/dbitouze/pub/latex}{lien hypertexte}. +La plupart des références aux commandes, environnements et clés définis dans la +présente documentation, sont des liens hypertextes, surmontés du numéro de page +où se trouve la cible correspondante (sauf si elle se situe sur la même page) : +\begin{itemize} +\item \refCom{author} ; +\item \refEnv{abstract}. +\end{itemize} + + +\subsection{Éléments \enquote{obligatoires}} +\label{sec-comm-oblig} + +L'icône \mandatory{}, figurant en regard de certains éléments (commandes ou +environnements), indique que ceux-ci sont \enquote{obligatoires}. + +\subsection{Codes sources} +\label{sec-codes-sources} + +Les exemples qui illustrent la présente documentation sont constitués de codes +sources et, le cas échéant, des \enquote{copies d'écran} correspondantes. +% Ceux-ci proviennent le plus souvent du spécimen de document composé avec la +% \yatcl, fourni avec l'ensemble de la classe +% (cf. \vref{sec-specimen-arborescence}). + +Ces codes sources figurent dans des cadres de couleur bleu : +\begin{itemize} +\item non ombrés s'ils doivent être saisis dans le corps du document ; +\item ombrés s'ils doivent être saisis en préambule du fichier (maître). +\end{itemize} +Ces cadres pourront en outre comporter d'éventuels titres : +\begin{multicols}{2} +\begin{bodycode} +"\meta{code source}" +\end{bodycode} +\begin{bodycode}[title=\meta{titre}] +"\meta{code source}" +\end{bodycode} +\begin{preamblecode} +"\meta{code source à insérer en préambule}" +\end{preamblecode} +\begin{preamblecode}[title=\meta{titre}] +"\meta{code source à insérer en préambule}" +\end{preamblecode} +\end{multicols} + +\subsection{Espaces dans les codes sources} +\label{sec-espaces-dans-les} + +Pour éviter certaines confusions, les espaces dans les codes sources devant +être saisis au clavier sont parfois matérialisés au moyen de la marque +\lstinline[showspaces]+ +. + +\subsection{Options} +\label{sec-options} + +La présente classe, ainsi que certaines de ses commandes et certains de ses +environnements, peuvent être modulés au moyen d'options, ou listes d'options +(séparées par des virgules). Ces options se présentent sous la forme +\meta{clé}|=|\meta{valeur} et la \meta{valeur} passée à une \meta{clé} peut +être : +%^^A \begin{description} +%^^A \item[ne prennent pas de valeur.] Une telle option, par exemple nommée +%^^A \refKey{option}, est alors documentée selon la syntaxe suivante: +%^^A \begin{docKey*}{option}{}{\meta{valeurs par défaut et initiale}} +%^^A \meta{Description de \refKey{option}} +%^^A \end{docKey*} +%^^A \item[prennent des valeurs.] Une telle option se présente alors sous la forme +%^^A \meta{clé}"="\meta{valeur}. Les valeurs passées à une clé peuvent être : +\begin{description} +\item[libre.] Si une telle \meta{clé} est (pour l'exemple) nommée + \refKey{freekey}, elle est alors documentée selon la syntaxe suivante : + \begin{docKey*}{freekey}{=\meta{valeur}}{\meta{valeurs par défaut et initiale}} + \meta{Description de \refKey{freekey}} + \end{docKey*} +\item[imposée] (parmi une liste de valeurs possibles). Si une telle \meta{clé} est + (pour l'exemple) nommée \refKey{choicekey} et de valeurs imposées + \docValue*{valeur1}, \docValue*{valeur2}, ..., \docValue*{valeurN}, elle est alors + documentée selon la syntaxe suivante\footnote{Comme souvent en informatique, + la barre verticale séparant les valeurs possibles signifie \enquote{ou}.} : + \begin{docKey*}{choicekey}{=\docValue*{valeur1}\textbar\docValue*{valeur2}\textbar...\textbar\docValue*{valeurN}}{\meta{valeurs par défaut et initiale}} + \meta{Description de \refKey{choicekey} et de ses valeurs possibles} + \end{docKey*} +\end{description} +%^^A \end{description} + +Les \meta{valeurs par défaut et initiale} d'une clé sont souvent précisées +(entre parenthèses en fin de ligne). Elles indiquent ce que la clé vaut : +\begin{description} +\item[par défaut] c'est-à-dire lorsque la clé \emph{est} employée, mais + \emph{seule} c'est-à-dire sans qu'une valeur explicite lui soit passée ; +\item[initialement] c'est-à-dire lorsque la clé \emph{n'est pas} employée. +\end{description} + +%%% Local Variables: +%%% mode: latex +%%% eval: (latex-mode) +%%% ispell-local-dictionary: "fr_FR" +%%% TeX-master: "../gzt-fr.tex" +%%% End: diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/packages-charges.tex b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/packages-charges.tex new file mode 100644 index 0000000000..d51dbb840b --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/packages-charges.tex @@ -0,0 +1,38 @@ +\section{Packages chargés par la classe}\label{sec-packages-charges-par} + +On a vu que, pour plusieurs de ses fonctionnalités, la \gztauthorcl{} s'appuie +sur des packages qu'elle charge automatiquement. Ceux dont les fonctionnalités +peuvent être utiles aux auteurs sont répertoriés dans la liste suivante qui +indique leur fonction et le cas échéant : +\begin{itemize} +\item la ou les options avec lesquelles ils sont chargés ; +\item les options de la \gztauthorcl{} ou leurs commandes propres permettant de les + personnaliser. +\end{itemize} +En sus des outils propres à la \gztauthorcl, tous ceux fournis par ces +différents packages sont donc à disposition des auteurs de la \gzt{}. + +\begin{description} +\item[\package{xcolor} :] couleurs ; + \begin{description} + \item[option par défaut :] \docAuxKey{table} et \docAuxKey{cmyk} ; + \end{description} +\item[\package{kpfonts} :] police principale du document ; + \begin{description} + \item[option par défaut :] \docAuxKey{sfmath}, \docAuxKey{easyscsl}, + \docAuxKey{noDcommand} ; + \end{description} +\item[\package*{graphicx} :] inclusion d'images ; +\item[\package*{csquotes} :] citations formelles et informelles ; + \begin{description} + \item[option par défaut :] \docAuxKey{autostyle} ; + \end{description} +\item[...] (à suivre). +\end{description} + +%%% Local Variables: +%%% mode: latex +%%% eval: (latex-mode) +%%% ispell-local-dictionary: "fr_FR" +%%% TeX-master: "../gzt-fr.tex" +%%% End: diff --git a/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/todo.tex b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/todo.tex new file mode 100644 index 0000000000..0a266c3d2b --- /dev/null +++ b/macros/latex/contrib/gzt/doc/latex/gzt/french/sections/todo.tex @@ -0,0 +1,15 @@ +\chapter{To do} +\label{cha:do} + +% \begin{enumerate} +% \item Revoir les pointillés de la 2\ieme{} de couverture avec le \Pkg{TikZ} (au +% moyen de quelque chose comme : +% \verb|\tikz \draw[dotted] (0pt,0pt) -- (50pt,0pt);|). +% \end{enumerate} + +%%% Local Variables: +%%% mode: latex +%%% eval: (latex-mode) +%%% ispell-local-dictionary: "fr_FR" +%%% TeX-master: "../gzt-fr.tex" +%%% End: diff --git a/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx b/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx new file mode 100644 index 0000000000..e490957478 --- /dev/null +++ b/macros/latex/contrib/gzt/source/latex/gzt/gzt.dtx @@ -0,0 +1,7511 @@ +% \iffalse meta-comment +% +% File: gzt.dtx Copyright (C) 2014-2021 by +% Denis Bitouz'e <denis.bitouze@univ-littoral.fr> +% +% 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 +% +% http://www.latex-project.org/lppl.txt +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Denis Bitouz'e. +% +% This work consists of the files gzt.dtx and gzt.ins +% and the derived filebase gzt.cls. +% +%<*internal> +\iffalse +%</internal> +%<*readme> +This bundle provides two classes and BibLaTeX styles for the French journal [“La +Gazette des Mathématiciens”](https://smf.emath.fr/les-publications/la-gazette): + +- `gzt` for the complete issues of the journal, aimed at the Gazette’s team, +- `gztarticle`, intended for authors who wish to publish an article in the + Gazette. This class’s goals are to + - faithfully reproduce the layout of the Gazette, thus enabling the authors to + be able to work their document in actual conditions, and + - provide a number of tools (commands and environments) to facilitate the + drafting of documents, in particular those containing mathematical formulas. +%</readme> +%<*internal> +\fi +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +%</internal> +%<*class|class-article|install> +\def\gztfileversion{1.0.1} +\def\gztfiledate{2021-02-14} +%</class|class-article|install> +%<*install> +\input l3docstrip.tex +% \input docstrip.tex +\Msg{**************************************************************} +\Msg{* Installation} +\Msg{* Class: gzt \gztfiledate\space v\gztfileversion} +\Msg{* for the French journal "La Gazette des Math'ematiciens" (DB)} +\Msg{**************************************************************} +\keepsilent +\askforoverwritefalse +\preamble +----------------------------------------------------------------------------- +gzt --- SMF bundle of classes for the French journal "La Gazette des + Math'ematiciens" + +E-mail: denis.bitouze@univ-littoral.fr +Released under the LaTeX Project Public License v1.3c or later +See http://www.latex-project.org/lppl.txt +----------------------------------------------------------------------------- +\endpreamble +\postamble +% Copyright (C) 2014-2021 by Denis Bitouz'e <denis.bitouze@univ-littoral.fr> +---------------------------------------------------------------------------- +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3c +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.3c or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +This work has the LPPL maintenance status `maintained'. + +The Current Maintainer of this work is Denis Bitouz'e. + +This work consists of the file gzt.dtx + and the derived files gzt.cls, + gztarticle.cls, + gzt.ins, + gzt.pdf, + and a number of configuration files. +\endpostamble +% +\def\GZT@classname{\jobname} +\def\GZT@logo{\GZT@classname-logo} +\def\GZT@addons{addons} +\usedir{tex/latex/\GZT@classname} +\generate{% + \file{\GZT@classname.cls}{\from{\jobname.dtx}{class}} + \file{\GZT@classname article.cls}{\from{\jobname.dtx}{class-article}} + \file{\GZT@classname.dbx}{\from{\jobname.dtx}{datamodel}} + \file{\GZT@classname.lbx}{\from{\jobname.dtx}{languagemodel}} + \nopreamble\nopostamble + \file{\GZT@classname.cfg}{\from{\jobname.dtx}{configuration}} +}% +\usedir{tex/latex/\GZT@classname/images} +\generate{% + \nopreamble\nopostamble + \file{README-PICTOGRAMS.md}{\from{\jobname.dtx}{readme-pictograms}} +}% +%</install> +%<install>\endbatchfile +%<*internal> +\usedir{source/latex/\GZT@classname} +\generate{ + \file{\GZT@classname.ins}{\from{\jobname.dtx}{install}} + \file{\GZT@classname.drv}{\from{\jobname.dtx}{driver}}% + \nopreamble\nopostamble + \file{\GZT@logo.tex}{\from{\jobname.dtx}{class-logo}}% +}% +\usedir{doc/latex/\GZT@classname} +\generate{ + \nopreamble\nopostamble + \file{README.md}{\from{\jobname.dtx}{readme}} +}% +\usedir{doc/latex/\GZT@classname} +\generate{ + \nopreamble\nopostamble + \file{CHANGELOG.md}{\from{\jobname.dtx}{changelog}} +}% +\usedir{doc/latex/\GZT@classname/french} +\generate{ + \nopreamble\nopostamble + \file{latexmkrc}{\from{\jobname.dtx}{latexmkrc}} +}% +% \usedir{doc/latex/\GZT@classname/\GZT@addons/completion} +% \generate{% +% \nopreamble\nopostamble +% \file{\GZT@classname.cwl}{\from{\jobname.dtx}{class-cwl}} +% }% +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup +\fi +%</internal> +% +% \changes{v0.9}{2015/05/02}{First CTAN version}% +% \changes{v0.95}{2016/04/03}{Second CTAN version}% +% \changes{v0.95a}{2016/10/24}{Third CTAN version}% +% \changes{v0.95b}{2016/10/24}{Fourth CTAN version}% +% \changes{v0.96}{2017/01/01}{Fifth CTAN version}% +% \changes{v0.97}{2017/02/15}{Sixth CTAN version}% +% \changes{v0.98}{2018/04/07}{Seventh CTAN version. Implementation of special +% editions.}% +% \changes{v1.0.0}{2020-03-17}{Eighth CTAN version.}% +% \changes{v1.0.1}{2021-02-14}{Nineth CTAN version.}% +% +% \CheckSum{4413} +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \StopEventually{} +% +% \selectlanguage{english} +% \chapter{Auxiliary files} +% +% \section{Gazette's logo} +% \label{sec:gzts-logo} +% Before the code of the \gztcl{} by itself, we give the begining of the +% code of the source file of the Gazette's logo (to be compiled with "xelatex"). +% \begin{macrocode} +%<*class-logo> +% \end{macrocode} +% +% \begin{macrocode} +\documentclass{standalone} +\usepackage{fontspec} +\usepackage[export]{adjustbox} +\usepackage[cmyk]{xcolor} +\usepackage{xparse} +% +\setmainfont{HelveticaNeueLTStd-ThEx} +\newfontfamily\des{HelveticaNeueLTStd-Th} +\newfontfamily\mathematiciens{HelveticaNeueLTStd-Lt} +% +\ExplSyntaxOn +\tl_new:N \l__gzt_frontmatter_head_text_tl +\tl_set:Nn \l__gzt_frontmatter_head_text_tl {% + \adjustbox{stack=r} + {% + \addfontfeature{LetterSpace=10} + \textcolor{__gzt_generic_light_color}{% + \fontsize{21}{0}\selectfont% + la\hspace{5mm}% + \fontsize{45}{0}\selectfont% + Gazette% + }% + \\[1.7mm]% + \fontsize{15}{0}\selectfont% + \textcolor{__gzt_generic_light_color}{% + \des% + \addfontfeature{LetterSpace=6}% + des% + }% + \hspace{2.5mm}% + \textcolor{__gzt_generic_dark_color}{% + \mathematiciens% + \addfontfeature{LetterSpace=6}% + Math\'ematiciens% + }% + }% +} +% +\NewDocumentCommand \frontmatterheadtext {} { + \l__gzt_frontmatter_head_text_tl +} +% \end{macrocode} +% +% \begin{macrocode} +%</class-logo> +% \end{macrocode} +% +% \section{(\Pkg{biblatex}) Data model} +% Before the code of the \gztcl{} by itself, we give the (\pkg{biblatex}) +% data model that enriches the default one for several purposes: +% \begin{itemize} +% \item the interviews, +% \item the books reviews, +% \item the books advertisements, +% \item the tributes. +% \end{itemize} +% +% \begin{macrocode} +%<*languagemodel> +% \end{macrocode} +% +% \begin{macrocode} +\ProvidesFile{gzt.lbx} +\InheritBibliographyExtras{french}% extras are inherited from French... +\DeclareBibliographyStrings{% + inherit = {french},% .... as well as all the keys + number = {{\no}{\no}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumes}{vol\adddot}}, +} +% \end{macrocode} +% +% \begin{macrocode} +%</languagemodel> +% \end{macrocode} +% +% \begin{macrocode} +%<*datamodel> +% \end{macrocode} +% +% \subsection{For the interviews} +% +% First, we create the new entry type "interview" and the new field +% "interviewee". +% \begin{macrocode} +% \DeclareDatamodelEntrytypes{interview} +\DeclareDatamodelFields[type=list,datatype=name]{interviewee} +% \end{macrocode} +% +% Then, we declare the fields known by the entry type "interview": our new field +% "interviewee" and the existing one "author". +% \begin{macrocode} +\DeclareDatamodelEntryfields[interview]{ + interviewee, + author +} +% \end{macrocode} +% +% An finally, we create the bibliography driver for the "interview" (that seems to +% create the corresponding new entry). +% \begin{macrocode} +\DeclareBibliographyDriver{interview}{% + \printnames{author}~interviewent~\printnames{interviewee}% + \usebibmacro{finentry}% +} +% \end{macrocode} +% % +% % \subsection{For the tributes} +% % +% % First, we create the new entry type "tribute" and the new field +% % "honouree". +% % \begin{macrocode} +% % \DeclareDatamodelEntrytypes{tribute} +% % \DeclareDatamodelFields[type=list,datatype=name]{honouree} +% % \end{macrocode} +% % +% % Then, we declare the fields known by the entry type "tribute": our new field +% % "honouree" and the existing one "author". +% % \begin{macrocode} +% \DeclareDatamodelEntryfields[tribute]{ +% honouree, +% author +% } +% % \end{macrocode} +% % +% % An finally, we create the bibliography driver for the "tribute" (that seems to +% % create the corresponding new entry). +% % \begin{macrocode} +% \DeclareBibliographyDriver{tribute}{% +% \printnames{author}~rendent~hommage~\`a~\printnames{honouree}% +% \usebibmacro{finentry}% +% } +% % \end{macrocode} +% +% \subsection{For the books reviews} +% +% First, we create the new bibliography driver "bookreview" (that seems to +% create the corresponding new entry). +% \begin{macrocode} +\DeclareBibliographyDriver{bookreview}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{maintitle+title}% + \newline\nopunct\newblock + \usebibmacro{author/editor+others/translator+others}% + \setunit{\labelnamepunct} + \newline\nopunct\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \printlist{language}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} +% \end{macrocode} +% +% Then, we create the new fields "reviewer" and "reviewerinstitution" and make +% them known by the entry type "bookreview". +% \begin{macrocode} +\DeclareDatamodelFields[type=list,datatype=name]{reviewer} +\DeclareDatamodelFields[type=list,datatype=literal]{reviewerinstitution} +\DeclareDatamodelEntryfields[bookreview]{ + reviewer, + reviewerinstitution +} +% \end{macrocode} +% +% \subsection{For the books advertisements} +% +% We create some new fields make them known by the entry type +% "bookadvertisement". +% \begin{macrocode} +\DeclareDatamodelFields[type=field,datatype=literal]{publicprice} +\DeclareDatamodelFields[type=field,datatype=literal]{smfprice} +\DeclareDatamodelFields[type=field,datatype=literal]{frenchabstract} +\DeclareDatamodelFields[type=field,datatype=literal]{englishabstract} +\DeclareDatamodelFields[type=list,datatype=literal]{copublisher} +\DeclareDatamodelFields[type=field, datatype=verbatim]{thumbnail} +\DeclareDatamodelEntryfields[bookadvertisement]{ + publicprice, + smfprice, + frenchabstract, + englishabstract, + copublisher, + thumbnail +} +% \end{macrocode} +% +% Then, we create the new bibliography driver "bookadvertisement" (that seems to +% create the corresponding new entry). +% \begin{macrocode} +\newcommand*{\insertbibimage}[1]{\includegraphics[width=45mm]{#1}} +\DeclareBibliographyDriver{bookadvertisement}{% + \begin{tcolorbox}[ + lefthand width=47.5mm + ,sidebyside + ,colback=white + ,fontlower=\large + ,flushleft lower + ,boxrule=0mm + ,frame hidden% + ,leftright skip=0mm + ,before skip=0mm + ,lower separated=false + ] + \iffieldundef{thumbnail} + {} + { + \usefield{\insertbibimage}{thumbnail} + } + \tcblower + \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}% + \def\abx@str{abx@lstr}% + \noindent + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \textbf{\printfield{series}}% + % \usebibmacro{series+number}% + \bigskip\newline\nopunct\newblock + {% + \Large% + \printfield{title}% + \newunit\newblock + }% + \iffieldundef{volume} + {}% + {\textbf{\printfield{volume}}} + \iffieldundef{titleaddon} + {}% + {% + \newline\nopunct\newblock + \textbf{\printfield{titleaddon}}% + } + \iffieldundef{subtitle} + {}% + {% + \newline\nopunct\newblock + \printfield{subtitle}% + } + \newline\nopunct\newblock + \newline\nopunct\newblock + \usebibmacro{author/editor+others/translator+others}% + \setunit{\labelnamepunct} + \newline\nopunct\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \printlist{language}% + \iftoggle{bbx:isbn} + {% + \newline\nopunct\newblock + \printfield{isbn} + } + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \def\abx@str{abx@sstr}% + \end{tcolorbox} + \iflistundef{copublisher} + {}% + {% + \bigskip + % \newline\nopunct\newblock% + \normalsize + Publi\'e avec le concours de : \printlist{copublisher}% + \par + } + \iffieldundef{frenchabstract} + {}% + {% + \bigskip + \printfield{frenchabstract}% + \par + \medskip + % + \begin{center} + Prix~public~:\c_space_tl + \EUR{\printfield{publicprice}} + \c_space_tl\textendash\c_space_tl Prix~membre~\smf{}~:\c_space_tl + \EUR{\printfield{smfprice}} + \c_space_tl\textendash\c_space_tl Frais~de~port~non~compris + \end{center} + } + \iffieldundef{englishabstract} + {}% + {% + \par + \bigskip + \begin{otherlanguage}{english} + \itshape + \printfield{englishabstract}% + % + \par + \medskip + % + \begin{center} + Public~price:\c_space_tl + \EUR{\printfield{publicprice}} + \c_space_tl\textendash\c_space_tl \smf{}~member~price:\c_space_tl + \EUR{\printfield{smfprice}} + \c_space_tl\textendash\c_space_tl Shipping~costs~not~included + \end{center} + \end{otherlanguage} + } + \usebibmacro{finentry} +} +% \end{macrocode} +% +% \begin{macrocode} +%</datamodel> +% \end{macrocode} +% +% \chapter{Implementation of the \gztcl{}} +% +% Here comes the code of the \gztcl{}. +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \section{Removability of local customizations} +% +% We define two... +% \begin{macrocode} +\def\sectioncommandslist{}% +\let\saved@ifdefinable\@ifdefinable% +\let\saved@@ifdefinable\@@ifdefinable% +\newcommand{\startcustomization}{% + % Redefine \@ifdefinable + \renewcommand{\@ifdefinable}[2]{% + \listadd\sectioncommandslist##1% + \saved@ifdefinable{##1}{##2}% + }% + \renewcommand{\@@ifdefinable}[2]{% + \listadd\sectioncommandslist##1% + \saved@@ifdefinable{##1}{##2}% + }% +}% +\newcommand{\cleancustomization}{% + \forlistloop{\undef}{\sectioncommandslist}% + \def\sectioncommandslist{}% + \let\@ifdefinable\saved@ifdefinable% + \let\@@ifdefinable\saved@@ifdefinable% +}% +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% Selective filtering of error messages and warnings: +% \begin{macrocode} +\RequirePackage{silence}% +\WarningFilter{kpfonts}{With 'easyscsl' option} +% \end{macrocode} +% +% Extending \pkg{etoolbox}'s patching commands: +% \begin{macrocode} +\RequirePackage{xpatch}% +% \end{macrocode} +% +% We alter the behaviour of the internals of "\usetikzlibrary" so that the +% \LaTeXe{} push/pop filename system is used (see +% \url{http://tex.stackexchange.com/a/57428/18401}). +% \begin{macrocode} +\patchcmd% + {\use@@tikzlibrary}% + {% + \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{ + \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{% + \expandafter\usepgflibrary\expandafter{\pgf@temp}% + }{% + \tikzerror{I did not find the tikz library + '\pgf@temp'. I looked for files named + tikzlibrary\pgf@temp.code.tex and + pgflibrary\pgf@temp.code.tex, but neither + could be found in the current texmf trees.} + }}% + }% + {% + \@pushfilename + \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{ + \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{% + \expandafter\usepgflibrary\expandafter{\pgf@temp}% + }{% + \tikzerror{I did not find the tikz library + '\pgf@temp'. I looked for files named + tikzlibrary\pgf@temp.code.tex and + pgflibrary\pgf@temp.code.tex, but neither + could be found in the current texmf trees.} + }}% + \@popfilename + }% + {}{}% +\patchcmd + {\tcb@input@library@in} + {% + \input\tcbpkgprefix#1\relax% + } + {% + \@pushfilename + \input\tcbpkgprefix#1\relax% + \@popfilename + } + {}{} +% \end{macrocode} +% +% In order to avoid "__gzt" in the name of each internal (i.e. private) function +% and variable, we make use of the "@@" place holder provided by the +% \Pkg{l3docstrip}. +% \begin{macrocode} +%<@@=gzt> +% \end{macrocode} +% +% \section{\LaTeX3 loading} +% +% For debugging purpose, \Pkg{expl3} could be loaded with its +% \docAuxKey*{check-declarations} option. +% \begin{macrocode} +% \PassOptionsToPackage{check-declarations}{expl3} +% \end{macrocode} +% +% ^^AIn order to define class options, in key-value form, \Pkg{l3keys2e} is +% ^^Aloaded. This have to be done at an early stage because options have to be +% ^^Adefined before the (here `book') class loading. +% \begin{macrocode} +\RequirePackage{l3keys2e} +% \end{macrocode} +% +% This \gztcl{} will make use of the \pkg{expl3} programming interface +% (\LaTeX3). In order to load this package, it is enough to load the +% \Pkg{xparse} which is anyway needed to produce document-level commands. +% \begin{macrocode} +\RequirePackage{xparse} +\ExplSyntaxOn +% \end{macrocode} +% +% The \gztcl{} is declared in the \LaTeX3{}'s way. +% \begin{macrocode} +\ProvidesExplClass +%<class> {gzt} +%<class-article> {gztarticle} + {\gztfiledate} + {\gztfileversion} + { + SMF~class~for~the~French~journal^^J + "La~Gazette~des~Math'ematiciens". +%<class-article>~(Author~version.) + } +% \end{macrocode} +% +% The needed \TeX{} format is specified. +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +% \end{macrocode} +% +% \section{Class loading} +% +% \begin{macrocode} +\bool_new:N \g_@@_moral_report_bool +\bool_new:N \g_@@_special_edition_bool +\bool_new:N \g_@@_for_authors_bool +\bool_new:N \g_@@_for_printer_bool +\bool_new:N \g_@@_cover_bool +\bool_new:N \g_@@_coverpage_bool +\bool_new:N \g_@@_inside_pages_bool +% +\bool_new:N \g_@@_no_inside_backcover_bool +%<class-article>\bool_gset_true:N \g_@@_for_authors_bool% +%<class-article>\bool_gset_true:N \g_@@_inside_pages_bool% +% \end{macrocode} +% +% We define some common code to the "moralreport" global option of "gzt" and +% "gztarticle". +% \begin{macrocode} +\tl_gset:Nn \g_@@_moral_report_common_option_tl {% + \AddToHook{begindocument/before} {% + \bool_gset_true:N \g_@@_moral_report_bool + \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool + \title[short={\bfseries\c_@@_moralreport_rubric_string_tl}]{} + \tl_gset:Nn \g_@@_rubric_title_tl {\c_@@_moralreport_rubric_string_tl} + } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \begin{macro}{\c_@@_pagegrid_dim} +% We declare the constant dimension of the pagegrid, when enabled. +% \begin{macrocode} +\dim_const:Nn \c_@@_pagegrid_dim { 1mm} +% \end{macrocode} +% \end{macro} +% +% We define some class options: +% \begin{itemize} +% \item "pagegrid" in order to draw a grid on each page, in order to check the +% layout (mostly for debugging purpose), +% \item ... +% \end{itemize} +% +% \begin{macrocode} +\tl_gset:Nn \g_@@_frontcover_image_file_tl {\c_@@_issue_frontcover_default_image_file_tl} +\tl_gset:Nn \g_@@_special_edition_color_tl {@@_default_cover_color} +\clist_new:N \g_@@_special_edition_logos_clist +% +\keys_define:nn { gzt } +{ + pagegrid .dim_gset:N = \g_@@_pagegrid_dim, + pagegrid .default:n = {\c_@@_pagegrid_dim}, + forauthors .code:n = {% + \bool_gset_true:N \g_@@_for_authors_bool% + \bool_gset_true:N \g_@@_inside_pages_bool% + },% + forprinter .bool_gset:N = \g_@@_for_printer_bool, + frontcoverimagefile .tl_gset:N = \g_@@_frontcover_image_file_tl, + frontcoverimagefile .default:n = {frontcover}, + output .choice:, + output / frontcover .code:n = {% + \bool_gset_true:N \g_@@_for_printer_bool% + \bool_gset_true:N \g_@@_cover_bool% + },% + output / coverpage .code:n = {% + \bool_gset_true:N \g_@@_coverpage_bool% + },% + output / insidepages .code:n = {% + \bool_gset_true:N \g_@@_for_printer_bool% + \bool_gset_true:N \g_@@_inside_pages_bool% + },% + output / backcover .code:n = {% + \bool_gset_true:N \g_@@_for_printer_bool% + },% + output / web .code:n = {% + },% + specialedition .code:n = { + \bool_gset_true:N \g_@@_special_edition_bool + \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool + \keys_set:nn { gzt / specialedition } {#1} + }, + specialedition / color .code:n = {% + \tl_gset:Nn \g_@@_special_edition_color_tl {#1} + },% + specialedition / minitoc .code:n = {% + \bool_gset_false:N \g_@@_frontcover_without_minitoc_bool + },% + specialedition / logos .code:n = {% + \clist_gset:Nn \g_@@_special_edition_logos_clist {#1} + },% + specialedition / backcover~image .code:n = {% + \tl_gset:Nn \g_@@_special_edition_backcover_image_tl {#1} + },% + specialedition / title .code:n = {% + \tl_gset:Nn \g_@@_special_edition_title_tl {#1} + },% + specialedition / short~title .code:n = {% + \tl_gset:Nn \g_@@_special_edition_short_title_tl {#1} + },% + specialedition / editorial~heading .code:n = {% + \tl_gset:Nn \g_@@_special_edition_editorial_heading_tl {#1} + },% + specialedition / editorial~author .code:n = {% + \_@@_people:nnnnnnnn {#1}{}{}{}{}{}{editorinchief}{} + },% + moralreport .code:n = { + \g_@@_moral_report_common_option_tl + \AddToHook{begindocument/before} {% + \tl_gset:Nn \g_@@_pdftitle_string_tl {\c_@@_moralreport_rubric_string_tl} + } + }, +}% +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class-article> +% \end{macrocode} +% +% \begin{macrocode} +\keys_define:nn { gztarticle } +{ + editorial .code:n = {% + \AddToHook{begindocument}{% + \_@@_before_display_editorial:n {}% + } + \AddToHook{enddocument}{% + \_@@_after_display_editorial: {}% + } + },% + presidentmessage .code:n = {% + \AddToHook{begindocument}{% + \_@@_before_display_presidentmessage: {}% + } + \AddToHook{enddocument}{% + \_@@_after_display_presidentmessage: {}% + } + },% + moralreport .code:n = { + \g_@@_moral_report_common_option_tl + \keys_set:nn { gztarticle / moralreport } {#1} + }, + moralreport / title .code:n = {% + \tl_gset:Nn \g_@@_moral_report_title_tl {#1} + },% + moralreport / short~title .code:n = {% + \tl_gset:Nn \g_@@_moral_report_short_title_tl {#1} + },% +}% +% \end{macrocode} +% +% \begin{macrocode} +%</class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% If we want to disable the inside backcover. +% \begin{macrocode} +% \bool_gset_true:N \g_@@_no_inside_backcover_bool +% \end{macrocode} +% +% \begin{macrocode} +\ProcessKeysOptions { gzt } +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% As subsequent class, the \Cls{book} is loaded, with "openany", "english" and +% "french" options. +% \begin{macrocode} +\PassOptionsToClass{openany,english,french}{book} +\LoadClass { book } +\PassOptionsToPackage{table,cmyk}{xcolor}% +\PassOptionsToPackage{export}{adjustbox}% +\PassOptionsToPackage{english,french}{translator} +\PassOptionsToPackage{english,french}{babel} +\PassOptionsToPackage{english,french}{varioref} +\PassOptionsToPackage{english,french}{cleveref} +% \end{macrocode} +% +% \section{Packages loading} +% +% Many of the \gztcl{} features are provided by third party packages. In this +% section, we load them and outline their features interesting from the \gztcl{} +% point of view.\todo{When possible, the list of loaded packages should be split +% into two lists: one of the packages needed just by \gzt{} (for both its logic +% and its layout) and one of packages useful for the end user.} +% +% \begin{enumerate} +% \item Compile \TeX{} pictures stand-alone or as part of a document: +% \begin{macrocode} +\RequirePackage[group=false]{standalone}% +% \end{macrocode} +% +% \item Tools to load and manipulate data: +% \begin{macrocode} +\RequirePackage{datatool}% +% \end{macrocode} +% +% \item In case of \hologo{pdfTeX} engine, we enforce \pkg{fontenc} to be loaded +% with its \docAuxKey*{T1} option (usual for French and English documents) and +% \pkg{inputenc} to be loaded with its \docAuxKey*{utf8} option. Otherwise +% \pkg{fontspec}, convenient for both \hologo{XeLaTeX} and \hologo{LuaLaTeX}, +% is loaded, with ligatures à la \TeX{} by default enabled. +% \begin{macrocode} +\sys_if_engine_pdftex:TF + { + \RequirePackage[T1]{fontenc} + \RequirePackage[utf8]{inputenc} + }{ + \RequirePackage{fontspec} + } +% \end{macrocode} +% +% Load of main font to be used: +% \begin{macrocode} +\RequirePackage[sfmath,easyscsl,noDcommand]{kpfonts} +% \end{macrocode} +% +% \item Formatting both header and footers (pagestyle), and sections headers: +% \begin{macrocode} +\RequirePackage[pagestyles]{titlesec}% +% \end{macrocode} +% +% \item Multicolumn output: +% \begin{macrocode} +\RequirePackage{multicol}% +% \end{macrocode} +% +% \item Graphics inclusion: +% \begin{macrocode} +\RequirePackage{graphicx}% +% \end{macrocode} +% +% \item Establish input relative to a directory: +% \begin{macrocode} +%<class>\RequirePackage{import}% +% \end{macrocode} +% +% \item Allow tables to flow over page boundaries: +% \begin{macrocode} +\RequirePackage{longtable}% +% \end{macrocode} +% +% \item Put a grey textual watermark on document pages (loaded only if +% "forauthors" \gzt{}'s option is on): +% \begin{macrocode} +%<class>\bool_if:nT { \g_@@_for_authors_bool } { +%<class> \RequirePackage{draftwatermark}[2006/06/30]% +%<class>} +% \end{macrocode} +% +% \item Graphics package-alike macros for \enquote{general} boxes: +% \begin{macrocode} +\RequirePackage{adjustbox}% +% \end{macrocode} +% +% \item Packages and image files for MWEs (used in case of missing pictograms): +% \begin{macrocode} +\RequirePackage{mwe} +% \end{macrocode} +% +% \item A new reference scheme for \LaTeX{}, giving the total number of pages in +% the document: +% \begin{macrocode} +\RequirePackage{zref-totpages} +% \end{macrocode} +% +% \item Reference last page number (which is generally different from the total +% number of pages in the document): +% \begin{macrocode} +%<class>\RequirePackage{lastpage} +% \end{macrocode} +% +% \item A new reference scheme for \LaTeX{}, providing the facilities of the +% \package{xr} and \package{xr-hyper} packages: +% \begin{macrocode} +\RequirePackage{zref-xr}% +% \end{macrocode} +% +% \item Alternative versions of "ragged"-type commands: +% \begin{macrocode} +\RequirePackage{ragged2e}% +% \end{macrocode} +% +% \item Define commands that appear not to eat spaces: +% \begin{macrocode} +\RequirePackage{xspace}% +% \end{macrocode} +% +% \item ...: +% \begin{macrocode} +\RequirePackage{textcase}% +% \end{macrocode} +% +% \item For typesetting epigraphs: +% \begin{macrocode} +\RequirePackage{epigraph}% +% \end{macrocode} +% +% \item Context sensitive quotation facilities: +% \begin{macrocode} +\RequirePackage[autostyle]{csquotes}% +% \end{macrocode} +% +% \item Programmable bibliographies and citations: +% \begin{macrocode} +\RequirePackage[backend=biber,datamodel=gzt,defernumbers=true,autolang=other]{biblatex}% +\@ifpackagelater{biblatex}{2016/01/01}{% + \ExecuteBibliographyOptions{giveninits} +}{ + \ExecuteBibliographyOptions{firstinits} +} +% \end{macrocode} +% +% \item Extended implementation of the \LaTeX{} array and +% tabular-environments: +% \begin{macrocode} +\RequirePackage{array} +% \end{macrocode} +% +% \item Publication quality tables in \LaTeX{}: +% \begin{macrocode} +\RequirePackage{booktabs} +% \end{macrocode} +% +% \item Tabulars with adjustable-width columns: +% \begin{macrocode} +\RequirePackage{tabularx} +% \end{macrocode} +% +% % \item Set of tools for authors to typeset quantities in a consistent way +% % (automated processing of numbers and units, and control of tabular alignment +% % of numbers): +% % \begin{macrocode} +% \RequirePackage{siunitx} +% % \end{macrocode} +% +% \item Modify skips between paragraphs: +% \begin{macrocode} +\RequirePackage{nccparskip} +% \end{macrocode} +% +% \item Construction for table cells that span more than one row of the table: +% \begin{macrocode} +\RequirePackage{multirow} +% \end{macrocode} +% +% \item Intelligent page references: +% \begin{macrocode} +\RequirePackage{varioref} +% \end{macrocode} +% +% \item Extension to \Pkg{amsmath}: correct various bugs/defeciencies in amsmath +% and useful tools for mathematical typesetting\footnote{The \Pkg{mathtools} +% loads \pkg{amsmath}, hence it's not necessary to load the latter.}: +% \begin{macrocode} +\RequirePackage{mathtools} +% \end{macrocode} +% +% \item Support for using RSFS fonts in maths: +% \begin{macrocode} +\RequirePackage{rsfso} +% \end{macrocode} +% +% \item Vector arrows: +% \begin{macrocode} +\RequirePackage{esvect} +% \end{macrocode} +% +% \item Hooks to do actions on every page or on the current page: +% \begin{macrocode} +% \RequirePackage{everypage} +% \end{macrocode} +% +% \item For translating words in \LaTeX{}. +% \begin{macrocode} +\RequirePackage{translator}% +% \end{macrocode} +% +% \item Flexible and easy interface to page dimensions: +% \begin{macrocode} +\RequirePackage{geometry} +% \end{macrocode} +% +% \item Bilingual (French and English) documents, with French as default +% language: +% \begin{macrocode} +\RequirePackage{babel}% +% \end{macrocode} +% +% \item METAFONT and macros for Euro sign: +% \begin{macrocode} +\RequirePackage{eurosym}% +% \end{macrocode} +% +% Expandable checks for the current language: +% \begin{macrocode} +\RequirePackage{iflang}[2007/11/11]% +% \end{macrocode} +% +% \item Tagging tables of contents: +% \begin{macrocode} +%<class>\RequirePackage{tableof}% +% \end{macrocode} +% +% \item Completely customisable TOCs: +% \begin{macrocode} +\RequirePackage{etoc}% +% \end{macrocode} +% +% \item Subliminal refinements towards typographical perfection: +% \begin{macrocode} +\RequirePackage[babel=true]{microtype}% +% \end{macrocode} +% +% \item Current date and time formatting: +% \begin{macrocode} +\RequirePackage[nodayofweek]{datetime}% +% \end{macrocode} +% +% \item Customization of lists: +% \begin{macrocode} +\RequirePackage[inline]{enumitem}% +% \end{macrocode} +% +% \item Execute command after the next page break: +% \begin{macrocode} +\RequirePackage{afterpage} +% \end{macrocode} +% +% \item Extension of \LaTeX{}'s color facilities: +% \begin{macrocode} +\RequirePackage{xcolor}% +% \end{macrocode} +% +% \item We need to avoid some macros from few of the following packages to be +% added to "\@preamblecmds": +% \begin{macrocode} +%<class|class-article>\cs_set_eq:NN \_@@_orig_preamblecmds \@preamblecmds +% \end{macrocode} +% +% Create PostScript and PDF graphics in \TeX: +% \begin{macrocode} +\RequirePackage{tikz} +% \end{macrocode} +% +% Create normal/logarithmic plots in two and three dimensions: +% \begin{macrocode} +\RequirePackage{pgfplots} +% \end{macrocode} +% +% \item Environments for colored and framed text boxes, e.g. theorems: +% \begin{macrocode} +\RequirePackage{tcolorbox} +% \end{macrocode} +% +% \item A single TikZ node for the whole page: +% \begin{macrocode} +\RequirePackage{tikzpagenodes} +% \end{macrocode} +% +% \item Print page grid in background: +% \begin{macrocode} +%<class>\RequirePackage[foreground]{pagegrid}% +% \end{macrocode} +% +% \item Typesetting theorems (AMS style): +% \begin{macrocode} +\RequirePackage{amsthm} +% \end{macrocode} +% +% \item Extensions to theorem environments: +% \begin{macrocode} +\RequirePackage{thmtools} +% \end{macrocode} +% +% We restore "\@preamblecmds" as it was before: +% \begin{macrocode} +%<class|class-article>\cs_set_eq:NN \@preamblecmds \_@@_orig_preamblecmds +% \end{macrocode} +% +% \item Control float placement: +% \begin{macrocode} +\RequirePackage{placeins}% +% \end{macrocode} +% +% \item Hypertext marks: +% \begin{macrocode} +\RequirePackage[hidelinks,hypertexnames=false]{hyperref}% +% \end{macrocode} +% +% \item A new bookmark (outline) organization for \Pkg{hyperref}: +% \begin{macrocode} +\RequirePackage[numbered]{bookmark}% +% \end{macrocode} +% +% \item Create glossaries and lists of acronyms: +% \begin{macrocode} +\RequirePackage[nowarn]{glossaries}% +% \end{macrocode} +% +% \item Intelligent cross-referencing: +% \begin{macrocode} +\RequirePackage{cleveref}% +% \end{macrocode} +% \end{enumerate} +% +% Setings of the glossaries and acronyms. +% \begin{macrocode} +\makeglossaries +\setglossarystyle{indexhypergroup} +\setacronymstyle{long-sc-short} +% \end{macrocode} +% +% In case of \hologo{pdfTeX} engine, the document is by default in sans serif +% and makes use of the \pkg{lmodern} for the \enquote{ttfamily} font. +% +% \begin{macrocode} +\sys_if_engine_pdftex:T + { + \renewcommand\familydefault{\sfdefault} + \renewcommand{\ttdefault}{lmtt} + } +% \end{macrocode} +% +% \section{Miscellaneous patches} +% +% We pop some commands from the "\@preamblecmds" list in order to allow +% "\DeclareMathOperator" to be used after the preamble (see +% \url{http://tex.stackexchange.com/q/223421/18401}). +% \begin{macrocode} +\tl_remove_all:Nn \@preamblecmds { \do \DeclareMathOperator } +\tl_remove_all:Nn \@preamblecmds { \do \newacronym } +\tl_remove_all:Nn \@preamblecmds { \do \@declmathop } +\tl_remove_all:Nn \@preamblecmds { \do \usetikzlibrary } +% \end{macrocode} +% +% \section{Messages} +% +% In this section, some messages are declared for future use. +% \begin{macrocode} +\msg_new:nnnn{gzt}{issue-number-needed}{Option~`#1'~needed!} + {Please~specify~`#1=<number>', + ~otherwise~`<number>'~will~be~set~to + ~`\int_use:N\c_@@_first_issue_number_int'.} +\msg_new:nnnn{gzt}{unknown-choice}{Choice~`#3'~invalid!} + {Please~specify~#1=#2.} +%<class>\msg_new:nnnn{gzt}{configuration-file-missing}{File~`\c_@@_configuration_file_string_tl'~missing!} +%<class> {The~ whole~ issue~ may~ not~ be~ conform~ if~ `\c_@@_configuration_file_string_tl'~ is~ missing.} +%<class>\msg_new:nnnn{gzt}{editorial-file-missing}{File~`\c_@@_editorial_file_string_tl'~missing!} +%<class> {The~ whole~ issue~ requires~ the~ `\c_@@_editorial_file_string_tl'~ file.} +% \end{macrocode} +% +% \section{Counters} +% +% In this section, we define some counters for future use. +% +% \begin{macro}{\g_@@_editors_in_chief_int} +% \begin{macro}{\g_@@_articles_int} +% \begin{macro}{\g_@@_questions_answers_int} +% +% The integer "\g_@@_editors_in_chief_int" will count the number of editors in +% chief in order to use singular or plural form of the corresponding string +% \enquote{Rédacteur(s) en chef}. +% \begin{macrocode} +\int_new:N \g_@@_editors_in_chief_int +% \end{macrocode} +% +% The integer "\g_@@_item_in_rubric_int" will count the number of item in +% a rubric in order to give a specific behavior of the first of them. +% \begin{macrocode} +\int_new:N \g_@@_item_in_rubric_int +% \end{macrocode} +% +% The integer "\g_@@_articles_int" will count the number of articles in order to +% provide for each of them a unique bibliographic key. +% \begin{macrocode} +\int_new:N \g_@@_articles_int +% \end{macrocode} +% +% The integer "\g_@@_question_int" will count the number of questions +% (and hence of answers) in order to provide distinguish between the first and +% the subsequent questions/answers of an interview, the former being likely to +% be typeset differently (e.g. the names of the interviewer and the interviewee +% may appear only in the first question/answer). +% \begin{macrocode} +\int_new:N \g_@@_question_int +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{Constants} +% +% In this section, we declared some constants for future use. +% +% \subsection{Integers} +% +% \subsubsection{Issue numbers} +% +% \begin{macro}{\c_@@_first_issue_number_int} +% \begin{macro}{\c_@@_first_issue_year_int} +% \begin{macro}{\c_@@_first_issue_month_int} +% \begin{macro}{\c_@@_interval_in_months_int} +% The first issue number, month and year, and the interval (in months) between +% two consecutive issues, are declared. +% \begin{macrocode} +\int_const:Nn \c_@@_first_issue_number_int { 143 } +\int_const:Nn \c_@@_first_issue_year_int { 2015 } +\int_const:Nn \c_@@_first_issue_month_int { 1 } +\int_const:Nn \c_@@_interval_in_months_int { 3 } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Strings and keywords} +% +% We now declare some private string constants. +% +% \begin{macro}{\c_@@_journal_short_title_string_tl} +% \begin{macro}{\c_@@_journal_title_string_tl} +% \begin{macro}{\c_@@_editors_in_chief_string_tl} +% \begin{macro}{\c_@@_editors_string_tl} +% \begin{macro}{\c_@@_editorial_board_string_tl} +% \begin{macro}{\c_@@_editorial_secretariat_string_tl} +% \begin{macro}{\c_@@_phone_string_tl} +% \begin{macro}{\c_@@_fax_string_tl} +% \begin{macro}{\c_@@_informations_string_tl} +% \begin{macro}{\c_@@_publishingdirector_string_tl} +% \begin{macro}{\c_@@_issn_string_tl} +% \begin{macro}{\c_@@_isbn_string_tl} +% \begin{macro}{\c_@@_latexclass_string_tl} +% \begin{macro}{\c_@@_font_string_tl} +% \begin{macro}{\c_@@_configuration_file_string_tl} +% \begin{macro}{\c_@@_cover_string_tl} +% \begin{macro}{\c_@@_artistic_director_string_tl} +% \begin{macro}{\c_@@_editorial_heading_string_tl} +% \begin{macro}{\c_@@_toc_string_tl} +% \begin{macro}{\c_@@_message_string_tl} +% \begin{macro}{\c_@@_president_signatory_string_tl} +% \begin{macro}{\c_@@_editorinchief_signatory_string_tl} +% \begin{macro}{\c_@@_issue_bib_file_tl} +% \begin{macro}{\c_@@_about_frontcover_string_tl} +% \begin{macro}{\c_@@_credit_frontcover_string_tl} +% \begin{macro}{\c_@@_authors_instructions_string_tl} +% For the journal's short and long titles. +% \begin{macrocode} +\tl_const:Nn \c_@@_journal_short_title_string_tl {Gazette} +\tl_const:Nn \c_@@_journal_title_string_tl { + \c_@@_journal_short_title_string_tl{}~des~Math\'ematiciens% +} +% \end{macrocode} +% +% For the names of the underlying classes. +% \begin{macrocode} +\tl_const:Nn \c_@@_class_name_tl {gzt} +\tl_const:Nn \c_@@_article_class_name_tl {gztarticle} +% \end{macrocode} +% +% For the editor(s) in chief. +% \begin{macrocode} +\tl_const:Nn \c_@@_editors_in_chief_string_tl +{ + \int_compare:nNnTF { \g_@@_editors_in_chief_int } > { 1 } + { \c_@@_editorsinchief_string_tl } + { \c_@@_editorinchief_string_tl } +} +% \end{macrocode} +% For the editor in chief. +% \begin{macrocode} +\tl_const:Nn \c_@@_editorinchief_string_tl {R\'edacteur~en~chef } +% \end{macrocode} +% For the editors in chief (plural form of the previous one). +% \begin{macrocode} +\tl_const:Nn \c_@@_editorsinchief_string_tl {R\'edacteurs~en~chef } +% \end{macrocode} +% For the editors. +% \begin{macrocode} +\tl_const:Nn \c_@@_editors_string_tl {R\'edacteurs } +% \end{macrocode} +% For the editorial board. +% \begin{macrocode} +\tl_const:Nn \c_@@_editorial_board_string_tl {Comit\'e~de~r\'edaction} +% \end{macrocode} +% For the editorial board of special_edition. +% \begin{macrocode} +\tl_const:Nn \c_@@_special_edition_editorial_board_string_tl {Num\'ero~sp\'ecial~de~la~Gazette~des~Math\'ematiciens~sous~la~direction~de~:} +% \end{macrocode} +% For the editorial_secretariat. +% \begin{macrocode} +\tl_const:Nn \c_@@_editorial_secretariat_string_tl {Secr\'etariat~de~r\'edaction} +% \end{macrocode} +% For the phone. +% \begin{macrocode} +\tl_const:Nn \c_@@_phone_string_tl {T\'el.} +% \end{macrocode} +% For the fax. +% \begin{macrocode} +\tl_const:Nn \c_@@_fax_string_tl {Fax} +% \end{macrocode} +% For the informations. +% \begin{macrocode} +\tl_const:Nn \c_@@_informations_string_tl {Renseignements} +% \end{macrocode} +% For the publishing director. +% \begin{macrocode} +\tl_const:Nn \c_@@_publishingdirector_string_tl {Directeur~de~la~publication} +% \end{macrocode} +% For the \textsc{issn}. +% \begin{macrocode} +\tl_const:Nn \c_@@_issn_string_tl {\textsc{issn}} +% \end{macrocode} +% For the \textsc{isbn}. +% \begin{macrocode} +\tl_const:Nn \c_@@_isbn_string_tl {\textsc{isbn}} +% \end{macrocode} +% For "\LaTeX Class". +% \begin{macrocode} +\tl_const:Nn \c_@@_latexclass_string_tl {Classe~\LaTeX{}} +% \end{macrocode} +% For "Impression". +% \begin{macrocode} +\tl_const:Nn \c_@@_printer_string_tl {Impression} +% \end{macrocode} +% For configuration file. +% \begin{macrocode} +\tl_const:Nn \c_@@_configuration_file_string_tl {gzt.cfg} +% \end{macrocode} +% For the artistic director. +% \begin{macrocode} +\tl_const:Nn \c_@@_artistic_director_string_tl {Conception~graphique} +% \end{macrocode} +% For the editorial. +% \begin{macrocode} +\AddToHook{begindocument/before}{ + \bool_if:NTF {\g_@@_special_edition_bool} { + \tl_const:Nn \c_@@_editorial_heading_string_tl {Avant-propos} + }{ + \tl_const:Nn \c_@@_editorial_heading_string_tl {\'Editorial} + } +} +% \end{macrocode} +% For the editor in chief. +% \begin{macrocode} +\tl_const:Nn \c_@@_editorinchief_signatory_string_tl {\c_@@_editorinchief_string_tl~de~la~\c_@@_journal_title_string_tl} +% \end{macrocode} +% For the table of contents. +% \begin{macrocode} +\tl_const:Nn \c_@@_toc_string_tl {Sommaire} +% \end{macrocode} +% For the president message. +% \begin{macrocode} +\tl_const:Nn \c_@@_president_message_string_tl {Mot~du~pr\'esident} +% \end{macrocode} +% For the president. +% \begin{macrocode} +\tl_const:Nn \c_@@_president_signatory_string_tl {pr\'esident~de~la~\g_@@_smf_short_string_tl} +% \end{macrocode} +% For the date of the editor in chief's message. +% \begin{macrocode} +\tl_const:Nn \c_@@_editorinchief_message_date_string_tl {Le~\displaydate{@@_editorinchief_message_date}} +% \end{macrocode} +% For the date of the president's message. +% \begin{macrocode} +\tl_const:Nn \c_@@_president_message_date_string_tl {Le~} +% \end{macrocode} +% For the special editions. +% \begin{macrocode} +\tl_const:Nn \c_@@_special_edition_string_tl {\c_space_tl{}sp{\'e}cial} +\tl_const:Nn \c_@@_long_special_edition_string_tl {Numéro\c_@@_special_edition_string_tl}% +\tl_const:Nn \c_@@_short_special_edition_string_tl {\No{}\c_@@_special_edition_string_tl}% +% \end{macrocode} +% For the front cover header text. +% \begin{macrocode} +\AddToHook{begindocument/before}{ + \tl_const:Nn \c_@@_frontcover_header_string_tl { + \bool_if:NT {\g_@@_special_edition_bool} { + \text_uppercase:n {\c_@@_long_special_edition_string_tl} + \medskip + \par + \normalsize + } + \l_@@_uppercased_date_format\displaydate{@@_date} + \bool_if:NF {\g_@@_special_edition_bool} { + \c_space_tl + \textendash{} + \c_space_tl + \No + \int_use:N\g_@@_issue_number_int% + } + } +} +% \end{macrocode} +% For the graphics extensions. +% \begin{macrocode} +\clist_const:Nn \c_@@__graphics_extensions_clist {png,PNG,jpg,JPG,jpeg,JPEG,pdf,PDF} +% \end{macrocode} +% For the pdftitle text. +% \begin{macrocode} +\tl_const:Nn \c_@@_pdftitle_string_tl { + \bool_if:NTF {\g_@@_moral_report_bool} { + \c_@@_moralreport_rubric_string_tl + }{ + \c_@@_journal_title_string_tl + % \c_space_tl + % \textendash{} + % \c_space_tl + % \l_@@_uppercased_date_format{\displaydate{@@_date}} + \c_space_tl + \textendash{} + \c_space_tl + N° + \bool_if:NTF {\g_@@_special_edition_bool} { + \c_@@_special_edition_string_tl + \c_space_tl + \g_@@_special_edition_title_tl + }{ + \int_use:N\g_@@_issue_number_int + } + } +} +% \end{macrocode} +% For the name of the directory containing the editorial and the president message. +% \begin{macrocode} +\tl_const:Nn \c_@@_frontmatter_directory_string_tl {frontmatter} +% \end{macrocode} +% For the name of the directory containing the 3rd and 4th cover pages. +% \begin{macrocode} +\tl_const:Nn \c_@@_backmatter_directory_string_tl {backmatter} +% \end{macrocode} +% For the name of the file containing the editorial. +% \begin{macrocode} +\tl_const:Nn \c_@@_editorial_file_string_tl {\c_@@_frontmatter_directory_string_tl/editorial} +% \end{macrocode} +% For the name of the file containing the president message. +% \begin{macrocode} +\tl_const:Nn \c_@@_president_message_file_string_tl {\c_@@_frontmatter_directory_string_tl/presidentmessage} +% \end{macrocode} +% For the path to the current issue's directory. +% \begin{macrocode} +\tl_const:Nn \c_@@_issue_path_string_tl {\int_use:N \g_@@_issue_number_int} +% \end{macrocode} +% For the name and path of the images directory. +% \begin{macrocode} +\tl_const:Nn \c_@@_images_directory_string_tl {images} +\tl_const:Nn \c_@@_issue_images_path_string_tl {% \c_@@_issue_path_string_tl/ + \c_@@_images_directory_string_tl} +% \end{macrocode} +% For the name of the file containing the image of the current issue's front cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_issue_frontcover_default_image_file_tl {frontcover} +% \end{macrocode} +% For the name of the file containing the text of the current issue's back cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_issue_backcover_text_file_string_tl {backcover} +\tl_const:Nn \c_@@_backcover_page_file_string_tl {\c_@@_backmatter_directory_string_tl/\c_@@_issue_backcover_text_file_string_tl} +% \end{macrocode} +% For the name of the file containing the text of the special issue's abstract back cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_special_edition_backcover_text_file_string_tl {abstract_backcover} +\tl_const:Nn \c_@@_special_edition_backcover_page_file_string_tl {\c_@@_backmatter_directory_string_tl/\c_@@_special_edition_backcover_text_file_string_tl} +% \end{macrocode} +% For the name of the file of the special issue's picture back cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_special_edition_backcover_picture_string_tl {picture_backcover} +\tl_const:Nn \c_@@_special_edition_backcover_page_picture_string_tl {\c_@@_backmatter_directory_string_tl/\c_@@_special_edition_backcover_picture_string_tl} +% \end{macrocode} +% For the name of the file containing the acronyms. +% \begin{macrocode} +\tl_const:Nn \c_@@_acronyms_file_string_tl {\c_@@_class_name_tl acronyms} +% \end{macrocode} +% For authors' instructions file. +% \begin{macrocode} +\tl_const:Nn \c_@@_authors_instructions_file_extension_tl {ain} +\tl_const:Nn \c_@@_authors_instructions_file_tl {\c_sys_jobname_str.\c_@@_authors_instructions_file_extension_tl} +% \end{macrocode} +% For the few words about the front cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_about_frontcover_string_tl {\`A~propos~de~la~couverture.} +% \end{macrocode} +% For the credit of the front cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_credit_frontcover_string_tl {cr\'edit} +% \end{macrocode} +% For the authors instructions. +% \begin{macrocode} +\tl_const:Nn \c_@@_authors_instructions_string_tl {Instructions~aux~auteurs} +% \end{macrocode} +% For the preliminary versions sent to authors for checking. +% \begin{macrocode} +\tl_const:Nn \c_@@_preliminary_version_string_tl {% + Ce~document~est~une~{\'e}preuve~vous~permettant~de~contr{\^o}ler~l'int{\'e}grit{\'e}~du~ + texte~d'origine~(et~de~la~bibliographie~s'il~y~en~a~une)~de~votre~article~ + {\`a}~para{\^\i}tre~dans~le~prochain~num{\'e}ro~de~la~\gzt*{}.~La~mise~en~page~ + actuelle~n'est~pas~d{\'e}finitive\,:~votre~article~pourra~en~particulier~ne~pas~ + d{\'e}buter~en~haut~d'une~page.% +} +% \end{macrocode} +% For the string that preceeds the title in the \enquote{Tell me} rubric. +% \begin{macrocode} +\tl_const:Nn \c_@@_tellme_extra_title_string_tl {...\c_space_tl} +% \end{macrocode} +% For the separator between a rubric and an article's title in the minitoc. +% \begin{macrocode} +\tl_const:Nn \c_@@_minitoc_rubric_title_separator_string_tl {\c_space_tl\textendash} +% \end{macrocode} +% Names of the pictogram files. +% \begin{macrocode} +\tl_const:Nn \c_@@_mathematics_pictogram_file_name_tl {picto-mathematics} +\tl_const:Nn \c_@@_dossier_pictogram_file_name_tl {picto-dossier} +\tl_const:Nn \c_@@_community_pictogram_file_name_tl {picto-hands} +\tl_const:Nn \c_@@_interview_pictogram_file_name_tl {picto-interview} +\tl_const:Nn \c_@@_teaching_pictogram_file_name_tl {picto-teaching} +\tl_const:Nn \c_@@_parity_pictogram_file_name_tl {picto-parity} +\tl_const:Nn \c_@@_tellme_pictogram_file_name_tl {picto-tellme} +\tl_const:Nn \c_@@_information_pictogram_file_name_tl {picto-information} +\tl_const:Nn \c_@@_rearviewmirror_pictogram_file_name_tl {picto-rearviewmirror} +\tl_const:Nn \c_@@_tribute_pictogram_file_name_tl {picto-tribute} +\tl_const:Nn \c_@@_books_pictogram_file_name_tl {picto-books} +\tl_const:Nn \c_@@_forum_pictogram_file_name_tl {picto-forum} +% \end{macrocode} +% For the miscellaneous rubrics. +% \begin{macrocode} +\tl_const:Nn \c_@@_mathematics_rubric_string_tl {Math\'ematiques} +\tl_const:Nn \c_@@_dossier_rubric_string_tl {Dossier} +\tl_const:Nn \c_@@_community_rubric_string_tl {Vie~de~la~communaut\'e} +\tl_const:Nn \c_@@_interview_rubric_string_tl {Entretien} +\tl_const:Nn \c_@@_teaching_rubric_string_tl {Diffusion~des~savoirs} +\tl_const:Nn \c_@@_parity_rubric_string_tl {Parit\'e} +\tl_const:Nn \c_@@_tellme_rubric_string_tl {Raconte-moi} +\tl_const:Nn \c_@@_information_rubric_string_tl {Information} +\tl_const:Nn \c_@@_rearviewmirror_rubric_string_tl {R\'etroviseur} +\tl_const:Nn \c_@@_tribute_rubric_string_tl {Carnet} +% \tl_const:Nn \c_@@_books_rubric_string_tl {Recension} +\tl_const:Nn \c_@@_books_rubric_string_tl {Livres} +\tl_const:Nn \c_@@_latex_rubric_string_tl {Astuces~\LaTeX{}} +\tl_const:Nn \c_@@_forum_rubric_string_tl {Tribune~libre} +\tl_const:Nn \c_@@_published_with_help_of_string_tl {Publi\'e~avec~le~concours~de~:} +\tl_const:Nn \c_@@_advertisement_directory_string_tl {advertisement/} +\tl_const:Nn \c_@@_advertisement_string_tl {Publicit\'e} +\tl_const:Nn \c_@@_moralreport_rubric_string_tl {Rapport~moral} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For the long and short forms of \textsc{smf}. +% \begin{macrocode} +\tl_const:Nn \c_@@_smf_short_string_tl {\textsc{smf}} +\tl_const:Nn \c_@@_smf_short_pdf_string_tl {SMF} +\tl_const:Nn \c_@@_smf_string_tl {Soci\'et\'e~Math\'ematique~de~France} +% \end{macrocode} +% For the long and short forms of \enquote{c'est-à-dire} and +% \enquote{C'est-à-dire} (\enquote{that is} and \enquote{That is}). +% \begin{macrocode} +\tl_const:Nn \c_@@_cad_short_string_tl {c.-\`a-d.} +\tl_const:Nn \c_@@_cad_string_tl {c'est-\`a-dire} +\tl_const:Nn \c_@@_Cad_short_string_tl {C.-\`a-d.} +\tl_const:Nn \c_@@_Cad_string_tl {C'est-\`a-dire} +% \end{macrocode} +% For the footer text. +% \begin{macrocode} +\tl_const:Nn \c_@@_footer_string_tl { + \c_@@_footer_size_font_tl + \textcolor{@@_smf_number_color}{\text_uppercase:n {\c_@@_smf_short_string_tl}} + \c_space_tl + \textcolor{@@_date_color}{ + \textendash{}\c_space_tl + \bool_if:NTF {\g_@@_moral_report_bool} { + \text_uppercase:n { \c_@@_moralreport_rubric_string_tl } + }{ + \text_uppercase:n {\c_@@_journal_short_title_string_tl} + \bool_if:nF { \g_@@_inside_frontcover_bool || \g_@@_backmatter_bool || {\int_compare_p:nNn {\g_@@_issue_number_int}={0}} } + { + \c_space_tl\textendash{}\c_space_tl + \l_@@_uppercased_date_format\displaydate{@@_date} + \bool_if:NF {\g_@@_special_edition_bool} { + \c_space_tl + \textendash{}\c_space_tl + \textcolor{@@_smf_number_color}{\No\int_use:N\g_@@_issue_number_int} + } + } + } + } +} +% \end{macrocode} +% For the name of the file containing the \textsc{smf} logo. +% \begin{macrocode} + \file_if_exist:nTF { logo_SMF.pdf }{% + \tl_const:Nn \c_@@_smf_logo_file_string_tl {logo_SMF} + }{ + \tl_const:Nn \c_@@_smf_logo_file_string_tl {example-image} + } +% \end{macrocode} +% For the name of the file containing the bibliography of the current issue. +% \begin{macrocode} +% \tl_const:Nn \c_@@_issue_bib_file_string_tl {issue-\c_sys_jobname_str.bib} +\tl_const:Nn \c_@@_issue_bib_file_suffix_string_tl {@@} +\tl_const:Nn \c_@@_issue_bib_file_string_tl {\c_sys_jobname_str\c_@@_issue_bib_file_suffix_string_tl.bib} +\tl_const:Nn \c_@@_issue_bib_path_string_tl {\c_@@_issue_bib_file_string_tl} +% \end{macrocode} +% For the prefix of the bibliographic key of each article. +% \begin{macrocode} +\bool_if:NTF {\g_@@_special_edition_bool} { + \tl_const:Nn \c_@@_issue_bib_key_tl {special-edition} +}{ + \tl_const:Nn \c_@@_issue_bib_key_tl {\int_use:N \g_@@_issue_number_int} +} +% \end{macrocode} +% For the interview title. +% \begin{macrocode} +\tl_const:Nn \c_@@_interview_title_string_tl {En~apart\'e~avec~} +% \end{macrocode} +% For the asides opening and eventuelly closing punctuation marks. +% \begin{macrocode} +\tl_const:Nn \c_@@_aside_string_tl {--} +% \end{macrocode} +% For the draft watermark. +% \begin{macrocode} +\tl_const:Nn \c_@@_draftwatermark_string_tl {draft} +% \end{macrocode} +% For the text accompagnying the date displayed in the footer of the authors' versions. +% \begin{macrocode} +\tl_const:Nn \c_@@_compiled_string_tl { + \int_compare:nNnT {\g_@@_issue_number_int}={0} { + \c_@@_footer_size_font_tl + \IfLanguageName{french}{ + Compil\'e~le~ + }{ + Compiled~on~ + } + \today + } +} +% \end{macrocode} +% +% % \begin{macro}{smf} +% % \begin{macro}{issn} +% % \begin{macro}{isbn} +% % \begin{macro}{cv} +% % \begin{macrocode} +% \newacronym{smf}{smf}{\c_@@_smf_string_tl}% +% \newacronym{issn}{issn}{International Standard Serial Number}% +% \newacronym{isbn}{isbn}{International Standard Book Number}% +% \newacronym{cv}{cv}{curriculum vit\ae}% +% \end{macrocode} +% % \end{macro} +% % \end{macro} +% % \end{macro} +% % \end{macro} +% +% \subsection{Booleans} +% +% We now declare the booleans that will be used. +% +% \begin{macro}{\g_@@_frontcover_bool} +% \begin{macro}{\g_@@_inside_frontcover_bool} +% \begin{macro}{\g_@@_inside_backcover_bool} +% \begin{macro}{\g_@@_frontmatter_bool} +% \begin{macro}{\g_@@_rubric_bool} +% \begin{macro}{\g_@@_interview_rubric_bool} +% \begin{macro}{\g_@@_mainmatter_bool} +% \begin{macro}{\g_@@_backmatter_bool} +% \begin{macro}{\g_@@_backcover_bool} +% The following booleans will be used to test wheter we are respectively in the +% front cover, in the inside front cover, in the frontmatter, in (first page +% of) a rubric, in the mainmatter. +% \begin{macrocode} +\bool_new:N \g_@@_frontcover_bool +\bool_new:N \g_@@_inside_frontcover_bool +\bool_new:N \g_@@_inside_backcover_bool +\bool_new:N \g_@@_frontmatter_bool +\bool_new:N \g_@@_rubric_bool +\bool_new:N \g_@@_interview_rubric_bool +\bool_new:N \g_@@_tellme_rubric_bool +\bool_new:N \g_@@_rearviewmirror_rubric_bool +\bool_new:N \g_@@_books_rubric_bool +\bool_new:N \g_@@_mainmatter_bool +\bool_new:N \g_@@_backmatter_bool +\bool_new:N \g_@@_backcover_bool +\bool_new:N \g_@@_frontcover_without_minitoc_bool +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\g_@@_previous_article_with_bibliography_or_minibio_bool} +% The following boolean will be used to test, for a given (not first) article +% of a rubric, whether the previous article ends with a bibliography or +% a minibio, in order to adjust the vertical space before its \enquote{bullet +% and rule}. +% \begin{macrocode} +\bool_new:N \g_@@_previous_article_with_bibliography_or_minibio_bool +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\g_@@_advertisement_bool} +% The following boolean will be used to test wheter we are inside +% an advertisement page. +% \begin{macrocode} +\bool_new:N \g_@@_advertisement_bool +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\g_@@_multicols_bool} +% The following boolean will be used to test wheter we are inside +% a \pkg{multicol}'s "multicols" environment. +% \begin{macrocode} +\bool_new:N \g_@@_multicols_bool +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\g_@@_refsection_bool} +% The following boolean will be used to test wheter we are inside +% a \pkg{biblatex}'s "refsection" environment. +% \begin{macrocode} +\bool_new:N \g_@@_refsection_bool +% \end{macrocode} +% \end{macro} +% +% \subsection{Dimensions} +% +% \subsubsection{Geometry of the page} +% +% \begin{macro}{\c_@@_rubrics_abstract_width_dim} +% \begin{macro}{\c_@@_rubrics_head_text_abstract_width_dim} +% \begin{macro}{\c_@@_rubrics_head_text_no_abstract_width_dim} +% \begin{macro}{\l_@@_rubrics_head_text_width_dim} +% We declare the constant (default) dimensions of the boxes containing the +% abstract and head text rubrics. +% \begin{macrocode} +\dim_const:Nn \c_@@_rubrics_abstract_width_dim { 85mm} +\dim_const:Nn \c_@@_rubrics_head_text_abstract_width_dim { 50mm} +\dim_const:Nn \c_@@_rubrics_head_text_no_abstract_width_dim +{ \c_@@_rubrics_abstract_width_dim + \c_@@_rubrics_head_text_abstract_width_dim} +\dim_new:N \l_@@_rubrics_head_text_width_dim +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c_@@_offset_dim} +% \begin{macro}{\c_@@_paperheight_dim} +% \begin{macro}{\c_@@_paperwidth_dim} +% \begin{macro}{\c_@@_topmargin_dim} +% \begin{macro}{\c_@@_headsep_dim} +% \begin{macro}{\c_@@_botmargin_dim} +% \begin{macro}{\c_@@_innermargin_dim} +% \begin{macro}{\c_@@_outermargin_dim} +% \begin{macro}{\c_@@_footskip_dim} +% \begin{macro}{\c_@@_header_line_width_dim} +% \begin{macro}{\c_@@_header_line_yshift_dim} +% We first declare the default page layout constant dimensions. +% \begin{macrocode} +\dim_const:Nn \c_@@_layoutheight_dim { 270mm} +\dim_const:Nn \c_@@_layoutwidth_dim { 210mm} +% \end{macrocode} +% +% We define a \enquote{printer} layout offset dimension +% "\c_@@_printer_layoutoffset_dim", fixed by the printer to be \SI{5}{\mm}. +% \begin{macrocode} +\dim_const:Nn \c_@@_printer_layoutoffset_dim { 5mm} +% \end{macrocode} +% +% We define a \enquote{potential} layout offset dimension which is non-zero (and +% the equal to \enquote{printer} layout offset dimension) iff the output is +% prepared for the printer ("\g_@@_for_printer_bool" flag equals true). +% \begin{macrocode} +\bool_if:NTF {\g_@@_for_printer_bool} { + \dim_const:Nn \c_@@_potential_layoutoffset_dim { \c_@@_printer_layoutoffset_dim} +}{ + \dim_const:Nn \c_@@_potential_layoutoffset_dim {\c_zero_dim} +} +% \end{macrocode} +% +% We define a \enquote{printer} binding dimension +% "\c_@@_printer_bindingoffset_dim", fixed by the printer to have different +% values depending on some total pages thresholds. If the binding dimension is +% denoted by $b$ (and expressed in millimeters) and the total page number of the +% document\footnote{Except cover pages, that is the \enquote{real} total page +% number minus $4$.} is denoted by $N$, the thresholds are as follows: +% \begin{equation}\label{binding} +% b= +% \begin{cases} +% 0 & \text{ si } N < 68 \\ +% 3 & \text{ si } 68\leq N<80 \\ +% 3.5 & \text{ si } 80\leq N<88 \\ +% 3.9 & \text{ si } 88\leq N<96 \\ +% 4.1 & \text{ si } 96\leq N<104 \\ +% 4.5 & \text{ si } 104\leq N<120 \\ +% 5 & \text{ si } N\geq 120 +% \end{cases} +% \end{equation} +% +% We define the thresholds: +% \begin{macrocode} +\int_const:Nn \c_@@_thresold_a_int {68} +\int_const:Nn \c_@@_thresold_b_int {80} +\int_const:Nn \c_@@_thresold_c_int {88} +\int_const:Nn \c_@@_thresold_d_int {96} +\int_const:Nn \c_@@_thresold_e_int {104} +\int_const:Nn \c_@@_thresold_f_int {120} +% \end{macrocode} +% and the corresponding binding dimensions: +% \begin{macrocode} +\dim_const:Nn \c_@@_bindingoffset_a_dim {3mm} +\dim_const:Nn \c_@@_bindingoffset_b_dim {3.5mm} +\dim_const:Nn \c_@@_bindingoffset_c_dim {3.9mm} +\dim_const:Nn \c_@@_bindingoffset_d_dim {4.1mm} +\dim_const:Nn \c_@@_bindingoffset_e_dim {4.5mm} +\dim_const:Nn \c_@@_bindingoffset_f_dim {5mm} +% \end{macrocode} +% +% In order to know the total pages number of the document (store in +% "\g_@@_total_page_number_int"), we need first to specify the +% \enquote{external} document whom \File{.aux} will be read. +% \begin{macrocode} +\int_new:N \g_@@_total_pages_number_int% +\int_new:N \g_@@_total_inside_pages_number_int% +\zexternaldocument[self]{\jobname}% +% \end{macrocode} +% +% We extract the total pages number thanks to "\zref@extractdefault" from +% \Package{zref-totpages}. +% \begin{macrocode} +\int_gset:Nn \g_@@_total_pages_number_int { \zref@extractdefault{selfLastPage}{abspage}{0} } +\int_gset:Nn \g_@@_total_inside_pages_number_int { \g_@@_total_pages_number_int - 4 } +% \end{macrocode} +% +% The \enquote{printer} binding dimension is now store in +% "\c_@@_printer_bindingoffset_dim" following \vref{binding}. +% +% \begin{macrocode} +\int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_a_int} +{ + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_zero_dim } +}{ + \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_b_int} + { + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_a_dim } + }{ + \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_c_int} + { + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_b_dim } + }{ + \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_d_int} + { + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_c_dim } + }{ + \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_e_int} + { + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_d_dim } + }{ + \int_compare:nNnTF {\g_@@_total_inside_pages_number_int}<{\c_@@_thresold_f_int} + { + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_e_dim } + }{ + \dim_const:Nn \c_@@_printer_bindingoffset_dim { \c_@@_bindingoffset_f_dim } + } + } + } + } + } +} +% \end{macrocode} +% +% The binding offset is applied iff the front cover is required ("frontcover" +% option), which implies the output is prepared for the printer, with non-zero +% offset ("\g_@@_for_printer_bool" flag equals true). +% \begin{macrocode} +\bool_if:NTF {\g_@@_cover_bool} { + \dim_const:Nn \c_@@_potential_bindingoffset_dim { \c_@@_printer_bindingoffset_dim } +}{ + \dim_const:Nn \c_@@_potential_bindingoffset_dim {\c_zero_dim} +} +% \end{macrocode} +% +% The paper height is rather simple: it is always the layout height dimension +% plus 2 times (top and bottom) the layout offset dimension (which turns to be +% non-zero iff the output is prepared for the printer). +% \begin{macrocode} +\dim_const:Nn \c_@@_paperheight_dim { \c_@@_layoutheight_dim+2\c_@@_potential_layoutoffset_dim} +% \end{macrocode} +% +% The paper width is more complicated: it is the layout width dimension plus: +% \begin{itemize} +% \item the \enquote{potential} binding offset (which turns to be non-zero iff +% only the cover page is output), +% \item the layout offset dimension (which turns to be non-zero iff the output +% is prepared for the printer): +% \begin{description} +% \item[if for the cover pages] just 1 time, +% \item[if for the other pages] 2 times. +% \end{description} +% \end{itemize} +% \begin{macrocode} +\bool_if:NTF {\g_@@_cover_bool} { + \dim_const:Nn \c_@@_paperwidth_dim { + \c_@@_layoutwidth_dim + + + \c_@@_potential_layoutoffset_dim + +\c_@@_potential_bindingoffset_dim + } +}{ + \dim_const:Nn \c_@@_paperwidth_dim { + \c_@@_layoutwidth_dim + + + 2 + \c_@@_potential_layoutoffset_dim + +\c_@@_potential_bindingoffset_dim + } +} +% \end{macrocode} +% +% The image width is the layout width plus the (non-zero) printer layout offset +% dimension: +% \begin{macrocode} +\dim_const:Nn \c_@@_frontcover_image_width_dim { + \c_@@_layoutwidth_dim + + + \c_@@_printer_layoutoffset_dim +} +\dim_const:Nn \c_@@_topmargin_dim { 31mm} +\dim_const:Nn \c_@@_topmargin_frontcover_dim { + \c_@@_topmargin_dim + + 30mm +} +\dim_const:Nn \c_@@_topmargin_inside_cover_dim { + \c_@@_topmargin_dim + +10mm +} +\dim_const:Nn \c_@@_topmargin_front_matter_dim { + \c_@@_topmargin_inside_cover_dim +} +% \dim_const:Nn \c_@@_topmargin_backcover_dim { +% \c_@@_topmargin_frontcover_dim +% } +\dim_const:Nn \c_@@_headsep_dim { 24mm} +\dim_const:Nn \c_@@_headsep_frontcover_dim { + \c_@@_headsep_dim + +31mm + % -\c_@@_potential_layoutoffset_dim +} +\dim_const:Nn \c_@@_headsep_inside_frontcover_dim { + \c_@@_headsep_dim + +7mm +} +\dim_const:Nn \c_@@_headsep_front_matter_dim { + \c_@@_headsep_inside_frontcover_dim +} +\dim_const:Nn \c_@@_headheight_dim { \c_zero_dim } +\dim_const:Nn \c_@@_botmargin_dim { 30mm} +\dim_const:Nn \c_@@_footskip_dim { 26mm} +% \end{macrocode} +% +% Inner margins of the initial issue (\#~143) were too small. We make them +% definitively bigger as of \SI{5}{\milli\meter} ("\c_@@_extra_margin_dim") and +% make the outer margins smaller of the same dimension. +% \begin{macrocode} +\dim_const:Nn \c_@@_extra_margin_dim { 5mm } +\dim_const:Nn \c_@@_innermargin_dim { 15mm - \c_@@_potential_bindingoffset_dim + \c_@@_extra_margin_dim} +\dim_const:Nn \c_@@_outermargin_dim { 30mm - \c_@@_extra_margin_dim } +\dim_const:Nn \c_@@_inside_cover_box_width_dim { 165mm }% +\dim_const:Nn \c_@@_innermargin_inside_cover_dim { + (\c_@@_layoutwidth_dim - \c_@@_inside_cover_box_width_dim)/2 + - \c_@@_potential_bindingoffset_dim + % + \c_@@_adjustmargin_dim +} +\dim_const:Nn \c_@@_outermargin_inside_cover_dim { + (\c_@@_layoutwidth_dim - \c_@@_inside_cover_box_width_dim)/2 + % - \c_@@_adjustmargin_dim +} +\dim_const:Nn \c_@@_innermargin_backcover_dim { 10mm } +\dim_const:Nn \c_@@_outermargin_backcover_dim { \c_@@_innermargin_backcover_dim } +\dim_const:Nn \c_@@_topmargin_backcover_dim { \c_@@_innermargin_backcover_dim } +\dim_const:Nn \c_@@_bottommargin_backcover_dim { \c_@@_innermargin_backcover_dim } +\dim_const:Nn \c_@@_frontcover_image_height_dim { 160mm} +\dim_const:Nn \c_@@_radius_arc_dim { 85mm }% +\dim_const:Nn \c_@@_frontmatter_headtext_xshift_dim { 19mm }% +\dim_const:Nn \c_@@_frontmatter_headtext_o_xshift_dim { + -\c_@@_frontmatter_headtext_xshift_dim -\c_@@_potential_layoutoffset_dim% +}% +\dim_const:Nn \c_@@_frontmatter_headtext_e_xshift_dim { + \c_@@_frontmatter_headtext_xshift_dim +\c_@@_potential_layoutoffset_dim% +}% +\dim_const:Nn \c_@@_frontmatter_headtext_yshift_dim { -6.5mm-\c_@@_potential_layoutoffset_dim }% +\dim_const:Nn \c_@@_header_line_width_dim { 0.25mm} +\dim_const:Nn \c_@@_header_line_yshift_dim { -1mm-\c_@@_header_line_width_dim}% +\dim_const:Nn \c_@@_footer_background_height_dim { 10mm + \c_@@_potential_layoutoffset_dim } +\dim_const:Nn \c_@@_front_matter_extra_innermargin_dim { 28mm } +\dim_const:Nn \c_@@_front_matter_extra_outermargin_dim { 7mm } +\dim_const:Nn \c_@@_inside_cover_offset_dim { \c_zero_dim }% +% \dim_const:Nn \c_@@_inside_cover_offset_dim { 7.5mm }% +\dim_const:Nn \c_@@_pictogram_width_dim { 23mm }% +\dim_const:Nn \c_@@_header_xshift_dim { \c_@@_pictogram_width_dim-6mm }% +\dim_const:Nn \c_@@_header_yshift_dim { 5mm }% +\dim_const:Nn \c_@@_xshift_arccircle_A_dim { \c_@@_rubrics_abstract_width_dim+\c_@@_innermargin_dim+10mm+\c_@@_potential_layoutoffset_dim }% +\dim_const:Nn \c_@@_yshift_arccircle_A_dim { -22mm-\c_@@_potential_layoutoffset_dim }% +\dim_const:Nn \c_@@_xshift_arccircle_B_dim {% + (\c_@@_rubrics_abstract_width_dim+\c_@@_innermargin_dim)/2% + % \c_@@_innermargin_dim+(\c_@@_rubrics_abstract_width_dim/2)% + % \c_@@_xshift_arccircle_A_dim/2 +}% +\dim_const:Nn \c_@@_yshift_arccircle_B_dim { -\c_@@_potential_layoutoffset_dim }% +\dim_const:Nn \c_@@_xshift_arccircle_C_dim { \c_@@_potential_layoutoffset_dim-5mm }% +\dim_const:Nn \c_@@_yshift_arccircle_C_dim { -19.75mm-\c_@@_potential_layoutoffset_dim }% +\dim_const:Nn \c_@@_book_review_frontcover_extend_dim { 12mm }% +\dim_const:Nn \c_@@_tcb_left_dim { 4mm }% +\dim_const:Nn \c_@@_tcb_boxsep_dim { 1mm }% +\dim_const:Nn \c_@@_tikz_dot_diameter_dim { 0.33mm }% +\dim_const:Nn \c_@@_tikz_dot_spacing_dim { 1.05mm }% +\dim_const:Nn \c_@@_rubric_extra_xoffset_dim { -\c_@@_innermargin_dim/2 }% +\dim_const:Nn \c_@@_rubric_xoffset_dim { 14.5mm }% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c_@@_boxed_issue_number_width_dim} +% \begin{macro}{\c_@@_boxed_issue_number_height_dim} +% We declare the constant dimensions of the box containing the issue number. +% \begin{macrocode} +\dim_const:Nn \c_@@_boxed_issue_number_width_dim { 30mm} +\dim_const:Nn \c_@@_boxed_issue_number_height_dim { 8mm} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\l_thumbnail_width_dim} +% We declare the width of the possible thumbnail glued to the box containing +% the issue number. +% \begin{macrocode} +\dim_new:N \l_@@_thumbnail_width_dim +\dim_set:Nn \l_@@_thumbnail_width_dim {30mm} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\g_@@_abstract_box_width_dim} +% \begin{macrocode} +\dim_new:N \g_@@_abstract_box_width_dim +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c_@@_original_parindent_dim} +% \begin{macrocode} +\dim_new:N \c_@@_original_parindent_dim +\dim_gset_eq:NN \c_@@_original_parindent_dim \parindent +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l_@@_between_rubric_head_text_and_abstract_dim} +% \begin{macrocode} +\dim_new:N \l_@@_between_rubric_head_text_and_abstract_dim +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\g_@@_minitoc_circle_diameter_dim} +% \begin{macro}{\g_@@_minitoc_textwidth_dim} +% \begin{macro}{\g_@@_minitoc_xshift_dim} +% \begin{macro}{\g_@@_minitoc_yshift_dim} +% \begin{macro}{\c_@@_minitoc_from_circle_xshift_dim} +% \begin{macro}{\c_@@_minitoc_from_circle_yshift_dim} +% \begin{macrocode} +\dim_new:N \g_@@_minitoc_circle_diameter_dim +\dim_new:N \g_@@_minitoc_textwidth_dim +\dim_new:N \g_@@_minitoc_xshift_dim +\dim_new:N \g_@@_minitoc_yshift_dim +\dim_gset:Nn \g_@@_minitoc_circle_diameter_dim {142mm} +\dim_gset:Nn \g_@@_minitoc_textwidth_dim {65mm} +\dim_gset:Nn \g_@@_minitoc_xshift_dim {-22mm} +\dim_gset:Nn \g_@@_minitoc_yshift_dim {30mm} +\dim_const:Nn \c_@@_minitoc_from_circle_xshift_dim {-15mm} +\dim_const:Nn \c_@@_minitoc_from_circle_yshift_dim {-\c_@@_minitoc_from_circle_xshift_dim} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c_@@_footer_height_font_dim} +% We declare the height of the font displayed in the footer. +% \begin{macrocode} +\dim_const:Nn \c_@@_footer_height_font_dim {3mm} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c_@@_minitoc_list_labelsep_dim} +% \begin{macrocode} +\dim_const:Nn \c_@@_minitoc_list_labelsep_dim {1em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c_@@_authors_photos_width_dim} +% \begin{macrocode} +\dim_const:Nn \c_@@_authors_photos_width_dim {16mm} +\dim_const:Nn \c_@@_authors_photos_box_width_dim {\c_@@_authors_photos_width_dim + + 2mm} +\dim_new:N \l_@@_minibio_width_dim +% \end{macrocode} +% \end{macro} +% +% We set the default geometry of the page. +% \begin{macrocode} +\geometry{% + papersize={\c_@@_paperwidth_dim,\c_@@_paperheight_dim} +} +% \end{macrocode} +% +% We create a constant token list that contains the geometry of the front cover. +% \begin{macrocode} +\bool_if:NTF {\g_@@_cover_bool} { + \tl_const:Nn \c_@@_frontcover_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutvoffset=\c_@@_potential_layoutoffset_dim + ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_frontcover_dim + ,headsep=\c_@@_headsep_frontcover_dim + ,headheight=\c_@@_headheight_dim + % ,bottom=\c_zero_dim + ,bottom=11mm + ,footskip=\c_zero_dim + ,outer=\c_zero_dim + ,inner=\c_@@_potential_layoutoffset_dim + ,nomarginpar% + }% +}{ + \tl_const:Nn \c_@@_frontcover_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutoffset=\c_@@_potential_layoutoffset_dim + ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_frontcover_dim + ,headsep=\c_@@_headsep_frontcover_dim + ,headheight=\c_@@_headheight_dim + % ,bottom=\c_zero_dim + ,bottom=11mm + ,footskip=\c_zero_dim + ,hmargin=\c_@@_potential_layoutoffset_dim + ,nomarginpar% + }% +} +% \end{macrocode} +% +% We create a constant token list that contains the geometry of the inside front +% and back covers. +% \begin{macrocode} +\bool_if:NTF {\g_@@_cover_bool} { + \tl_const:Nn \c_@@_inside_cover_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutvoffset=\c_@@_potential_layoutoffset_dim + ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_inside_cover_dim + ,headheight=\c_@@_headheight_dim + ,headsep=\c_@@_headsep_inside_frontcover_dim + ,bottom=\c_@@_botmargin_dim + ,footskip=\c_@@_footskip_dim + ,inner=\c_@@_innermargin_inside_cover_dim-\c_@@_potential_layoutoffset_dim + ,outer=\c_@@_outermargin_inside_cover_dim+\c_@@_potential_layoutoffset_dim + ,nomarginpar% + }% +}{ + \tl_const:Nn \c_@@_inside_cover_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutoffset=\c_@@_potential_layoutoffset_dim + ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_inside_cover_dim + ,headheight=\c_@@_headheight_dim + ,headsep=\c_@@_headsep_inside_frontcover_dim + ,bottom=\c_@@_botmargin_dim + ,footskip=\c_@@_footskip_dim + ,inner=\c_@@_innermargin_inside_cover_dim + ,outer=\c_@@_outermargin_inside_cover_dim + ,nomarginpar% + }% +} +% \end{macrocode} +% +% We create a constant token list that contains the geometry of the front matter. +% \begin{macrocode} +\tl_const:Nn \c_@@_front_matter_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutoffset=\c_@@_potential_layoutoffset_dim + % ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_front_matter_dim% + ,headheight=\c_@@_headheight_dim + ,headsep=\c_@@_headsep_front_matter_dim + ,bottom=\c_@@_botmargin_dim + ,footskip=\c_@@_footskip_dim% + ,inner=\c_@@_innermargin_dim+\c_@@_front_matter_extra_innermargin_dim% + ,outer=\c_@@_outermargin_dim+\c_@@_front_matter_extra_outermargin_dim% + ,nomarginpar% +}% +% \end{macrocode} +% +% We create a constant token list that contains the geometry of the main pages. +% \begin{macrocode} +\tl_const:Nn \c_@@_main_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutoffset=\c_@@_potential_layoutoffset_dim + % ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_dim-15mm% + ,headheight=\c_@@_headheight_dim + ,headsep=\c_@@_headsep_dim-18mm + ,bottom=\c_@@_botmargin_dim + ,footskip=\c_@@_footskip_dim + ,inner=\c_@@_innermargin_dim + ,outer=\c_@@_outermargin_dim +}% +% \end{macrocode} +% +% We create a constant token list that contains the geometry of the back cover. +% \begin{macrocode} +\tl_const:Nn \c_@@_backcover_geometry_tl {% + ,layoutsize={\c_@@_layoutwidth_dim,\c_@@_layoutheight_dim} + ,layoutoffset=\c_@@_potential_layoutoffset_dim + % ,bindingoffset=\c_@@_potential_bindingoffset_dim + ,top=\c_@@_topmargin_backcover_dim% + % ,top=\c_@@_topmargin_dim-15mm% + % ,headheight=\c_@@_headheight_dim + % ,headsep=\c_@@_headsep_dim-18mm + ,bottom=\c_@@_bottommargin_backcover_dim + % ,footskip=\c_@@_footskip_dim + ,inner=\c_@@_innermargin_backcover_dim + ,outer=\c_@@_outermargin_backcover_dim + ,nomarginpar + ,hcentering + ,twoside=false +} +% \end{macrocode} +% +% \subsection{Skips} +% +% \begin{macrocode} +\skip_const:Nn \c_@@_editorial_presidentmessage_parskip_skip { 12pt plus 2pt minus .8pt }% +\skip_const:Nn \c_@@_mainmatter_parskip_skip { 2pt plus .5pt minus .2pt }% +% \end{macrocode} +% +% \section{Options} +% +% In this section, options used by some of the document commands defined by the +% class are treated. +% +% \subsection{Issues options} +% +% \begin{macro}{\g_@@_issue_number_int} +% \begin{macro}{\g_@@_issue_month_int} +% \begin{macro}{\g_@@_issue_year_int} +% Some variables which are involved in options are created. +% \begin{macrocode} +\int_new:N \g_@@_issue_number_int +\int_new:N \g_@@_issue_month_int +\int_new:N \g_@@_issue_year_int +\tl_new:N \g_@@_frontcover_image_options_tl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{number} +% \begin{macro}{month} +% \begin{macro}{year} +% The keys options are created. +% \begin{macrocode} +\keys_define:nn { gzt/issuesetup } +{ + number .int_gset:N = \g_@@_issue_number_int, + month .int_gset:N = \g_@@_issue_month_int, + year .int_gset:N = \g_@@_issue_year_int, +% \end{macrocode} +% +% All these options, when used, must receive a value. +% \begin{macrocode} + number .value_required:n = true, + month .value_required:n = true, + year .value_required:n = true, +% \end{macrocode} +% +% If "number" option is not used, its initial value is set to $0$. +% number. +% \begin{macrocode} + number .initial:n = 0, +% \end{macrocode} +% +% The options of the front cover image could be set within "\issuesetup"'s +% argument. +% \begin{macrocode} + frontcoverimageoptions .tl_gset:N = \g_@@_frontcover_image_options_tl +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Journal options} +% +% \begin{macro}{\l_@@_journal_publisher_tl} +% \begin{macro}{\l_@@_journal_address_tl} +% \begin{macro}{\l_@@_journal_phone_tl} +% \begin{macro}{\l_@@_journal_fax_tl} +% \begin{macro}{\l_@@_journal_email_tl} +% \begin{macro}{\l_@@_journal_url_tl} +% \begin{macro}{\l_@@_journal_issn_tl} +% \begin{macro}{\l_@@_journal_isbn_tl} +% Some variables which are involved in options are created. +% \begin{macrocode} +\tl_new:N \l_@@_journal_publisher_tl +\tl_new:N \l_@@_journal_address_tl +\tl_new:N \l_@@_journal_phone_tl +\tl_new:N \l_@@_journal_fax_tl +\tl_new:N \l_@@_journal_email_tl +\tl_new:N \l_@@_journal_url_tl +\tl_new:N \l_@@_journal_issn_tl +\tl_new:N \l_@@_journal_isbn_tl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{publisher} +% \begin{macro}{address} +% \begin{macro}{phone} +% \begin{macro}{fax} +% \begin{macro}{email} +% \begin{macro}{url} +% \begin{macro}{issn} +% \begin{macro}{isbn} +% The keys options are created. +% \begin{macrocode} +\keys_define:nn { gzt/journalsetup } +{ + publisher .tl_set:N = \l_@@_journal_publisher_tl, + address .tl_set:N = \l_@@_journal_address_tl, + phone .tl_set:N = \l_@@_journal_phone_tl, + fax .tl_set:N = \l_@@_journal_fax_tl, + email .tl_set:N = \l_@@_journal_email_tl, + url .tl_set:N = \l_@@_journal_url_tl, + issn .tl_set:N = \l_@@_journal_issn_tl, + isbn .tl_set:N = \l_@@_journal_isbn_tl, +% \end{macrocode} +% +% All these options, when used, must receive a value. +% \begin{macrocode} + publisher .value_required:n = true, + address .value_required:n = true, + phone .value_required:n = true, + fax .value_required:n = true, + email .value_required:n = true, + url .value_required:n = true, + issn .value_required:n = true, + isbn .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Titles options} +% +% \begin{macro}{shorttitle} +% \begin{macro}{minishorttitle} +% \begin{macro}{notintoc} +% Some keys options for article's title are created: +% \begin{itemize} +% \item "shorttitle" for the possible alternative title to appear in the table +% of contents and in the headers, +% \item "minishorttitle" for the possible alternative title to appear in the +% mini table of contents of the front cover, +% \item "notintoc", a flag that, if true, prevents the title to appear in the +% table of contents. +% \end{itemize} +% +% \begin{macrocode} +\keys_define:nn { gzt/title } +{ + short .tl_gset:N = \g_@@_short_title_tl, + minishort .tl_gset:N = \g_@@_mini_short_title_tl, + notintoc .bool_gset:N = \g_@@_title_not_in_toc_bool, +% \end{macrocode} +% +% The following options, when used, must receive a value. +% \begin{macrocode} + short .value_required:n = true, + minishort .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Subtitles options} +% +% \begin{macro}{shortsubtitle} +% \begin{macro}{minishortsubtitle} +% \begin{macro}{notintoc} +% Some keys options for article's title are created: +% \begin{itemize} +% \item "shorttitle" for the possible alternative title to appear in the table +% of contents and in the headers, +% \item "minishorttitle" for the possible alternative title to appear in the +% mini table of contents of the front cover, +% \item "notintoc", a flag that, if true, prevents the title to appear in the +% table of contents. +% \end{itemize} +% +% \begin{macrocode} +\keys_define:nn { gzt/subtitle } +{ + short .tl_gset:N = \g_@@_short_subtitle_tl, + minishort .tl_gset:N = \g_@@_mini_short_subtitle_tl, + notintoc .bool_gset:N = \g_@@_subtitle_not_in_toc_bool, +% \end{macrocode} +% +% The following options, when used, must receive a value. +% \begin{macrocode} + short .value_required:n = true, + minishort .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Rubrics options} +% +% \begin{macrocode} +\keys_define:nn { gzt/rubric } +{ + abstract .tl_gset:N = \g_@@_rubric_abstract_tl, + title .tl_gset:N = \g_@@_rubric_title_tl, + pictogram .tl_gset:N = \g_@@_rubric_pictofile_tl, +% \end{macrocode} +% +% The following options, when used, must receive a value. +% \begin{macrocode} + abstract .value_required:n = true, + title .value_required:n = true, + pictogram .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Minitoc options} +% +% \begin{macro}{list} +% A "list" (boolean) key option for "minitoc" environment is created: if true, +% "minitoc" should contains "\item" just as a list and the resulting list will be +% typeset in a special way. +% +% \begin{macrocode} +\keys_define:nn { gzt/minitoc } +{ + list .bool_gset:N = \g_@@_minitoc_list_bool, + help .bool_gset:N = \g_@@_minitoc_help_bool, + diameter .dim_gset:N = \g_@@_minitoc_circle_diameter_dim, + textwidth .dim_gset:N = \g_@@_minitoc_textwidth_dim, + xshift .dim_gset:N = \g_@@_minitoc_xshift_dim, + yshift .dim_gset:N = \g_@@_minitoc_yshift_dim, +% \end{macrocode} +% +% The following options, when used, must receive a value. +% \begin{macrocode} + diameter .value_required:n = true, + textwidth .value_required:n = true, + xshift .value_required:n = true, + yshift .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Authors options} +% +% \begin{macro}{affiliation} +% \begin{macro}{email} +% \begin{macro}{minibio} +% \begin{macro}{photo} +% \begin{macro}{webpage} +% The keys options are created. +% \begin{macrocode} +\keys_define:nn { gzt/authors } +{ + affiliation .tl_gset:N = \g_@@_people_affiliation_tl, + email .tl_gset:N = \g_@@_people_email_tl, + minibio .tl_gset:N = \g_@@_people_minibio_tl, + photo .tl_gset:N = \g_@@_people_photo_tl, + webpage .tl_gset:N = \g_@@_people_webpage_tl, +% \end{macrocode} +% +% All these options, when used, must receive a value. +% \begin{macrocode} + affiliation .value_required:n = true, + email .value_required:n = true, + minibio .value_required:n = true, + photo .value_required:n = true, + webpage .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Interviewee options} +% +% \begin{macro}{\g_@@_interviewee_minibio_tl} +% \begin{macro}{\g_@@_interviewee_photo_tl} +% \begin{macro}{\g_@@_interviewee_first_last_name_tl} +% Some variables which are involved in options are created. +% \begin{macrocode} +\tl_new:N \g_@@_interviewee_minibio_tl +\tl_new:N \g_@@_interviewee_photo_tl +\tl_new:N \g_@@_interviewee_first_last_name_tl +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{minibio} +% \begin{macro}{photo} +% The keys options are created. +% \begin{macrocode} +\keys_define:nn { gzt/interviewees } +{ + minibio .tl_gset:N = \g_@@_interviewee_minibio_tl, + photo .tl_gset:N = \g_@@_interviewee_photo_tl, +% \end{macrocode} +% +% All these options, when used, must receive a value. +% \begin{macrocode} + minibio .value_required:n = true, + photo .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Book review options} +% +% \begin{macro}{\g_@@_bookreview_frontcover_tl} +% \begin{macro}{\g_@@_bookreview_bibkey_tl} +% Some variables which are involved in books reviews are created. +% \begin{macrocode} +\tl_new:N \g_@@_bookreview_frontcover_tl +\tl_new:N \g_@@_bookreview_bibkey_tl +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{frontcover} +% \begin{macro}{bibkey} +% The keys options are created. +% \begin{macrocode} +\keys_define:nn { gzt/bookreview } +{ + frontcover .tl_gset:N = \g_@@_bookreview_frontcover_tl, + bibkey .tl_gset:N = \g_@@_bookreview_bibkey_tl, +% \end{macrocode} +% +% All these options, when used, must receive a value. +% \begin{macrocode} + frontcover .value_required:n = true, + bibkey .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Book advertisement options} +% +% \begin{macro}{\g_@@_bookadvertisement_frontcover_tl} +% \begin{macro}{\g_@@_bookadvertisement_bibkey_tl} +% Some variables which are involved in books advertisements are created. +% \begin{macrocode} +\tl_new:N \g_@@_bookadvertisement_frontcover_tl +\tl_new:N \g_@@_bookadvertisement_bibkey_tl +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{frontcover} +% \begin{macro}{bibkey} +% The keys options are created. +% \begin{macrocode} +\keys_define:nn { gzt/bookadvertisement } +{ + frontcover .tl_gset:N = \g_@@_bookadvertisement_frontcover_tl, + bibkey .tl_gset:N = \g_@@_bookadvertisement_bibkey_tl, +% \end{macrocode} +% +% All these options, when used, must receive a value. +% \begin{macrocode} + frontcover .value_required:n = true, + bibkey .value_required:n = true, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{New theorem options} +% +% \begin{macrocode} +\tl_new:N \l_@@_newtheorem_style_tl +\keys_define:nn { gzt/newtheorem } +{ + frenchtitle .tl_set:N = \l_@@_newtheorem_frenchtitle_tl, + englishtitle .tl_set:N = \l_@@_newtheorem_englishtitle_tl, + frenchtitle .value_required:n = true, + englishtitle .value_required:n = true, + % + style .choice:, + style / theorem .code:n = {\tl_set:Nn \l_@@_newtheorem_style_tl {theorem}}, + style / definition .code:n = {\tl_set:Nn \l_@@_newtheorem_style_tl {definition}}, + style / proof .code:n = {\tl_set:Nn \l_@@_newtheorem_style_tl {proof}}, + style / unknown .code:n = + \msg_error:nnxxx { gzt } { unknown-choice } + { style } % Name of choice key + { theorem~or~definition~or~proof } % Valid choices + { \exp_not:n {#1} } % Invalid choice given +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \section{Colors} +% +% In this section, we define the colors that will be used by the class and by +% the source file of the logo. +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article|class-logo> +% \end{macrocode} +% +% \begin{macrocode} +\definecolorset{cmyk}{@@_}{_color}{ + generic_dark,1,.60,.10,0; % kind of blue (!) + light_generic_dark,1,.35,0,0 % kind of blue (!), light +} +\colorlet{@@_generic_light_color}{black!50} +\colorlet{@@_dark_generic_light_color}{black!60} +\colorlet{@@_description_label_light_color}{@@_dark_generic_light_color} +\colorlet{@@_minitoc_color}{@@_generic_light_color} +\colorlet{@@_cover_itemize_label_color}{@@_light_generic_dark_color} +\colorlet{@@_default_text_color}{black} +\colorlet{@@_head_text_color}{black!65} +\colorlet{@@_rubric_head_text_color}{@@_head_text_color} +\colorlet{@@_bibliography_minibios_acknowledgements_bg_color}{black!10} +\colorlet{@@_headrule_color}{@@_generic_light_color!65} +\colorlet{@@_circlerule_color}{@@_generic_dark_color!65} +\colorlet{@@_frontmatter_text_color}{black!75} +\colorlet{@@_people_color}{@@_generic_dark_color} +\colorlet{@@_arrayrule_color}{@@_generic_dark_color} +\colorlet{@@_acknowledgements_color}{@@_generic_dark_color} +\colorlet{@@_question_color}{@@_generic_dark_color} +\colorlet{@@_boxed_issue_number_bg_color}{@@_generic_dark_color} +\colorlet{@@_rule_in_toc_color}{@@_generic_dark_color} +\colorlet{@@_rubric_in_toc_color}{@@_generic_dark_color} +\colorlet{@@_article_in_toc_color}{@@_frontmatter_text_color} +\colorlet{@@_rubric_title_color}{@@_generic_light_color} +\colorlet{@@_article_title_color}{@@_generic_dark_color} +\colorlet{@@_section_color}{@@_generic_dark_color} +\colorlet{@@_subsection_color}{@@_generic_dark_color!90} +\colorlet{@@_subsubsection_color}{@@_generic_dark_color!80} +\colorlet{@@_rubric_abstract_color}{@@_generic_dark_color} +\colorlet{@@_article_abstract_color}{@@_generic_light_color} +\colorlet{@@_dotfill_color}{@@_generic_dark_color} +\colorlet{@@_about_frontcover_title_color}{@@_generic_dark_color} +\colorlet{@@_reflected_text_color}{@@_generic_dark_color} +\colorlet{@@_inside_frontcover_frame_bg_color}{@@_generic_dark_color!8} +\colorlet{@@_inside_frontcover_frame_title_color}{@@_generic_dark_color} +\colorlet{@@_footer_bg_color}{black!10} +\colorlet{@@_float_title_color}{@@_generic_dark_color} +\colorlet{@@_float_title_bg_color}{@@_generic_dark_color!10} +\colorlet{@@_float_frame_color}{@@_generic_dark_color!20} +\colorlet{@@_chapter_color}{@@_generic_dark_color} +\colorlet{@@_smf_number_color}{@@_generic_dark_color} +\colorlet{@@_date_color}{@@_generic_light_color} +\colorlet{@@_table_head_color}{@@_generic_dark_color!25} +\colorlet{@@_book_review_frame_bg_color}{@@_generic_dark_color!8} +\colorlet{@@_book_advertisement_bg_color}{white} +\colorlet{@@_book_advertisement_frame_color}{@@_generic_dark_color} +\colorlet{@@_default_cover_color}{white} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article|class-logo> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \section{Miscellaneous patches} +% +% We patch the \pkg{biblatex}'s "refsection" environment definition by adding +% a flag that will be used to test wheter we are inside such an environment or +% not. +% \begin{macrocode} +\AddToHook{env/multicols/begin}{ + \bool_gset_true:N \g_@@_multicols_bool +} +\AddToHook{env/multicols/end}{ + \bool_gset_false:N \g_@@_multicols_bool +} +\AddToHook{env/refsection/begin}{ + \bool_gset_true:N \g_@@_refsection_bool +} +\AddToHook{env/refsection/end}{ + \bool_gset_false:N \g_@@_refsection_bool +} +% \end{macrocode} +% +% \section{Miscellaneous token lists} +% +% We define a token list that will display the font of footer at the right size. +% \begin{macrocode} +\tl_const:Nn \c_@@_footer_size_font_tl { + \fontsize{\c_@@_footer_height_font_dim}{\c_zero_dim}\selectfont% +} +% \end{macrocode} +% +% We define some token lists for the long and short forms of \textsc{smf}. +% \begin{macrocode} +\tl_new:N \g_@@_smf_short_string_tl +\tl_new:N \g_@@_smf_string_tl +\tl_gset:Nn \g_@@_smf_short_string_tl { + % \cs_if_exist:cTF {texorpdfstring} + % { + \texorpdfstring{\c_@@_smf_short_string_tl}{\c_@@_smf_short_pdf_string_tl} + % }{% + % \c_@@_smf_short_pdf_string_tl + % }% +} +\tl_gset:Nn \g_@@_smf_string_tl { + % \cs_if_exist:cTF {texorpdfstring} + % { + % \texorpdfstring{Soci\'et\'e~Math\'ematique~de~France}{\c_@@_smf_string_tl} + \c_@@_smf_string_tl + % }{% + % \acrlong*{smf} + % }% +} +% \end{macrocode} +% +% We define some token lists for the long and short forms of \gzt. +% \begin{macrocode} +\tl_new:N \l_@@_gzt_short_string_tl +\tl_new:N \l_@@_gzt_string_tl +\tl_set:Nn \l_@@_gzt_short_string_tl { + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\emph{\c_@@_journal_short_title_string_tl}}{\c_@@_journal_short_title_string_tl} + }{% + \emph{\c_@@_journal_short_title_string_tl} + }% +} +\tl_set:Nn \l_@@_gzt_string_tl { + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\emph{\c_@@_journal_title_string_tl}}{\c_@@_journal_title_string_tl} + }{% + \emph{\c_@@_journal_title_string_tl} + }% +} +% \end{macrocode} +% +% We fix some strings for the PDF's metadata. +% \begin{macrocode} +\tl_new:N \g_@@_pdftitle_string_tl +\tl_new:N \g_@@_pdfauthor_string_tl +\tl_gset:Nn \g_@@_pdftitle_string_tl { + \c_@@_pdftitle_string_tl +} +\tl_gset:Nn \g_@@_pdfauthor_string_tl { + \g_@@_smf_string_tl +} +\AddToHook{begindocument/before}{% + \hypersetup{% + pdftitle=\g_@@_pdftitle_string_tl, + pdfauthor=\g_@@_pdfauthor_string_tl% + } +} +% \end{macrocode} +% +% \begin{macrocode} +\cs_new_protected:Nn \_@@_email:n + { + \href{mailto:#1}{\nolinkurl{#1}}% + } +% \end{macrocode} +% +% We create a function that displays the author(s) of an article with +% a peticular layout. +% \begin{macrocode} +\cs_new_protected:Nn \@@_display_author:nnnnn +{ + \begin{tabular}[t]{p{\c_@@_authors_photos_box_width_dim}p{0.75\linewidth}} + \tl_if_empty:nF {#5} + {% + \begin{adjustbox}{valign=t} + \includegraphics[width=\c_@@_authors_photos_width_dim]{#5} + \end{adjustbox}% + } + & + \begin{description}[leftmargin=1em,style=nextline,nosep] + \item[\textcolor{@@_people_color}{\DeclareNameAlias{labelname}{default}\citeauthor{#1}}] + \tl_if_empty:nF {#2} + {% + #2% + \par% + \smallskip% + } + \tl_if_empty:nF {#3} + {% + \href{mailto:#3}{\nolinkurl{#3}}% + \par% + \smallskip% + } + \tl_if_empty:nF {#4} + {% + #4 + } + \end{description} + \end{tabular} +} +% \end{macrocode} +% +% We create a variant of this control sequence that passes the \emph{values} of the +% variables involved (see \url{http://tex.stackexchange.com/a/214284/18401}). +% \begin{macrocode} +\cs_generate_variant:Nn \@@_display_author:nnnnn { VVVVV } +% \end{macrocode} +% +% \section{Functions for specifiying the people involved in the journal} +% +% For this, and thanks to \Pkg{datatool}, we create a database of +% \enquote{people} involved in the journal. +% \begin{macrocode} +\DTLnewdb{people} +% \end{macrocode} +% +% Then we create the internal "\_@@_people" function that let us populate the +% "_@@_people" database. Each people will be identified by some identifiers: +% speciality (optional), firstname, lastname, affiliation, email, role. +% \begin{macrocode} +\tl_new:N \l_@@_crossref_tl +\cs_new_protected:Nn \_@@_people:nnnnnnnn +{ + \DTLnewrow{people}% + \DTLnewdbentry{people}{first-last-name}{#1}% + \DTLnewdbentry{people}{affiliation}{#2}% + \DTLnewdbentry{people}{email}{#3}% + \DTLnewdbentry{people}{minibio}{#4}% + \DTLnewdbentry{people}{photo}{#5}% + \DTLnewdbentry{people}{speciality}{#6}% + \DTLnewdbentry{people}{role}{#7}% + \DTLnewdbentry{people}{webpage}{#8}% +% \end{macrocode} +% +% \begin{macrocode} + \int_if_exist:cF {g_@@_#7_int} + { + \int_new:c {g_@@_#7_int} + } + \int_incr:c {g_@@_#7_int} + \tl_if_in:nnTF { #7 } { author } { + \tl_set:Nn \l_@@_crossref_tl {\c_@@_issue_bib_key_tl -art-\int_use:N \g_@@_articles_int} + } { + \tl_set:Nn \l_@@_crossref_tl {\c_@@_issue_bib_key_tl} + } + \tl_set:Nn \l_@@_people_first_last_name_tl {#1} + \iow_now:Nx \g_@@_bib_out_iow {% + @article{ + \c_@@_issue_bib_key_tl -#7- \int_use:c {g_@@_#7_int}, + \iow_newline: + author={\exp_not:V\l_@@_people_first_last_name_tl}, + \iow_newline: + options={skipbib}, + \iow_newline: + crossref = {\l_@@_crossref_tl} + \iow_newline: + } + \iow_newline: + }% +} +% \end{macrocode} +% +% We create a variant of this control sequence that passes the \emph{values} of +% the variables involved (see +% \url{http://tex.stackexchange.com/a/214284/18401}). +% \begin{macrocode} +\cs_generate_variant:Nn \_@@_people:nnnnnnnn { nVVVVnxV } +% \end{macrocode} +% +% \section{Functions for displaying \enquote{academic} signatures of articles +% without \enquote{real} author(s)} +% +% We create a function that displays an \enquote{academic} signature for articles +% without \enquote{real} author(s). +% \begin{macrocode} +\cs_new_protected:Nn \@@_display_academic_signature:n +{ + \bigskip + \begin{_@@_minibiographies_acknowledgements_tcbox} + #1 + \end{_@@_minibiographies_acknowledgements_tcbox} +} +% \end{macrocode} +% +% \section{Functions for displaying people involved in the journal by role} +% +% We create the function that displays firstname and lastname of people involved +% in the journal by role. +% \begin{macrocode} +\cs_new_protected:Nn \@@_display_people_by_role:n +{ + \DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{#1}]{people}{% + \l_@@_firstlastname_tl=first-last-name% + ,\l_@@_people_affiliation_tl=affiliation% + ,\l_@@_people_email_tl=email% + ,\l_@@_people_minibio_tl=minibio% + ,\l_@@_people_photo_tl=photo% + ,\l_@@_people_speciality=speciality% + ,\l_@@_people_role_tl=role% + ,\l_@@_people_webpage_tl=webpage% + }{% + \tl_if_in:NnTF \l_@@_people_role_tl { editor } { + \item[ + \textcolor{@@_people_color}{% + \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}% + } + \tl_if_in:NnF \l_@@_people_speciality { NoValue } { ~(\l_@@_people_speciality) } + ] + \leavevmode + \vbox_top:n {% + \l_@@_people_affiliation_tl% + \newline% + \href{mailto:\l_@@_people_email_tl}{\nolinkurl{\l_@@_people_email_tl}}% + } + \medskip% + }{ + \tl_if_in:NnTF \l_@@_people_role_tl { author } { + \tl_if_empty:NF \l_@@_firstlastname_tl { + \footnotesize% + % \noindent% + \DTLiffirstrow{% + }{ + \DTLpar% + \medskip% + } + \dim_set:Nn \l_@@_minibio_width_dim {\linewidth-1em - \c_@@_authors_photos_box_width_dim} + \tl_if_empty:NTF \l_@@_people_photo_tl + {% + \dim_add:Nn \l_@@_minibio_width_dim {\c_@@_authors_photos_box_width_dim} + }{% + \begin{adjustbox}{valign=t,minipage=\c_@@_authors_photos_box_width_dim} + \includegraphics[width=\c_@@_authors_photos_width_dim]{\l_@@_people_photo_tl} + \end{adjustbox}% + \quad% + } + \begin{adjustbox}{valign=t,minipage=\l_@@_minibio_width_dim} + \begin{description}[leftmargin=1em,style=nextline] + \item[% + \textcolor{@@_people_color}{% + \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}% + }% + ] + \tl_if_empty:NF \l_@@_people_affiliation_tl + {% + \mbox{}% + \par% + \vspace{-2ex}% + \l_@@_people_affiliation_tl% + } + \tl_if_empty:NF \l_@@_people_email_tl + {% + \par% + \href{mailto:\l_@@_people_email_tl}{\nolinkurl{\l_@@_people_email_tl}}% + } + \tl_if_empty:NF \l_@@_people_webpage_tl + {% + \par% + \url{\l_@@_people_webpage_tl}% + } + \tl_if_empty:NF \l_@@_people_minibio_tl + {% + \par% + \smallskip% + \l_@@_people_minibio_tl + } + \end{description} + \end{adjustbox} + } + }{ + \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -#1- + \exp_not:V\DTLcurrentindex}% + \tl_if_empty:NF \l_@@_people_email_tl + { + \c_space_tl(\href{mailto:\l_@@_people_email_tl}{\nolinkurl{\l_@@_people_email_tl}}) + } + } + } + } +} +% \end{macrocode} +% +% \section{Function for displaying a reflected text} +% +% We create the function that displays a reflected text. +% \begin{macrocode} +\cs_new_protected:Nn \@@_reflected_text:n +{ + \begin{tikzpicture} + \tikzset{@@_reflect_node/.style={% + anchor=base,% + inner~sep=0,% + line~width=0,% + font=\Huge, + color=@@_reflected_text_color% + }% + }% + \node[@@_reflect_node]{#1}; + \node[scope~fading=south,opacity=0.2,yscale=-1,@@_reflect_node]{#1}; + \end{tikzpicture} +} +% \end{macrocode} +% +% \section{Displaying the front cover} +% +% We create the variable that displays the front cover. +% \begin{macrocode} +\tl_new:N \g_@@_display_frontcover_tl% +\tl_gset:Nn \g_@@_display_frontcover_tl {% + \bool_gset_true:N \g_@@_frontcover_bool + \pagenumbering{roman}% + \pagestyle{@@_frontcover_ps}% + \pagecolor{\g_@@_special_edition_color_tl} + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_frontcover_geometry_tl}% + \noindent% + \bool_if:NTF {\g_@@_cover_bool} { + \hspace*{-\c_@@_potential_layoutoffset_dim} + }{ + \hspace*{-2\c_@@_potential_layoutoffset_dim} + } + \exp_after:wN\includegraphics\exp_after:wN[\g_@@_frontcover_image_options_tl]{\g_@@_frontcover_image_file_tl} + \begin{tikzpicture}[remember~picture, overlay] + \coordinate (@@_circle_minitoc_center) at + ([xshift=\g_@@_minitoc_xshift_dim-\c_@@_potential_layoutoffset_dim,yshift=\g_@@_minitoc_yshift_dim+\c_@@_potential_layoutoffset_dim]current~page.south~east) ; + \node[name=@@_circle_minitoc,shape=circle,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,text~width=\g_@@_minitoc_circle_diameter_dim] at + (@@_circle_minitoc_center) {}; + \node[text~width=\g_@@_minitoc_textwidth_dim,anchor=north~west] at + ([xshift=\c_@@_minitoc_from_circle_xshift_dim,yshift=\c_@@_minitoc_from_circle_yshift_dim]$ (@@_circle_minitoc.north)!.5!(@@_circle_minitoc.west) $) + { + \bool_if:NF {\g_@@_frontcover_without_minitoc_bool} { + \large + \color{@@_minitoc_color} + \g_@@_frontcover_minitoc_tl + } + }; + \bool_if:NT {\g_@@_minitoc_help_bool} { + \fill[red] (@@_circle_minitoc_center) circle (2pt); + } + \end{tikzpicture} + \bool_if:NT {\g_@@_cover_bool} { + \small + \begin{tikzpicture}[remember~picture, overlay] + \node[name=@@_binding_sw,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,rotate=90,anchor=west] at + ([xshift=0.45\c_@@_potential_bindingoffset_dim,yshift=15mm+\c_@@_potential_layoutoffset_dim]current~page.south~west) { + \No + \bool_if:NTF {\g_@@_special_edition_bool} { + \c_@@_special_edition_string_tl + }{ + \int_use:N\g_@@_issue_number_int + } + }; + \node[name=@@_binding_w,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,rotate=90] at + ([xshift=0.45\c_@@_potential_bindingoffset_dim]current~page.west) { + \bool_if:NTF {\g_@@_special_edition_bool} { + \tl_if_exist:NTF \g_@@_special_edition_short_title_tl {% + \g_@@_special_edition_short_title_tl + }{ + \g_@@_special_edition_title_tl + } + }{ + \text_uppercase:n {\c_@@_journal_title_string_tl} + } + }; + \node[name=@@_binding_nw,inner~sep=\c_zero_dim,fill=\g_@@_special_edition_color_tl,rotate=90,anchor=east] at + ([xshift=0.45\c_@@_potential_bindingoffset_dim,yshift=-15mm-\c_@@_potential_layoutoffset_dim]current~page.north~west) { + \l_@@_uppercased_date_format\displaydate{@@_date} + }; + \end{tikzpicture} + } + \vfill% + \noindent% + \hspace*{10mm}% + \hspace*{-\c_@@_potential_layoutoffset_dim} + \includegraphics[height=22.5mm]{\c_@@_smf_logo_file_string_tl}% + \bool_if:NT {\g_@@_special_edition_bool} { + \hfill + \includegraphics[scale=1.2]{gzt-logo} + \hspace*{10mm} + } + % \vfill% + \clearpage% + \bool_gset_false:N \g_@@_frontcover_bool + \nopagecolor +} +% \end{macrocode} +% +% \section{Displaying the inside front cover} +% +% We create the variable that displays the inside front cover. +% \begin{macrocode} +\tl_new:N \g_@@_display_inside_frontcover_tl% +\tl_gset:Nn \g_@@_display_inside_frontcover_tl {% + \bool_gset_true:N \g_@@_inside_frontcover_bool% + \pagestyle{@@_inside_frontcover_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_inside_cover_geometry_tl}% + \small% + \setlength{\columnseprule}{2pt} + \renewcommand{\columnseprulecolor}{\color{white}} + \begin{_@@_inside_cover_tcb}[_@@_tcb_inside_frontcover_style] + \begin{multicols}{2} + \setlength{\columnsep}{1mm} + \bool_if:NTF {\g_@@_special_edition_bool} { + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \@@_display_people_by_role:n {editor} + \end{description} + }{% + \begin{description}[leftmargin=1em] + \item[\c_@@_editors_in_chief_string_tl] \ + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \@@_display_people_by_role:n {editorinchief} + \end{description} + \bigskip + \par + \item[\c_@@_editors_string_tl] \ + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \@@_display_people_by_role:n {editor} + \end{description} + \end{description} + } + \end{multicols} + \setlength{\columnseprule}{1pt} + \tcblower + \begin{tabular}{@{}m{.75\c_@@_inside_cover_box_width_dim}@{}m{.2\c_@@_inside_cover_box_width_dim-2\tabcolsep}@{}} + \begin{description}[leftmargin=1em] + \item[\c_@@_editorial_secretariat_string_tl{}~:] \ \par% + \l_@@_journal_publisher_tl% + % \par% + \c_space_tl\textendash{}\c_space_tl% + \@@_display_people_by_role:n { secretary }\par + \l_@@_journal_address_tl\par% + \c_@@_phone_string_tl{}~:~\l_@@_journal_phone_tl{} \c_space_tl\textendash{}\c_space_tl + \c_@@_fax_string_tl{}~:~\l_@@_journal_fax_tl\par% + \href{mailto:\l_@@_journal_email_tl}{\nolinkurl{\l_@@_journal_email_tl}}% + % \newline% + \c_space_tl\textendash{}\c_space_tl + \url{\l_@@_journal_url_tl} + \item[\c_@@_publishingdirector_string_tl{}~:] + \@@_display_people_by_role:n { president } + \item[\c_@@_issn_string_tl{}~:] \l_@@_journal_issn_tl + \tl_if_empty:NF \l_@@_journal_isbn_tl + {% + \item[\c_@@_isbn_string_tl{}~:] \l_@@_journal_isbn_tl + } + \bool_if:NT {\g_@@_no_inside_backcover_bool} { + \item[\c_@@_latexclass_string_tl{}~:] + \@@_display_people_by_role:n { classdesigner } + \item[\c_@@_artistic_director_string_tl{}~:] + \@@_display_people_by_role:n { graphicdesigner } + \item[\c_@@_printer_string_tl{}~:] \g_@@_printer_text_tl + } + \end{description} + \bool_if:NT {\g_@@_no_inside_backcover_bool} { + \g_@@_font_designer_text_tl + } + & + \hspace*{\fill}% + \includegraphics[height=20mm]{\c_@@_smf_logo_file_string_tl}% + \end{tabular} + % \\ + % \c_@@_font_string_tl + \bigskip + \tl_if_empty:NF \g_@@_about_frontcover_tl + {% + \\ + \begin{adjustbox}{valign=t,minipage=.75\c_@@_inside_cover_box_width_dim+.2\c_@@_inside_cover_box_width_dim-2\tabcolsep} + \begin{description}[leftmargin=1em,font=\color{@@_about_frontcover_title_color}] + \item[\g_@@_about_frontcover_string_tl] \g_@@_about_frontcover_tl + \bool_if:NT {\g_@@_credit_frontcover_bool} { + \c_space_tl(\c_@@_credit_frontcover_string_tl{}~:~% + \DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{frontcovercredit}]{people}{% + \l_@@_firstlastname_tl=first-last-name% + ,\l_@@_people_role_tl=role% + }{% + \_@@_citeauthor_no_firstinits:n + {\c_@@_issue_bib_key_tl -frontcovercredit- \exp_not:V\DTLcurrentindex}% + }% + ).% + } + \end{description} + \end{adjustbox} + } + \end{_@@_inside_cover_tcb} + \clearpage% + \pagenumbering{arabic}% + \bool_gset_false:N \g_@@_inside_frontcover_bool +} +% \end{macrocode} +% +% \section{Displaying the inside back cover} +% +% We create the variable that displays the inside back cover. +% \begin{macrocode} +\tl_new:N \g_@@_display_inside_backcover_tl% +\tl_gset:Nn \g_@@_display_inside_backcover_tl {% + \bool_gset_true:N \g_@@_inside_backcover_bool% + \cleardoublepage% + \pagestyle{@@_inside_backcover_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_inside_cover_geometry_tl}% + \bool_if:NTF {\g_@@_no_inside_backcover_bool} { + \hbox{} + }{% + \small% + \begin{_@@_inside_cover_tcb}[_@@_tcb_inside_backcover_style] + \bool_if:NF {\g_@@_special_edition_bool} { + % \begin{multicols}{2} + % \setlength{\columnsep}{1mm} + \file_if_exist_input:n {\c_@@_authors_instructions_file_tl} + % \end{multicols} + % \setlength{\columnseprule}{1pt} + \tcblower + } + \begin{description}[leftmargin=1em] + \item[\c_@@_latexclass_string_tl{}~:] + \@@_display_people_by_role:n { classdesigner } + \item[\c_@@_artistic_director_string_tl{}~:] + \@@_display_people_by_role:n { graphicdesigner } + \item[\c_@@_printer_string_tl{}~:] \g_@@_printer_text_tl + \end{description} + \g_@@_font_designer_text_tl + \end{_@@_inside_cover_tcb} + } + \bool_gset_false:N \g_@@_inside_backcover_bool +} +% \end{macrocode} +% +% \section{Displaying the back cover} +% +% We create the variable that displays the back cover. +% \begin{macrocode} +\tl_new:N \g_@@_display_backcover_tl% +\tl_gset:Nn \g_@@_display_backcover_tl {% + \bool_gset_true:N \g_@@_backcover_bool + \pagestyle{@@_backcover_ps}% + \pagecolor{\g_@@_special_edition_color_tl} + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_backcover_geometry_tl}% + \bool_if:NTF {\g_@@_special_edition_bool} { + \mbox{} + \vfill + \clist_map_inline:Nn \c_@@__graphics_extensions_clist{ + \file_if_exist:nT {\c_@@_issue_images_path_string_tl/\g_@@_special_edition_backcover_image_tl.#1} { + \begin{center} + \includegraphics[width=.25\linewidth]{\g_@@_special_edition_backcover_image_tl} + \end{center} + \bigskip + \clist_map_break: + } + } + \group_begin: + \leftskip.125\linewidth + \rightskip\leftskip + \file_if_exist_input:nF {\c_@@_special_edition_backcover_page_file_string_tl} + {% + \c_empty_box + } + \par + \group_end: + \vfill + \clist_if_empty:NF \g_@@_special_edition_logos_clist { + \vfill + \noindent + \clist_map_inline:Nn \g_@@_special_edition_logos_clist { + \hfill + \includegraphics[height=2cm]{#1} + \hfill + } + \mbox{} + } + }{ + \file_if_exist_input:nF {\c_@@_backcover_page_file_string_tl} + {% + \hbox{} + } + } +} +% \end{macrocode} +% +% \section{User level commands} +% +% Here, we gather all the user level (public) commands. +% +% \subsection{Populating the people involved in the journal} +% +% \begin{macro}{\editorinchief} +% \begin{macro}{\editor} +% \begin{macro}{\president} +% \begin{macro}{\classdesigner} +% \begin{macro}{\fontdesigner} +% \begin{macro}{\classmaintainer} +% \begin{macro}{\graphicdesigner} +% We define some document-level commands that let the user specify +% respectively the editor(s) in chief, the editors, the (\textsc{smf}) +% president, the class designer and maintainer(s), and the graphic designer. +% +% For the editor(s) in chief, we increment the "\g_@@_editors_in_chief_int" +% counter in order to use singular or plural form of the corresponding string +% \enquote{Rédacteur(s) en chef}. +% \begin{macrocode} +\NewDocumentCommand \editorinchief {ommm} +{ + \int_incr:N \g_@@_editors_in_chief_int + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editorinchief}{} +} +\NewDocumentCommand \editor {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editor}{} +} + +\NewDocumentCommand \president {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{president}{} +} +\NewDocumentCommand \classdesigner {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classdesigner}{} +} +\NewDocumentCommand \classmaintainer {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classmaintainer}{} +} +\NewDocumentCommand \fontdesigner {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{fontdesigner}{} +} +\NewDocumentCommand \graphicdesigner {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{graphicdesigner}{} +} +\NewDocumentCommand \secretary {ommm} +{ + \_@@_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{secretary}{} +} +% \NewDocumentCommand \frontcovercredit {om} +% { +% \_@@_people:nnnnnnnn {#2}{}{}{}{}{#1}{frontcovercredit}{} +% } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{Issue setup} +% +% \begin{macro}{\issuesetup} +% We define the command that lets the user specify the issue setup. +% \begin{macrocode} +\NewDocumentCommand \issuesetup { m } { +% \end{macrocode} +% +% Its keys are set (only "number", "month" and "year" are relevant here). + \keys_set:nn { gzt/issuesetup } {frontcoverimageoptions={width=\c_@@_frontcover_image_width_dim},#1} +% \end{macrocode} +% +% We use here the fact that, if the "number", "month" or "year" options are not +% used, their corresponding "\g_@@_issue_number_int", "\g_@@_issue_month_int" or +% "\g_@@_issue_year_int" variables are equal to $0$ ($<1$). +% +% First, if "number" is not used, its "\g_@@_issue_number_int" variable is set +% to "\c_@@_first_issue_number_int"\footnote{The number of the first Gazette's +% issue using the present class.} and a warning is emitted. +% \begin{macrocode} + \int_compare:nNnT {\g_@@_issue_number_int}<{1} + { + \int_set:Nn \g_@@_issue_number_int { \c_@@_first_issue_number_int } + \msg_warning:nnn{gzt}{issue-number-needed}{number} + } +% \end{macrocode} +% +% If not specified as \refCom{issuesetup}'s key-value options, issue's month and +% year are computed from issue number (which defaults to +% "\c_@@_first_issue_month_int"). +% +% \begin{macro}{\c_@@_issue_age_in_months_int} +% First, if "month" or "year" option is not used (one of the previous +% variables is $0$ hence their product is $0$ ($<1$)), we compute the issue +% age in months, useful for both month and year computation. +% \begin{macrocode} + \int_compare:nNnT {\g_@@_issue_month_int * \g_@@_issue_year_int}<{1} + { + \int_new:N \g_@@_issue_age_in_months_int% + \int_gset:Nn \g_@@_issue_age_in_months_int + { + \c_@@_first_issue_month_int + + \c_@@_interval_in_months_int + * ( \int_use:N \g_@@_issue_number_int - \c_@@_first_issue_number_int ) + } + } +% \end{macrocode} +% \end{macro} +% +% If the "month" is not used, we replace "\g_@@_issue_month_int" ($=0$) by its +% computed value from the issue number. +% \begin{macrocode} + \int_compare:nNnT {\g_@@_issue_month_int}<{1} + { + \int_gset:Nn \g_@@_issue_month_int + { + \int_mod:nn { \g_@@_issue_age_in_months_int } { 12 } + } + } +% \end{macrocode} +% +% If the "year" is not used, we replace "\g_@@_issue_year_int" ($=0$) by its +% computed value from the issue number. +% \begin{macrocode} + \int_compare:nNnT {\g_@@_issue_year_int}<{1} + { + \int_new:N \g_@@_issue_age_in_years_int% + \int_gset:Nn \g_@@_issue_age_in_years_int + {% + \int_div_truncate:nn { \g_@@_issue_age_in_months_int } { 12 } + }% + \int_gset:Nn \g_@@_issue_year_int + { + \g_@@_issue_age_in_years_int + \c_@@_first_issue_year_int + } + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Special edition setup} +% +% \begin{macro}{\specialeditionsetup} +% We define the command that lets the user specify the special edition setup. +% \begin{macrocode} +\NewDocumentCommand \specialeditionsetup { m } { + \bool_gset_true:N \g_@@_special_edition_bool + \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool + \keys_set:nn { gzt/specialedition } {#1} +} +% \end{macrocode} +% +% \subsection{Moral report setup} +% +% \begin{macro}{\moralreportsetup} +% We define the command that lets the user specify the moral report setup. +% \begin{macrocode} +\NewDocumentCommand \moralreportsetup { m } { + \bool_gset_true:N \g_@@_moral_report_bool + \bool_gset_true:N \g_@@_frontcover_without_minitoc_bool + \keys_set:nn { gzt/moralreport } {#1} +} +% \end{macrocode} +% +% \subsection{Journal setup} +% +% \begin{macro}{\journalsetup} +% We define the command that lets the user specify the +% journal setup. This setup is likely to be rarely changed. +% \begin{macrocode} +\NewDocumentCommand \journalsetup { m } { +% \end{macrocode} +% +% Its keys are set (only "publisher", "address", "phone", "fax", "email", "url" +% and "issn" are relevant here). +% \begin{macrocode} + \keys_set:nn { gzt/journalsetup } { #1 } +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Date of the president's message} +% +% \begin{macro}{\date} +% We redefine the "\date" for the date of the president's message. It takes +% 3 arguments, each of them being a number: the day, the month and the year. +% \begin{macrocode} +\RenewDocumentCommand \date { mmm } { + \newdate{@@_president_message_date}{#1}{#2}{#3}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Interviews} +% +% \begin{macro}{\interviewee} +% \begin{macrocode} +% \NewDocumentCommand\interviewer { o m } { +% } +\NewDocumentCommand \interviewee { om } { + \tl_if_empty:nT \g_@@_title_tl { + \tl_gset:Nn \g_@@_title_tl { + \c_@@_interview_title_string_tl + \DeclareNameAlias{labelname}{default}\citeauthor{\c_@@_issue_bib_key_tl -art-\int_use:N + \g_@@_articles_int} + } + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/interviewees } { #1 } + } + \tl_set:Nn \l_@@_people_first_last_name_tl {#2} + \_@@_people:nVVVVnxV + {#2} + {\g_@@_people_affiliation_tl} + {\g_@@_people_email_tl} + {\g_@@_people_minibio_tl} + {\g_@@_people_photo_tl} + {} + {interviewee-art-\int_use:N \g_@@_articles_int} + {} + % \maketitle +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Miscellaneous} +% +% \begin{macro}{\academicsignature} +% \begin{macrocode} +\NewDocumentCommand \academicsignature { m } { + \@@_display_academic_signature:n {#1} +} +% \end{macrocode} +% \end{macro} +% +% \section{Definition of the footer of the pages} +% +% \begin{macro}{@@_date} +% \begin{macro}{\l_@@_uppercased_date_format} +% Thanks to \Pkg{datetime}, we create the new date "@@_date" and define the +% date format to be used in the journal. As this date has to be displayed +% uppercased, we first define a function that displays uppercased months. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_uppercased_monthname_french:n +{ + \@orgargctr=#1\relax + \ifcase\@orgargctr + \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{% + Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}% + \or JANVIER% + \or F\'EVRIER% + \or MARS% + \or AVRIL% + \or MAI% + \or JUIN% + \or JUILLET% + \or AO\^UT% + \or SEPTEMBRE% + \or OCTOBRE% + \or NOVEMBRE% + \or D\'ECEMBRE% + \else + \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{% + Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}% + \fi +} +\newdate{@@_date} + {1} + {\int_use:N \g_@@_issue_month_int} + {\int_use:N \g_@@_issue_year_int} +\newdateformat{l_@@_uppercased_date_format}{ + \_@@_uppercased_monthname_french:n {\THEMONTH}~\THEYEAR +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{(Re)Definition of document commands that identify the article} +% +% The names of the authors of the different articles will appear at several +% places, and notably in the table of contents where first and middle names have to +% be rendered as initials. Because automatically rendering initials is a complex task +% already provided by \Pkg{biblatex}, we will create a \file{.bib} file +% containing "article" entries for each article of the \gzt{} journal. +% +% This can be done only at the beginning of the document, in order to know the +% characteristics of the current issue. +% \begin{macrocode} +\AddToHook{begindocument}{% +% \end{macrocode} +% +% We first create a token list containing the date of the current issue formated +% as required by \pkg{biblatex} (the month issue needs a leading zero if it is +% $<10$). +% \begin{macrocode} +\tl_new:N \g_@@_bib_issue_date_tl +\tl_gset:Nn \g_@@_bib_issue_date_tl { + \int_use:N \g_@@_issue_year_int- + \int_compare:nNnT {\g_@@_issue_month_int}<{10} + { + 0 + } + \int_use:N \g_@@_issue_month_int +} +% \end{macrocode} +% +% We will populate the bibiliographic file of the current issue with the current +% issue (as "@periodical" entry type). +% \begin{macrocode} + \iow_now:Nx \g_@@_bib_out_iow {% + @periodical{\c_@@_issue_bib_key_tl,\iow_newline: + issuetitle = {\exp_not:f\c_@@_journal_title_string_tl},\iow_newline: + date = {\g_@@_bib_issue_date_tl},\iow_newline: + number = \int_use:N \g_@@_issue_number_int,\iow_newline: + % issn = {\l_@@_journal_issn_tl},\iow_newline: + options = {skipbib}\iow_newline: + } + \iow_newline: + }% +} +% \end{macrocode} +% +% \begin{macro}{\title} +% \begin{macro}{\g_@@_title_tl} +% The command for article's title is redefined: the full \enquote{article's +% title} is store in "\g_@@_title_tl" for later use. +% \begin{macrocode} +\tl_new:N \g_@@_title_tl +\RenewDocumentCommand \title { o m } { +% \end{macrocode} +% We increment the "\g_@@_articles_int" integer that counts the number of +% articles in order to provide for each of them a unique bibliographic key. +% \begin{macrocode} + \int_gincr:N \g_@@_articles_int + \tl_gclear:N \g_@@_short_title_tl + \tl_gclear:N \g_@@_short_subtitle_tl + \bool_gset_false:N \g_@@_title_not_in_toc_bool + % + \IfNoValueF {#1} + { + \keys_set:nn { gzt/title } { #1 } + } + \tl_gset:Nn \g_@@_title_tl {#2} + \bool_if:nT \g_@@_tellme_rubric_bool + { + \tl_put_left:Nx \g_@@_title_tl {\c_@@_tellme_extra_title_string_tl} + } + \tl_if_empty:NT \g_@@_short_title_tl {% + \tl_gset_eq:NN \g_@@_short_title_tl \g_@@_title_tl + } +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\subtitle} +% \begin{macro}{\g_@@_subtitle_tl} +% The command for article's subtitle is redefined: the full and short +% \enquote{article's subtitles} are store in "\g_@@_subtitle_tl" and +% "\g_@@_short_subtitle_tl" for later use. +% \begin{macrocode} +\tl_new:N \g_@@_subtitle_tl +\NewDocumentCommand \subtitle { o m } { + \bool_gset_false:N \g_@@_subtitle_not_in_toc_bool + % + \IfNoValueF {#1} + { + \keys_set:nn { gzt/subtitle } { #1 } + } + \tl_gset:Nn \g_@@_subtitle_tl {#2} + \tl_if_empty:NT \g_@@_short_subtitle_tl {% + \tl_gset_eq:NN \g_@@_short_subtitle_tl \g_@@_subtitle_tl + } +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\author} +% The command for article's author (including its affiliation) is redefined. +% \begin{macrocode} +\RenewDocumentCommand \author { o m } { + \IfNoValueF {#1} + { + \keys_set:nn { gzt/authors } { #1 } + } + \tl_gset:Nn \l_@@_people_first_last_name_tl {#2} + \_@@_people:nVVVVnxV + {#2} + {\g_@@_people_affiliation_tl} + {\g_@@_people_email_tl} + {\g_@@_people_minibio_tl} + {\g_@@_people_photo_tl} + {} + {author-art-\int_use:N \g_@@_articles_int} + {\g_@@_people_webpage_tl} +} +% \end{macrocode} +% \end{macro} +% +% We create a stream in order to write a bibliographic file +% \begin{macrocode} +\iow_new:N \g_@@_bib_out_iow +\ior_new:N \g_@@_bib_out_ior +\tl_new:N \g_@@_bib_out_tl +\file_if_exist:nTF { \c_@@_issue_bib_path_string_tl } +{ + \ior_open:Nn \g_@@_bib_out_ior { \c_@@_issue_bib_path_string_tl } + \ior_str_map_inline:Nn \g_@@_bib_out_ior + { \tl_gput_right:Nn \g_@@_bib_out_tl {#1 \par } } + \ior_close:N \g_@@_bib_out_ior +}{ + \typeout{no file! rerun} +} +\iow_open:Nn \g_@@_bib_out_iow { \c_@@_issue_bib_path_string_tl } +% \end{macrocode} +% +% \begin{environment}{abstract} +% The environment for article's abstract or, more precisely, for its lead +% paragraph (\enquote{chapô} in French typography) is (re)defined. +% \begin{macrocode} +\tl_new:N \g_@@_abstract_body_tl +\NewDocumentEnvironment{abstract}{} + {\CollectAbstract} + {\endCollectAbstract} +\NewEnviron{CollectAbstract} + { + \tl_gset_eq:NN \g_@@_abstract_body_tl \BODY + } +% \end{macrocode} +% \end{environment} +% +% \section{Definition of a private main matter switch} +% +% A private "\_@@_mainmatter_switch_tl" switch is defined in order to automatically insert +% some settings. +% \begin{macrocode} +\tl_new:N \g_@@_mainmatter_switch_tl% +\tl_gset:Nn \g_@@_mainmatter_switch_tl { + \bool_gset_false:N \g_@@_frontmatter_bool + \bool_gset_true:N \g_@@_mainmatter_bool + \SetParskip{\c_@@_mainmatter_parskip_skip} + \pagestyle{@@_mainmatter_ps}% +} +% \end{macrocode} +% +% \begin{macrocode} +\tl_new:N \l_@@_article_acknowledgements_tl% +\cs_new_protected:Nn \@@_article_acknowledgements:n +{ + \tl_set:Nn \l_@@_article_acknowledgements_tl { #1 } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \begin{macro}{\_@@_about_frontcover} +% We define the internal function than let us tell a few words about the front +% cover. +% \begin{macrocode} +\tl_new:N \g_@@_about_frontcover_tl% +\bool_new:N \g_@@_credit_frontcover_bool% +\tl_new:N \g_@@_about_frontcover_string_tl% +\cs_new_protected:Nn \_@@_about_frontcover:nnn +{ + \tl_if_empty:nF {#1}{% + \bool_gset_true:N \g_@@_credit_frontcover_bool + \_@@_people:nnnnnnnn {#1}{}{}{}{}{}{frontcovercredit}{} + } + \tl_gset:Nn \g_@@_about_frontcover_string_tl { #2 } + \tl_gset:Nn \g_@@_about_frontcover_tl { #3 } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\_@@_rubric} +% We define the internal function than defines and sets the layouts of rubrics. +% \begin{macrocode} +% \tl_new:N \g_@@_rubric_title_tl% +% \tl_new:N \g_@@_rubric_pictofile_tl% +% \tl_new:N \g_@@_rubric_abstract_tl% +\tl_new:N \g_@@_rubric_abstract_box_tl% +\tl_new:N \l_@@_rubric_head_text_box_tl% +% +\cs_new_protected:Nn \_@@_rubric:nnn +{ + \newpage% + \tl_gclear:N \g_@@_rubric_abstract_tl + \tl_gset:Nn \g_@@_rubric_title_tl {#2} + \file_if_exist:nTF { #3.pdf }{% + \tl_gset:Nn \g_@@_rubric_pictofile_tl {#3} + }{ + \tl_gset:Nn \g_@@_rubric_pictofile_tl {example-image} + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/rubric } { #1 } + } + \g_@@_mainmatter_switch_tl + \bool_gset_true:N \g_@@_mainmatter_bool + \clearpage +% \end{macrocode} +% +% We reinitialize the items counter in this new rubric. +% \begin{macrocode} + \bool_gset_true:N \g_@@_rubric_bool% + \bool_gset_false:N \g_@@_interview_rubric_bool + \bool_gset_false:N \g_@@_tellme_rubric_bool + \bool_gset_false:N \g_@@_rearviewmirror_rubric_bool + \bool_gset_false:N \g_@@_books_rubric_bool + \bool_gset_false:N \g_@@_previous_article_with_bibliography_or_minibio_bool + \bool_if:nF { \g_@@_for_authors_bool } { + \int_zero:N \g_@@_item_in_rubric_int + \phantomsection + \par + \bool_if:NF {\g_@@_special_edition_bool} { + \addcontentsline{toc}{part}{\g_@@_rubric_title_tl} + } + \thispagestyle{@@_rubric_ps} + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}% + \tl_if_empty:NTF \g_@@_rubric_abstract_tl + { + \dim_set:Nn \l_@@_rubrics_head_text_width_dim { \c_@@_rubrics_head_text_no_abstract_width_dim } + } + { + \dim_set:Nn \l_@@_rubrics_head_text_width_dim { \c_@@_rubrics_head_text_abstract_width_dim } + \tl_gset:Nn \g_@@_rubric_abstract_box_tl { + \begin{adjustbox}{valign=t,minipage=\c_@@_rubrics_abstract_width_dim} + \raggedright% + \large% + \color{@@_rubric_abstract_color}% + \g_@@_rubric_abstract_tl% + \end{adjustbox} + } + } + \tl_set:Nn \l_@@_rubric_head_text_box_tl { + \begin{adjustbox}{valign=t,minipage=\l_@@_rubrics_head_text_width_dim} + \mbox{}% + \checkoddpage% + \ifoddpage% + \raggedleft% + \else + \raggedright% + \fi% + \color{@@_rubric_title_color}% + \fontsize{20}{20}\fontseries{bx}\fontshape{sc}\selectfont% + \g_@@_rubric_title_tl% + \end{adjustbox} + } + \noindent% + \mbox{}% + \checkoddpage% + \ifoddpage% + \hspace*{\c_@@_rubric_extra_xoffset_dim} + \tl_if_empty:NF \g_@@_rubric_abstract_tl + { + \g_@@_rubric_abstract_box_tl + } + \hfill% + \l_@@_rubric_head_text_box_tl + \hspace*{\c_@@_rubric_xoffset_dim}% + \else% + \hspace*{\c_@@_rubric_xoffset_dim}% + \l_@@_rubric_head_text_box_tl + \tl_if_empty:NF \g_@@_rubric_abstract_tl + { + \hfill% + \g_@@_rubric_abstract_box_tl + \hspace*{\c_@@_rubric_extra_xoffset_dim} + } + \fi% + } + \afterpage{% + \bool_gset_false:N \g_@@_rubric_bool% + } +% \end{macrocode} +% We suppress any spurious space in case of lack of "%" at the end of the +% public macros built on "\_@@_rubric": +% \begin{macrocode} + \ignorespaces +% \end{macrocode} +% End of the definition of the private command "\_@@_rubric": +% \begin{macrocode} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% We create a command for local (to a given article) tables of contents +% \begin{macrocode} +\cs_new_protected:Nn \_@@_display_localtoc: +{ + \etocsettocstyle{\section*{\contentsname}}{}% + \etocsetstyle {section} + {} + {\leavevmode\leftskip 0cm\relax} + {\bfseries\normalsize\makebox[.6cm][l]{\etocnumber}% + \etocname\nobreak\hfill\nobreak% + \makebox[.5cm][r]{% + \etocpage% + }% + \par% + } + {\medskip} + \localtableofcontentswithrelativedepth{+1} +} +\NewDocumentCommand \gztlocaltableofcontents {} +{ + \_@@_display_localtoc: {} +} +% \end{macrocode} +% +% We create two token lists that will contain: +% \begin{enumerate} +% \item the unique bibliographic key, +% \item the "author" value of the bibliographic entry, +% \end{enumerate} +% of the current article. +% \begin{macrocode} +\tl_new:N \g_@@_article_bib_key_tl% +\tl_new:N \l_@@_people_first_last_names_tl +\tl_new:N \g_@@_authors_first_last_names_tl% +\tl_new:N \l_@@_interviewees_first_last_names_tl% +\tl_new:N \g__@@_citeauthor_no_firstinits% +\tl_new:N \g_@@_citeauthor_tl% +\tl_new:N \g_@@_citeinterviewee_tl% +% +\tl_new:N \g_@@_blx_given_first_inits_tl% +\@ifpackagelater{biblatex}{2016/01/01}{% + \tl_gset:Nn \g_@@_blx_given_first_inits_false_tl + {% + \togglefalse{abx@bool@giveninits}% + } +}{ + \tl_set:Nn \g_@@_blx_given_first_inits_false_tl + {% + \togglefalse{blx@firstinits}% + } +} +% +\cs_new_protected:Nn \_@@_citeauthor_no_firstinits:n {% + \tl_gset:Nn \g_@@_citeauthor_tl {% + \DeclareNameAlias{labelname}{default}% + \group_begin: + \g_@@_blx_given_first_inits_false_tl + \citeauthor{#1} + \group_end: + }% + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\g_@@_citeauthor_tl}{} + }{% + \g_@@_citeauthor_tl + }% +} +% \@ifpackageloaded{hyperref}{% +% \tl_gset:No \g_@@_citeauthor_tl {% +% \texorpdfstring{\citeauthor{\g_@@_article_bib_key_tl}}{} +% } +% }{% +% \tl_gset:Nn \g_@@_citeauthor_tl {% +% \citeauthor{\g_@@_article_bib_key_tl} +% }% +% }% +% \@ifpackageloaded{hyperref}{% +% \tl_gset:No \g_@@_citeinterviewee_tl {% +% \texorpdfstring{\citeauthor{\g_@@_article_bib_key_tl}}{} +% } +% }{% +% \tl_gset:Nn \g_@@_citeinterviewee_tl {% +% \citeinterviewee{\g_@@_article_bib_key_tl} +% }% +% }% +% \end{macrocode} +% +% In the following "\maketitle" document level macro, we will need to display +% the list the authors of the current article, not as a comma separated list +% (default "\citeauthor" \pkg{biblatex}'s macro behavior), but as an itemized +% list. For this, we create the "\_@@_itemized_citeauthor" internal function +% that will make use of "\citeauthor" where "\multinamedelim" and +% "\finalnamedelim" will be patched into "\item". As we don't want to globally +% alter the behavior of these macros, we first store their original meanings in +% some private control sequence: +% \begin{macrocode} +\cs_set_eq:NN \_@@_orig_multinamedelim \multinamedelim +\cs_set_eq:NN \_@@_orig_finalnamedelim \finalnamedelim +\cs_new_protected:Nn \_@@_itemized_citeauthor:n +{ + \cs_set_eq:NN \multinamedelim \item + \cs_set_eq:NN \finalnamedelim \multinamedelim + \AtNextCitekey{\defcounter{maxnames}{100}} + \begin{itemize}[label=\textbullet,noitemsep] + \item \citeauthor{#1} + \end{itemize} + \cs_set_eq:NN \multinamedelim \_@@_orig_multinamedelim + \cs_set_eq:NN \finalnamedelim \_@@_orig_finalnamedelim +} +% \end{macrocode} +% +% We declare two token list which will used in the next (re)definition. +% \begin{macrocode} +\tl_new:N \l_@@_bullet_and_rule_tl +\tl_new:N \l_@@_authors_box_tl +\tl_new:N \l_@@_abstract_box_tl +\tl_new:N \l_@@_bullet_and_rule_odd_tl +\tl_new:N \l_@@_bullet_and_rule_even_tl +\tl_new:N \l_@@_title_box_tl +% +% \end{macrocode} +% +% \begin{macro}{\_@@_maketitle} +% The command that \enquote{makes} the title is redefined. +% \begin{macrocode} +\RenewDocumentCommand \maketitle { s } { +% \end{macrocode} +% +% We force all the previous floats to be processed before a new article starts +% (this is already done in "bibliography_minibiographies_acknowledgements" +% environment but is repeated here if what is before provides floats but neither +% bibliography, \textsc{cv} nor acknowledgements). +% \begin{macrocode} + \FloatBarrier% +% \end{macrocode} +% +% We increment the item number in the current rubric. +% \begin{macrocode} +\int_gincr:N \g_@@_item_in_rubric_int +% \end{macrocode} +% +% We restore the original length for "\parindent" that has been set to zero in +% a possible previous \enquote{Interview} rubric. +% \begin{macrocode} +\dim_set_eq:NN \parindent \c_@@_original_parindent_dim +% \end{macrocode} +% +% We reset all acronyms entries. +% \begin{macrocode} +\glsresetall +% \end{macrocode} +% +% We reset to zero some counters at each new article. +% \begin{macrocode} +\setcounter{section}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote}{0} +% +\setcounter{equation}{0} +% +\setcounter{theorem}{0} +% \setcounter{theoreme}{0} +\setcounter{corollary}{0} +% \setcounter{corollaire}{0} +\setcounter{conjecture}{0} +\setcounter{proposition}{0} +\setcounter{lemma}{0} +% \setcounter{lemme}{0} +\setcounter{axiom}{0} +% \setcounter{axiome}{0} +% +\setcounter{definition}{0} +\setcounter{remark}{0} +% \setcounter{remarque}{0} +\setcounter{example}{0} +% \setcounter{exemple}{0} +\setcounter{notation}{0} +% \end{macrocode} +% +% We store the unique bibliographic key of the current article in the +% "\g_@@_article_bib_key_tl" token list. +% \begin{macrocode} +\tl_gset:Nn \g_@@_article_bib_key_tl {% + \c_@@_issue_bib_key_tl + -art- + \int_use:N \g_@@_articles_int +} +% \end{macrocode} +% +% We will populate the bibiliographic file of the current issue with the current +% article (title, author(s) and a fixed part giving by the issue number, journal +% title and date). +% +% Then, we iterate through each row of the authors database in order to get +% a token list containing the (list of the) author(s) of the current article +% formated as required by \pkg{biblatex} (\enquote{Last1, First1 [and Last2, +% First2 [and ...]]}). +% \begin{macrocode} +\DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{author-art-\int_use:N \g_@@_articles_int}]{people}{% + \l_@@_people_first_last_name_tl=first-last-name% + ,\l_@@_people_role_tl=role% +}{% + \tl_if_in:NnT \l_@@_people_role_tl { author } { + \DTLiffirstrow{% + \tl_put_right:Nx + \l_@@_people_first_last_names_tl + {\exp_not:V\l_@@_people_first_last_name_tl} + }{ + \tl_put_right:Nx + \l_@@_people_first_last_names_tl + {~and~\exp_not:V\l_@@_people_first_last_name_tl} + } + } +} +\DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{interviewee-art-\int_use:N \g_@@_articles_int}]{people}{% + \l_@@_people_first_last_name_tl=first-last-name% + ,\l_@@_people_role_tl=role% +}{% + \tl_if_in:NnT \l_@@_people_role_tl { interviewee } { + \DTLiffirstrow{% + \tl_put_right:Nx + \l_@@_people_first_last_names_tl + {\exp_not:V\l_@@_people_first_last_name_tl} + }{ + \tl_put_right:Nx + \l_@@_people_first_last_names_tl + {~and~\exp_not:V\l_@@_people_first_last_name_tl} + } + } +} +% \end{macrocode} +% +% We now populate the bibiliographic file. +% \begin{macrocode} +\tl_if_empty:NF \g_@@_title_tl {% + \iow_now:Nx \g_@@_bib_out_iow {% + @article{ + \g_@@_article_bib_key_tl, + \iow_newline: + title={\exp_not:V\g_@@_title_tl}, + \iow_newline: + \tl_if_empty:NF \g_@@_subtitle_tl {% + subtitle={\exp_not:V\g_@@_subtitle_tl}, + \iow_newline: + } + \tl_if_eq:NNF { \g_@@_short_title_tl } { \g_@@_title_tl } {% + shorttitle={\exp_not:V\g_@@_short_title_tl}, + \iow_newline: + }% + \tl_if_empty:NF \l_@@_people_first_last_names_tl + { + author={\exp_not:V\l_@@_people_first_last_names_tl}, + \iow_newline: + } + options={skipbib}, + \iow_newline: + crossref = {\c_@@_issue_bib_key_tl} + } + \iow_newline: + }% +}% +% +\tl_set:Nn \l_@@_bullet_and_rule_odd_tl +{% + \begin{tikzpicture}[remember~picture,overlay] + \draw[fill=@@_circlerule_color,draw=@@_circlerule_color,line~width=0.7mm] + ([xshift=-\c_@@_innermargin_dim-\c_@@_potential_layoutoffset_dim]0,0 -| current~page.west) -- (\linewidth,0);% + \fill[@@_circlerule_color] (\linewidth-2\pgflinewidth,0) circle [radius=2.75mm]; + \end{tikzpicture}% +}% +\tl_set:Nn \l_@@_bullet_and_rule_even_tl +{% + \begin{tikzpicture}[remember~picture,overlay] + \draw[fill=@@_circlerule_color,draw=@@_circlerule_color,line~width=0.7mm] + (0,0 -| current~page.east) -- (0,0);% + \fill[@@_circlerule_color] (0,0) circle [radius=2.75mm]; + \end{tikzpicture}% +}% +\tl_set:Nn \l_@@_title_box_tl +{% + \noindent% + \hspace*{18mm}% + \begin{adjustbox}{minipage=\linewidth-18mm,valign=t} + \raggedright% + \color{@@_article_title_color}% + \fontsize{20}{25}\selectfont% + \bfseries% + \g_@@_title_tl + \tl_if_empty:NF \g_@@_subtitle_tl {% + \par% + \g_@@_subtitle_tl + } + \phantomsection + \par% + \bool_if:NTF {\g_@@_title_not_in_toc_bool} { + \bookmark[page=\thepage,level=chapter]{\g_@@_short_title_tl} + }{ + \addcontentsline{toc}{chapter}{% + \tl_if_empty:NTF \g_@@_short_title_tl {% + \g_@@_title_tl% + }{ + \g_@@_short_title_tl% + } + \bool_if:NF {\g_@@_subtitle_not_in_toc_bool} { + \bool_if:nF { \tl_if_empty_p:N \g_@@_short_subtitle_tl || \g_@@_interview_rubric_bool || \g_@@_rearviewmirror_rubric_bool } + { + \c_space_tl\textendash{}\c_space_tl\g_@@_short_subtitle_tl + } + } + \bool_if:nF { \tl_if_empty_p:N \l_@@_people_first_last_names_tl || \g_@@_interview_rubric_bool || \g_@@_rearviewmirror_rubric_bool } + { + \textsl{ + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{% + \c_space_tl\textendash{}\c_space_tl\citeauthor{\g_@@_article_bib_key_tl} + }{} + }{% + \c_space_tl\textendash{}\c_space_tl\citeauthor{\g_@@_article_bib_key_tl} + }% + } + } + } + } + \end{adjustbox} +} + \dim_gset:Nn \g_@@_abstract_box_width_dim {0.75\linewidth} + % \bool_if:nT { \tl_if_empty_p:N \l_@@_people_first_last_names_tl } + % { + % \dim_gset:Nn \g_@@_abstract_box_width_dim {\linewidth} + % } + \tl_set:Nn \l_@@_abstract_box_tl + {% + \begin{adjustbox}{minipage=\g_@@_abstract_box_width_dim,max~width=\g_@@_abstract_box_width_dim,valign=t} + \mbox{} + \tl_if_exist:NT \g_@@_abstract_body_tl + {% + \raggedright% + \bfseries% + \color{@@_article_abstract_color}% + \g_@@_abstract_body_tl + }% + \end{adjustbox} + }% + \tl_set:Nn \l_@@_authors_box_tl + {% + \begin{adjustbox}{minipage=0.3\linewidth,min~width=0.3\linewidth,valign=t} + \bool_if:nTF { \tl_if_empty_p:N \l_@@_people_first_last_names_tl || \g_@@_interview_rubric_bool } + { + \mbox{} + } + { + \color{@@_people_color}% + \_@@_itemized_citeauthor:n {\g_@@_article_bib_key_tl} + } + \end{adjustbox} + } + \bool_if:nTF { + \int_compare_p:nNn { \g_@@_item_in_rubric_int } = { 1 } + } + { + \mbox{} + \par + \bool_if:nTF { + \tl_if_empty_p:N \g_@@_rubric_abstract_tl + }{ + \xleaders\vbox { + \bigskip% + }% + \vskip\bigskipamount% + }{ + \xleaders\vbox { + \smallskip% + }% + \vskip\smallskipamount% + } + } + { + \bool_if:NTF {\g_@@_previous_article_with_bibliography_or_minibio_bool} + { + \xleaders\vbox { + \mbox{} + \par + \medskip% + }% + \vskip\medskipamount% + } + { + \xleaders\vbox { + \mbox{} + \par + \smallskip% + }% + \vskip\smallskipamount% + } + } + \bool_gset_false:N \g_@@_previous_article_with_bibliography_or_minibio_bool +% \end{macrocode} +% +% \begin{macrocode} +%<class-article>\hypersetup{pdftitle=\g_@@_short_title_tl,pdfauthor=\l_@@_people_first_last_names_tl} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% We fix some of the PDF's metadata . +% \begin{macrocode} +\bool_if:NT {\g_@@_for_authors_bool} { + \hypersetup{% + pdftitle=\g_@@_short_title_tl, + pdfauthor=\l_@@_people_first_last_names_tl + } +} +% \end{macrocode} +% +% Here, we put the \pkg{TikZ}'s picture of the \enquote{bullet and rule} +% (contained in the "\l_@@_bullet_and_rule_tl" token list) in a "\vbox" that +% follows a "\cleaders" that makes the whole vanishes at pages boundaries +% (cf. \url{http://tex.stackexchange.com/a/31615/18401}). +% \begin{macrocode} + \bool_if:nF { \g_@@_for_authors_bool } { + % \xleaders\vbox { + % \bigskip% + % }% + % \vskip\bigskipamount% + \noindent% + \checkoddpage% + \ifoddpage% + \l_@@_bullet_and_rule_odd_tl + \else% + \l_@@_bullet_and_rule_even_tl + \fi% + \bigskip% + }% + \par + \nopagebreak[4] +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \begin{macrocode} + \l_@@_title_box_tl + \normalsize% + \nopagebreak[3] + \bool_if:nF { \tl_if_empty_p:N \g_@@_abstract_body_tl && (\tl_if_empty_p:N \l_@@_people_first_last_names_tl || \g_@@_interview_rubric_bool || \g_@@_rearviewmirror_rubric_bool)} + {% + \par% + \bigskip + \bigskip + \large% + \mbox{}% + \checkoddpage% + \ifoddpage% + \l_@@_abstract_box_tl + \hspace*{11mm}% + \l_@@_authors_box_tl + \else% + \hspace*{-.85\c_@@_outermargin_dim}% + \l_@@_authors_box_tl + \hspace*{11mm}% + \l_@@_abstract_box_tl + \fi% + } + \tl_gclear:N \g_@@_title_tl + \tl_gclear:N \g_@@_subtitle_tl + \tl_gclear:N \g_@@_abstract_body_tl + \normalsize% + \bigskip + \tl_if_empty:NF \g_@@_abstract_body_tl + % {% + % \tl_if_empty:NF \l_@@_people_first_last_names_tl + % {% + % \bigskip + % } + % } + { + \bigskip + } + \bool_if:nT \g_@@_interview_rubric_bool + { +% \end{macrocode} +% +% We set "\parindent" to zero in \enquote{Interview} rubric. +% \begin{macrocode} + \dim_zero:N \parindent + % \tl_if_empty:NF \l_@@_people_photo_tl + % { + % \begin{adjustbox}{center} + % \includegraphics[height=50mm]{\l_@@_people_photo_tl} + % \end{adjustbox} + % } + } + \color{@@_default_text_color}% + \IfBooleanF {#1}% + { + \bool_if:nF { \g_@@_multicols_bool || \g_@@_rearviewmirror_rubric_bool } + { + \begin{multicols}{2}% + } + } + } +% \end{macrocode} +% \end{macro} +% +% We load the file where acronyms are defined. +% \begin{macrocode} +\file_if_exist:nT { \c_@@_acronyms_file_string_tl } {% + \AddToHook{begindocument/before}{\loadglsentries{\c_@@_acronyms_file_string_tl}} +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% In case of "forauthors" option, we close the "multicols" environment in case +% it isn't closed (which happens if neither "\printbibliography" nor +% "\printauthorsdetails" is used). This should fix issue +% \url{https://github.com/dbitouze/gzt/issues/36}. +% \begin{macrocode} +\bool_if:nT { \g_@@_for_authors_bool } +{ + \AddToHook{enddocument}{% + \bool_if:NT {\g_@@_multicols_bool} { + \end{multicols}% + } + } +} +% \end{macrocode} +% +% We load the configuration file (only for the issue's class), which has to be +% located in the \TeX{} search path: at least one such a file is provided by the +% class and located in the same directory as the class file. This file is loaded +% at the end of preamble instead of begin of the document in order some settings +% needed in preamble are taken in account. +% \begin{macrocode} +\AddToHook{begindocument/before}{ + \file_if_exist_input:nF {\c_@@_configuration_file_string_tl} + { + \msg_error:nn { gzt } { configuration-file-missing } + } +} +% \end{macrocode} +% +% We make use of \pkg{etoc} to perform the special layout of the table of +% contents. For convenience, it is included in a (long)table (from +% \Pkg{longtable}) and the following code mainly comes from the \pkg{etoc}'s +% documentation. +% \begin{macrocode} +\@ifpackageloaded{etoc}{% + \newif\ifShowPartPageInToc % used before \part{Livres} +% cf etoc manual section Typesetting the TOC as a table +% we use "\unexpanded" rather than more cumbersome but Knuthian "\toks" registers + \newtoks\toctabletok + \newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands only once #2 + #1\expandafter\expandafter\expandafter {\expandafter\the\expandafter #1#2}} + \newcommand*\PreparePart{% + \edef\toctablepiece {% + \ExceptFirstPart {\noexpand\\[-1.5mm]}% + \unexpanded{% + \color{@@_rubric_in_toc_color}\scshape\fontseries{bx}\selectfont% + }% + \unexpanded\expandafter{\etocthelinkedname}& + % \ifShowPartPageInToc + \unexpanded{\bfseries\color{@@_rubric_in_toc_color}}% + \unexpanded\expandafter{\etocthelinkedpage}% + % \fi + \noexpand\\}% + \gdef\ExceptFirstPart ##1{##1}% + } + \newcommand*\PrepareChapter{% + \edef\toctablepiece {% + \unexpanded{\color{@@_article_in_toc_color}\small}% + \unexpanded\expandafter{\etocthelinkedname}& + \unexpanded{\color{@@_article_in_toc_color}\small} + \unexpanded\expandafter{\etocthelinkedpage}% + \noexpand\\[1mm]}% + } + \etocsetstyle{part}{}{} + {\PreparePart \appendtotok\toctabletok\toctablepiece} + {} + \etocsetstyle{chapter}{}{} + {\PrepareChapter \appendtotok\toctabletok\toctablepiece} + {} + \etocsettocstyle + {% + \setlength\LTleft{\c_zero_dim} + \setlength\LTright{\c_zero_dim} + \gdef\ExceptFirstPart ##1{}% + \toctabletok {%\hypersetup{hidelinks}% + \begin{longtable}{@{\extracolsep{\fill}}p{115mm}@{\quad}!{\color{@@_rule_in_toc_color}\vrule width 0.2mm}@{}r@{}}}% + } + {\global\toctabletok\expandafter{% + \the\toctabletok\end{longtable} + } + } + }{} +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \section{Special tools common to the editorial, the table of contents and the +% president message} +% +% We create an internal function that displays the box containing the issue +% number, with possible image on its left, followed below by an arbitrary text +% with a reflection effect. +% \begin{macrocode} +\tl_new:N \g_@@_boxed_issue_number_tl% +\tl_gset:Nn \g_@@_boxed_issue_number_tl {% + \tcbox{\Large\No\g_@@_issue_number_int} +} +\cs_new_protected:Nn \@@_boxed_issue_number:nn +{ + \noindent% + \raisebox{\baselineskip}{% + \tl_if_empty:nF {#1} {% + \makebox[\c_zero_dim][r]{% + % \hspace*{\l_@@_thumbnail_width_dim}% + \begin{adjustbox}{valign=t} + \includegraphics[width=\l_@@_thumbnail_width_dim]{#1}% + \end{adjustbox}% + }% + }% + \bool_if:NTF {\g_@@_special_edition_bool} { + \tl_set:Nn \l_tmpa_tl {\c_@@_short_special_edition_string_tl} + }{ + \tl_set:Nn \l_tmpa_tl {\No\int_use:N\g_@@_issue_number_int} + } + \begin{adjustbox}{valign=t} + \begin{tcolorbox}[% + enhanced,% + title=\l_tmpa_tl,%\int_use:N \g_@@_issue_number_int,% + fonttitle=\Large,% + colback=white,% + sharp~corners=all,% + height=33mm,% + boxrule=\c_zero_dim,% + % frame~hidden,% + attach~boxed~title~to~top~left,% + tikznode~boxed~title={minimum~width=\c_@@_boxed_issue_number_width_dim},% + boxed~title~style={% + size=minimal,% + height=\c_@@_boxed_issue_number_height_dim,% + center~upper,% + before={},% + colback=@@_boxed_issue_number_bg_color,% + sharp~corners=all,% + frame~hidden,% + valign=center,% + }% + ] + \@@_reflected_text:n { #2 }% + \end{tcolorbox} + \end{adjustbox}% + }% + \par% +} +% \end{macrocode} +% +% \begin{macrocode} +\cs_new_protected:Nn \_@@_before_frontmatter_stuff: +{ + \bool_gset_true:N \g_@@_frontmatter_bool% + \pagestyle{@@_frontmatter_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_front_matter_geometry_tl}% +} +\cs_new_protected:Nn \_@@_after_frontmatter_stuff: +{ + \color{@@_default_text_color} + \normalsize% + \clearpage% + \bool_gset_false:N \g_@@_frontmatter_bool% +} +% \end{macrocode} +% +% \begin{macrocode} +\cs_new_protected:Nn \_@@_before_editorial_presidentmessage:nn +{ + \_@@_before_frontmatter_stuff: {} + \@@_boxed_issue_number:nn {#1}{#2} + \color{@@_frontmatter_text_color}% + \fontsize{11}{13.6}\selectfont + \RaggedRight +} +\cs_new_protected:Nn \_@@_after_editorial_presidentmessage: +{ + \justifying + \bigskip + \par +} +% \end{macrocode} +% +% \section{Displaying the editorial} +% +% We create an internal function that displays the editorial. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_before_display_editorial:n +{ + \_@@_before_editorial_presidentmessage:nn {}{#1} +} +\cs_new_protected:Nn \_@@_after_display_editorial: +{ + \_@@_after_editorial_presidentmessage: {} + \hspace*{\fill}% + \bool_if:NTF {\g_@@_special_edition_bool} { + \AtNextCitekey{\defcounter{maxnames}{100}} + \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -editorinchief- 1} + }{ + \DTLforeach*[\DTLiseq{\l_@@_people_role_tl}{editorinchief}]{people}{% + \l_@@_firstlastname_tl=first-last-name% + ,\l_@@_people_role_tl=role% + }{% + \_@@_citeauthor_no_firstinits:n {\c_@@_issue_bib_key_tl -editorinchief- \exp_not:V\DTLcurrentindex}% + } + } + % + \_@@_after_frontmatter_stuff: {} +} +\cs_new_protected:Nn \_@@_display_editorial:n +{ + \_@@_before_display_editorial:n {#1} + \file_if_exist_input:nF {\c_@@_editorial_file_string_tl} + {% + \msg_error:nn { gzt } { editorial-file-missing } + } + \_@@_after_display_editorial: {} +} +\AddToHook{begindocument/before}{% + \tl_set_eq:NN \g_@@_editorial_heading_tl \c_@@_editorial_heading_string_tl + \bool_if:NT {\g_@@_special_edition_bool} { + \tl_if_empty:NF \g_@@_special_edition_editorial_heading_tl {% + \tl_set_eq:NN \g_@@_editorial_heading_tl \g_@@_special_edition_editorial_heading_tl + } + } + \NewDocumentCommand \editorial { O{\g_@@_editorial_heading_tl} } + { + \bool_if:NF {\g_@@_for_authors_bool} { + \_@@_display_editorial:n {#1} + } + } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \section{Displaying the table of contents} +% +% We create an internal function that displays the table of contents. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_display_toc: +{ + \_@@_before_frontmatter_stuff: {} + \@@_boxed_issue_number:nn {\g_@@_frontcover_image_file_tl}{\c_@@_toc_string_tl} + \phantomsection + \hypertarget{@@_toc}{} + \bool_if:NTF {\g_@@_special_edition_bool} { + \bookmark[dest=@@_toc,level=chapter]{\c_@@_toc_string_tl} + }{ + \bookmark[dest=@@_toc,level=part]{\c_@@_toc_string_tl} + } + \etocsettocdepth.toc{chapter}% + \tableofcontents + \the\toctabletok + \_@@_after_frontmatter_stuff: {} +} +\NewDocumentCommand \gzttableofcontents {} +{ + \bool_if:NF {\g_@@_for_authors_bool} { + \_@@_display_toc: {} + } +} +% \end{macrocode} +% +% \section{Displaying the mini table of contents of the front cover} +% +% We create an internal function that displays the president's message. +% \begin{macrocode} +\tl_new:N \g_@@_frontcover_minitoc_tl% +\tl_new:N \l_@@_minitoc_label_tl% +\cs_new_protected:Nn \_@@_frontcover_minitoc:n +{ + \tl_gset:Nn \g_@@_frontcover_minitoc_tl {#1} +} +\NewDocumentCommand \minitoc { O{} m } +{ + \keys_set:nn { gzt/minitoc } { #1 } + \_@@_frontcover_minitoc:n {#2} +} +% +\newlist{@@_minitoc_list}{itemize}{1} +\setlist[@@_minitoc_list]{itemsep=2ex,label=\textcolor{@@_cover_itemize_label_color}\textbullet} +% +\NewDocumentEnvironment{minitoclist}{} +{% + \cs_set_eq:NN \_@@_orig_item \item + \RenewDocumentCommand \item { s O{} }{% + \tl_set:Nn \l_@@_minitoc_label_tl {##2} + \_@@_orig_item\textbf{##2} + \IfBooleanT {##1} + { + \c_@@_minitoc_rubric_title_separator_string_tl + } + } + \begin{@@_minitoc_list} +}{ + \end{@@_minitoc_list} + \cs_set_eq:NN \item \_@@_orig_item +} +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \section{Displaying the president's message} +% +% We create an internal function that displays the president's message. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_before_display_presidentmessage: +{ + \_@@_before_editorial_presidentmessage:nn {\c_@@_smf_logo_file_string_tl}{\c_@@_president_message_string_tl} + \phantomsection + \par% + \addcontentsline{toc}{part}{\g_@@_smf_short_string_tl}% + \addcontentsline{toc}{chapter}{\c_@@_president_message_string_tl}% +} +\cs_new_protected:Nn \_@@_after_display_presidentmessage: +{ + \_@@_after_editorial_presidentmessage: {} + % + \hspace*{\fill}% + \c_@@_president_message_date_string_tl% + \displaydate{@@_president_message_date}% + \\[1.5mm] + \hspace*{\fill}% + \@@_display_people_by_role:n { president }% + ,\c_space_tl + \c_@@_president_signatory_string_tl + % + \_@@_after_frontmatter_stuff: {} +} +\cs_new_protected:Nn \_@@_display_president_message: +{ + \_@@_before_display_presidentmessage: {} + \file_input:n {\c_@@_president_message_file_string_tl} + \_@@_after_display_presidentmessage: {} +} +\NewDocumentCommand \presidentmessage {} +{ + \bool_if:NF {\g_@@_for_authors_bool} { + \_@@_display_president_message: {} + } +} +% \end{macrocode} +% +% \section{Chapter, sections, etc. customization} +% +% Thanks to \Pkg{titlesec}, the chapter, section, subsection and subsubsection +% formats are customized. +% +% \begin{description} +% \item[Chapter] has a \enquote{block} shape, is typeset in huge and bold face, +% without any number, with a null distance between the (missing) number and +% the title, with a title in enforced lower case but small caps. +% \begin{macrocode} +\titleformat{\chapter}% +[block] +{\Huge\bfseries} +{} +{\c_zero_dim} +{\scshape}% +% \end{macrocode} +% +% \item[Section] has a \enquote{frame} shape, is typeset in bold face, left +% justified and in color, with number typeset in huge, with a negative +% distance between the number and the title, with a title in 12.5pt. +% \begin{macrocode} +\titleformat{\section} +{% + \raggedright% + \bfseries% + \color{@@_section_color} +} +{\fontsize{20}{15}\selectfont\thesection.\enspace} +{-3pt} +{\fontsize{13}{15}\selectfont} +% \end{macrocode} +% +% \item[Subsection:] +% \begin{macrocode} +\titleformat{\subsection} +% [frame] +{% + \fontsize{11}{16}\selectfont% + \bfseries% + \color{@@_subsection_color}% +} +{\thesubsection\ \textendash{}\ } +{\c_zero_dim} +{} +% \end{macrocode} +% +% \item[Subsubsection:] +% \begin{macrocode} +\titleformat{\subsubsection} +% [frame] +{% + \fontsize{11}{16}\selectfont% + \bfseries% + \color{@@_subsubsection_color}% +} +{} +{\c_zero_dim} +{} +% \end{macrocode} +% \end{description} +% +% \section{First pages} +% +% At begin of the document, we automatically : +% \begin{itemize} +% \item set the graphic path, +% \item set the page grid if the corresponding option has been passed, +% \item display the front cover and the inside front cover. +% \end{itemize} +% +% \begin{macrocode} +\AddToHook{begindocument}{% + \graphicspath{{\c_@@_issue_images_path_string_tl//}{../\c_@@_issue_images_path_string_tl//}} + % \glsdisablehyper + \g_@@_mainmatter_switch_tl + % \bool_gset_false:N \g_@@_frontmatter_bool + % \bool_gset_true:N \g_@@_mainmatter_bool + % \SetParskip{\c_@@_mainmatter_parskip_skip} + % \pagestyle{@@_mainmatter_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c_@@_main_geometry_tl}% +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \begin{macrocode} +\AddToHook{begindocument}{% + \dim_if_exist:NTF \g_@@_pagegrid_dim {% + \pagegridsetup{% + enable,% + step=\g_@@_pagegrid_dim% + } + }{% + \pagegridsetup{% + disable% + } + } + % \bool_if:NTF {\g_@@_for_authors_bool} { + % \thispagestyle{empty} + % \includegraphics{gzt-logo} + % \hfill + % \includegraphics[height=22.5mm]{\c_@@_smf_logo_file_string_tl}% + % \par + % \vfill + % \begin{adjustbox}{valign=c,minipage=\linewidth} + % \Large% + % \c_@@_preliminary_version_string_tl% + % \end{adjustbox} + % \vfill + % \newpage + % }{ + % \bool_if:NF {\g_@@_inside_pages_bool} { + % \g_@@_display_frontcover_tl + % \g_@@_display_inside_frontcover_tl + % } + % } + \bool_if:NF {\g_@@_for_authors_bool} { + \bool_if:NF {\g_@@_inside_pages_bool} { + \g_@@_display_frontcover_tl + \bool_if:NTF {\g_@@_coverpage_bool} { + \AddToHook{begindocument/end}{\end{document}} + }{ + \g_@@_display_inside_frontcover_tl + } + } + } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \section{Page styles} +% +% Thanks to \Pkg{titleps} loaded by \pkg{titlesec}'s "pagestyles" option, we define +% some page styles. +% +% \subsection{Common tools} +% +% Here, we define some tools shared by sevral pages styles. +% +% The background footer: +% \begin{macrocode} +\tl_new:N \g_@@_background_footer_tl +\tl_gset:Nn \g_@@_background_footer_tl {% + \draw [@@_footer_bg_color,fill] + (current~page.south~west) + rectangle ([yshift=\c_@@_footer_background_height_dim]current~page.south~east) + ; +} +% \end{macrocode} +% +% The frontmatter head text: +% \begin{macrocode} +\tl_new:N \l_@@_frontmatter_head_text_tl +\tl_set:Nn \l_@@_frontmatter_head_text_tl {% + \bool_if:NTF {\g_@@_special_edition_bool} { + \g_@@_special_edition_title_tl + }{ + \includegraphics{gzt-logo} + } +} +% \end{macrocode} +% +% The rubric head text: +% \begin{macrocode} +% \tl_new:N \l_@@_rubric_head_text_tl +% \tl_set:Nn \l_@@_rubric_head_text_tl {% +% \color{@@_rubric_head_text_color}% +% \fontsize{20}{20}\fontseries{bx}\fontshape{sc}\selectfont% +% \g_@@_rubric_title_tl% +% } +% \end{macrocode} +% +% The frontmatter page head rule: +% \begin{macrocode} +\tl_new:N \g_@@_frontmatter_page_headrule_tl +\tl_gset:Nn \g_@@_frontmatter_page_headrule_tl {% + \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim] + ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west) + -- + ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east) + ;% +} +% \end{macrocode} +% +% The frontmatter page head text: +% \begin{macrocode} +\tl_new:N \g_@@_frontmatter_headtext_tl +\tl_gset:Nn \g_@@_frontmatter_headtext_tl {% + \mbox{}% + \checkoddpage% + \ifoddpage% + \node[ + anchor=north~east,% + align=center,% + fill=white,% + inner~xsep=3.5mm,% + outer~sep=\c_zero_dim,% + ] at + ([% + xshift=\c_@@_frontmatter_headtext_o_xshift_dim,% + yshift=\c_@@_frontmatter_headtext_yshift_dim% + ]current~page.north~east) {% + \Large + \bool_if:NT {\g_@@_special_edition_bool} { + \c_@@_short_special_edition_string_tl + \c_space_tl + } + \l_@@_frontmatter_head_text_tl + }% + ; + \else% + \node[% + anchor=north~west,% + align=center,% + fill=white,% + inner~xsep=3.5mm,% + outer~sep=\c_zero_dim,% + ] at + ([% + xshift=\c_@@_frontmatter_headtext_e_xshift_dim,% + yshift=\c_@@_frontmatter_headtext_yshift_dim% + ]current~page.north~west) {% + \Large + \bool_if:NT {\g_@@_special_edition_bool} { + \c_@@_short_special_edition_string_tl + \c_space_tl + } + \l_@@_frontmatter_head_text_tl + }% + ; + \fi% +} +% \end{macrocode} +% +% The mainmatter odd page head rule: +% \begin{macrocode} +\tl_new:N \g_@@_mainmatter_oddpage_headrule_tl +\tl_gset:Nn \g_@@_mainmatter_oddpage_headrule_tl {% + \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim] + ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~east) + -- + ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west) + ; +} +% \end{macrocode} +% +% The mainmatter even page head rule: +% \begin{macrocode} +\tl_new:N \g_@@_mainmatter_evenpage_headrule_tl +\tl_gset:Nn \g_@@_mainmatter_evenpage_headrule_tl {% + \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim] + ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~west) + -- + ([yshift=\c_@@_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east) + ; +} +% \end{macrocode} +% +% We momentarily switch to a \enquote{normal} category code régime in which the +% colon (:) is treated as \enquote{letter}, which is necessary where (here +% \pkg{TikZ} and \pkg{tcolorbox}) code makes use of colon. +% \begin{macrocode} +\ExplSyntaxOff +\tcbuselibrary{breakable,skins,hooks,xparse,theorems,listingsutf8} +\usetikzlibrary{babel,fadings,positioning,calc} +% \end{macrocode} +% +% We create a \enquote{minus} version of each of the previous styles for floats +% with number (and keywords) but without any caption: in such cases, the number +% should not be followed by any separator. +% \begin{macrocode} +\tcbset{% + new/blend into/tables-/.style={% + use counter*=table,% + /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@table}}}},% + new/blend into/figures-/.style={% + use counter*=figure,% + /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@figure}}}},% +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \begin{macrocode} +\newcommand\gzt@arcthroughthreepoints[4][]% +{ + % \NoAutoSpacing% + \coordinate (middle1) at ($(#2)!.5!(#3)$); + \coordinate (middle2) at ($(#3)!.5!(#4)$); + \coordinate (aux1) at ($(middle1)!1!90:(#3)$); + \coordinate (aux2) at ($(middle2)!1!90:(#4)$); + \coordinate (center) at ($(intersection of middle1--aux1 and middle2--aux2)$); + \filldraw[fill=white,draw=@@_headrule_color,line width=0.25mm,#1] + let \p1=($(#2)-(center)$), + \p2=($(#4)-(center)$), + \n0={veclen(\p1)}, % Radius + \n1={atan2(\y1,\x1)}, % angles + \n2={atan2(\y2,\x2)}, + \n3={\n2>\n1?\n2:\n2+360} + in (#2) arc(\n1:\n3:\n0); + % \foreach \p in {#2,#3,#4,center} + % \fill[red] (\p) circle(2pt); +} +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +\ExplSyntaxOn +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% The rubric page head rule: +% \begin{macrocode} +\tl_new:N \g_@@_rubric_page_head_tl +\tl_gset:Nn \g_@@_rubric_page_head_tl {% + \bool_if:nF { \g_@@_for_authors_bool } { + \tikz[remember~picture,overlay] { + \path (current~page.north~west |- current~page~header~area.south~west) coordinate (_@@_pwest); + \path (current~page.north~east |- current~page~header~area.south~east) coordinate (_@@_peast); + \draw [@@_headrule_color,line~width=\c_@@_header_line_width_dim] + ([yshift=\c_@@_header_line_yshift_dim]_@@_pwest) + -- + ([yshift=\c_@@_header_line_yshift_dim]_@@_peast) + ;% + \tl_if_empty:NF \g_@@_rubric_abstract_tl {% + \mbox{}% + \checkoddpage% + \ifoddpage% + \coordinate (@@_A) at ([xshift=\c_@@_xshift_arccircle_A_dim,yshift=\c_@@_yshift_arccircle_A_dim]current~page.north~west); + \coordinate (@@_B) at ([xshift=\c_@@_xshift_arccircle_B_dim,yshift=\c_@@_yshift_arccircle_B_dim]current~page.north~west) ; + \coordinate (@@_C) at ([xshift=\c_@@_xshift_arccircle_C_dim,yshift=\c_@@_yshift_arccircle_C_dim]current~page.north~west) ; + \gzt@arcthroughthreepoints{@@_A}{@@_B}{@@_C}; + \else% + \coordinate (@@_A) at ([xshift=-\c_@@_xshift_arccircle_A_dim,yshift=\c_@@_yshift_arccircle_A_dim]current~page.north~east); + \coordinate (@@_B) at ([xshift=-\c_@@_xshift_arccircle_B_dim,yshift=\c_@@_yshift_arccircle_B_dim]current~page.north~east) ; + \coordinate (@@_C) at ([xshift=-\c_@@_xshift_arccircle_C_dim,yshift=\c_@@_yshift_arccircle_C_dim]current~page.north~east) ; + \gzt@arcthroughthreepoints{@@_C}{@@_B}{@@_A}; + \fi% + } + } + } +} +% \end{macrocode} +% +% \subsection{Front cover page style} +% +% \begin{macrocode} +\newpagestyle{@@_frontcover_ps}[]{% + \sethead + {}% + {% + \adjustbox{stack=c}{ + {\Large + \c_@@_frontcover_header_string_tl + }\\[7mm] + \adjustbox{scale=2.08}{ + \huge + \bool_if:NT {\g_@@_special_edition_bool} { + \color{@@_generic_dark_color} + } + \l_@@_frontmatter_head_text_tl + }% + }% + }% + {}% + % + \setfoot% + {}% + {}% + {}% +}% +% \end{macrocode} +% +% \subsection{Inside front cover page style} +% +% \begin{macrocode} +\newpagestyle{@@_inside_frontcover_ps}[]{% + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g_@@_frontmatter_page_headrule_tl% + \g_@@_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g_@@_frontmatter_page_headrule_tl% + \g_@@_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + []% + [% + \c_@@_footer_string_tl + ]% + []% + {}% + {% + \c_@@_footer_string_tl% + }% + {}% +}% +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \subsection{Front matter page style} +% +% \begin{macrocode} +\newpagestyle{@@_frontmatter_ps}[]{% + \widenhead*{\c_@@_front_matter_extra_innermargin_dim}{\c_@@_front_matter_extra_outermargin_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g_@@_frontmatter_page_headrule_tl% + \g_@@_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g_@@_frontmatter_page_headrule_tl% + \g_@@_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + [\c_@@_footer_size_font_tl\thepage]% + [% + \c_@@_footer_string_tl + ]% + [ +%<class-article>\c_@@_compiled_string_tl + ]% + { +%<class-article>\c_@@_compiled_string_tl + }% + {% + \c_@@_footer_string_tl% + }% + {\c_@@_footer_size_font_tl\thepage}% +}% +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \subsection{Rubric first page style} +% +% \begin{macrocode} +\newpagestyle{@@_rubric_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + ]% + [ + ]% + [ + \g_@@_rubric_page_head_tl% + \bool_if:nF { \g_@@_for_authors_bool } { + \adjustbox{raise={\c_@@_header_yshift_dim}{\height},lap=-\c_@@_header_xshift_dim-\linewidth}{% + \includegraphics[width=\c_@@_pictogram_width_dim]{\g_@@_rubric_pictofile_tl}% + }% + }% + ]% + { + \g_@@_rubric_page_head_tl% + }% + {}% + {% + \bool_if:nF { \g_@@_for_authors_bool } { + \adjustbox{raise={\c_@@_header_yshift_dim}{\height},lap=\c_@@_header_xshift_dim}{% + \includegraphics[width=\c_@@_pictogram_width_dim]{\g_@@_rubric_pictofile_tl}% + }% + }% + }% + % + \setfoot% + [\c_@@_footer_size_font_tl\thepage]% + [% + \c_@@_footer_string_tl + ]% + []% + {}% + {% + \c_@@_footer_string_tl% + }% + {\c_@@_footer_size_font_tl\thepage}% +}% +% \end{macrocode} +% +% \subsection{Advertisement page style} +% +% \begin{macrocode} +\newpagestyle{@@_advertisement_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {\g_@@_mainmatter_evenpage_headrule_tl} + ]% + [% + \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{@@_head_text_color}\c_@@_advertisement_string_tl% + }% + ]% + []% + {}% + {% + \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{@@_head_text_color}\c_@@_advertisement_string_tl% + } + }% + { + \tikz[remember~picture,overlay] {\g_@@_mainmatter_oddpage_headrule_tl} + }% + % + \setfoot% + [\c_@@_footer_size_font_tl\thepage]% + [% + \c_@@_footer_string_tl + ]% + []% + {}% + {% + \c_@@_footer_string_tl% + }% + {\c_@@_footer_size_font_tl\thepage}% +} +% \end{macrocode} +% +% \subsection{For blank pages added in order to ensure document total page +% numbers is a multiple of four} +% +% \begin{macrocode} +\newpagestyle{@@_blank_pages_ps}[]{% + \sethead + {}% + {}% + {}% + % + \setfoot% + [\c_@@_footer_size_font_tl\thepage]% + [% + \c_@@_footer_string_tl + ]% + []% + {}% + {% + \c_@@_footer_string_tl% + }% + {\c_@@_footer_size_font_tl\thepage}% +}% +% \end{macrocode} +% +% \subsection{Inside back cover page style} +% +% \begin{macrocode} +\newpagestyle{@@_inside_backcover_ps}[]{% + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g_@@_frontmatter_page_headrule_tl% + \g_@@_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g_@@_frontmatter_page_headrule_tl% + \g_@@_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + []% + [% + \c_@@_footer_string_tl + ]% + []% + {}% + {% + \c_@@_footer_string_tl% + }% + {}% +}% +% \end{macrocode} +% +% \subsection{Back cover page style} +% +% \begin{macrocode} +\newpagestyle{@@_backcover_ps}[]{% + \sethead + {}% + {}% + {}% + % + \setfoot% + {}% + {}% + {}% +}% +% \end{macrocode} +% +% We define crop marks. +% \begin{macrocode} +% \bool_if:NT {\g_@@_for_printer_bool} {% +% \AddEverypageHook{% +% \tikz[remember~picture,overlay] {% +% \draw ([yshift=\c_@@_potential_layoutoffset_dim]current~page.south~west) -- +(0.25,0); +% \draw ([xshift=\c_@@_potential_layoutoffset_dim]current~page.south~west) -- +(0,0.25); +% %% lower right +% \draw ([yshift=\c_@@_potential_layoutoffset_dim]current~page.south~east) -- +(-0.25,0); +% \draw ([xshift=-\c_@@_potential_layoutoffset_dim-\c_@@_potential_bindingoffset_dim]current~page.south~east) -- +(0,0.25); +% %% upper left +% \draw ([yshift=-\c_@@_potential_layoutoffset_dim]current~page.north~west) -- +(0.25,0); +% \draw ([xshift=\c_@@_potential_layoutoffset_dim]current~page.north~west) -- +(0,-0.25); +% %% upper right +% \draw ([yshift=-\c_@@_potential_layoutoffset_dim]current~page.north~east) -- +(-0.25,0); +% \draw ([xshift=-\c_@@_potential_layoutoffset_dim-\c_@@_potential_bindingoffset_dim]current~page.north~east) -- +(0,-0.25); +% }% +% }% +% } +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% We draw a gray background at the bottom of each page, but the first one. +% \begin{macrocode} +\AddToHook{shipout/background}{ +%<class> \bool_if:nF { \g_@@_frontcover_bool || \g_@@_backcover_bool }{ + \bool_if:NF {\g_@@_advertisement_bool} { + \tikz[remember~picture,overlay] { \g_@@_background_footer_tl }% + }% +%<class> }% +} +% \end{macrocode} +% +% \subsection{Main matter page style} +% +% \begin{macrocode} +\newpagestyle{@@_mainmatter_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {\g_@@_mainmatter_evenpage_headrule_tl} + ]% + [% + \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{@@_head_text_color}\g_@@_rubric_title_tl% + }% + ]% + []% + {}% + {% + \bool_if:nF { + \g_@@_rearviewmirror_rubric_bool || \g_@@_books_rubric_bool + }{ + \adjustbox{raise={\c_@@_header_yshift_dim}{\height}}{% + \bfseries\color{@@_head_text_color}\g_@@_short_title_tl% + } + } + }% + { + \tikz[remember~picture,overlay] {\g_@@_mainmatter_oddpage_headrule_tl} + }% + % +\bool_if:nTF { \g_@@_for_authors_bool } { + \setfoot% + [\c_@@_footer_size_font_tl\thepage]% + [% + \c_@@_footer_string_tl + ]% + [\c_@@_compiled_string_tl]% + {\c_@@_compiled_string_tl}% + {% + \c_@@_footer_string_tl% + }% + {\c_@@_footer_size_font_tl\thepage}% + }{ + \setfoot% + [\c_@@_footer_size_font_tl\thepage]% + [% + \c_@@_footer_string_tl + ]% + []% + {}% + {% + \c_@@_footer_string_tl% + }% + {\c_@@_footer_size_font_tl\thepage}% + } +} +% \end{macrocode} +% +% We define a public macro for possible acknowledgements to be used by author(s) +% of articles. +% \begin{macrocode} +\NewDocumentCommand \acknowledgements { +m } { + \@@_article_acknowledgements:n {#1}% +} +% \end{macrocode} +% +% \begin{macro}{\printminibios} +% \begin{macro}{\printauthorsdetails} +% We define the public command which displays +% \begin{itemize} +% \item the affiliation(s), email(s) and minibiographie(s) of the authors, +% \item the acknowledgements if not empty. +% \end{itemize} +% \begin{macrocode} +\NewDocumentCommand \printminibios {} { + \bool_if:NT {\g_@@_multicols_bool} { + \end{multicols}% + } +% \end{macrocode} +% We force all the previous floats to be processed no later on the page +% following the beginning of the bibliography, \textsc{cv} or +% acknowledgements. +% \begin{macrocode} + \FloatBarrier% + \begin{_@@_minibiographies_acknowledgements_tcbox} + \@@_display_people_by_role:n { author-art-\int_use:N \g_@@_articles_int } + \DTLsavelastrowcount{\_@@_authors_number} + \tl_if_empty:NF \l_@@_article_acknowledgements_tl + {% + \footnotesize + \int_compare:nNnT {\_@@_authors_number}>{0} + { + \par% + \bigskip% + } + \begin{adjustbox}{valign=t,minipage=\linewidth} + \color{@@_acknowledgements_color}% + \setlength{\parskip}{\c_@@_mainmatter_parskip_skip} + \l_@@_article_acknowledgements_tl + \end{adjustbox} + } + \bool_gset_true:N \g_@@_previous_article_with_bibliography_or_minibio_bool + \end{_@@_minibiographies_acknowledgements_tcbox} +} +% \end{macrocode} +% \end{macro} +% We define "\printauthorsdetails" as an alias of "\printminibios". +% \begin{macrocode} +\let\printauthorsdetails\printminibios +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\printbibliography} +% The command for bibliography printing production is redefined in order to let +% it silently: +% \begin{itemize} +% \item beforehand quit the multicolumn environment and enter in the +% "_@@_bibliography_tcbox" environment (which gives a special layout to +% bibliographies, \textsc{cv} and acknowledgements), +% \item afterwards quit the "bibliography_minibiographies_acknowledgements" environment and enter in +% the multicolumn environment. +% \end{itemize} +% \begin{macrocode} +\cs_set_eq:NN \_@@_printbibliography \printbibliography +\RenewDocumentCommand \printbibliography { s O{} } { + \bool_if:NT {\g_@@_multicols_bool} { + \end{multicols}% + } +% \end{macrocode} +% We force all the previous floats to be processed no later on the page +% following the beginning of the bibliography, \textsc{cv} or +% acknowledgements. +% \begin{macrocode} +% \afterpage{% + \FloatBarrier% +% }% + \begin{_@@_bibliography_tcbox} + \_@@_printbibliography[heading=subbibliography,resetnumbers,#2] + \end{_@@_bibliography_tcbox} + % + \IfBooleanF {#1} + { + \nopagebreak[0] + \printauthorsdetails + } +} +% \end{macrocode} +% \end{macro} +% +% \section{Miscellaneous private commands specific to the journal} +% +% We create miscellaneous private commands specific to the journal. +% +% Command for centuries. +% \begin{macrocode} +\deftranslation[to=French]{_@@_century}{si\`ecle}% +\deftranslation[to=English]{_@@_century}{century}% +\deftranslation[to=French]{_@@_first}{\ier}% +\deftranslation[to=English]{_@@_first}{\up{st}\xspace}% +\deftranslation[to=French]{_@@_nth}{\ieme}% +\deftranslation[to=English]{_@@_nth}{\up{th}\xspace}% +\deftranslation[to=French]{_@@_bc}{avant~J.-C}% +\deftranslation[to=English]{_@@_bc}{BC}% +\cs_new_protected:Nn \_@@_century:n +{ + \textsc{ + \int_to_roman:n {\int_abs:n {#1}} + }% + \int_compare:nNnTF { \int_abs:n {#1} } > { 1 }{\translate{_@@_nth}}{\translate{_@@_first}} +} +\cs_new_protected:Nn \_@@_century_suffix:n +{ + \translate{_@@_century}% + \int_compare:nNnT { #1 } < { 0 }{ + \c_space_tl + \translate{_@@_bc} +% \end{macrocode} +% In case of French language, we add a period just after \enquote{avant~J.-C}, +% but only if the character following the "\century" macro is not a period +% itself. +% \begin{macrocode} + \IfLanguageName {french}{ + \@ifnextchar.% + { + }{ + .\xspace + }% + } + }{ + } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% \section{Miscellaneous public commands specific to the journal} +% +% We create miscellaneous public commands specific to the journal. +% +% \begin{macro}{\advertisement} +% For a (not full page) advertisement. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_advertisement:nn + { + \vfill + \begin{center} + \dim_set:Nn \fboxsep {\c_zero_dim} + \fbox{% + \includegraphics[max~size={\linewidth}{\textheight},#1]{#2} + } + \end{center} + \vfill + } +\NewDocumentCommand \advertisement { O{} m } + { + \_@@_advertisement:nn {#1}{#2} + } +% \end{macro} +% +% \begin{macro}{\fullpageadvertisement} +% For a full page advertisement. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_fullpageadvertisement:nn + { + \newpage + \thispagestyle{@@_advertisement_ps} + \begin{minipage}[c][\textheight][c]{\textwidth}% + \centering\includegraphics[max~size={\linewidth}{\textheight},#1]{#2}% + \end{minipage}% + } +\NewDocumentCommand \fullpageadvertisement { O{} m } +{ + \_@@_fullpageadvertisement:nn {#1}{#2} +} +% \end{macro} +% +% \begin{macro}{\aboutfrontcover} +% For a few words about the front cover. +% \begin{macrocode} +\NewDocumentCommand \aboutfrontcover { O{} O{\c_@@_about_frontcover_string_tl} m } +{ + \_@@_about_frontcover:nnn {#1}{#2}{#3}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\cs_new_protected:Nn \_@@_prepare_rubric:nnn {% + \newpage% + \tl_gclear:N \g_@@_rubric_abstract_tl + \tl_gset:Nn \g_@@_rubric_title_tl {#2} + \tl_gset:Nn \g_@@_rubric_pictofile_tl {#3} + \IfNoValueF {#1} + { + \keys_set:nn { gzt/rubric } { #1 } + } + \_@@_rubric:nnn + {\g_@@_rubric_abstract_tl}{\g_@@_rubric_title_tl}{\g_@@_rubric_pictofile_tl}% +} +% \end{macrocode} +% +% \begin{macro}{\rubric} +% For a \enquote{free} rubric. In case of special edition, we set the rubric +% title first as empty and then as the special edition's title plus a constant +% string. Otherwise, this title is freely set. +% \begin{macrocode} +\NewDocumentCommand \rubric {O{}mm} +{ + \bool_if:NTF {\g_@@_special_edition_bool} { + \_@@_rubric:nnn {#1}{#2}{#3}% + \tl_gset:Nn \g_@@_rubric_title_tl {% + \c_@@_short_special_edition_string_tl + \c_space_tl + \g_@@_special_edition_title_tl + } + }{ + \_@@_rubric:nnn {#1}{#2}{#3}% + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\NewDocumentCommand \mathematics {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_mathematics_rubric_string_tl}{\c_@@_mathematics_pictogram_file_name_tl} +} +\NewDocumentCommand \dossier {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_dossier_rubric_string_tl}{\c_@@_dossier_pictogram_file_name_tl} +} +\NewDocumentCommand \community {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_community_rubric_string_tl}{\c_@@_hands_pictogram_file_name_tl} +} +\NewDocumentCommand \interview {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_interview_rubric_string_tl}{\c_@@_interview_pictogram_file_name_tl} + \bool_gset_true:N \g_@@_interview_rubric_bool +} +\NewDocumentCommand \teaching {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_teaching_rubric_string_tl}{\c_@@_teaching_pictogram_file_name_tl} +} +\NewDocumentCommand \parity {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_parity_rubric_string_tl}{\c_@@_parity_pictogram_file_name_tl} +} +\NewDocumentCommand \tellme {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_tellme_rubric_string_tl}{\c_@@_tellme_pictogram_file_name_tl} + \bool_gset_true:N \g_@@_tellme_rubric_bool +} +\NewDocumentCommand \information {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_information_rubric_string_tl}{\c_@@_information_pictogram_file_name_tl} +} +\NewDocumentCommand \rearviewmirror {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_rearviewmirror_rubric_string_tl}{\c_@@_rearviewmirror_pictogram_file_name_tl} + \bool_gset_true:N \g_@@_rearviewmirror_rubric_bool +} +\NewDocumentCommand \tribute {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_tribute_rubric_string_tl}{\c_@@_tribute_pictogram_file_name_tl} +} +\NewDocumentCommand \books {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_books_rubric_string_tl}{\c_@@_books_pictogram_file_name_tl} + \bool_gset_true:N \g_@@_books_rubric_bool + \vspace{1.5\c_@@_book_review_frontcover_extend_dim} +} +\NewDocumentCommand \latextips {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_latex_rubric_string_tl}{} +} +\NewDocumentCommand \forum {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_forum_rubric_string_tl}{\c_@@_forum_pictogram_file_name_tl} +} +\NewDocumentCommand \moralreport {O{}} +{ + \_@@_rubric:nnn {#1}{\c_@@_moralreport_rubric_string_tl}{\c_@@_smf_logo_file_string_tl} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \begin{macro}{\email} +% \begin{macrocode} +\DeclareCiteCommand{\citeinterviewee}{}{% + \printnames{interviewee}% +} +{}{} +\DeclareCiteCommand{\citereviewer}{}{% + \g_@@_blx_given_first_inits_false_tl + \printnames{reviewer}% +} +{}{} +\DeclareCiteCommand{\citereviewerinstitution}{}{% + \printlist{reviewerinstitution}% +} +{}{} +\DeclareCiteCommand{\_@@_cite_public_price}{}{% + \printfield{publicprice}% +} +{}{} +\DeclareCiteCommand{\_@@_cite_smf_price}{}{% + \printfield{smfprice}% +} +{}{} +\DeclareCiteCommand{\citecopublisher}{}{% + \printlist{copublisher}% +} +{}{} +\DeclareCiteCommand{\citefrenchabstract}{}{% + \printfield{frenchabstract}% +} +{}{} +\DeclareCiteCommand{\_@@_cite_englishabstract}{}{% + \printfield{englishabstract}% +} +{}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\email} +% For typesetting an email. +% \begin{macrocode} +\NewDocumentCommand \email {m} +{ + \_@@_email:n {#1}% +} +% \end{macro} +% +% \begin{macro}{\question} +% We define a private function for the questions/answers of interviews. +% \begin{macrocode} +\cs_new_protected:Nn \_@@_question:n +{ + \int_incr:N \g_@@_question_int + {% + \par% + \bigskip% + \color{@@_question_color} + #1% + \par% + }% +} +\NewDocumentCommand \question {m} +{ + \_@@_question:n {#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\smf} +% \begin{macrocode} +\NewDocumentCommand \smf { s } { + \IfBooleanTF {#1} + { + \g_@@_smf_string_tl + } + { + \g_@@_smf_short_string_tl + } + \xspace +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\surname} +% \begin{macrocode} +\DeclareExpandableDocumentCommand \surname { m } { + \textsc{#1} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cad} +% \begin{macro}{\Cad} +% \begin{macrocode} +\NewDocumentCommand \cad { s } { + \IfBooleanTF {#1} + { + \c_@@_cad_string_tl + } + { + \c_@@_cad_short_string_tl + } + \xspace +} +\NewDocumentCommand \Cad { s } { + \IfBooleanTF {#1} + { + \c_@@_Cad_string_tl + } + { + \c_@@_Cad_short_string_tl + } + \xspace +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\gzt} +% \begin{macrocode} +\NewDocumentCommand \gzt { s } { + \IfBooleanTF {#1} + { + \l_@@_gzt_string_tl + } + { + \l_@@_gzt_short_string_tl + } + \xspace +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\gztcl} +% \begin{macro}{\gztarticle} +% \begin{macrocode} +\NewDocumentCommand \gztcl {} +{% + \textsl{\texttt{\c_@@_class_name_tl}} + \xspace +} +\NewDocumentCommand \gztarticlecl {} +{% + \textsl{\texttt{\c_@@_article_class_name_tl}} + \xspace +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\century} +% \begin{macrocode} +\NewDocumentCommand \century { s m } {% + \_@@_century:n {#2}% + \IfBooleanTF {#1} + { + \int_compare:nNnT { #2 } < { 0 }{ + \_@@_century_suffix:n {#2}% + } + } + { + \_@@_century_suffix:n {#2}% + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\aside} +% \begin{macrocode} +\NewDocumentCommand \aside { s m } {% + \IfBooleanTF {#1} + { + \c_@@_aside_string_tl{}~#2 + } + { + \c_@@_aside_string_tl{}~#2~\c_@@_aside_string_tl + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\tl_new:N \g_@@_font_designer_text_tl% +\cs_new_protected:Nn \@@_font_designer_text:n +{ + \tl_gset:Nn \g_@@_font_designer_text_tl { #1 } +} +\NewDocumentCommand \fontdesignertext {m} +{ + \_@@_font_designer_text:n {#1}% +} +% \end{macrocode} +% +% \begin{macrocode} +\tl_new:N \g_@@_printer_text_tl% +\cs_new_protected:Nn \@@_printer_text:n +{ + \tl_gset:Nn \g_@@_printer_text_tl { #1 } +} +\NewDocumentCommand \printertext {m} +{ + \_@@_printer_text:n {#1}% +} +% \end{macrocode} +% +% Command for epigraphs. +% \begin{macrocode} +\renewcommand{\textflush}{flushepinormal} +\cs_set_eq:NN \_@@_orig_epigraph \epigraph +\cs_new_protected:Nn \_@@_epigraph:nn +{ + \bool_if:nTF { \tl_if_empty_p:n {#2} } + { + \setlength{\epigraphrule}{\c_zero_dim} + } + { + \setlength{\epigraphrule}{.4\p@} + } + \_@@_orig_epigraph{% + \emph{% + \enquote{% + #1% + }% + }% + }% + {% + #2 + } +} +\RenewDocumentCommand \epigraph { m m } +{ + \_@@_epigraph:nn {#1}{#2}% +} +% \end{macrocode} +% +% \begin{macrocode} +\NewDocumentEnvironment{authorsinstructions}{} +{% + \begingroup + \tcbverbatimwrite{\c_@@_authors_instructions_file_tl} +}% +{ + \endtcbverbatimwrite + \endgroup +} +% \end{macrocode} +% +% We provide some public commands and environments to be used for displaying +% (mainly \LaTeX{}) code. +% \begin{macrocode} +\lstdefinestyle{@@_lst_style}{% + escapechar=+, + language=[LaTeX]TeX, + texcsstyle=*\bfseries, + breaklines=true, + basicstyle=\normalfont\ttfamily, + columns=flexible, + inputencoding=utf8/latin1 +}% +\DeclareTotalTCBox{\gztverb}{ v }{verbatim,blank,fuzzy~halo=0pt~with~@@_light_generic_dark_color!8}{#1} +% \end{macrocode} +% +% The optional argument declaration must be prefixed with an "!" (see +% \url{https://github.com/T-F-S/tcolorbox/issues/43}). +% \begin{macrocode} +\NewTCBListing{gztcode}{ !O{} }{% + listing~style=@@_lst_style, + listing~only, + enlarge~top~by=\medskipamount, + breakable, + #1% +} +% \end{macrocode} +% +% We provide public environments "gztfigure" and "gzttable" (and friends) for +% the usual floats. Their layout is based upon \pkg{tcolorbox} features. +% \begin{macrocode} +\DeclareTColorBox[blend~into=figures]{gztfigure}{ O{} } +{ + ,width=\linewidth% + ,blend~before~title=dash% + ,_@@_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=figures]{gztfigure*}{ O{} } +{ + ,float* + ,blend~before~title=dash% + ,width=\textwidth% + ,_@@_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=tables]{gzttable}{ O{} } +{ + ,width=\linewidth% + ,blend~before~title=dash% + ,_@@_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=tables]{gzttable*}{ O{} } +{ + ,float* + ,blend~before~title=dash% + ,width=\textwidth% + ,_@@_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{_@@_tcb_notitle}}{}}% +} +\DeclareTColorBox{gztframe}{ O{} } +{ + ,width=\linewidth% + ,_@@_tcb_floats_style% + ,#1% +} +\DeclareTColorBox{gztframe*}{ O{} } +{ + ,float* + ,width=\textwidth% + ,_@@_tcb_floats_style% + ,#1% +} +% +\DeclareTColorBox{gztscan}{ O{} } +{ + #1% + ,width=\textwidth% + ,_@@_tcb_floats_style% + ,size=tight% +} +\DeclareTColorBox{_@@_book_review}{ O{} } +{ + overlay~unbroken~and~first={% + \node at (frame.north~west) { + { + \makebox[\c_zero_dim][l]{% + \adjustbox{raise={-2\height+\c_@@_book_review_frontcover_extend_dim}{\c_zero_dim}}{% + \includegraphics[width=20mm]{\g_@@_bookreview_frontcover_tl}% + }% + } + } + }; + }, + _@@_tcb_book_review_box_style, + #1 +} +\DeclareTColorBox{_@@_bibliography_tcbox}{ O{} } +{ + _@@_tcb_bibliography_style, + #1 +} +\DeclareTColorBox{_@@_minibiographies_acknowledgements_tcbox}{ O{} } +{ + _@@_tcb_minibiographies_acknowledgements_style, + #1 +} +% \end{macrocode} +% +% We provide a public environment "inset" for insets that has the same layout as +% minibiographies and acknowledgements. Its layout is based upon \pkg{tcolorbox} +% features. +% \begin{macrocode} +\DeclareTColorBox{inset}{ O{} } +{ + _@@_tcb_minibiographies_acknowledgements_style, + #1 +} +% \end{macrocode} +% +% We create a "bookreview" environment for the book reviews. +% \begin{macrocode} +\NewDocumentEnvironment{bookreview}{ O{} m } +{ + \keys_set:nn { gzt/bookreview } { #2 } + \begin{_@@_book_review}[#1] + \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}% + \xpretonameformat{author}{\color{@@_people_color}}{}{}% + \g_@@_blx_given_first_inits_false_tl + \noindent% + \parbox[][21.5mm][l]{\linewidth}{\fullcite{\g_@@_bookreview_bibkey_tl}} + \tcblower +}{ + \begin{flushright} + % \g_@@_reviewer_tl + \bigskip + \citereviewer{\g_@@_bookreview_bibkey_tl}\\ + \citereviewerinstitution{\g_@@_bookreview_bibkey_tl} + \end{flushright} + % \vspace*{10mm} + \mbox{} + \end{_@@_book_review} +} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareTColorBox{_@@_book_advertisement}{ O{} } +{ + _@@_tcb_book_advertisement_box_style, + #1 +} +\DeclareTColorBox{_@@_inside_cover_tcb}{ O{} } +{ + #1 +} +% \end{macrocode} +% +% We create a "bookadvertisement" environment for the book advertisements. +% \begin{macrocode} +\NewDocumentCommand \bookadvertisement {O{} m} +{ + \newpage{} + \mbox{} + \vfill + \begin{_@@_book_advertisement}[#1] + \fullcite{#2} + \par + \bigskip + \tcblower + \includegraphics[height=22.5mm]{\c_@@_smf_logo_file_string_tl}% + \par{} + \smallskip% + \url{\l_@@_journal_url_tl} + \end{_@@_book_advertisement} + \vfill + \newpage + \bool_gset_false:N \g_@@_advertisement_bool + \bool_gset_true:N \g_@@_mainmatter_bool +} +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class> +% \end{macrocode} +% +% We create a variant of the "\input" macro which cleans the local +% customizations if any and, if necessary open and close the "refsection" and +% "multicols" environments. +% \begin{macrocode} +\NewDocumentCommand \gztinput { m m } {% + \tl_gclear:N \g_@@_people_affiliation_tl + \tl_gclear:N \g_@@_people_email_tl + \tl_gclear:N \g_@@_people_minibio_tl + \tl_gclear:N \g_@@_people_photo_tl + \tl_gclear:N \g_@@_people_webpage_tl + \tl_clear:N \l_@@_article_acknowledgements_tl + \startcustomization% + \bool_if:NF {\g_@@_refsection_bool} { + \begin{refsection} + } + \bool_if:NF { \g_@@_backcover_bool } { + \tl_if_in:NnT + { \c_@@_advertisement_directory_string_tl } { #1 } {% + \newpage + \thispagestyle{@@_advertisement_ps} + } + } + \inputfrom{#1}{#2} + \bool_if:NT {\g_@@_multicols_bool} { + \end{multicols}% + } + \bool_if:NT {\g_@@_refsection_bool} { + \end{refsection} + } + \cleancustomization% +} +% \end{macrocode} +% +% If we don't ask the cover page (only), the inside back cover and back cover +% pages are automatically included at the end of the document, the former +% containing some condensed instructions to authors. But, this cannot be done +% within "\AddToHook{enddocument}" and "\preto\@enddocumenthook" should be used instead +% (see \url{http://tex.stackexchange.com/q/240318/18401}). (Update (2021-02-14): +% we now rely on the new ×\AddToHook{env/document/end}×.) +% \begin{macrocode} +\bool_if:NF {\g_@@_coverpage_bool} { + \bool_if:NF {\g_@@_inside_pages_bool} { + \AddToHook{enddocument/end}{ + \bool_gset_true:N \g_@@_backmatter_bool + \g_@@_display_inside_backcover_tl + \newpage + \g_@@_display_backcover_tl + }% + }% +}% +% \end{macrocode} +% +% If we don't ask the cover page (only), the document total page numbers should +% be a multiple of four and we add the necessary and sufficient number of blank +% pages if it isn't the case (code borrowed from +% \url{http://tex.stackexchange.com/a/83498/18401}). +% \begin{macrocode} +\bool_if:NF {\g_@@_coverpage_bool} { + \bool_if:nF { \g_@@_for_authors_bool } { + \bool_if:nT { \g_@@_inside_pages_bool } { + \AddToHook{enddocument}{% + \prg_replicate:nn + { \int_mod:nn { 4 - \int_mod:nn { \getpagerefnumber{LastPage} } { 4 } } { 4 } } + { \thispagestyle{@@_blank_pages_ps}\null\clearpage } + } + } + } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class> +% \end{macrocode} +% +% \begin{macrocode} +%<*class-article> +% \end{macrocode} +% +% \begin{macrocode} +\ProcessKeysOptions { gztarticle } +% \end{macrocode} +% +% \begin{macrocode} +\AddToHook{enddocument}{% + \bool_if:NT {\g_@@_multicols_bool} { + \end{multicols}% + } + \bool_if:NT {\g_@@_refsection_bool} { + \end{refsection} + } +} +% \end{macrocode} +% +% \begin{macrocode} +%</class-article> +% \end{macrocode} +% +% \begin{macrocode} +%<*class|class-article> +% \end{macrocode} +% +% \section{Miscellaneous settings} +% +% We gather here miscellaneous settings. +% +% \subsection{Related to \Pkg{pgfplots}} +% +% (French) Numbers format: +% \begin{macrocode} +\pgfplotsset{% + /pgf/number~format/.cd, + use~comma, + 1000~sep={\,}, + min~exponent~for~1000~sep=4 +}% +% \end{macrocode} +% +% \subsection{Related to \Pkg{biblatex}} +% +% \begin{macrocode} +\defbibheading{bibassection}[\bibname]{\section*{#1}}% +\renewcommand{\bibfont}{\normalfont\footnotesize} +% \end{macrocode} +% +% As bibiliographic resource, we add the file of the current issue. +% \begin{macrocode} +\exp_after:wN\addbibresource\exp_after:wN{\c_@@_issue_bib_path_string_tl} +% \end{macrocode} +% +% We create a name format that prints the initial(s) of the first name(s) before +% last name of a cited author. +% \begin{macrocode} +\@ifpackagelater{biblatex}{2016/01/01}{% + \DeclareNameFormat{giveninits-last}{% + \nameparts{#1} + \usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}% + \usebibmacro{name:andothers}% + } +}{ + \DeclareNameFormat{giveninits-last}{% + \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}% + \usebibmacro{name:andothers}% + } +} +\DeclareNameAlias{labelname}{giveninits-last} +% \end{macrocode} +% +% We ensure the space between initial(s) and last name is unbreakable. +% \begin{macrocode} +\renewcommand*\bibnamedelimc{\addnbspace} +\renewcommand*\bibnamedelimd{\addnbspace} +% \end{macrocode} +% +% \begin{macrocode} +\renewbibmacro{in:}{% + \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}} +\renewbibmacro*{journal}{% + \iffieldundef{shortjournal}% + {% + \iffieldundef{journaltitle} + {} + {% + \printtext[journaltitle]% + {% + \printfield[titlecase]{journaltitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{journalsubtitle}% + }% + }% + }% + {\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}% +} +\renewbibmacro*{volume+number+eid}{% + \printfield{volume}% + \setunit{\addcomma\c_space_tl}% + \printfield{number}% + \setunit{\addcomma\c_space_tl}% + \printfield{eid}} +\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat[book]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat[article]{number}{\bibstring{number}#1} +\DeclareLanguageMapping{french}{gzt}% use the new abbreviations +% \end{macrocode} +% +% \subsection{Related to \Pkg{kpfonts}} +% +% We robustify the "\itshape" redefinition (in case of "easyscsl" option), that +% is not robust in \pkg{kpfonts} code +% (cf. \url{https://groups.google.com/d/msg/fr.comp.text.tex/hIi97ipK5qA/WJoPwvH-p1UJ}). +% \begin{macrocode} +\ifkp@easyscsl +\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit% + \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{% + \fontshape\itdefault}\selectfont} +\fi +% \end{macrocode} +% +% We replace the \pkg{kpfonts}' \enquote{mathfrak} by the one from +% \enquote{eufrak}, as the former doesn't provide Euler Fraktur digits. +% \begin{macrocode} +\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} +\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} +% \end{macrocode} +% +% \subsection{Related to \Pkg{draftwatermark}} +% +% \begin{macrocode} +\@ifpackageloaded{draftwatermark}{% + \SetWatermarkColor{gray!10}% + \SetWatermarkFontSize{30mm}% + \SetWatermarkText{\text_uppercase:n{\c_@@_draftwatermark_string_tl}}% +}{% +} +% \end{macrocode} +% +% \subsection{Related to \Pkg{TikZ}} +% +% \begin{macrocode} +\tikzset{ + _@@_dots/.style={ + line~width=\c_@@_tikz_dot_diameter_dim, + line~cap=round, + dash~pattern=on~0pt~off~\c_@@_tikz_dot_spacing_dim + }, + _@@_tcb_segmentation_style/.style={ + _@@_dots, + draw=@@_dotfill_color, + shorten~>=~\c_@@_tcb_left_dim+\c_@@_tcb_boxsep_dim, + shorten~<=~\c_@@_tcb_left_dim+\c_@@_tcb_boxsep_dim, + } +} +% \end{macrocode} +% +% \subsection{Related to \Pkg{tcolorbox}} +% +% We set some styles for +% \begin{itemize} +% \item the two public environments "gztfigure(*)" and "gzttable(*)" for the +% usual floats, +% \item the book reviews, +% \item the book advertisements, +% \item the inside frontcover, +% \end{itemize} +% whom layout is based upon \pkg{tcolorbox} features. +% \begin{macrocode} +\tcbset{ + copyright/.style={% + overlay={% + \node[rotate=90,anchor=south~west,font=\tiny] at (frame.south~east) {% + \begin{minipage}[t]{\tcbtextheight} + \copyright{}~#1% + \end{minipage} + };% + }% + }% +} +\tcbset{% + _@@_tcb_floats_style/.style={% + enhanced% + ,every~float=\centering% + ,coltitle=@@_generic_dark_color% + ,colbacktitle=@@_float_title_bg_color% + ,colback=white% + ,colframe=@@_float_frame_color% + ,center~upper% + ,sharp~corners=all% + ,boxrule=0.3mm% + }% +} +\tcbset{% + _@@_tcb_notitle/.style={% + blend~before~title~code={##1} + ,title={\c_space_tl}% + }% +} +\tcbset{% + _@@_tcb_book_review_box_style/.style={% + enhanced,% + colback=@@_book_review_frame_bg_color,% + breakable,% + % height=50mm,% + boxrule=\c_zero_dim, + sharp~corners=all,% + skin=enhancedlast, + leftupper=25mm, + enlarge~bottom~finally~by=-1mm, + middle=4mm, + segmentation~style={_@@_tcb_segmentation_style}% + } +} +\tcbset{% + _@@_tcb_book_advertisement_box_style/.style={% + enhanced,% + colframe=@@_book_advertisement_frame_color,% + colback=@@_book_advertisement_bg_color,% + center~lower, + sharp~corners=all,% + % skin=enhancedlast, + % middle=4mm, + lower~separated=false, + % segmentation~style={_@@_tcb_segmentation_style}% + } +} +\tcbset{% + _@@_tcb_inside_cover_style/.style={% + % split=0.6,% + colback=@@_inside_frontcover_frame_bg_color,% + colbacktitle=@@_inside_frontcover_frame_bg_color,% + sharp~corners=all,% + center~title,% + coltitle=@@_inside_frontcover_frame_title_color,% + fonttitle=\bfseries\large,% + boxrule=\c_zero_dim,% + toptitle=3mm,% + bottomtitle=4mm,% + frame~hidden,% + enhanced,% + height=\c_@@_layoutheight_dim-\c_@@_topmargin_inside_cover_dim-\c_@@_botmargin_dim, + width=\c_@@_inside_cover_box_width_dim, + middle=4mm, + segmentation~style={_@@_tcb_segmentation_style}% + }, + _@@_tcb_inside_frontcover_style/.style={% + _@@_tcb_inside_cover_style, + enlarge~left~by=-\c_@@_inside_cover_offset_dim, + }, + _@@_tcb_inside_backcover_style/.style={% + _@@_tcb_inside_cover_style, + enlarge~left~by=\c_@@_inside_cover_offset_dim, + } +} +\AddToHook{begindocument/before}{% + \bool_if:NTF {\g_@@_special_edition_bool} { + \tcbset{ + _@@_tcb_inside_frontcover_style/.append~style={% + title=\c_@@_special_edition_editorial_board_string_tl + }, + _@@_tcb_inside_backcover_style/.append~style={% + notitle + }, + } + }{ + \tcbset{ + _@@_tcb_inside_frontcover_style/.append~style={% + title=\c_@@_editorial_board_string_tl + }, + _@@_tcb_inside_backcover_style/.append~style={% + title=\file_if_exist:nT { \c_@@_authors_instructions_file_tl } {% + \c_@@_authors_instructions_string_tl + } + }, + } + } +} +\tcbset{% + _@@_tcb_bibliography_style/.style={% + colback=@@_bibliography_minibios_acknowledgements_bg_color, + breakable, + boxrule=\c_zero_dim, + sharp~corners=all,% + enhanced + } +} +\tcbset{% + _@@_tcb_minibiographies_acknowledgements_style/.style={% + colback=@@_bibliography_minibios_acknowledgements_bg_color, + breakable, + boxrule=\c_zero_dim, + extras~unbroken~and~last={drop~lifted~shadow}, + sharp~corners=all,% + skin=enhancedlast, + height~fixed~for=middle, + } +} +\tcbset{% + enlargepage~flexible=\baselineskip, + left=\c_@@_tcb_left_dim, + boxsep=\c_@@_tcb_boxsep_dim, +} +% \end{macrocode} +% +% \subsection{Lists} +% +% We now set the lists layout in order to benefit from \Pkg{enumitem}'s features +% and preserve the layout from \pkg{frenchb}. +% \begin{macrocode} +\setlist[1]{labelindent=\parindent} +\setlist[itemize]{label=\textendash{}, nosep} +\setlist{% + labelwidth=\widthof{\textendash}, + itemsep=0.4ex plus 0.2ex minus 0.2ex, + parsep=0.4ex plus 0.2ex minus 0.2ex, + topsep=0.8ex plus 0.4ex minus 0.4ex, + partopsep=0.4ex plus 0.2ex minus 0.2ex, + leftmargin=!% +} +% \end{macrocode} +% +% \begin{macrocode} +\setlist[description]{ + font= + \bool_if:nTF { \g_@@_books_rubric_bool || \g_@@_inside_frontcover_bool || \g_@@_inside_backcover_bool } + { + \color{black} + }{ + \color{@@_description_label_light_color} + } + \bfseries +} +% \end{macrocode} +% +% \subsection{Miscellaneous} +% +% We fix the \pkg{csquotes}' quotes for PDF strings. +% \begin{macrocode} +\DeclarePlainStyle{«~}{~»}{`}{'} +% \end{macrocode} +% +% We change the default settings of the floats placement. +% \begin{macrocode} +\setcounter{topnumber}{3} +\renewcommand{\topfraction}{0.8} +% \end{macrocode} +% +% We change the default vertical space between text and footnotes. +% \begin{macrocode} +\addtolength{\skip\footins}{.25\baselineskip} +% \end{macrocode} +% +% We change the default horizontal space between columns in multicolumn mode. +% \begin{macrocode} +\setlength{\columnsep}{7mm}% +% \end{macrocode} +% +% We change the way the section counter is displayed (the chapter should not appear). +% \begin{macrocode} +\renewcommand{\thesection}{\arabic{section}}% +% \end{macrocode} +% +% In case \Pkg{siunitx} is loaded, we make it follow the French rules. +% \begin{macrocode} +\@ifpackageloaded{siunitx}{% + \sisetup{locale=FR} +} +% \end{macrocode} +% +% We change the color of the table rules. +% \begin{macrocode} +\arrayrulecolor{@@_arrayrule_color}% +% \end{macrocode} +% +% We change the floating table name (as translated by the \pkg{frenchb} +% module from \Pkg{babel}) from \enquote{Table} to \enquote{Tableau}. +% \begin{macrocode} +\addto\captionsfrench{\def\tablename{{\scshape Tableau}}}% +% \end{macrocode} +% +% \section{Miscellaneous (re)definitions} +% +% We gather here miscellaneous redefinitions. +% +% \subsection{Vectors} +% +% Vectors, even written with "\vec", are typeset with \pkg{esvect}'s "\vv": +% \begin{macrocode} +\RenewDocumentCommand \vec { m } { + \vv{#1} +} +% \end{macrocode} +% +% \begin{macro}{\usetikzlibrary} +% The "\usetikzlibrary" switch is redefined in order to get rid of the bug +% reported here: \url{https://sourceforge.net/p/pgf/bugs/353/}. +% \begin{macrocode} +\cs_set_eq:NN \_@@_orig_usetikzlibrary \usetikzlibrary +\RenewDocumentCommand \usetikzlibrary { m } { + \shorthandoff{:}% + \_@@_orig_usetikzlibrary{#1} + \shorthandon{:}% + % \begingroup + % \NoAutoSpacing + % \_@@_orig_usetikzlibrary{#1} + % \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Usual theorems and the like} +% +% Some usual theorems and the like are defined, thanks to \Pkg{thmtools}. First, +% we define a private function "\_@@_new_theorem" that defines: +% \begin{enumerate} +% \item a new (private, \pkg{thmtools}) theorem with 4 arguments: +% \begin{enumerate} +% \item possible additional options to the style "_@@_tcb_alltheorems_style" +% defined earlier for all \enquote{theorems}, +% \item name of the (private) \pkg{thmtools} theorem, +% \item French title for this theorem, +% \item English title for this theorem. +% \end{enumerate} +% \item a public environment based on this private theorem with a the usual +% syntax of \pkg{amsthm} theorems, except it has an optional argument for +% possible additional options to the default styles ("theorem" or +% "definition"). +% \end{enumerate} +% +% \begin{macro}{\bilingual} +% \begin{macrocode} +\cs_new_protected:Nn \_@@_bilingual:nnn +{ + \deftranslation[to=French]{#1}{#2}% + \deftranslation[to=English]{#1}{#3}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\cs_new_protected:Nn \_@@_new_theorem:nnnn +{ + % \_@@_bilingual:nnn {#2}{#3}{#4} + \deftranslation[to=French]{#2}{#3}% + \deftranslation[to=English]{#2}{#4}% + \declaretheorem[% + #1,% + name=\translate{#2} + ]{#2} + \declaretheorem[% + #1,% + name=\translate{#2}, + numbered=no + ]{#2*} +} +\cs_generate_variant:Nn \_@@_new_theorem:nnnn { nnVV } +\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\itshape]{theorem} +\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\normalfont]{definition} +\declaretheoremstyle[spaceabove=3pt,bodyfont=\normalfont,qed=\ensuremath{\qedsymbol},headfont=\normalfont\itshape,numbered=no]{proof} +% \end{macrocode} +% +% Then, we define a public command, similar to "\newtheorem", based on +% "\_@@_new_theorem", that lets the user define his own theorems: +% \begin{macrocode} +\RenewDocumentCommand \newtheorem { O{} m } +{ + \tl_clear:N \l_@@_newtheorem_style_tl + \tl_clear:N \l_@@_newtheorem_frenchtitle_tl + \tl_clear:N \l_@@_newtheorem_englishtitle_tl + \tl_set:Nn \l_@@_newtheorem_englishtitle_tl { + \text_titlecase:n {#2} + } + \tl_set:Nf \l_@@_newtheorem_frenchtitle_tl { + \l_@@_newtheorem_englishtitle_tl + } + \tl_set:Nn \l_@@_newtheorem_style_tl { + theorem + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/newtheorem } { #1 } + } + % \tl_if_eq:VVF { \l_@@_newtheorem_englishtitle_tl } { \MakeUppercase #2 } + % {% + % \tl_if_eq:NNF { \l_@@_newtheorem_frenchtitle_tl } { \l_@@_newtheorem_englishtitle_tl } + % {% + % \tl_set:Nf \l_@@_newtheorem_frenchtitle_tl { + % \l_@@_newtheorem_englishtitle_tl + % } + % } + % } + \_@@_new_theorem:nnVV {style=\l_@@_newtheorem_style_tl}{#2}{\l_@@_newtheorem_frenchtitle_tl}{\l_@@_newtheorem_englishtitle_tl} +} +% \end{macrocode} +% +% Finally, we define some usual theorems: +% \begin{macrocode} +\newtheorem[frenchtitle=Th\'eor\`eme]{theorem} +% \newtheorem[frenchtitle=Th\'eor\`eme,englishtitle=Theorem]{theoreme} +\newtheorem[frenchtitle=Corollaire]{corollary} +% \newtheorem[englishtitle=corollary]{corollaire} +\newtheorem{conjecture} +\newtheorem{proposition} +\newtheorem[frenchtitle=Lemme]{lemma} +% \newtheorem[englishtitle=Lemma]{lemme} +\newtheorem[frenchtitle=Axiome]{axiom} +% \newtheorem[englishtitle=Axiom]{axiome} +% +\newtheorem[style=definition,frenchtitle=D\'efinition]{definition} +\newtheorem[style=definition,frenchtitle=Remarque]{remark} +\newtheorem[style=definition,frenchtitle=Exemple]{example} +\newtheorem[style=definition]{notation} +% +\let\proof\relax +\newtheorem[style=proof,frenchtitle=Preuve]{proof} +% +\cs_new_protected:Nn \_@@_clone_theorem:nn +{ + \NewDocumentEnvironment{#1}{} + { + \begin{#2} + } + { + \end{#2} + } + \NewDocumentEnvironment{#1*}{} + { + \begin{#2*} + } + { + \end{#2*} + } +} +\_@@_clone_theorem:nn {theoreme} {theorem} +\_@@_clone_theorem:nn {corollaire}{corollary} +\_@@_clone_theorem:nn {lemme}{lemma} +\_@@_clone_theorem:nn {axiome}{axiom} +\_@@_clone_theorem:nn {remarque}{remark} +\_@@_clone_theorem:nn {exemple}{example} +\_@@_clone_theorem:nn {preuve}{proof} +% \end{macrocode} +% +% \subsection{(Reciprocal) Trigonometric and hyperbolic functions} +% +% Reciprocal trigonometric functions, even written with usual "\arccos", +% "\arcsin", "\arctan", etc. are typeset with an uppercase \enquote{A}: +% \begin{macrocode} +\DeclareMathOperator{\cotan}{cotan} +\DeclareMathOperator{\Arccos}{Arccos} +\DeclareMathOperator{\Arcsin}{Arcsin} +\DeclareMathOperator{\Arctan}{Arctan} +\DeclareMathOperator{\Argch}{Argch} +\DeclareMathOperator{\Argsh}{Argsh} +\DeclareMathOperator{\Argth}{Argth} +\cs_set_eq:NN \_@@_orig_arccos \arccos +\cs_set_eq:NN \_@@_orig_arcsin \arcsin +\cs_set_eq:NN \_@@_orig_arctan \arctan +\RenewDocumentCommand \arccos {} { + \IfLanguageName {french}{\Arccos}{\_@@_orig_arccos}% +} +\RenewDocumentCommand \arcsin {} { + \IfLanguageName {french}{\Arcsin}{\_@@_orig_arcsin}% +} +\RenewDocumentCommand \arctan {} { + \IfLanguageName {french}{\Arctan}{\_@@_orig_arctan}% +} +\DeclareMathOperator{\ch}{ch} +\DeclareMathOperator{\sh}{sh} +\cs_set_eq:NN \_@@_orig_tanh \tanh +\RenewDocumentCommand \tanh {} { + \IfLanguageName {french}{\operatorname{th}}{\_@@_orig_tanh}% +} +\cs_set_eq:NN \_@@_orig_log \log +\cs_set_eq:NN \_@@_orig_lg \lg +\RenewDocumentCommand \log { s } { + \IfBooleanTF {#1} + { + \_@@_orig_log + } + { + \ln + } +} +\RenewDocumentCommand \lg { s } { + \IfBooleanTF {#1} + { + \_@@_orig_lg + } + { + \ln + } +} +\cs_set_eq:NN \_@@_orig_leq \leq +\cs_set_eq:NN \_@@_orig_geq \geq +\RenewDocumentCommand \le {} {% + \IfLanguageName {french}{\leqslant}{\_@@_orig_leq}% +} +\RenewDocumentCommand \leq {} {% + \IfLanguageName {french}{\leqslant}{\_@@_orig_leq}% +} +\RenewDocumentCommand \ge {} {% + \IfLanguageName {french}{\geqslant}{\_@@_orig_geq}% +} +\RenewDocumentCommand \geq {} {% + \IfLanguageName {french}{\geqslant}{\_@@_orig_geq}% +} +\NewDocumentCommand \N {} {\mathbb{N}} +\NewDocumentCommand \Z {} {\mathbb{Z}} +\NewDocumentCommand \D {} {\mathbb{D}} +\NewDocumentCommand \Q {} {\mathbb{Q}} +\NewDocumentCommand \R {} {\mathbb{R}} +\NewDocumentCommand \C {} {\mathbb{C}} +\NewDocumentCommand \K {} {\mathbb{K}} +% \end{macrocode} +% +% We define a token list variable that contains the color of the description +% labels because it won't be constant but will be: +% \begin{itemize} +% \item black in the front matter and in the books rubric +% \end{itemize} +% +% We now leave the \LaTeX3{} programming environment. +% \begin{macrocode} +\ExplSyntaxOff +% \end{macrocode} +% +% \begin{macrocode} +%</class|class-article> +% \end{macrocode} +% +% \section{Initial configuration file} +% Before the code of the \gztcl{} by itself, we give the initial configuration +% file. +% +% \begin{macrocode} +%<*configuration> +% \end{macrocode} +% +% \begin{macrocode} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Journal data +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\journalsetup{% + publisher = \smf, + address = Institut Henri Poincar\'e\newline + 11 rue Pierre et Marie Curie\newline + 75231 Paris cedex 05, + phone = 01 44 27 67 96, + fax = 01 40 46 90 96, + email = gazette@dma.ens.fr, + url = http://smf.emath.fr, + issn = 0224-8999 +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% SMF President +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\president{Seuret, Stéphane}{}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Editor in chief +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\editorinchief{Adamczewski, Boris}{Institut de Mathématiques de Marseille}{boris.adamczewski@math.cnrs.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Editors +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\editor{Colin, Vincent}{Université de Nantes}{vincent.colin@math.univ-nantes.fr} +\editor{Ehrhardt, Caroline}{Université Vincennes Saint-Denis}{caroline.ehrhardt@inrp.fr} +\editor{Gayet, Damien}{Institut Fourier, Grenoble}{damien.gayet@ujf-grenoble.fr} +\editor{Gouëzel, Sébastien}{Université Rennes 1}{sebastien.gouezel@univ-rennes1.fr} +\editor{Helffer, Bernard}{Université Paris-Sud}{bernard.helffer@math.u-psud.fr} +\editor{Loidreau, Pierre}{Université Rennes 1}{pierre.loidreau@univ-rennes1.fr} +\editor{Planchon, Fabrice}{Université de Nice}{fab@unice.fr} +\editor{Queffélec, Martine}{Université Lille 1}{Martine.Queffelec@univ-lille1.fr} +\editor{Seuret, Stéphane}{Université Paris Est Créteil}{seuret@u-pec.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Graphic designer +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\graphicdesigner{Lozanne, Nathalie}{}{n.lozanne@free.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Secretary +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\secretary{Ropartz, Claire}{}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LaTeX class designer (and maintainer(s)) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\classdesigner{Bitouzé, Denis}{Université du Littoral Côte d'Opale}{denis.bitouze@univ-littoral.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Font designer text +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fontdesignertext{Nous utilisons la police \href{http://ctan.org/pkg/kpfonts}{Kp-Fonts} créée par Christophe \textsc{Caignaert}.} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Printer text +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\printertext{Jouve \aside*{1 rue du docteur Sauvé 53100 Mayenne}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Authors instructions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{authorsinstructions} + \begin{description} + \item[Objectifs de la \gzt*{}.] Bulletin interne de la \smf{}, la \gzt{} est + un support privilégié d'expression au sein de la communauté + mathématique. À ce titre, elle informe de l'actualité des mathématiques, de + leur enseignement, de leur histoire, de leur relations avec d'autres + sciences (physique, informatique, biologie, etc.). + + On y trouve donc des articles scientifiques de présentation, ainsi que des + récensions de parutions mathématiques récentes. Elle contient aussi des + informations sur tout ce qui concerne la vie professionnelle d'un + mathématicien (recrutements, conditions de travail, publications + scientifiques, etc.) et aussi des témoignages ou des tribunes libres. + + La \gzt{} paraît à raison de quatre numéros par an avec, optionnellement, un + numéro spécial consacré à un sujet particulier de mathématiques ou bien à un + grand mathématicien. + + Elle est envoyée gratuitement à chaque adhérent. Les numéros actuel et + anciens sont disponibles en ligne + (\url{http://smf4.emath.fr/Publications/Gazette/}). + + \item[Soumission d'article.] Les articles doivent être envoyés au secrétariat, + de préférence par courrier électronique (\email{gazette@dma.ens.fr}), pour + être examinés par le comité de rédaction. Si un article est accepté, son + fichier source doit alors être fourni, de préférence sous forme d'un fichier + \TeX{} ou, à l'extrême rigueur, LibreOffice, OpenOffice ou + Word\textregistered{} ; une saisie de manuscrits est cependant possible pour + des textes courts. + + Les fichiers \TeX{} doivent : + \begin{itemize} + \item de préférence recourir au format \LaTeXe{} : éviter les commandes des + autres formats (tels que plain \TeX{}) ; + \item être si possible \enquote{encodés} en \texttt{UTF-8} ; + \item être le plus \enquote{pur} possible : éviter les macros + \enquote{exotiques} ainsi que les insertions manuelles d'espacements + horizontaux ou verticaux (\gztverb{\hspace}, \gztverb{\hskip}, + \gztverb{\vspace}, \gztverb{\vskip}, \gztverb{\enlargethispage}, etc.). + \end{itemize} + Les illustrations qui ne sont pas directement codées en \TeX{} doivent être + fournies aux formats \texttt{.pdf} (à privilégier) ou, avec un bonne + définition (300~\textsc{dpi} minimum), \texttt{.png} ou \texttt{.jpg}. Le + format \texttt{.eps}, quoique indirectement supporté, est déconseillé. + + Pour faciliter la composition de textes destinés à la \gzt{}, la \smf{} + propose la classe \LaTeX{} \gztarticlecl{} fournie par les distributions + \TeX{} courantes (\TeX{} Live et Mac\TeX{} \aside{à partir de leur version + 2015} ainsi que MiK\TeX{}), et sinon téléchargeable depuis la page + \url{http://ctan.org/pkg/gzt}. Sa documentation détaillée se trouve à la + page \url{http://mirrors.ctan.org/macros/latex/contrib/gzt/doc/gzt-fr.pdf}. + On prendra garde au fait que l'usage de cette classe nécessite une + distribution \TeX{} à jour. + + Pour plus de détails, consulter la page + \url{http://smf.emath.fr/content/la-gazette-des-mathematiciens}. + % + % \item[Rubrique \enquote{Mathématiques}] La \gzt{} publie des articles de + % mathématiques et d'interactions ou applications des mathématiques, + % chargés + % de présenter un résultat, exposer une notion ou de commenter une + % actualité. + % + % Ils s'adressent à un public étendu. Les textes privilégiés sont courts, + % pédagogiques et illustrés par des exemples. + % + % La bibliographie ne vise pas à l'exhaustivité et se concentre sur les + % textes + % introductifs et de référence. + % + % Les articles d'histoire des mathématiques ou contenant des vues + % historiques + % ou épistémologiques sont également bienvenus et doivent être conçus dans + % le + % même esprit. + % + % \item[Rubrique \enquote{Livres}] La rubrique \enquote{Livres} publie des + % recensions s'attachant à présenter des ouvrages de mathématiques et des + % ouvrages sur les mathématiques (leur histoire, leur philosophie, et plus + % généralement tout ce qui a trait aux mathématiques et aux + % mathématiciens). + % + % Quelques recommendations : + % \begin{itemize} + % \item Commencez la recension en donnant quelques informations sur le + % livre + % (titre, nom l'auteur, collection à laquelle il appartient, nom de + % l'éditeur, ville de la maison d'édition, année de la publication, + % nombre + % de pages, \textsc{isbn} et prix en euros ou en dollars). + % \item Précisez à quel public (de quel niveau) s'adresse le livre. + % \item Vous êtes libre de dire ce que vous pensez (dans les limites de la + % politesse et de la correction). Le comité de rédaction se réserve la + % décision finale de publication après relecture de votre recension. + % \item Les recensions doivent être brèves (une ou deux pages, trois au + % maximum) et synthétiser l'apport original d'un ouvrage. Dans le cas + % des + % ouvrages de mathématiques, elles n'ont pas pour objectif de rendre + % compte + % d'une théorie et d'en donner un exposé ; la recension proprement dite + % peut + % toutefois être précédée, à titre d'introduction à l'analyse de + % l'ouvrage, + % d'un bref exposé panoramique et historique des idées générales du + % domaine. + % \item N'insérez pas de bibliographie. + % \item Signez de vos nom et prénom et indiquez les noms de + % l'établissement et + % de la ville où vous exercez. + % \end{itemize} + \end{description} +\end{authorsinstructions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Font designer +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fontdesigner{Caignaert, Christophe}{}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Réglages divers +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pgfplotsset{compat=1.12}% +% \end{macrocode} +% +% \begin{macrocode} +%</configuration> +% \end{macrocode} +% +% We now give the rest of the code of the source file of the Gazette's logo. +% \begin{macrocode} +%<*class-logo> +% \end{macrocode} +% +% \begin{macrocode} +\ExplSyntaxOff +% +\begin{document} +\frontmatterheadtext +\end{document} +% \end{macrocode} +% +% \begin{macrocode} +%</class-logo> +% \end{macrocode} +% +% \begin{macrocode} +%<*readme-pictograms> +% \end{macrocode} +% +% \begin{macrocode} +# Pictograms possibly missing + +The current directory is supposed to contain the (files of the) logos and +pictograms that illustrate the Gazette whole issues compiled by the SMF. As non +free materials, they are likely to miss here and, in such a case, the `gzt` +class will be replace them by a dummy image (borrowed from the `mwe` package). +% \end{macrocode} +% +% \begin{macrocode} +%</readme-pictograms> +% \end{macrocode} +% +% \begin{macrocode} +%<*changelog> +% \end{macrocode} +# [Unreleased] + +# [1.0.1] - 2021-02-14 + +## Added +- Option to create moral reports (`gzt` class only). +- Local (to a given article) table of contents + +## Changed +- The class now relies on the new LaTeX core hooks. +- Documentation revised. +- Various improvements. + +## Fixed +- Superflous uppercases removed (cont.). +- `gztcode` environments partially gobble their content under certain + conditions. +- Various other small bugs. + +# [1.0.0] - 2020-03-17 + +## Added +- CHANGELOG file (following https://keepachangelog.com/en/1.0.0/). +- Semantic versionning (following https://semver.org/). + +## Changed +- Compilation date displayed only if the issue number is not specified + (`gztarticle` class only). +- Prevent column breaks within items of "Comité de rédaction" (at the price of + unbalanced columns). + +## Fixed +- Track changes in `expl3`. +- Superflous uppercases removed. +- Index directive in `latexmk` config file modernized. + +# [0.98] - 2018-04-09 + +## Changed +- Support for `biblatex` 3.8 changes. +- Track changes in `expl3`. +- Special editions implemented. + +## Fixed +- Several bug fixes. + +# [0.96] - 2017-04-07 + +## Changed +- Figures and tables: + - with recurrent label and number but without any caption, + - with caption but without any recurrent label nor numbered, + implemented. +- Frames without any label, number nor caption implemented. +- Track changes in `expl3`. + +# [0.9] - 2015-05-02 + +- Initial CTAN release of the `gzt` bundle. +% \begin{macrocode} +%</changelog> +% \end{macrocode} +% +% \begin{macrocode} +%<*latexmkrc> +% \end{macrocode} +% +% \begin{macrocode} +$pdf_mode = 1; + +$bibtex_use = 1; +$bibtex = 'biber %O %B'; + +add_cus_dep('glo', 'gls', 0, 'makeglossaries'); +add_cus_dep('acn', 'acr', 0, 'makeglossaries'); +add_cus_dep('slo', 'sls', 0, 'makeglossaries'); +sub makeglossaries{ + system( "makeglossaries \"$_[0]\"" ); +} + +$makeindex = 'texindy -L french -C utf8'; + +push @generated_exts, 'acn', 'acr', 'alg', 'bcf', 'fls', 'gl*', 'sbl*', 'sl*', 'sym*' ; + +$clean_ext .= 'synctex.gz* run.xml tex.bak ind idx out bbl bcf fdb_latexmk run + tdo listing *~ lo* unq mw tcbtemp ins drv atfi db* ain' ; + +$quote_filenames = 0; +% \end{macrocode} +% +% \begin{macrocode} +%</latexmkrc> +% \end{macrocode} +% +% \begin{macrocode} +\endinput +% \end{macrocode} +% +% \Finale + +%%% Local Variables: +%%% mode: doctex +%%% ispell-local-dictionary: "english" +%%% TeX-command-default: "TeX" +%%% TeX-master: t +%%% End: diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/gzt.cfg b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.cfg new file mode 100644 index 0000000000..6b0acfd120 --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.cfg @@ -0,0 +1,177 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Journal data +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\journalsetup{% + publisher = \smf, + address = Institut Henri Poincar\'e\newline + 11 rue Pierre et Marie Curie\newline + 75231 Paris cedex 05, + phone = 01 44 27 67 96, + fax = 01 40 46 90 96, + email = gazette@dma.ens.fr, + url = http://smf.emath.fr, + issn = 0224-8999 +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% SMF President +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\president{Seuret, Stéphane}{}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Editor in chief +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\editorinchief{Adamczewski, Boris}{Institut de Mathématiques de Marseille}{boris.adamczewski@math.cnrs.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Editors +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\editor{Colin, Vincent}{Université de Nantes}{vincent.colin@math.univ-nantes.fr} +\editor{Ehrhardt, Caroline}{Université Vincennes Saint-Denis}{caroline.ehrhardt@inrp.fr} +\editor{Gayet, Damien}{Institut Fourier, Grenoble}{damien.gayet@ujf-grenoble.fr} +\editor{Gouëzel, Sébastien}{Université Rennes 1}{sebastien.gouezel@univ-rennes1.fr} +\editor{Helffer, Bernard}{Université Paris-Sud}{bernard.helffer@math.u-psud.fr} +\editor{Loidreau, Pierre}{Université Rennes 1}{pierre.loidreau@univ-rennes1.fr} +\editor{Planchon, Fabrice}{Université de Nice}{fab@unice.fr} +\editor{Queffélec, Martine}{Université Lille 1}{Martine.Queffelec@univ-lille1.fr} +\editor{Seuret, Stéphane}{Université Paris Est Créteil}{seuret@u-pec.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Graphic designer +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\graphicdesigner{Lozanne, Nathalie}{}{n.lozanne@free.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Secretary +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\secretary{Ropartz, Claire}{}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LaTeX class designer (and maintainer(s)) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\classdesigner{Bitouzé, Denis}{Université du Littoral Côte d'Opale}{denis.bitouze@univ-littoral.fr} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Font designer text +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fontdesignertext{Nous utilisons la police \href{http://ctan.org/pkg/kpfonts}{Kp-Fonts} créée par Christophe \textsc{Caignaert}.} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Printer text +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\printertext{Jouve \aside*{1 rue du docteur Sauvé 53100 Mayenne}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Authors instructions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{authorsinstructions} + \begin{description} + \item[Objectifs de la \gzt*{}.] Bulletin interne de la \smf{}, la \gzt{} est + un support privilégié d'expression au sein de la communauté + mathématique. À ce titre, elle informe de l'actualité des mathématiques, de + leur enseignement, de leur histoire, de leur relations avec d'autres + sciences (physique, informatique, biologie, etc.). + + On y trouve donc des articles scientifiques de présentation, ainsi que des + récensions de parutions mathématiques récentes. Elle contient aussi des + informations sur tout ce qui concerne la vie professionnelle d'un + mathématicien (recrutements, conditions de travail, publications + scientifiques, etc.) et aussi des témoignages ou des tribunes libres. + + La \gzt{} paraît à raison de quatre numéros par an avec, optionnellement, un + numéro spécial consacré à un sujet particulier de mathématiques ou bien à un + grand mathématicien. + + Elle est envoyée gratuitement à chaque adhérent. Les numéros actuel et + anciens sont disponibles en ligne + (\url{http://smf4.emath.fr/Publications/Gazette/}). + + \item[Soumission d'article.] Les articles doivent être envoyés au secrétariat, + de préférence par courrier électronique (\email{gazette@dma.ens.fr}), pour + être examinés par le comité de rédaction. Si un article est accepté, son + fichier source doit alors être fourni, de préférence sous forme d'un fichier + \TeX{} ou, à l'extrême rigueur, LibreOffice, OpenOffice ou + Word\textregistered{} ; une saisie de manuscrits est cependant possible pour + des textes courts. + + Les fichiers \TeX{} doivent : + \begin{itemize} + \item de préférence recourir au format \LaTeXe{} : éviter les commandes des + autres formats (tels que plain \TeX{}) ; + \item être si possible \enquote{encodés} en \texttt{UTF-8} ; + \item être le plus \enquote{pur} possible : éviter les macros + \enquote{exotiques} ainsi que les insertions manuelles d'espacements + horizontaux ou verticaux (\gztverb{\hspace}, \gztverb{\hskip}, + \gztverb{\vspace}, \gztverb{\vskip}, \gztverb{\enlargethispage}, etc.). + \end{itemize} + Les illustrations qui ne sont pas directement codées en \TeX{} doivent être + fournies aux formats \texttt{.pdf} (à privilégier) ou, avec un bonne + définition (300~\textsc{dpi} minimum), \texttt{.png} ou \texttt{.jpg}. Le + format \texttt{.eps}, quoique indirectement supporté, est déconseillé. + + Pour faciliter la composition de textes destinés à la \gzt{}, la \smf{} + propose la classe \LaTeX{} \gztarticlecl{} fournie par les distributions + \TeX{} courantes (\TeX{} Live et Mac\TeX{} \aside{à partir de leur version + 2015} ainsi que MiK\TeX{}), et sinon téléchargeable depuis la page + \url{http://ctan.org/pkg/gzt}. Sa documentation détaillée se trouve à la + page \url{http://mirrors.ctan.org/macros/latex/contrib/gzt/doc/gzt-fr.pdf}. + On prendra garde au fait que l'usage de cette classe nécessite une + distribution \TeX{} à jour. + + Pour plus de détails, consulter la page + \url{http://smf.emath.fr/content/la-gazette-des-mathematiciens}. + % + % \item[Rubrique \enquote{Mathématiques}] La \gzt{} publie des articles de + % mathématiques et d'interactions ou applications des mathématiques, + % chargés + % de présenter un résultat, exposer une notion ou de commenter une + % actualité. + % + % Ils s'adressent à un public étendu. Les textes privilégiés sont courts, + % pédagogiques et illustrés par des exemples. + % + % La bibliographie ne vise pas à l'exhaustivité et se concentre sur les + % textes + % introductifs et de référence. + % + % Les articles d'histoire des mathématiques ou contenant des vues + % historiques + % ou épistémologiques sont également bienvenus et doivent être conçus dans + % le + % même esprit. + % + % \item[Rubrique \enquote{Livres}] La rubrique \enquote{Livres} publie des + % recensions s'attachant à présenter des ouvrages de mathématiques et des + % ouvrages sur les mathématiques (leur histoire, leur philosophie, et plus + % généralement tout ce qui a trait aux mathématiques et aux + % mathématiciens). + % + % Quelques recommendations : + % \begin{itemize} + % \item Commencez la recension en donnant quelques informations sur le + % livre + % (titre, nom l'auteur, collection à laquelle il appartient, nom de + % l'éditeur, ville de la maison d'édition, année de la publication, + % nombre + % de pages, \textsc{isbn} et prix en euros ou en dollars). + % \item Précisez à quel public (de quel niveau) s'adresse le livre. + % \item Vous êtes libre de dire ce que vous pensez (dans les limites de la + % politesse et de la correction). Le comité de rédaction se réserve la + % décision finale de publication après relecture de votre recension. + % \item Les recensions doivent être brèves (une ou deux pages, trois au + % maximum) et synthétiser l'apport original d'un ouvrage. Dans le cas + % des + % ouvrages de mathématiques, elles n'ont pas pour objectif de rendre + % compte + % d'une théorie et d'en donner un exposé ; la recension proprement dite + % peut + % toutefois être précédée, à titre d'introduction à l'analyse de + % l'ouvrage, + % d'un bref exposé panoramique et historique des idées générales du + % domaine. + % \item N'insérez pas de bibliographie. + % \item Signez de vos nom et prénom et indiquez les noms de + % l'établissement et + % de la ville où vous exercez. + % \end{itemize} + \end{description} +\end{authorsinstructions} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Font designer +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fontdesigner{Caignaert, Christophe}{}{} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Réglages divers +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pgfplotsset{compat=1.12}% diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/gzt.cls b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.cls new file mode 100644 index 0000000000..7c43454ca0 --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.cls @@ -0,0 +1,3999 @@ +%% +%% This is file `gzt.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gzt.dtx (with options: `class') +%% ----------------------------------------------------------------------------- +%% gzt --- SMF bundle of classes for the French journal "La Gazette des +%% Math'ematiciens" +%% +%% E-mail: denis.bitouze@univ-littoral.fr +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% ----------------------------------------------------------------------------- +\def\gztfileversion{1.0.1} +\def\gztfiledate{2021-02-14} +\def\sectioncommandslist{}% +\let\saved@ifdefinable\@ifdefinable% +\let\saved@@ifdefinable\@@ifdefinable% +\newcommand{\startcustomization}{% + % Redefine \@ifdefinable + \renewcommand{\@ifdefinable}[2]{% + \listadd\sectioncommandslist##1% + \saved@ifdefinable{##1}{##2}% + }% + \renewcommand{\@@ifdefinable}[2]{% + \listadd\sectioncommandslist##1% + \saved@@ifdefinable{##1}{##2}% + }% +}% +\newcommand{\cleancustomization}{% + \forlistloop{\undef}{\sectioncommandslist}% + \def\sectioncommandslist{}% + \let\@ifdefinable\saved@ifdefinable% + \let\@@ifdefinable\saved@@ifdefinable% +}% +\RequirePackage{silence}% +\WarningFilter{kpfonts}{With 'easyscsl' option} +\RequirePackage{xpatch}% +\patchcmd% + {\use@@tikzlibrary}% + {% + \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{ + \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{% + \expandafter\usepgflibrary\expandafter{\pgf@temp}% + }{% + \tikzerror{I did not find the tikz library + '\pgf@temp'. I looked for files named + tikzlibrary\pgf@temp.code.tex and + pgflibrary\pgf@temp.code.tex, but neither + could be found in the current texmf trees.} + }}% + }% + {% + \@pushfilename + \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{ + \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{% + \expandafter\usepgflibrary\expandafter{\pgf@temp}% + }{% + \tikzerror{I did not find the tikz library + '\pgf@temp'. I looked for files named + tikzlibrary\pgf@temp.code.tex and + pgflibrary\pgf@temp.code.tex, but neither + could be found in the current texmf trees.} + }}% + \@popfilename + }% + {}{}% +\patchcmd + {\tcb@input@library@in} + {% + \input\tcbpkgprefix#1\relax% + } + {% + \@pushfilename + \input\tcbpkgprefix#1\relax% + \@popfilename + } + {}{} +\RequirePackage{l3keys2e} +\RequirePackage{xparse} +\ExplSyntaxOn +\ProvidesExplClass + {gzt} + {\gztfiledate} + {\gztfileversion} + { + SMF~class~for~the~French~journal^^J + "La~Gazette~des~Math'ematiciens". + } +\NeedsTeXFormat{LaTeX2e} +\bool_new:N \g__gzt_moral_report_bool +\bool_new:N \g__gzt_special_edition_bool +\bool_new:N \g__gzt_for_authors_bool +\bool_new:N \g__gzt_for_printer_bool +\bool_new:N \g__gzt_cover_bool +\bool_new:N \g__gzt_coverpage_bool +\bool_new:N \g__gzt_inside_pages_bool +\bool_new:N \g__gzt_no_inside_backcover_bool +\tl_gset:Nn \g__gzt_moral_report_common_option_tl {% + \AddToHook{begindocument/before} {% + \bool_gset_true:N \g__gzt_moral_report_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \title[short={\bfseries\c__gzt_moralreport_rubric_string_tl}]{} + \tl_gset:Nn \g__gzt_rubric_title_tl {\c__gzt_moralreport_rubric_string_tl} + } +} +\dim_const:Nn \c__gzt_pagegrid_dim { 1mm} +\tl_gset:Nn \g__gzt_frontcover_image_file_tl {\c__gzt_issue_frontcover_default_image_file_tl} +\tl_gset:Nn \g__gzt_special_edition_color_tl {__gzt_default_cover_color} +\clist_new:N \g__gzt_special_edition_logos_clist +\keys_define:nn { gzt } +{ + pagegrid .dim_gset:N = \g__gzt_pagegrid_dim, + pagegrid .default:n = {\c__gzt_pagegrid_dim}, + forauthors .code:n = {% + \bool_gset_true:N \g__gzt_for_authors_bool% + \bool_gset_true:N \g__gzt_inside_pages_bool% + },% + forprinter .bool_gset:N = \g__gzt_for_printer_bool, + frontcoverimagefile .tl_gset:N = \g__gzt_frontcover_image_file_tl, + frontcoverimagefile .default:n = {frontcover}, + output .choice:, + output / frontcover .code:n = {% + \bool_gset_true:N \g__gzt_for_printer_bool% + \bool_gset_true:N \g__gzt_cover_bool% + },% + output / coverpage .code:n = {% + \bool_gset_true:N \g__gzt_coverpage_bool% + },% + output / insidepages .code:n = {% + \bool_gset_true:N \g__gzt_for_printer_bool% + \bool_gset_true:N \g__gzt_inside_pages_bool% + },% + output / backcover .code:n = {% + \bool_gset_true:N \g__gzt_for_printer_bool% + },% + output / web .code:n = {% + },% + specialedition .code:n = { + \bool_gset_true:N \g__gzt_special_edition_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \keys_set:nn { gzt / specialedition } {#1} + }, + specialedition / color .code:n = {% + \tl_gset:Nn \g__gzt_special_edition_color_tl {#1} + },% + specialedition / minitoc .code:n = {% + \bool_gset_false:N \g__gzt_frontcover_without_minitoc_bool + },% + specialedition / logos .code:n = {% + \clist_gset:Nn \g__gzt_special_edition_logos_clist {#1} + },% + specialedition / backcover~image .code:n = {% + \tl_gset:Nn \g__gzt_special_edition_backcover_image_tl {#1} + },% + specialedition / title .code:n = {% + \tl_gset:Nn \g__gzt_special_edition_title_tl {#1} + },% + specialedition / short~title .code:n = {% + \tl_gset:Nn \g__gzt_special_edition_short_title_tl {#1} + },% + specialedition / editorial~heading .code:n = {% + \tl_gset:Nn \g__gzt_special_edition_editorial_heading_tl {#1} + },% + specialedition / editorial~author .code:n = {% + \__gzt_people:nnnnnnnn {#1}{}{}{}{}{}{editorinchief}{} + },% + moralreport .code:n = { + \g__gzt_moral_report_common_option_tl + \AddToHook{begindocument/before} {% + \tl_gset:Nn \g__gzt_pdftitle_string_tl {\c__gzt_moralreport_rubric_string_tl} + } + }, +}% +\ProcessKeysOptions { gzt } +\PassOptionsToClass{openany,english,french}{book} +\LoadClass { book } +\PassOptionsToPackage{table,cmyk}{xcolor}% +\PassOptionsToPackage{export}{adjustbox}% +\PassOptionsToPackage{english,french}{translator} +\PassOptionsToPackage{english,french}{babel} +\PassOptionsToPackage{english,french}{varioref} +\PassOptionsToPackage{english,french}{cleveref} +\RequirePackage[group=false]{standalone}% +\RequirePackage{datatool}% +\sys_if_engine_pdftex:TF + { + \RequirePackage[T1]{fontenc} + \RequirePackage[utf8]{inputenc} + }{ + \RequirePackage{fontspec} + } +\RequirePackage[sfmath,easyscsl,noDcommand]{kpfonts} +\RequirePackage[pagestyles]{titlesec}% +\RequirePackage{multicol}% +\RequirePackage{graphicx}% +\RequirePackage{import}% +\RequirePackage{longtable}% +\bool_if:nT { \g__gzt_for_authors_bool } { + \RequirePackage{draftwatermark}[2006/06/30]% +} +\RequirePackage{adjustbox}% +\RequirePackage{mwe} +\RequirePackage{zref-totpages} +\RequirePackage{lastpage} +\RequirePackage{zref-xr}% +\RequirePackage{ragged2e}% +\RequirePackage{xspace}% +\RequirePackage{textcase}% +\RequirePackage{epigraph}% +\RequirePackage[autostyle]{csquotes}% +\RequirePackage[backend=biber,datamodel=gzt,defernumbers=true,autolang=other]{biblatex}% +\@ifpackagelater{biblatex}{2016/01/01}{% + \ExecuteBibliographyOptions{giveninits} +}{ + \ExecuteBibliographyOptions{firstinits} +} +\RequirePackage{array} +\RequirePackage{booktabs} +\RequirePackage{tabularx} +\RequirePackage{nccparskip} +\RequirePackage{multirow} +\RequirePackage{varioref} +\RequirePackage{mathtools} +\RequirePackage{rsfso} +\RequirePackage{esvect} +\RequirePackage{translator}% +\RequirePackage{geometry} +\RequirePackage{babel}% +\RequirePackage{eurosym}% +\RequirePackage{iflang}[2007/11/11]% +\RequirePackage{tableof}% +\RequirePackage{etoc}% +\RequirePackage[babel=true]{microtype}% +\RequirePackage[nodayofweek]{datetime}% +\RequirePackage[inline]{enumitem}% +\RequirePackage{afterpage} +\RequirePackage{xcolor}% +\cs_set_eq:NN \__gzt_orig_preamblecmds \@preamblecmds +\RequirePackage{tikz} +\RequirePackage{pgfplots} +\RequirePackage{tcolorbox} +\RequirePackage{tikzpagenodes} +\RequirePackage[foreground]{pagegrid}% +\RequirePackage{amsthm} +\RequirePackage{thmtools} +\cs_set_eq:NN \@preamblecmds \__gzt_orig_preamblecmds +\RequirePackage{placeins}% +\RequirePackage[hidelinks,hypertexnames=false]{hyperref}% +\RequirePackage[numbered]{bookmark}% +\RequirePackage[nowarn]{glossaries}% +\RequirePackage{cleveref}% +\makeglossaries +\setglossarystyle{indexhypergroup} +\setacronymstyle{long-sc-short} +\sys_if_engine_pdftex:T + { + \renewcommand\familydefault{\sfdefault} + \renewcommand{\ttdefault}{lmtt} + } +\tl_remove_all:Nn \@preamblecmds { \do \DeclareMathOperator } +\tl_remove_all:Nn \@preamblecmds { \do \newacronym } +\tl_remove_all:Nn \@preamblecmds { \do \@declmathop } +\tl_remove_all:Nn \@preamblecmds { \do \usetikzlibrary } +\msg_new:nnnn{gzt}{issue-number-needed}{Option~`#1'~needed!} + {Please~specify~`#1=<number>', + ~otherwise~`<number>'~will~be~set~to + ~`\int_use:N\c__gzt_first_issue_number_int'.} +\msg_new:nnnn{gzt}{unknown-choice}{Choice~`#3'~invalid!} + {Please~specify~#1=#2.} +\msg_new:nnnn{gzt}{configuration-file-missing}{File~`\c__gzt_configuration_file_string_tl'~missing!} + {The~ whole~ issue~ may~ not~ be~ conform~ if~ `\c__gzt_configuration_file_string_tl'~ is~ missing.} +\msg_new:nnnn{gzt}{editorial-file-missing}{File~`\c__gzt_editorial_file_string_tl'~missing!} + {The~ whole~ issue~ requires~ the~ `\c__gzt_editorial_file_string_tl'~ file.} +\int_new:N \g__gzt_editors_in_chief_int +\int_new:N \g__gzt_item_in_rubric_int +\int_new:N \g__gzt_articles_int +\int_new:N \g__gzt_question_int +\int_const:Nn \c__gzt_first_issue_number_int { 143 } +\int_const:Nn \c__gzt_first_issue_year_int { 2015 } +\int_const:Nn \c__gzt_first_issue_month_int { 1 } +\int_const:Nn \c__gzt_interval_in_months_int { 3 } +\tl_const:Nn \c__gzt_journal_short_title_string_tl {Gazette} +\tl_const:Nn \c__gzt_journal_title_string_tl { + \c__gzt_journal_short_title_string_tl{}~des~Math\'ematiciens% +} +\tl_const:Nn \c__gzt_class_name_tl {gzt} +\tl_const:Nn \c__gzt_article_class_name_tl {gztarticle} +\tl_const:Nn \c__gzt_editors_in_chief_string_tl +{ + \int_compare:nNnTF { \g__gzt_editors_in_chief_int } > { 1 } + { \c__gzt_editorsinchief_string_tl } + { \c__gzt_editorinchief_string_tl } +} +\tl_const:Nn \c__gzt_editorinchief_string_tl {R\'edacteur~en~chef } +\tl_const:Nn \c__gzt_editorsinchief_string_tl {R\'edacteurs~en~chef } +\tl_const:Nn \c__gzt_editors_string_tl {R\'edacteurs } +\tl_const:Nn \c__gzt_editorial_board_string_tl {Comit\'e~de~r\'edaction} +\tl_const:Nn \c__gzt_special_edition_editorial_board_string_tl {Num\'ero~sp\'ecial~de~la~Gazette~des~Math\'ematiciens~sous~la~direction~de~:} +\tl_const:Nn \c__gzt_editorial_secretariat_string_tl {Secr\'etariat~de~r\'edaction} +\tl_const:Nn \c__gzt_phone_string_tl {T\'el.} +\tl_const:Nn \c__gzt_fax_string_tl {Fax} +\tl_const:Nn \c__gzt_informations_string_tl {Renseignements} +\tl_const:Nn \c__gzt_publishingdirector_string_tl {Directeur~de~la~publication} +\tl_const:Nn \c__gzt_issn_string_tl {\textsc{issn}} +\tl_const:Nn \c__gzt_isbn_string_tl {\textsc{isbn}} +\tl_const:Nn \c__gzt_latexclass_string_tl {Classe~\LaTeX{}} +\tl_const:Nn \c__gzt_printer_string_tl {Impression} +\tl_const:Nn \c__gzt_configuration_file_string_tl {gzt.cfg} +\tl_const:Nn \c__gzt_artistic_director_string_tl {Conception~graphique} +\AddToHook{begindocument/before}{ + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_const:Nn \c__gzt_editorial_heading_string_tl {Avant-propos} + }{ + \tl_const:Nn \c__gzt_editorial_heading_string_tl {\'Editorial} + } +} +\tl_const:Nn \c__gzt_editorinchief_signatory_string_tl {\c__gzt_editorinchief_string_tl~de~la~\c__gzt_journal_title_string_tl} +\tl_const:Nn \c__gzt_toc_string_tl {Sommaire} +\tl_const:Nn \c__gzt_president_message_string_tl {Mot~du~pr\'esident} +\tl_const:Nn \c__gzt_president_signatory_string_tl {pr\'esident~de~la~\g__gzt_smf_short_string_tl} +\tl_const:Nn \c__gzt_editorinchief_message_date_string_tl {Le~\displaydate{__gzt_editorinchief_message_date}} +\tl_const:Nn \c__gzt_president_message_date_string_tl {Le~} +\tl_const:Nn \c__gzt_special_edition_string_tl {\c_space_tl{}sp{\'e}cial} +\tl_const:Nn \c__gzt_long_special_edition_string_tl {Numéro\c__gzt_special_edition_string_tl}% +\tl_const:Nn \c__gzt_short_special_edition_string_tl {\No{}\c__gzt_special_edition_string_tl}% +\AddToHook{begindocument/before}{ + \tl_const:Nn \c__gzt_frontcover_header_string_tl { + \bool_if:NT {\g__gzt_special_edition_bool} { + \text_uppercase:n {\c__gzt_long_special_edition_string_tl} + \medskip + \par + \normalsize + } + \l__gzt_uppercased_date_format\displaydate{__gzt_date} + \bool_if:NF {\g__gzt_special_edition_bool} { + \c_space_tl + \textendash{} + \c_space_tl + \No + \int_use:N\g__gzt_issue_number_int% + } + } +} +\clist_const:Nn \c__gzt__graphics_extensions_clist {png,PNG,jpg,JPG,jpeg,JPEG,pdf,PDF} +\tl_const:Nn \c__gzt_pdftitle_string_tl { + \bool_if:NTF {\g__gzt_moral_report_bool} { + \c__gzt_moralreport_rubric_string_tl + }{ + \c__gzt_journal_title_string_tl + % \c_space_tl + % \textendash{} + % \c_space_tl + % \l__gzt_uppercased_date_format{\displaydate{__gzt_date}} + \c_space_tl + \textendash{} + \c_space_tl + N° + \bool_if:NTF {\g__gzt_special_edition_bool} { + \c__gzt_special_edition_string_tl + \c_space_tl + \g__gzt_special_edition_title_tl + }{ + \int_use:N\g__gzt_issue_number_int + } + } +} +\tl_const:Nn \c__gzt_frontmatter_directory_string_tl {frontmatter} +\tl_const:Nn \c__gzt_backmatter_directory_string_tl {backmatter} +\tl_const:Nn \c__gzt_editorial_file_string_tl {\c__gzt_frontmatter_directory_string_tl/editorial} +\tl_const:Nn \c__gzt_president_message_file_string_tl {\c__gzt_frontmatter_directory_string_tl/presidentmessage} +\tl_const:Nn \c__gzt_issue_path_string_tl {\int_use:N \g__gzt_issue_number_int} +\tl_const:Nn \c__gzt_images_directory_string_tl {images} +\tl_const:Nn \c__gzt_issue_images_path_string_tl {% \c__gzt_issue_path_string_tl/ + \c__gzt_images_directory_string_tl} +\tl_const:Nn \c__gzt_issue_frontcover_default_image_file_tl {frontcover} +\tl_const:Nn \c__gzt_issue_backcover_text_file_string_tl {backcover} +\tl_const:Nn \c__gzt_backcover_page_file_string_tl {\c__gzt_backmatter_directory_string_tl/\c__gzt_issue_backcover_text_file_string_tl} +\tl_const:Nn \c__gzt_special_edition_backcover_text_file_string_tl {abstract_backcover} +\tl_const:Nn \c__gzt_special_edition_backcover_page_file_string_tl {\c__gzt_backmatter_directory_string_tl/\c__gzt_special_edition_backcover_text_file_string_tl} +\tl_const:Nn \c__gzt_special_edition_backcover_picture_string_tl {picture_backcover} +\tl_const:Nn \c__gzt_special_edition_backcover_page_picture_string_tl {\c__gzt_backmatter_directory_string_tl/\c__gzt_special_edition_backcover_picture_string_tl} +\tl_const:Nn \c__gzt_acronyms_file_string_tl {\c__gzt_class_name_tl acronyms} +\tl_const:Nn \c__gzt_authors_instructions_file_extension_tl {ain} +\tl_const:Nn \c__gzt_authors_instructions_file_tl {\c_sys_jobname_str.\c__gzt_authors_instructions_file_extension_tl} +\tl_const:Nn \c__gzt_about_frontcover_string_tl {\`A~propos~de~la~couverture.} +\tl_const:Nn \c__gzt_credit_frontcover_string_tl {cr\'edit} +\tl_const:Nn \c__gzt_authors_instructions_string_tl {Instructions~aux~auteurs} +\tl_const:Nn \c__gzt_preliminary_version_string_tl {% + Ce~document~est~une~{\'e}preuve~vous~permettant~de~contr{\^o}ler~l'int{\'e}grit{\'e}~du~ + texte~d'origine~(et~de~la~bibliographie~s'il~y~en~a~une)~de~votre~article~ + {\`a}~para{\^\i}tre~dans~le~prochain~num{\'e}ro~de~la~\gzt*{}.~La~mise~en~page~ + actuelle~n'est~pas~d{\'e}finitive\,:~votre~article~pourra~en~particulier~ne~pas~ + d{\'e}buter~en~haut~d'une~page.% +} +\tl_const:Nn \c__gzt_tellme_extra_title_string_tl {...\c_space_tl} +\tl_const:Nn \c__gzt_minitoc_rubric_title_separator_string_tl {\c_space_tl\textendash} +\tl_const:Nn \c__gzt_mathematics_pictogram_file_name_tl {picto-mathematics} +\tl_const:Nn \c__gzt_dossier_pictogram_file_name_tl {picto-dossier} +\tl_const:Nn \c__gzt_community_pictogram_file_name_tl {picto-hands} +\tl_const:Nn \c__gzt_interview_pictogram_file_name_tl {picto-interview} +\tl_const:Nn \c__gzt_teaching_pictogram_file_name_tl {picto-teaching} +\tl_const:Nn \c__gzt_parity_pictogram_file_name_tl {picto-parity} +\tl_const:Nn \c__gzt_tellme_pictogram_file_name_tl {picto-tellme} +\tl_const:Nn \c__gzt_information_pictogram_file_name_tl {picto-information} +\tl_const:Nn \c__gzt_rearviewmirror_pictogram_file_name_tl {picto-rearviewmirror} +\tl_const:Nn \c__gzt_tribute_pictogram_file_name_tl {picto-tribute} +\tl_const:Nn \c__gzt_books_pictogram_file_name_tl {picto-books} +\tl_const:Nn \c__gzt_forum_pictogram_file_name_tl {picto-forum} +\tl_const:Nn \c__gzt_mathematics_rubric_string_tl {Math\'ematiques} +\tl_const:Nn \c__gzt_dossier_rubric_string_tl {Dossier} +\tl_const:Nn \c__gzt_community_rubric_string_tl {Vie~de~la~communaut\'e} +\tl_const:Nn \c__gzt_interview_rubric_string_tl {Entretien} +\tl_const:Nn \c__gzt_teaching_rubric_string_tl {Diffusion~des~savoirs} +\tl_const:Nn \c__gzt_parity_rubric_string_tl {Parit\'e} +\tl_const:Nn \c__gzt_tellme_rubric_string_tl {Raconte-moi} +\tl_const:Nn \c__gzt_information_rubric_string_tl {Information} +\tl_const:Nn \c__gzt_rearviewmirror_rubric_string_tl {R\'etroviseur} +\tl_const:Nn \c__gzt_tribute_rubric_string_tl {Carnet} +\tl_const:Nn \c__gzt_books_rubric_string_tl {Livres} +\tl_const:Nn \c__gzt_latex_rubric_string_tl {Astuces~\LaTeX{}} +\tl_const:Nn \c__gzt_forum_rubric_string_tl {Tribune~libre} +\tl_const:Nn \c__gzt_published_with_help_of_string_tl {Publi\'e~avec~le~concours~de~:} +\tl_const:Nn \c__gzt_advertisement_directory_string_tl {advertisement/} +\tl_const:Nn \c__gzt_advertisement_string_tl {Publicit\'e} +\tl_const:Nn \c__gzt_moralreport_rubric_string_tl {Rapport~moral} +\tl_const:Nn \c__gzt_smf_short_string_tl {\textsc{smf}} +\tl_const:Nn \c__gzt_smf_short_pdf_string_tl {SMF} +\tl_const:Nn \c__gzt_smf_string_tl {Soci\'et\'e~Math\'ematique~de~France} +\tl_const:Nn \c__gzt_cad_short_string_tl {c.-\`a-d.} +\tl_const:Nn \c__gzt_cad_string_tl {c'est-\`a-dire} +\tl_const:Nn \c__gzt_Cad_short_string_tl {C.-\`a-d.} +\tl_const:Nn \c__gzt_Cad_string_tl {C'est-\`a-dire} +\tl_const:Nn \c__gzt_footer_string_tl { + \c__gzt_footer_size_font_tl + \textcolor{__gzt_smf_number_color}{\text_uppercase:n {\c__gzt_smf_short_string_tl}} + \c_space_tl + \textcolor{__gzt_date_color}{ + \textendash{}\c_space_tl + \bool_if:NTF {\g__gzt_moral_report_bool} { + \text_uppercase:n { \c__gzt_moralreport_rubric_string_tl } + }{ + \text_uppercase:n {\c__gzt_journal_short_title_string_tl} + \bool_if:nF { \g__gzt_inside_frontcover_bool || \g__gzt_backmatter_bool || {\int_compare_p:nNn {\g__gzt_issue_number_int}={0}} } + { + \c_space_tl\textendash{}\c_space_tl + \l__gzt_uppercased_date_format\displaydate{__gzt_date} + \bool_if:NF {\g__gzt_special_edition_bool} { + \c_space_tl + \textendash{}\c_space_tl + \textcolor{__gzt_smf_number_color}{\No\int_use:N\g__gzt_issue_number_int} + } + } + } + } +} + \file_if_exist:nTF { logo_SMF.pdf }{% + \tl_const:Nn \c__gzt_smf_logo_file_string_tl {logo_SMF} + }{ + \tl_const:Nn \c__gzt_smf_logo_file_string_tl {example-image} + } +\tl_const:Nn \c__gzt_issue_bib_file_suffix_string_tl {__gzt} +\tl_const:Nn \c__gzt_issue_bib_file_string_tl {\c_sys_jobname_str\c__gzt_issue_bib_file_suffix_string_tl.bib} +\tl_const:Nn \c__gzt_issue_bib_path_string_tl {\c__gzt_issue_bib_file_string_tl} +\bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_const:Nn \c__gzt_issue_bib_key_tl {special-edition} +}{ + \tl_const:Nn \c__gzt_issue_bib_key_tl {\int_use:N \g__gzt_issue_number_int} +} +\tl_const:Nn \c__gzt_interview_title_string_tl {En~apart\'e~avec~} +\tl_const:Nn \c__gzt_aside_string_tl {--} +\tl_const:Nn \c__gzt_draftwatermark_string_tl {draft} +\tl_const:Nn \c__gzt_compiled_string_tl { + \int_compare:nNnT {\g__gzt_issue_number_int}={0} { + \c__gzt_footer_size_font_tl + \IfLanguageName{french}{ + Compil\'e~le~ + }{ + Compiled~on~ + } + \today + } +} +\bool_new:N \g__gzt_frontcover_bool +\bool_new:N \g__gzt_inside_frontcover_bool +\bool_new:N \g__gzt_inside_backcover_bool +\bool_new:N \g__gzt_frontmatter_bool +\bool_new:N \g__gzt_rubric_bool +\bool_new:N \g__gzt_interview_rubric_bool +\bool_new:N \g__gzt_tellme_rubric_bool +\bool_new:N \g__gzt_rearviewmirror_rubric_bool +\bool_new:N \g__gzt_books_rubric_bool +\bool_new:N \g__gzt_mainmatter_bool +\bool_new:N \g__gzt_backmatter_bool +\bool_new:N \g__gzt_backcover_bool +\bool_new:N \g__gzt_frontcover_without_minitoc_bool +\bool_new:N \g__gzt_previous_article_with_bibliography_or_minibio_bool +\bool_new:N \g__gzt_advertisement_bool +\bool_new:N \g__gzt_multicols_bool +\bool_new:N \g__gzt_refsection_bool +\dim_const:Nn \c__gzt_rubrics_abstract_width_dim { 85mm} +\dim_const:Nn \c__gzt_rubrics_head_text_abstract_width_dim { 50mm} +\dim_const:Nn \c__gzt_rubrics_head_text_no_abstract_width_dim +{ \c__gzt_rubrics_abstract_width_dim + \c__gzt_rubrics_head_text_abstract_width_dim} +\dim_new:N \l__gzt_rubrics_head_text_width_dim +\dim_const:Nn \c__gzt_layoutheight_dim { 270mm} +\dim_const:Nn \c__gzt_layoutwidth_dim { 210mm} +\dim_const:Nn \c__gzt_printer_layoutoffset_dim { 5mm} +\bool_if:NTF {\g__gzt_for_printer_bool} { + \dim_const:Nn \c__gzt_potential_layoutoffset_dim { \c__gzt_printer_layoutoffset_dim} +}{ + \dim_const:Nn \c__gzt_potential_layoutoffset_dim {\c_zero_dim} +} +\int_const:Nn \c__gzt_thresold_a_int {68} +\int_const:Nn \c__gzt_thresold_b_int {80} +\int_const:Nn \c__gzt_thresold_c_int {88} +\int_const:Nn \c__gzt_thresold_d_int {96} +\int_const:Nn \c__gzt_thresold_e_int {104} +\int_const:Nn \c__gzt_thresold_f_int {120} +\dim_const:Nn \c__gzt_bindingoffset_a_dim {3mm} +\dim_const:Nn \c__gzt_bindingoffset_b_dim {3.5mm} +\dim_const:Nn \c__gzt_bindingoffset_c_dim {3.9mm} +\dim_const:Nn \c__gzt_bindingoffset_d_dim {4.1mm} +\dim_const:Nn \c__gzt_bindingoffset_e_dim {4.5mm} +\dim_const:Nn \c__gzt_bindingoffset_f_dim {5mm} +\int_new:N \g__gzt_total_pages_number_int% +\int_new:N \g__gzt_total_inside_pages_number_int% +\zexternaldocument[self]{\jobname}% +\int_gset:Nn \g__gzt_total_pages_number_int { \zref@extractdefault{selfLastPage}{abspage}{0} } +\int_gset:Nn \g__gzt_total_inside_pages_number_int { \g__gzt_total_pages_number_int - 4 } +\int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_a_int} +{ + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c_zero_dim } +}{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_b_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_a_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_c_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_b_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_d_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_c_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_e_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_d_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_f_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_e_dim } + }{ + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_f_dim } + } + } + } + } + } +} +\bool_if:NTF {\g__gzt_cover_bool} { + \dim_const:Nn \c__gzt_potential_bindingoffset_dim { \c__gzt_printer_bindingoffset_dim } +}{ + \dim_const:Nn \c__gzt_potential_bindingoffset_dim {\c_zero_dim} +} +\dim_const:Nn \c__gzt_paperheight_dim { \c__gzt_layoutheight_dim+2\c__gzt_potential_layoutoffset_dim} +\bool_if:NTF {\g__gzt_cover_bool} { + \dim_const:Nn \c__gzt_paperwidth_dim { + \c__gzt_layoutwidth_dim + + + \c__gzt_potential_layoutoffset_dim + +\c__gzt_potential_bindingoffset_dim + } +}{ + \dim_const:Nn \c__gzt_paperwidth_dim { + \c__gzt_layoutwidth_dim + + + 2 + \c__gzt_potential_layoutoffset_dim + +\c__gzt_potential_bindingoffset_dim + } +} +\dim_const:Nn \c__gzt_frontcover_image_width_dim { + \c__gzt_layoutwidth_dim + + + \c__gzt_printer_layoutoffset_dim +} +\dim_const:Nn \c__gzt_topmargin_dim { 31mm} +\dim_const:Nn \c__gzt_topmargin_frontcover_dim { + \c__gzt_topmargin_dim + + 30mm +} +\dim_const:Nn \c__gzt_topmargin_inside_cover_dim { + \c__gzt_topmargin_dim + +10mm +} +\dim_const:Nn \c__gzt_topmargin_front_matter_dim { + \c__gzt_topmargin_inside_cover_dim +} +\dim_const:Nn \c__gzt_headsep_dim { 24mm} +\dim_const:Nn \c__gzt_headsep_frontcover_dim { + \c__gzt_headsep_dim + +31mm + % -\c__gzt_potential_layoutoffset_dim +} +\dim_const:Nn \c__gzt_headsep_inside_frontcover_dim { + \c__gzt_headsep_dim + +7mm +} +\dim_const:Nn \c__gzt_headsep_front_matter_dim { + \c__gzt_headsep_inside_frontcover_dim +} +\dim_const:Nn \c__gzt_headheight_dim { \c_zero_dim } +\dim_const:Nn \c__gzt_botmargin_dim { 30mm} +\dim_const:Nn \c__gzt_footskip_dim { 26mm} +\dim_const:Nn \c__gzt_extra_margin_dim { 5mm } +\dim_const:Nn \c__gzt_innermargin_dim { 15mm - \c__gzt_potential_bindingoffset_dim + \c__gzt_extra_margin_dim} +\dim_const:Nn \c__gzt_outermargin_dim { 30mm - \c__gzt_extra_margin_dim } +\dim_const:Nn \c__gzt_inside_cover_box_width_dim { 165mm }% +\dim_const:Nn \c__gzt_innermargin_inside_cover_dim { + (\c__gzt_layoutwidth_dim - \c__gzt_inside_cover_box_width_dim)/2 + - \c__gzt_potential_bindingoffset_dim + % + \c__gzt_adjustmargin_dim +} +\dim_const:Nn \c__gzt_outermargin_inside_cover_dim { + (\c__gzt_layoutwidth_dim - \c__gzt_inside_cover_box_width_dim)/2 + % - \c__gzt_adjustmargin_dim +} +\dim_const:Nn \c__gzt_innermargin_backcover_dim { 10mm } +\dim_const:Nn \c__gzt_outermargin_backcover_dim { \c__gzt_innermargin_backcover_dim } +\dim_const:Nn \c__gzt_topmargin_backcover_dim { \c__gzt_innermargin_backcover_dim } +\dim_const:Nn \c__gzt_bottommargin_backcover_dim { \c__gzt_innermargin_backcover_dim } +\dim_const:Nn \c__gzt_frontcover_image_height_dim { 160mm} +\dim_const:Nn \c__gzt_radius_arc_dim { 85mm }% +\dim_const:Nn \c__gzt_frontmatter_headtext_xshift_dim { 19mm }% +\dim_const:Nn \c__gzt_frontmatter_headtext_o_xshift_dim { + -\c__gzt_frontmatter_headtext_xshift_dim -\c__gzt_potential_layoutoffset_dim% +}% +\dim_const:Nn \c__gzt_frontmatter_headtext_e_xshift_dim { + \c__gzt_frontmatter_headtext_xshift_dim +\c__gzt_potential_layoutoffset_dim% +}% +\dim_const:Nn \c__gzt_frontmatter_headtext_yshift_dim { -6.5mm-\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_header_line_width_dim { 0.25mm} +\dim_const:Nn \c__gzt_header_line_yshift_dim { -1mm-\c__gzt_header_line_width_dim}% +\dim_const:Nn \c__gzt_footer_background_height_dim { 10mm + \c__gzt_potential_layoutoffset_dim } +\dim_const:Nn \c__gzt_front_matter_extra_innermargin_dim { 28mm } +\dim_const:Nn \c__gzt_front_matter_extra_outermargin_dim { 7mm } +\dim_const:Nn \c__gzt_inside_cover_offset_dim { \c_zero_dim }% +\dim_const:Nn \c__gzt_pictogram_width_dim { 23mm }% +\dim_const:Nn \c__gzt_header_xshift_dim { \c__gzt_pictogram_width_dim-6mm }% +\dim_const:Nn \c__gzt_header_yshift_dim { 5mm }% +\dim_const:Nn \c__gzt_xshift_arccircle_A_dim { \c__gzt_rubrics_abstract_width_dim+\c__gzt_innermargin_dim+10mm+\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_yshift_arccircle_A_dim { -22mm-\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_xshift_arccircle_B_dim {% + (\c__gzt_rubrics_abstract_width_dim+\c__gzt_innermargin_dim)/2% + % \c__gzt_innermargin_dim+(\c__gzt_rubrics_abstract_width_dim/2)% + % \c__gzt_xshift_arccircle_A_dim/2 +}% +\dim_const:Nn \c__gzt_yshift_arccircle_B_dim { -\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_xshift_arccircle_C_dim { \c__gzt_potential_layoutoffset_dim-5mm }% +\dim_const:Nn \c__gzt_yshift_arccircle_C_dim { -19.75mm-\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_book_review_frontcover_extend_dim { 12mm }% +\dim_const:Nn \c__gzt_tcb_left_dim { 4mm }% +\dim_const:Nn \c__gzt_tcb_boxsep_dim { 1mm }% +\dim_const:Nn \c__gzt_tikz_dot_diameter_dim { 0.33mm }% +\dim_const:Nn \c__gzt_tikz_dot_spacing_dim { 1.05mm }% +\dim_const:Nn \c__gzt_rubric_extra_xoffset_dim { -\c__gzt_innermargin_dim/2 }% +\dim_const:Nn \c__gzt_rubric_xoffset_dim { 14.5mm }% +\dim_const:Nn \c__gzt_boxed_issue_number_width_dim { 30mm} +\dim_const:Nn \c__gzt_boxed_issue_number_height_dim { 8mm} +\dim_new:N \l__gzt_thumbnail_width_dim +\dim_set:Nn \l__gzt_thumbnail_width_dim {30mm} +\dim_new:N \g__gzt_abstract_box_width_dim +\dim_new:N \c__gzt_original_parindent_dim +\dim_gset_eq:NN \c__gzt_original_parindent_dim \parindent +\dim_new:N \l__gzt_between_rubric_head_text_and_abstract_dim +\dim_new:N \g__gzt_minitoc_circle_diameter_dim +\dim_new:N \g__gzt_minitoc_textwidth_dim +\dim_new:N \g__gzt_minitoc_xshift_dim +\dim_new:N \g__gzt_minitoc_yshift_dim +\dim_gset:Nn \g__gzt_minitoc_circle_diameter_dim {142mm} +\dim_gset:Nn \g__gzt_minitoc_textwidth_dim {65mm} +\dim_gset:Nn \g__gzt_minitoc_xshift_dim {-22mm} +\dim_gset:Nn \g__gzt_minitoc_yshift_dim {30mm} +\dim_const:Nn \c__gzt_minitoc_from_circle_xshift_dim {-15mm} +\dim_const:Nn \c__gzt_minitoc_from_circle_yshift_dim {-\c__gzt_minitoc_from_circle_xshift_dim} +\dim_const:Nn \c__gzt_footer_height_font_dim {3mm} +\dim_const:Nn \c__gzt_minitoc_list_labelsep_dim {1em} +\dim_const:Nn \c__gzt_authors_photos_width_dim {16mm} +\dim_const:Nn \c__gzt_authors_photos_box_width_dim {\c__gzt_authors_photos_width_dim + + 2mm} +\dim_new:N \l__gzt_minibio_width_dim +\geometry{% + papersize={\c__gzt_paperwidth_dim,\c__gzt_paperheight_dim} +} +\bool_if:NTF {\g__gzt_cover_bool} { + \tl_const:Nn \c__gzt_frontcover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutvoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_frontcover_dim + ,headsep=\c__gzt_headsep_frontcover_dim + ,headheight=\c__gzt_headheight_dim + % ,bottom=\c_zero_dim + ,bottom=11mm + ,footskip=\c_zero_dim + ,outer=\c_zero_dim + ,inner=\c__gzt_potential_layoutoffset_dim + ,nomarginpar% + }% +}{ + \tl_const:Nn \c__gzt_frontcover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_frontcover_dim + ,headsep=\c__gzt_headsep_frontcover_dim + ,headheight=\c__gzt_headheight_dim + % ,bottom=\c_zero_dim + ,bottom=11mm + ,footskip=\c_zero_dim + ,hmargin=\c__gzt_potential_layoutoffset_dim + ,nomarginpar% + }% +} +\bool_if:NTF {\g__gzt_cover_bool} { + \tl_const:Nn \c__gzt_inside_cover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutvoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_inside_cover_dim + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_inside_frontcover_dim + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_inside_cover_dim-\c__gzt_potential_layoutoffset_dim + ,outer=\c__gzt_outermargin_inside_cover_dim+\c__gzt_potential_layoutoffset_dim + ,nomarginpar% + }% +}{ + \tl_const:Nn \c__gzt_inside_cover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_inside_cover_dim + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_inside_frontcover_dim + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_inside_cover_dim + ,outer=\c__gzt_outermargin_inside_cover_dim + ,nomarginpar% + }% +} +\tl_const:Nn \c__gzt_front_matter_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + % ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_front_matter_dim% + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_front_matter_dim + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim% + ,inner=\c__gzt_innermargin_dim+\c__gzt_front_matter_extra_innermargin_dim% + ,outer=\c__gzt_outermargin_dim+\c__gzt_front_matter_extra_outermargin_dim% + ,nomarginpar% +}% +\tl_const:Nn \c__gzt_main_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + % ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_dim-15mm% + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_dim-18mm + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_dim + ,outer=\c__gzt_outermargin_dim +}% +\tl_const:Nn \c__gzt_backcover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + % ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_backcover_dim% + % ,top=\c__gzt_topmargin_dim-15mm% + % ,headheight=\c__gzt_headheight_dim + % ,headsep=\c__gzt_headsep_dim-18mm + ,bottom=\c__gzt_bottommargin_backcover_dim + % ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_backcover_dim + ,outer=\c__gzt_outermargin_backcover_dim + ,nomarginpar + ,hcentering + ,twoside=false +} +\skip_const:Nn \c__gzt_editorial_presidentmessage_parskip_skip { 12pt plus 2pt minus .8pt }% +\skip_const:Nn \c__gzt_mainmatter_parskip_skip { 2pt plus .5pt minus .2pt }% +\int_new:N \g__gzt_issue_number_int +\int_new:N \g__gzt_issue_month_int +\int_new:N \g__gzt_issue_year_int +\tl_new:N \g__gzt_frontcover_image_options_tl +\keys_define:nn { gzt/issuesetup } +{ + number .int_gset:N = \g__gzt_issue_number_int, + month .int_gset:N = \g__gzt_issue_month_int, + year .int_gset:N = \g__gzt_issue_year_int, + number .value_required:n = true, + month .value_required:n = true, + year .value_required:n = true, + number .initial:n = 0, + frontcoverimageoptions .tl_gset:N = \g__gzt_frontcover_image_options_tl +} +\tl_new:N \l__gzt_journal_publisher_tl +\tl_new:N \l__gzt_journal_address_tl +\tl_new:N \l__gzt_journal_phone_tl +\tl_new:N \l__gzt_journal_fax_tl +\tl_new:N \l__gzt_journal_email_tl +\tl_new:N \l__gzt_journal_url_tl +\tl_new:N \l__gzt_journal_issn_tl +\tl_new:N \l__gzt_journal_isbn_tl +\keys_define:nn { gzt/journalsetup } +{ + publisher .tl_set:N = \l__gzt_journal_publisher_tl, + address .tl_set:N = \l__gzt_journal_address_tl, + phone .tl_set:N = \l__gzt_journal_phone_tl, + fax .tl_set:N = \l__gzt_journal_fax_tl, + email .tl_set:N = \l__gzt_journal_email_tl, + url .tl_set:N = \l__gzt_journal_url_tl, + issn .tl_set:N = \l__gzt_journal_issn_tl, + isbn .tl_set:N = \l__gzt_journal_isbn_tl, + publisher .value_required:n = true, + address .value_required:n = true, + phone .value_required:n = true, + fax .value_required:n = true, + email .value_required:n = true, + url .value_required:n = true, + issn .value_required:n = true, + isbn .value_required:n = true, +} +\keys_define:nn { gzt/title } +{ + short .tl_gset:N = \g__gzt_short_title_tl, + minishort .tl_gset:N = \g__gzt_mini_short_title_tl, + notintoc .bool_gset:N = \g__gzt_title_not_in_toc_bool, + short .value_required:n = true, + minishort .value_required:n = true, +} +\keys_define:nn { gzt/subtitle } +{ + short .tl_gset:N = \g__gzt_short_subtitle_tl, + minishort .tl_gset:N = \g__gzt_mini_short_subtitle_tl, + notintoc .bool_gset:N = \g__gzt_subtitle_not_in_toc_bool, + short .value_required:n = true, + minishort .value_required:n = true, +} +\keys_define:nn { gzt/rubric } +{ + abstract .tl_gset:N = \g__gzt_rubric_abstract_tl, + title .tl_gset:N = \g__gzt_rubric_title_tl, + pictogram .tl_gset:N = \g__gzt_rubric_pictofile_tl, + abstract .value_required:n = true, + title .value_required:n = true, + pictogram .value_required:n = true, +} +\keys_define:nn { gzt/minitoc } +{ + list .bool_gset:N = \g__gzt_minitoc_list_bool, + help .bool_gset:N = \g__gzt_minitoc_help_bool, + diameter .dim_gset:N = \g__gzt_minitoc_circle_diameter_dim, + textwidth .dim_gset:N = \g__gzt_minitoc_textwidth_dim, + xshift .dim_gset:N = \g__gzt_minitoc_xshift_dim, + yshift .dim_gset:N = \g__gzt_minitoc_yshift_dim, + diameter .value_required:n = true, + textwidth .value_required:n = true, + xshift .value_required:n = true, + yshift .value_required:n = true, +} +\keys_define:nn { gzt/authors } +{ + affiliation .tl_gset:N = \g__gzt_people_affiliation_tl, + email .tl_gset:N = \g__gzt_people_email_tl, + minibio .tl_gset:N = \g__gzt_people_minibio_tl, + photo .tl_gset:N = \g__gzt_people_photo_tl, + webpage .tl_gset:N = \g__gzt_people_webpage_tl, + affiliation .value_required:n = true, + email .value_required:n = true, + minibio .value_required:n = true, + photo .value_required:n = true, + webpage .value_required:n = true, +} +\tl_new:N \g__gzt_interviewee_minibio_tl +\tl_new:N \g__gzt_interviewee_photo_tl +\tl_new:N \g__gzt_interviewee_first_last_name_tl +\keys_define:nn { gzt/interviewees } +{ + minibio .tl_gset:N = \g__gzt_interviewee_minibio_tl, + photo .tl_gset:N = \g__gzt_interviewee_photo_tl, + minibio .value_required:n = true, + photo .value_required:n = true, +} +\tl_new:N \g__gzt_bookreview_frontcover_tl +\tl_new:N \g__gzt_bookreview_bibkey_tl +\keys_define:nn { gzt/bookreview } +{ + frontcover .tl_gset:N = \g__gzt_bookreview_frontcover_tl, + bibkey .tl_gset:N = \g__gzt_bookreview_bibkey_tl, + frontcover .value_required:n = true, + bibkey .value_required:n = true, +} +\tl_new:N \g__gzt_bookadvertisement_frontcover_tl +\tl_new:N \g__gzt_bookadvertisement_bibkey_tl +\keys_define:nn { gzt/bookadvertisement } +{ + frontcover .tl_gset:N = \g__gzt_bookadvertisement_frontcover_tl, + bibkey .tl_gset:N = \g__gzt_bookadvertisement_bibkey_tl, + frontcover .value_required:n = true, + bibkey .value_required:n = true, +} +\tl_new:N \l__gzt_newtheorem_style_tl +\keys_define:nn { gzt/newtheorem } +{ + frenchtitle .tl_set:N = \l__gzt_newtheorem_frenchtitle_tl, + englishtitle .tl_set:N = \l__gzt_newtheorem_englishtitle_tl, + frenchtitle .value_required:n = true, + englishtitle .value_required:n = true, + % + style .choice:, + style / theorem .code:n = {\tl_set:Nn \l__gzt_newtheorem_style_tl {theorem}}, + style / definition .code:n = {\tl_set:Nn \l__gzt_newtheorem_style_tl {definition}}, + style / proof .code:n = {\tl_set:Nn \l__gzt_newtheorem_style_tl {proof}}, + style / unknown .code:n = + \msg_error:nnxxx { gzt } { unknown-choice } + { style } % Name of choice key + { theorem~or~definition~or~proof } % Valid choices + { \exp_not:n {#1} } % Invalid choice given +} +\definecolorset{cmyk}{__gzt_}{_color}{ + generic_dark,1,.60,.10,0; % kind of blue (!) + light_generic_dark,1,.35,0,0 % kind of blue (!), light +} +\colorlet{__gzt_generic_light_color}{black!50} +\colorlet{__gzt_dark_generic_light_color}{black!60} +\colorlet{__gzt_description_label_light_color}{__gzt_dark_generic_light_color} +\colorlet{__gzt_minitoc_color}{__gzt_generic_light_color} +\colorlet{__gzt_cover_itemize_label_color}{__gzt_light_generic_dark_color} +\colorlet{__gzt_default_text_color}{black} +\colorlet{__gzt_head_text_color}{black!65} +\colorlet{__gzt_rubric_head_text_color}{__gzt_head_text_color} +\colorlet{__gzt_bibliography_minibios_acknowledgements_bg_color}{black!10} +\colorlet{__gzt_headrule_color}{__gzt_generic_light_color!65} +\colorlet{__gzt_circlerule_color}{__gzt_generic_dark_color!65} +\colorlet{__gzt_frontmatter_text_color}{black!75} +\colorlet{__gzt_people_color}{__gzt_generic_dark_color} +\colorlet{__gzt_arrayrule_color}{__gzt_generic_dark_color} +\colorlet{__gzt_acknowledgements_color}{__gzt_generic_dark_color} +\colorlet{__gzt_question_color}{__gzt_generic_dark_color} +\colorlet{__gzt_boxed_issue_number_bg_color}{__gzt_generic_dark_color} +\colorlet{__gzt_rule_in_toc_color}{__gzt_generic_dark_color} +\colorlet{__gzt_rubric_in_toc_color}{__gzt_generic_dark_color} +\colorlet{__gzt_article_in_toc_color}{__gzt_frontmatter_text_color} +\colorlet{__gzt_rubric_title_color}{__gzt_generic_light_color} +\colorlet{__gzt_article_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_section_color}{__gzt_generic_dark_color} +\colorlet{__gzt_subsection_color}{__gzt_generic_dark_color!90} +\colorlet{__gzt_subsubsection_color}{__gzt_generic_dark_color!80} +\colorlet{__gzt_rubric_abstract_color}{__gzt_generic_dark_color} +\colorlet{__gzt_article_abstract_color}{__gzt_generic_light_color} +\colorlet{__gzt_dotfill_color}{__gzt_generic_dark_color} +\colorlet{__gzt_about_frontcover_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_reflected_text_color}{__gzt_generic_dark_color} +\colorlet{__gzt_inside_frontcover_frame_bg_color}{__gzt_generic_dark_color!8} +\colorlet{__gzt_inside_frontcover_frame_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_footer_bg_color}{black!10} +\colorlet{__gzt_float_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_float_title_bg_color}{__gzt_generic_dark_color!10} +\colorlet{__gzt_float_frame_color}{__gzt_generic_dark_color!20} +\colorlet{__gzt_chapter_color}{__gzt_generic_dark_color} +\colorlet{__gzt_smf_number_color}{__gzt_generic_dark_color} +\colorlet{__gzt_date_color}{__gzt_generic_light_color} +\colorlet{__gzt_table_head_color}{__gzt_generic_dark_color!25} +\colorlet{__gzt_book_review_frame_bg_color}{__gzt_generic_dark_color!8} +\colorlet{__gzt_book_advertisement_bg_color}{white} +\colorlet{__gzt_book_advertisement_frame_color}{__gzt_generic_dark_color} +\colorlet{__gzt_default_cover_color}{white} +\AddToHook{env/multicols/begin}{ + \bool_gset_true:N \g__gzt_multicols_bool +} +\AddToHook{env/multicols/end}{ + \bool_gset_false:N \g__gzt_multicols_bool +} +\AddToHook{env/refsection/begin}{ + \bool_gset_true:N \g__gzt_refsection_bool +} +\AddToHook{env/refsection/end}{ + \bool_gset_false:N \g__gzt_refsection_bool +} +\tl_const:Nn \c__gzt_footer_size_font_tl { + \fontsize{\c__gzt_footer_height_font_dim}{\c_zero_dim}\selectfont% +} +\tl_new:N \g__gzt_smf_short_string_tl +\tl_new:N \g__gzt_smf_string_tl +\tl_gset:Nn \g__gzt_smf_short_string_tl { + % \cs_if_exist:cTF {texorpdfstring} + % { + \texorpdfstring{\c__gzt_smf_short_string_tl}{\c__gzt_smf_short_pdf_string_tl} + % }{% + % \c__gzt_smf_short_pdf_string_tl + % }% +} +\tl_gset:Nn \g__gzt_smf_string_tl { + % \cs_if_exist:cTF {texorpdfstring} + % { + % \texorpdfstring{Soci\'et\'e~Math\'ematique~de~France}{\c__gzt_smf_string_tl} + \c__gzt_smf_string_tl + % }{% + % \acrlong*{smf} + % }% +} +\tl_new:N \l__gzt_gzt_short_string_tl +\tl_new:N \l__gzt_gzt_string_tl +\tl_set:Nn \l__gzt_gzt_short_string_tl { + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\emph{\c__gzt_journal_short_title_string_tl}}{\c__gzt_journal_short_title_string_tl} + }{% + \emph{\c__gzt_journal_short_title_string_tl} + }% +} +\tl_set:Nn \l__gzt_gzt_string_tl { + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\emph{\c__gzt_journal_title_string_tl}}{\c__gzt_journal_title_string_tl} + }{% + \emph{\c__gzt_journal_title_string_tl} + }% +} +\tl_new:N \g__gzt_pdftitle_string_tl +\tl_new:N \g__gzt_pdfauthor_string_tl +\tl_gset:Nn \g__gzt_pdftitle_string_tl { + \c__gzt_pdftitle_string_tl +} +\tl_gset:Nn \g__gzt_pdfauthor_string_tl { + \g__gzt_smf_string_tl +} +\AddToHook{begindocument/before}{% + \hypersetup{% + pdftitle=\g__gzt_pdftitle_string_tl, + pdfauthor=\g__gzt_pdfauthor_string_tl% + } +} +\cs_new_protected:Nn \__gzt_email:n + { + \href{mailto:#1}{\nolinkurl{#1}}% + } +\cs_new_protected:Nn \__gzt_display_author:nnnnn +{ + \begin{tabular}[t]{p{\c__gzt_authors_photos_box_width_dim}p{0.75\linewidth}} + \tl_if_empty:nF {#5} + {% + \begin{adjustbox}{valign=t} + \includegraphics[width=\c__gzt_authors_photos_width_dim]{#5} + \end{adjustbox}% + } + & + \begin{description}[leftmargin=1em,style=nextline,nosep] + \item[\textcolor{__gzt_people_color}{\DeclareNameAlias{labelname}{default}\citeauthor{#1}}] + \tl_if_empty:nF {#2} + {% + #2% + \par% + \smallskip% + } + \tl_if_empty:nF {#3} + {% + \href{mailto:#3}{\nolinkurl{#3}}% + \par% + \smallskip% + } + \tl_if_empty:nF {#4} + {% + #4 + } + \end{description} + \end{tabular} +} +\cs_generate_variant:Nn \__gzt_display_author:nnnnn { VVVVV } +\DTLnewdb{people} +\tl_new:N \l__gzt_crossref_tl +\cs_new_protected:Nn \__gzt_people:nnnnnnnn +{ + \DTLnewrow{people}% + \DTLnewdbentry{people}{first-last-name}{#1}% + \DTLnewdbentry{people}{affiliation}{#2}% + \DTLnewdbentry{people}{email}{#3}% + \DTLnewdbentry{people}{minibio}{#4}% + \DTLnewdbentry{people}{photo}{#5}% + \DTLnewdbentry{people}{speciality}{#6}% + \DTLnewdbentry{people}{role}{#7}% + \DTLnewdbentry{people}{webpage}{#8}% + \int_if_exist:cF {g__gzt_#7_int} + { + \int_new:c {g__gzt_#7_int} + } + \int_incr:c {g__gzt_#7_int} + \tl_if_in:nnTF { #7 } { author } { + \tl_set:Nn \l__gzt_crossref_tl {\c__gzt_issue_bib_key_tl -art-\int_use:N \g__gzt_articles_int} + } { + \tl_set:Nn \l__gzt_crossref_tl {\c__gzt_issue_bib_key_tl} + } + \tl_set:Nn \l__gzt_people_first_last_name_tl {#1} + \iow_now:Nx \g__gzt_bib_out_iow {% + @article{ + \c__gzt_issue_bib_key_tl -#7- \int_use:c {g__gzt_#7_int}, + \iow_newline: + author={\exp_not:V\l__gzt_people_first_last_name_tl}, + \iow_newline: + options={skipbib}, + \iow_newline: + crossref = {\l__gzt_crossref_tl} + \iow_newline: + } + \iow_newline: + }% +} +\cs_generate_variant:Nn \__gzt_people:nnnnnnnn { nVVVVnxV } +\cs_new_protected:Nn \__gzt_display_academic_signature:n +{ + \bigskip + \begin{__gzt_minibiographies_acknowledgements_tcbox} + #1 + \end{__gzt_minibiographies_acknowledgements_tcbox} +} +\cs_new_protected:Nn \__gzt_display_people_by_role:n +{ + \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{#1}]{people}{% + \l__gzt_firstlastname_tl=first-last-name% + ,\l__gzt_people_affiliation_tl=affiliation% + ,\l__gzt_people_email_tl=email% + ,\l__gzt_people_minibio_tl=minibio% + ,\l__gzt_people_photo_tl=photo% + ,\l__gzt_people_speciality=speciality% + ,\l__gzt_people_role_tl=role% + ,\l__gzt_people_webpage_tl=webpage% + }{% + \tl_if_in:NnTF \l__gzt_people_role_tl { editor } { + \item[ + \textcolor{__gzt_people_color}{% + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}% + } + \tl_if_in:NnF \l__gzt_people_speciality { NoValue } { ~(\l__gzt_people_speciality) } + ] + \leavevmode + \vbox_top:n {% + \l__gzt_people_affiliation_tl% + \newline% + \href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}% + } + \medskip% + }{ + \tl_if_in:NnTF \l__gzt_people_role_tl { author } { + \tl_if_empty:NF \l__gzt_firstlastname_tl { + \footnotesize% + % \noindent% + \DTLiffirstrow{% + }{ + \DTLpar% + \medskip% + } + \dim_set:Nn \l__gzt_minibio_width_dim {\linewidth-1em - \c__gzt_authors_photos_box_width_dim} + \tl_if_empty:NTF \l__gzt_people_photo_tl + {% + \dim_add:Nn \l__gzt_minibio_width_dim {\c__gzt_authors_photos_box_width_dim} + }{% + \begin{adjustbox}{valign=t,minipage=\c__gzt_authors_photos_box_width_dim} + \includegraphics[width=\c__gzt_authors_photos_width_dim]{\l__gzt_people_photo_tl} + \end{adjustbox}% + \quad% + } + \begin{adjustbox}{valign=t,minipage=\l__gzt_minibio_width_dim} + \begin{description}[leftmargin=1em,style=nextline] + \item[% + \textcolor{__gzt_people_color}{% + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}% + }% + ] + \tl_if_empty:NF \l__gzt_people_affiliation_tl + {% + \mbox{}% + \par% + \vspace{-2ex}% + \l__gzt_people_affiliation_tl% + } + \tl_if_empty:NF \l__gzt_people_email_tl + {% + \par% + \href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}% + } + \tl_if_empty:NF \l__gzt_people_webpage_tl + {% + \par% + \url{\l__gzt_people_webpage_tl}% + } + \tl_if_empty:NF \l__gzt_people_minibio_tl + {% + \par% + \smallskip% + \l__gzt_people_minibio_tl + } + \end{description} + \end{adjustbox} + } + }{ + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- + \exp_not:V\DTLcurrentindex}% + \tl_if_empty:NF \l__gzt_people_email_tl + { + \c_space_tl(\href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}) + } + } + } + } +} +\cs_new_protected:Nn \__gzt_reflected_text:n +{ + \begin{tikzpicture} + \tikzset{__gzt_reflect_node/.style={% + anchor=base,% + inner~sep=0,% + line~width=0,% + font=\Huge, + color=__gzt_reflected_text_color% + }% + }% + \node[__gzt_reflect_node]{#1}; + \node[scope~fading=south,opacity=0.2,yscale=-1,__gzt_reflect_node]{#1}; + \end{tikzpicture} +} +\tl_new:N \g__gzt_display_frontcover_tl% +\tl_gset:Nn \g__gzt_display_frontcover_tl {% + \bool_gset_true:N \g__gzt_frontcover_bool + \pagenumbering{roman}% + \pagestyle{__gzt_frontcover_ps}% + \pagecolor{\g__gzt_special_edition_color_tl} + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_frontcover_geometry_tl}% + \noindent% + \bool_if:NTF {\g__gzt_cover_bool} { + \hspace*{-\c__gzt_potential_layoutoffset_dim} + }{ + \hspace*{-2\c__gzt_potential_layoutoffset_dim} + } + \exp_after:wN\includegraphics\exp_after:wN[\g__gzt_frontcover_image_options_tl]{\g__gzt_frontcover_image_file_tl} + \begin{tikzpicture}[remember~picture, overlay] + \coordinate (__gzt_circle_minitoc_center) at + ([xshift=\g__gzt_minitoc_xshift_dim-\c__gzt_potential_layoutoffset_dim,yshift=\g__gzt_minitoc_yshift_dim+\c__gzt_potential_layoutoffset_dim]current~page.south~east) ; + \node[name=__gzt_circle_minitoc,shape=circle,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,text~width=\g__gzt_minitoc_circle_diameter_dim] at + (__gzt_circle_minitoc_center) {}; + \node[text~width=\g__gzt_minitoc_textwidth_dim,anchor=north~west] at + ([xshift=\c__gzt_minitoc_from_circle_xshift_dim,yshift=\c__gzt_minitoc_from_circle_yshift_dim]$ (__gzt_circle_minitoc.north)!.5!(__gzt_circle_minitoc.west) $) + { + \bool_if:NF {\g__gzt_frontcover_without_minitoc_bool} { + \large + \color{__gzt_minitoc_color} + \g__gzt_frontcover_minitoc_tl + } + }; + \bool_if:NT {\g__gzt_minitoc_help_bool} { + \fill[red] (__gzt_circle_minitoc_center) circle (2pt); + } + \end{tikzpicture} + \bool_if:NT {\g__gzt_cover_bool} { + \small + \begin{tikzpicture}[remember~picture, overlay] + \node[name=__gzt_binding_sw,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,rotate=90,anchor=west] at + ([xshift=0.45\c__gzt_potential_bindingoffset_dim,yshift=15mm+\c__gzt_potential_layoutoffset_dim]current~page.south~west) { + \No + \bool_if:NTF {\g__gzt_special_edition_bool} { + \c__gzt_special_edition_string_tl + }{ + \int_use:N\g__gzt_issue_number_int + } + }; + \node[name=__gzt_binding_w,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,rotate=90] at + ([xshift=0.45\c__gzt_potential_bindingoffset_dim]current~page.west) { + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_if_exist:NTF \g__gzt_special_edition_short_title_tl {% + \g__gzt_special_edition_short_title_tl + }{ + \g__gzt_special_edition_title_tl + } + }{ + \text_uppercase:n {\c__gzt_journal_title_string_tl} + } + }; + \node[name=__gzt_binding_nw,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,rotate=90,anchor=east] at + ([xshift=0.45\c__gzt_potential_bindingoffset_dim,yshift=-15mm-\c__gzt_potential_layoutoffset_dim]current~page.north~west) { + \l__gzt_uppercased_date_format\displaydate{__gzt_date} + }; + \end{tikzpicture} + } + \vfill% + \noindent% + \hspace*{10mm}% + \hspace*{-\c__gzt_potential_layoutoffset_dim} + \includegraphics[height=22.5mm]{\c__gzt_smf_logo_file_string_tl}% + \bool_if:NT {\g__gzt_special_edition_bool} { + \hfill + \includegraphics[scale=1.2]{gzt-logo} + \hspace*{10mm} + } + % \vfill% + \clearpage% + \bool_gset_false:N \g__gzt_frontcover_bool + \nopagecolor +} +\tl_new:N \g__gzt_display_inside_frontcover_tl% +\tl_gset:Nn \g__gzt_display_inside_frontcover_tl {% + \bool_gset_true:N \g__gzt_inside_frontcover_bool% + \pagestyle{__gzt_inside_frontcover_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_inside_cover_geometry_tl}% + \small% + \setlength{\columnseprule}{2pt} + \renewcommand{\columnseprulecolor}{\color{white}} + \begin{__gzt_inside_cover_tcb}[__gzt_tcb_inside_frontcover_style] + \begin{multicols}{2} + \setlength{\columnsep}{1mm} + \bool_if:NTF {\g__gzt_special_edition_bool} { + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \__gzt_display_people_by_role:n {editor} + \end{description} + }{% + \begin{description}[leftmargin=1em] + \item[\c__gzt_editors_in_chief_string_tl] \ + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \__gzt_display_people_by_role:n {editorinchief} + \end{description} + \bigskip + \par + \item[\c__gzt_editors_string_tl] \ + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \__gzt_display_people_by_role:n {editor} + \end{description} + \end{description} + } + \end{multicols} + \setlength{\columnseprule}{1pt} + \tcblower + \begin{tabular}{@{}m{.75\c__gzt_inside_cover_box_width_dim}@{}m{.2\c__gzt_inside_cover_box_width_dim-2\tabcolsep}@{}} + \begin{description}[leftmargin=1em] + \item[\c__gzt_editorial_secretariat_string_tl{}~:] \ \par% + \l__gzt_journal_publisher_tl% + % \par% + \c_space_tl\textendash{}\c_space_tl% + \__gzt_display_people_by_role:n { secretary }\par + \l__gzt_journal_address_tl\par% + \c__gzt_phone_string_tl{}~:~\l__gzt_journal_phone_tl{} \c_space_tl\textendash{}\c_space_tl + \c__gzt_fax_string_tl{}~:~\l__gzt_journal_fax_tl\par% + \href{mailto:\l__gzt_journal_email_tl}{\nolinkurl{\l__gzt_journal_email_tl}}% + % \newline% + \c_space_tl\textendash{}\c_space_tl + \url{\l__gzt_journal_url_tl} + \item[\c__gzt_publishingdirector_string_tl{}~:] + \__gzt_display_people_by_role:n { president } + \item[\c__gzt_issn_string_tl{}~:] \l__gzt_journal_issn_tl + \tl_if_empty:NF \l__gzt_journal_isbn_tl + {% + \item[\c__gzt_isbn_string_tl{}~:] \l__gzt_journal_isbn_tl + } + \bool_if:NT {\g__gzt_no_inside_backcover_bool} { + \item[\c__gzt_latexclass_string_tl{}~:] + \__gzt_display_people_by_role:n { classdesigner } + \item[\c__gzt_artistic_director_string_tl{}~:] + \__gzt_display_people_by_role:n { graphicdesigner } + \item[\c__gzt_printer_string_tl{}~:] \g__gzt_printer_text_tl + } + \end{description} + \bool_if:NT {\g__gzt_no_inside_backcover_bool} { + \g__gzt_font_designer_text_tl + } + & + \hspace*{\fill}% + \includegraphics[height=20mm]{\c__gzt_smf_logo_file_string_tl}% + \end{tabular} + % \\ + % \c__gzt_font_string_tl + \bigskip + \tl_if_empty:NF \g__gzt_about_frontcover_tl + {% + \\ + \begin{adjustbox}{valign=t,minipage=.75\c__gzt_inside_cover_box_width_dim+.2\c__gzt_inside_cover_box_width_dim-2\tabcolsep} + \begin{description}[leftmargin=1em,font=\color{__gzt_about_frontcover_title_color}] + \item[\g__gzt_about_frontcover_string_tl] \g__gzt_about_frontcover_tl + \bool_if:NT {\g__gzt_credit_frontcover_bool} { + \c_space_tl(\c__gzt_credit_frontcover_string_tl{}~:~% + \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{frontcovercredit}]{people}{% + \l__gzt_firstlastname_tl=first-last-name% + ,\l__gzt_people_role_tl=role% + }{% + \__gzt_citeauthor_no_firstinits:n + {\c__gzt_issue_bib_key_tl -frontcovercredit- \exp_not:V\DTLcurrentindex}% + }% + ).% + } + \end{description} + \end{adjustbox} + } + \end{__gzt_inside_cover_tcb} + \clearpage% + \pagenumbering{arabic}% + \bool_gset_false:N \g__gzt_inside_frontcover_bool +} +\tl_new:N \g__gzt_display_inside_backcover_tl% +\tl_gset:Nn \g__gzt_display_inside_backcover_tl {% + \bool_gset_true:N \g__gzt_inside_backcover_bool% + \cleardoublepage% + \pagestyle{__gzt_inside_backcover_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_inside_cover_geometry_tl}% + \bool_if:NTF {\g__gzt_no_inside_backcover_bool} { + \hbox{} + }{% + \small% + \begin{__gzt_inside_cover_tcb}[__gzt_tcb_inside_backcover_style] + \bool_if:NF {\g__gzt_special_edition_bool} { + % \begin{multicols}{2} + % \setlength{\columnsep}{1mm} + \file_if_exist_input:n {\c__gzt_authors_instructions_file_tl} + % \end{multicols} + % \setlength{\columnseprule}{1pt} + \tcblower + } + \begin{description}[leftmargin=1em] + \item[\c__gzt_latexclass_string_tl{}~:] + \__gzt_display_people_by_role:n { classdesigner } + \item[\c__gzt_artistic_director_string_tl{}~:] + \__gzt_display_people_by_role:n { graphicdesigner } + \item[\c__gzt_printer_string_tl{}~:] \g__gzt_printer_text_tl + \end{description} + \g__gzt_font_designer_text_tl + \end{__gzt_inside_cover_tcb} + } + \bool_gset_false:N \g__gzt_inside_backcover_bool +} +\tl_new:N \g__gzt_display_backcover_tl% +\tl_gset:Nn \g__gzt_display_backcover_tl {% + \bool_gset_true:N \g__gzt_backcover_bool + \pagestyle{__gzt_backcover_ps}% + \pagecolor{\g__gzt_special_edition_color_tl} + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_backcover_geometry_tl}% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \mbox{} + \vfill + \clist_map_inline:Nn \c__gzt__graphics_extensions_clist{ + \file_if_exist:nT {\c__gzt_issue_images_path_string_tl/\g__gzt_special_edition_backcover_image_tl.#1} { + \begin{center} + \includegraphics[width=.25\linewidth]{\g__gzt_special_edition_backcover_image_tl} + \end{center} + \bigskip + \clist_map_break: + } + } + \group_begin: + \leftskip.125\linewidth + \rightskip\leftskip + \file_if_exist_input:nF {\c__gzt_special_edition_backcover_page_file_string_tl} + {% + \c_empty_box + } + \par + \group_end: + \vfill + \clist_if_empty:NF \g__gzt_special_edition_logos_clist { + \vfill + \noindent + \clist_map_inline:Nn \g__gzt_special_edition_logos_clist { + \hfill + \includegraphics[height=2cm]{#1} + \hfill + } + \mbox{} + } + }{ + \file_if_exist_input:nF {\c__gzt_backcover_page_file_string_tl} + {% + \hbox{} + } + } +} +\NewDocumentCommand \editorinchief {ommm} +{ + \int_incr:N \g__gzt_editors_in_chief_int + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editorinchief}{} +} +\NewDocumentCommand \editor {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editor}{} +} + +\NewDocumentCommand \president {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{president}{} +} +\NewDocumentCommand \classdesigner {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classdesigner}{} +} +\NewDocumentCommand \classmaintainer {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classmaintainer}{} +} +\NewDocumentCommand \fontdesigner {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{fontdesigner}{} +} +\NewDocumentCommand \graphicdesigner {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{graphicdesigner}{} +} +\NewDocumentCommand \secretary {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{secretary}{} +} +\NewDocumentCommand \issuesetup { m } { + \keys_set:nn { gzt/issuesetup } {frontcoverimageoptions={width=\c__gzt_frontcover_image_width_dim},#1} + \int_compare:nNnT {\g__gzt_issue_number_int}<{1} + { + \int_set:Nn \g__gzt_issue_number_int { \c__gzt_first_issue_number_int } + \msg_warning:nnn{gzt}{issue-number-needed}{number} + } + \int_compare:nNnT {\g__gzt_issue_month_int * \g__gzt_issue_year_int}<{1} + { + \int_new:N \g__gzt_issue_age_in_months_int% + \int_gset:Nn \g__gzt_issue_age_in_months_int + { + \c__gzt_first_issue_month_int + + \c__gzt_interval_in_months_int + * ( \int_use:N \g__gzt_issue_number_int - \c__gzt_first_issue_number_int ) + } + } + \int_compare:nNnT {\g__gzt_issue_month_int}<{1} + { + \int_gset:Nn \g__gzt_issue_month_int + { + \int_mod:nn { \g__gzt_issue_age_in_months_int } { 12 } + } + } + \int_compare:nNnT {\g__gzt_issue_year_int}<{1} + { + \int_new:N \g__gzt_issue_age_in_years_int% + \int_gset:Nn \g__gzt_issue_age_in_years_int + {% + \int_div_truncate:nn { \g__gzt_issue_age_in_months_int } { 12 } + }% + \int_gset:Nn \g__gzt_issue_year_int + { + \g__gzt_issue_age_in_years_int + \c__gzt_first_issue_year_int + } + }% +} +\NewDocumentCommand \specialeditionsetup { m } { + \bool_gset_true:N \g__gzt_special_edition_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \keys_set:nn { gzt/specialedition } {#1} +} +\NewDocumentCommand \moralreportsetup { m } { + \bool_gset_true:N \g__gzt_moral_report_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \keys_set:nn { gzt/moralreport } {#1} +} +\NewDocumentCommand \journalsetup { m } { + \keys_set:nn { gzt/journalsetup } { #1 } +} +\RenewDocumentCommand \date { mmm } { + \newdate{__gzt_president_message_date}{#1}{#2}{#3}% +} +\NewDocumentCommand \interviewee { om } { + \tl_if_empty:nT \g__gzt_title_tl { + \tl_gset:Nn \g__gzt_title_tl { + \c__gzt_interview_title_string_tl + \DeclareNameAlias{labelname}{default}\citeauthor{\c__gzt_issue_bib_key_tl -art-\int_use:N + \g__gzt_articles_int} + } + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/interviewees } { #1 } + } + \tl_set:Nn \l__gzt_people_first_last_name_tl {#2} + \__gzt_people:nVVVVnxV + {#2} + {\g__gzt_people_affiliation_tl} + {\g__gzt_people_email_tl} + {\g__gzt_people_minibio_tl} + {\g__gzt_people_photo_tl} + {} + {interviewee-art-\int_use:N \g__gzt_articles_int} + {} + % \maketitle +} +\NewDocumentCommand \academicsignature { m } { + \__gzt_display_academic_signature:n {#1} +} +\cs_new_protected:Nn \__gzt_uppercased_monthname_french:n +{ + \@orgargctr=#1\relax + \ifcase\@orgargctr + \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{% + Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}% + \or JANVIER% + \or F\'EVRIER% + \or MARS% + \or AVRIL% + \or MAI% + \or JUIN% + \or JUILLET% + \or AO\^UT% + \or SEPTEMBRE% + \or OCTOBRE% + \or NOVEMBRE% + \or D\'ECEMBRE% + \else + \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{% + Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}% + \fi +} +\newdate{__gzt_date} + {1} + {\int_use:N \g__gzt_issue_month_int} + {\int_use:N \g__gzt_issue_year_int} +\newdateformat{l__gzt_uppercased_date_format}{ + \__gzt_uppercased_monthname_french:n {\THEMONTH}~\THEYEAR +} +\AddToHook{begindocument}{% +\tl_new:N \g__gzt_bib_issue_date_tl +\tl_gset:Nn \g__gzt_bib_issue_date_tl { + \int_use:N \g__gzt_issue_year_int- + \int_compare:nNnT {\g__gzt_issue_month_int}<{10} + { + 0 + } + \int_use:N \g__gzt_issue_month_int +} + \iow_now:Nx \g__gzt_bib_out_iow {% + @periodical{\c__gzt_issue_bib_key_tl,\iow_newline: + issuetitle = {\exp_not:f\c__gzt_journal_title_string_tl},\iow_newline: + date = {\g__gzt_bib_issue_date_tl},\iow_newline: + number = \int_use:N \g__gzt_issue_number_int,\iow_newline: + % issn = {\l__gzt_journal_issn_tl},\iow_newline: + options = {skipbib}\iow_newline: + } + \iow_newline: + }% +} +\tl_new:N \g__gzt_title_tl +\RenewDocumentCommand \title { o m } { + \int_gincr:N \g__gzt_articles_int + \tl_gclear:N \g__gzt_short_title_tl + \tl_gclear:N \g__gzt_short_subtitle_tl + \bool_gset_false:N \g__gzt_title_not_in_toc_bool + % + \IfNoValueF {#1} + { + \keys_set:nn { gzt/title } { #1 } + } + \tl_gset:Nn \g__gzt_title_tl {#2} + \bool_if:nT \g__gzt_tellme_rubric_bool + { + \tl_put_left:Nx \g__gzt_title_tl {\c__gzt_tellme_extra_title_string_tl} + } + \tl_if_empty:NT \g__gzt_short_title_tl {% + \tl_gset_eq:NN \g__gzt_short_title_tl \g__gzt_title_tl + } +} +\tl_new:N \g__gzt_subtitle_tl +\NewDocumentCommand \subtitle { o m } { + \bool_gset_false:N \g__gzt_subtitle_not_in_toc_bool + % + \IfNoValueF {#1} + { + \keys_set:nn { gzt/subtitle } { #1 } + } + \tl_gset:Nn \g__gzt_subtitle_tl {#2} + \tl_if_empty:NT \g__gzt_short_subtitle_tl {% + \tl_gset_eq:NN \g__gzt_short_subtitle_tl \g__gzt_subtitle_tl + } +} +\RenewDocumentCommand \author { o m } { + \IfNoValueF {#1} + { + \keys_set:nn { gzt/authors } { #1 } + } + \tl_gset:Nn \l__gzt_people_first_last_name_tl {#2} + \__gzt_people:nVVVVnxV + {#2} + {\g__gzt_people_affiliation_tl} + {\g__gzt_people_email_tl} + {\g__gzt_people_minibio_tl} + {\g__gzt_people_photo_tl} + {} + {author-art-\int_use:N \g__gzt_articles_int} + {\g__gzt_people_webpage_tl} +} +\iow_new:N \g__gzt_bib_out_iow +\ior_new:N \g__gzt_bib_out_ior +\tl_new:N \g__gzt_bib_out_tl +\file_if_exist:nTF { \c__gzt_issue_bib_path_string_tl } +{ + \ior_open:Nn \g__gzt_bib_out_ior { \c__gzt_issue_bib_path_string_tl } + \ior_str_map_inline:Nn \g__gzt_bib_out_ior + { \tl_gput_right:Nn \g__gzt_bib_out_tl {#1 \par } } + \ior_close:N \g__gzt_bib_out_ior +}{ + \typeout{no file! rerun} +} +\iow_open:Nn \g__gzt_bib_out_iow { \c__gzt_issue_bib_path_string_tl } +\tl_new:N \g__gzt_abstract_body_tl +\NewDocumentEnvironment{abstract}{} + {\CollectAbstract} + {\endCollectAbstract} +\NewEnviron{CollectAbstract} + { + \tl_gset_eq:NN \g__gzt_abstract_body_tl \BODY + } +\tl_new:N \g__gzt_mainmatter_switch_tl% +\tl_gset:Nn \g__gzt_mainmatter_switch_tl { + \bool_gset_false:N \g__gzt_frontmatter_bool + \bool_gset_true:N \g__gzt_mainmatter_bool + \SetParskip{\c__gzt_mainmatter_parskip_skip} + \pagestyle{__gzt_mainmatter_ps}% +} +\tl_new:N \l__gzt_article_acknowledgements_tl% +\cs_new_protected:Nn \__gzt_article_acknowledgements:n +{ + \tl_set:Nn \l__gzt_article_acknowledgements_tl { #1 } +} +\tl_new:N \g__gzt_about_frontcover_tl% +\bool_new:N \g__gzt_credit_frontcover_bool% +\tl_new:N \g__gzt_about_frontcover_string_tl% +\cs_new_protected:Nn \__gzt_about_frontcover:nnn +{ + \tl_if_empty:nF {#1}{% + \bool_gset_true:N \g__gzt_credit_frontcover_bool + \__gzt_people:nnnnnnnn {#1}{}{}{}{}{}{frontcovercredit}{} + } + \tl_gset:Nn \g__gzt_about_frontcover_string_tl { #2 } + \tl_gset:Nn \g__gzt_about_frontcover_tl { #3 } +} +\tl_new:N \g__gzt_rubric_abstract_box_tl% +\tl_new:N \l__gzt_rubric_head_text_box_tl% +\cs_new_protected:Nn \__gzt_rubric:nnn +{ + \newpage% + \tl_gclear:N \g__gzt_rubric_abstract_tl + \tl_gset:Nn \g__gzt_rubric_title_tl {#2} + \file_if_exist:nTF { #3.pdf }{% + \tl_gset:Nn \g__gzt_rubric_pictofile_tl {#3} + }{ + \tl_gset:Nn \g__gzt_rubric_pictofile_tl {example-image} + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/rubric } { #1 } + } + \g__gzt_mainmatter_switch_tl + \bool_gset_true:N \g__gzt_mainmatter_bool + \clearpage + \bool_gset_true:N \g__gzt_rubric_bool% + \bool_gset_false:N \g__gzt_interview_rubric_bool + \bool_gset_false:N \g__gzt_tellme_rubric_bool + \bool_gset_false:N \g__gzt_rearviewmirror_rubric_bool + \bool_gset_false:N \g__gzt_books_rubric_bool + \bool_gset_false:N \g__gzt_previous_article_with_bibliography_or_minibio_bool + \bool_if:nF { \g__gzt_for_authors_bool } { + \int_zero:N \g__gzt_item_in_rubric_int + \phantomsection + \par + \bool_if:NF {\g__gzt_special_edition_bool} { + \addcontentsline{toc}{part}{\g__gzt_rubric_title_tl} + } + \thispagestyle{__gzt_rubric_ps} + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_main_geometry_tl}% + \tl_if_empty:NTF \g__gzt_rubric_abstract_tl + { + \dim_set:Nn \l__gzt_rubrics_head_text_width_dim { \c__gzt_rubrics_head_text_no_abstract_width_dim } + } + { + \dim_set:Nn \l__gzt_rubrics_head_text_width_dim { \c__gzt_rubrics_head_text_abstract_width_dim } + \tl_gset:Nn \g__gzt_rubric_abstract_box_tl { + \begin{adjustbox}{valign=t,minipage=\c__gzt_rubrics_abstract_width_dim} + \raggedright% + \large% + \color{__gzt_rubric_abstract_color}% + \g__gzt_rubric_abstract_tl% + \end{adjustbox} + } + } + \tl_set:Nn \l__gzt_rubric_head_text_box_tl { + \begin{adjustbox}{valign=t,minipage=\l__gzt_rubrics_head_text_width_dim} + \mbox{}% + \checkoddpage% + \ifoddpage% + \raggedleft% + \else + \raggedright% + \fi% + \color{__gzt_rubric_title_color}% + \fontsize{20}{20}\fontseries{bx}\fontshape{sc}\selectfont% + \g__gzt_rubric_title_tl% + \end{adjustbox} + } + \noindent% + \mbox{}% + \checkoddpage% + \ifoddpage% + \hspace*{\c__gzt_rubric_extra_xoffset_dim} + \tl_if_empty:NF \g__gzt_rubric_abstract_tl + { + \g__gzt_rubric_abstract_box_tl + } + \hfill% + \l__gzt_rubric_head_text_box_tl + \hspace*{\c__gzt_rubric_xoffset_dim}% + \else% + \hspace*{\c__gzt_rubric_xoffset_dim}% + \l__gzt_rubric_head_text_box_tl + \tl_if_empty:NF \g__gzt_rubric_abstract_tl + { + \hfill% + \g__gzt_rubric_abstract_box_tl + \hspace*{\c__gzt_rubric_extra_xoffset_dim} + } + \fi% + } + \afterpage{% + \bool_gset_false:N \g__gzt_rubric_bool% + } + \ignorespaces +} +\cs_new_protected:Nn \__gzt_display_localtoc: +{ + \etocsettocstyle{\section*{\contentsname}}{}% + \etocsetstyle {section} + {} + {\leavevmode\leftskip 0cm\relax} + {\bfseries\normalsize\makebox[.6cm][l]{\etocnumber}% + \etocname\nobreak\hfill\nobreak% + \makebox[.5cm][r]{% + \etocpage% + }% + \par% + } + {\medskip} + \localtableofcontentswithrelativedepth{+1} +} +\NewDocumentCommand \gztlocaltableofcontents {} +{ + \__gzt_display_localtoc: {} +} +\tl_new:N \g__gzt_article_bib_key_tl% +\tl_new:N \l__gzt_people_first_last_names_tl +\tl_new:N \g__gzt_authors_first_last_names_tl% +\tl_new:N \l__gzt_interviewees_first_last_names_tl% +\tl_new:N \g__gzt_citeauthor_no_firstinits% +\tl_new:N \g__gzt_citeauthor_tl% +\tl_new:N \g__gzt_citeinterviewee_tl% +\tl_new:N \g__gzt_blx_given_first_inits_tl% +\@ifpackagelater{biblatex}{2016/01/01}{% + \tl_gset:Nn \g__gzt_blx_given_first_inits_false_tl + {% + \togglefalse{abx@bool@giveninits}% + } +}{ + \tl_set:Nn \g__gzt_blx_given_first_inits_false_tl + {% + \togglefalse{blx@firstinits}% + } +} +\cs_new_protected:Nn \__gzt_citeauthor_no_firstinits:n {% + \tl_gset:Nn \g__gzt_citeauthor_tl {% + \DeclareNameAlias{labelname}{default}% + \group_begin: + \g__gzt_blx_given_first_inits_false_tl + \citeauthor{#1} + \group_end: + }% + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\g__gzt_citeauthor_tl}{} + }{% + \g__gzt_citeauthor_tl + }% +} +\cs_set_eq:NN \__gzt_orig_multinamedelim \multinamedelim +\cs_set_eq:NN \__gzt_orig_finalnamedelim \finalnamedelim +\cs_new_protected:Nn \__gzt_itemized_citeauthor:n +{ + \cs_set_eq:NN \multinamedelim \item + \cs_set_eq:NN \finalnamedelim \multinamedelim + \AtNextCitekey{\defcounter{maxnames}{100}} + \begin{itemize}[label=\textbullet,noitemsep] + \item \citeauthor{#1} + \end{itemize} + \cs_set_eq:NN \multinamedelim \__gzt_orig_multinamedelim + \cs_set_eq:NN \finalnamedelim \__gzt_orig_finalnamedelim +} +\tl_new:N \l__gzt_bullet_and_rule_tl +\tl_new:N \l__gzt_authors_box_tl +\tl_new:N \l__gzt_abstract_box_tl +\tl_new:N \l__gzt_bullet_and_rule_odd_tl +\tl_new:N \l__gzt_bullet_and_rule_even_tl +\tl_new:N \l__gzt_title_box_tl +\RenewDocumentCommand \maketitle { s } { + \FloatBarrier% +\int_gincr:N \g__gzt_item_in_rubric_int +\dim_set_eq:NN \parindent \c__gzt_original_parindent_dim +\glsresetall +\setcounter{section}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote}{0} +\setcounter{equation}{0} +\setcounter{theorem}{0} +\setcounter{corollary}{0} +\setcounter{conjecture}{0} +\setcounter{proposition}{0} +\setcounter{lemma}{0} +\setcounter{axiom}{0} +\setcounter{definition}{0} +\setcounter{remark}{0} +\setcounter{example}{0} +\setcounter{notation}{0} +\tl_gset:Nn \g__gzt_article_bib_key_tl {% + \c__gzt_issue_bib_key_tl + -art- + \int_use:N \g__gzt_articles_int +} +\DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{author-art-\int_use:N \g__gzt_articles_int}]{people}{% + \l__gzt_people_first_last_name_tl=first-last-name% + ,\l__gzt_people_role_tl=role% +}{% + \tl_if_in:NnT \l__gzt_people_role_tl { author } { + \DTLiffirstrow{% + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {\exp_not:V\l__gzt_people_first_last_name_tl} + }{ + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {~and~\exp_not:V\l__gzt_people_first_last_name_tl} + } + } +} +\DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{interviewee-art-\int_use:N \g__gzt_articles_int}]{people}{% + \l__gzt_people_first_last_name_tl=first-last-name% + ,\l__gzt_people_role_tl=role% +}{% + \tl_if_in:NnT \l__gzt_people_role_tl { interviewee } { + \DTLiffirstrow{% + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {\exp_not:V\l__gzt_people_first_last_name_tl} + }{ + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {~and~\exp_not:V\l__gzt_people_first_last_name_tl} + } + } +} +\tl_if_empty:NF \g__gzt_title_tl {% + \iow_now:Nx \g__gzt_bib_out_iow {% + @article{ + \g__gzt_article_bib_key_tl, + \iow_newline: + title={\exp_not:V\g__gzt_title_tl}, + \iow_newline: + \tl_if_empty:NF \g__gzt_subtitle_tl {% + subtitle={\exp_not:V\g__gzt_subtitle_tl}, + \iow_newline: + } + \tl_if_eq:NNF { \g__gzt_short_title_tl } { \g__gzt_title_tl } {% + shorttitle={\exp_not:V\g__gzt_short_title_tl}, + \iow_newline: + }% + \tl_if_empty:NF \l__gzt_people_first_last_names_tl + { + author={\exp_not:V\l__gzt_people_first_last_names_tl}, + \iow_newline: + } + options={skipbib}, + \iow_newline: + crossref = {\c__gzt_issue_bib_key_tl} + } + \iow_newline: + }% +}% +\tl_set:Nn \l__gzt_bullet_and_rule_odd_tl +{% + \begin{tikzpicture}[remember~picture,overlay] + \draw[fill=__gzt_circlerule_color,draw=__gzt_circlerule_color,line~width=0.7mm] + ([xshift=-\c__gzt_innermargin_dim-\c__gzt_potential_layoutoffset_dim]0,0 -| current~page.west) -- (\linewidth,0);% + \fill[__gzt_circlerule_color] (\linewidth-2\pgflinewidth,0) circle [radius=2.75mm]; + \end{tikzpicture}% +}% +\tl_set:Nn \l__gzt_bullet_and_rule_even_tl +{% + \begin{tikzpicture}[remember~picture,overlay] + \draw[fill=__gzt_circlerule_color,draw=__gzt_circlerule_color,line~width=0.7mm] + (0,0 -| current~page.east) -- (0,0);% + \fill[__gzt_circlerule_color] (0,0) circle [radius=2.75mm]; + \end{tikzpicture}% +}% +\tl_set:Nn \l__gzt_title_box_tl +{% + \noindent% + \hspace*{18mm}% + \begin{adjustbox}{minipage=\linewidth-18mm,valign=t} + \raggedright% + \color{__gzt_article_title_color}% + \fontsize{20}{25}\selectfont% + \bfseries% + \g__gzt_title_tl + \tl_if_empty:NF \g__gzt_subtitle_tl {% + \par% + \g__gzt_subtitle_tl + } + \phantomsection + \par% + \bool_if:NTF {\g__gzt_title_not_in_toc_bool} { + \bookmark[page=\thepage,level=chapter]{\g__gzt_short_title_tl} + }{ + \addcontentsline{toc}{chapter}{% + \tl_if_empty:NTF \g__gzt_short_title_tl {% + \g__gzt_title_tl% + }{ + \g__gzt_short_title_tl% + } + \bool_if:NF {\g__gzt_subtitle_not_in_toc_bool} { + \bool_if:nF { \tl_if_empty_p:N \g__gzt_short_subtitle_tl || \g__gzt_interview_rubric_bool || \g__gzt_rearviewmirror_rubric_bool } + { + \c_space_tl\textendash{}\c_space_tl\g__gzt_short_subtitle_tl + } + } + \bool_if:nF { \tl_if_empty_p:N \l__gzt_people_first_last_names_tl || \g__gzt_interview_rubric_bool || \g__gzt_rearviewmirror_rubric_bool } + { + \textsl{ + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{% + \c_space_tl\textendash{}\c_space_tl\citeauthor{\g__gzt_article_bib_key_tl} + }{} + }{% + \c_space_tl\textendash{}\c_space_tl\citeauthor{\g__gzt_article_bib_key_tl} + }% + } + } + } + } + \end{adjustbox} +} + \dim_gset:Nn \g__gzt_abstract_box_width_dim {0.75\linewidth} + % \bool_if:nT { \tl_if_empty_p:N \l__gzt_people_first_last_names_tl } + % { + % \dim_gset:Nn \g__gzt_abstract_box_width_dim {\linewidth} + % } + \tl_set:Nn \l__gzt_abstract_box_tl + {% + \begin{adjustbox}{minipage=\g__gzt_abstract_box_width_dim,max~width=\g__gzt_abstract_box_width_dim,valign=t} + \mbox{} + \tl_if_exist:NT \g__gzt_abstract_body_tl + {% + \raggedright% + \bfseries% + \color{__gzt_article_abstract_color}% + \g__gzt_abstract_body_tl + }% + \end{adjustbox} + }% + \tl_set:Nn \l__gzt_authors_box_tl + {% + \begin{adjustbox}{minipage=0.3\linewidth,min~width=0.3\linewidth,valign=t} + \bool_if:nTF { \tl_if_empty_p:N \l__gzt_people_first_last_names_tl || \g__gzt_interview_rubric_bool } + { + \mbox{} + } + { + \color{__gzt_people_color}% + \__gzt_itemized_citeauthor:n {\g__gzt_article_bib_key_tl} + } + \end{adjustbox} + } + \bool_if:nTF { + \int_compare_p:nNn { \g__gzt_item_in_rubric_int } = { 1 } + } + { + \mbox{} + \par + \bool_if:nTF { + \tl_if_empty_p:N \g__gzt_rubric_abstract_tl + }{ + \xleaders\vbox { + \bigskip% + }% + \vskip\bigskipamount% + }{ + \xleaders\vbox { + \smallskip% + }% + \vskip\smallskipamount% + } + } + { + \bool_if:NTF {\g__gzt_previous_article_with_bibliography_or_minibio_bool} + { + \xleaders\vbox { + \mbox{} + \par + \medskip% + }% + \vskip\medskipamount% + } + { + \xleaders\vbox { + \mbox{} + \par + \smallskip% + }% + \vskip\smallskipamount% + } + } + \bool_gset_false:N \g__gzt_previous_article_with_bibliography_or_minibio_bool +\bool_if:NT {\g__gzt_for_authors_bool} { + \hypersetup{% + pdftitle=\g__gzt_short_title_tl, + pdfauthor=\l__gzt_people_first_last_names_tl + } +} + \bool_if:nF { \g__gzt_for_authors_bool } { + % \xleaders\vbox { + % \bigskip% + % }% + % \vskip\bigskipamount% + \noindent% + \checkoddpage% + \ifoddpage% + \l__gzt_bullet_and_rule_odd_tl + \else% + \l__gzt_bullet_and_rule_even_tl + \fi% + \bigskip% + }% + \par + \nopagebreak[4] + \l__gzt_title_box_tl + \normalsize% + \nopagebreak[3] + \bool_if:nF { \tl_if_empty_p:N \g__gzt_abstract_body_tl && (\tl_if_empty_p:N \l__gzt_people_first_last_names_tl || \g__gzt_interview_rubric_bool || \g__gzt_rearviewmirror_rubric_bool)} + {% + \par% + \bigskip + \bigskip + \large% + \mbox{}% + \checkoddpage% + \ifoddpage% + \l__gzt_abstract_box_tl + \hspace*{11mm}% + \l__gzt_authors_box_tl + \else% + \hspace*{-.85\c__gzt_outermargin_dim}% + \l__gzt_authors_box_tl + \hspace*{11mm}% + \l__gzt_abstract_box_tl + \fi% + } + \tl_gclear:N \g__gzt_title_tl + \tl_gclear:N \g__gzt_subtitle_tl + \tl_gclear:N \g__gzt_abstract_body_tl + \normalsize% + \bigskip + \tl_if_empty:NF \g__gzt_abstract_body_tl + % {% + % \tl_if_empty:NF \l__gzt_people_first_last_names_tl + % {% + % \bigskip + % } + % } + { + \bigskip + } + \bool_if:nT \g__gzt_interview_rubric_bool + { + \dim_zero:N \parindent + % \tl_if_empty:NF \l__gzt_people_photo_tl + % { + % \begin{adjustbox}{center} + % \includegraphics[height=50mm]{\l__gzt_people_photo_tl} + % \end{adjustbox} + % } + } + \color{__gzt_default_text_color}% + \IfBooleanF {#1}% + { + \bool_if:nF { \g__gzt_multicols_bool || \g__gzt_rearviewmirror_rubric_bool } + { + \begin{multicols}{2}% + } + } + } +\file_if_exist:nT { \c__gzt_acronyms_file_string_tl } {% + \AddToHook{begindocument/before}{\loadglsentries{\c__gzt_acronyms_file_string_tl}} +} +\bool_if:nT { \g__gzt_for_authors_bool } +{ + \AddToHook{enddocument}{% + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + } +} +\AddToHook{begindocument/before}{ + \file_if_exist_input:nF {\c__gzt_configuration_file_string_tl} + { + \msg_error:nn { gzt } { configuration-file-missing } + } +} +\@ifpackageloaded{etoc}{% + \newif\ifShowPartPageInToc % used before \part{Livres} + \newtoks\toctabletok + \newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands only once #2 + #1\expandafter\expandafter\expandafter {\expandafter\the\expandafter #1#2}} + \newcommand*\PreparePart{% + \edef\toctablepiece {% + \ExceptFirstPart {\noexpand\\[-1.5mm]}% + \unexpanded{% + \color{__gzt_rubric_in_toc_color}\scshape\fontseries{bx}\selectfont% + }% + \unexpanded\expandafter{\etocthelinkedname}& + % \ifShowPartPageInToc + \unexpanded{\bfseries\color{__gzt_rubric_in_toc_color}}% + \unexpanded\expandafter{\etocthelinkedpage}% + % \fi + \noexpand\\}% + \gdef\ExceptFirstPart ##1{##1}% + } + \newcommand*\PrepareChapter{% + \edef\toctablepiece {% + \unexpanded{\color{__gzt_article_in_toc_color}\small}% + \unexpanded\expandafter{\etocthelinkedname}& + \unexpanded{\color{__gzt_article_in_toc_color}\small} + \unexpanded\expandafter{\etocthelinkedpage}% + \noexpand\\[1mm]}% + } + \etocsetstyle{part}{}{} + {\PreparePart \appendtotok\toctabletok\toctablepiece} + {} + \etocsetstyle{chapter}{}{} + {\PrepareChapter \appendtotok\toctabletok\toctablepiece} + {} + \etocsettocstyle + {% + \setlength\LTleft{\c_zero_dim} + \setlength\LTright{\c_zero_dim} + \gdef\ExceptFirstPart ##1{}% + \toctabletok {%\hypersetup{hidelinks}% + \begin{longtable}{@{\extracolsep{\fill}}p{115mm}@{\quad}!{\color{__gzt_rule_in_toc_color}\vrule width 0.2mm}@{}r@{}}}% + } + {\global\toctabletok\expandafter{% + \the\toctabletok\end{longtable} + } + } + }{} +\tl_new:N \g__gzt_boxed_issue_number_tl% +\tl_gset:Nn \g__gzt_boxed_issue_number_tl {% + \tcbox{\Large\No\g__gzt_issue_number_int} +} +\cs_new_protected:Nn \__gzt_boxed_issue_number:nn +{ + \noindent% + \raisebox{\baselineskip}{% + \tl_if_empty:nF {#1} {% + \makebox[\c_zero_dim][r]{% + % \hspace*{\l__gzt_thumbnail_width_dim}% + \begin{adjustbox}{valign=t} + \includegraphics[width=\l__gzt_thumbnail_width_dim]{#1}% + \end{adjustbox}% + }% + }% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_set:Nn \l_tmpa_tl {\c__gzt_short_special_edition_string_tl} + }{ + \tl_set:Nn \l_tmpa_tl {\No\int_use:N\g__gzt_issue_number_int} + } + \begin{adjustbox}{valign=t} + \begin{tcolorbox}[% + enhanced,% + title=\l_tmpa_tl,%\int_use:N \g__gzt_issue_number_int,% + fonttitle=\Large,% + colback=white,% + sharp~corners=all,% + height=33mm,% + boxrule=\c_zero_dim,% + % frame~hidden,% + attach~boxed~title~to~top~left,% + tikznode~boxed~title={minimum~width=\c__gzt_boxed_issue_number_width_dim},% + boxed~title~style={% + size=minimal,% + height=\c__gzt_boxed_issue_number_height_dim,% + center~upper,% + before={},% + colback=__gzt_boxed_issue_number_bg_color,% + sharp~corners=all,% + frame~hidden,% + valign=center,% + }% + ] + \__gzt_reflected_text:n { #2 }% + \end{tcolorbox} + \end{adjustbox}% + }% + \par% +} +\cs_new_protected:Nn \__gzt_before_frontmatter_stuff: +{ + \bool_gset_true:N \g__gzt_frontmatter_bool% + \pagestyle{__gzt_frontmatter_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_front_matter_geometry_tl}% +} +\cs_new_protected:Nn \__gzt_after_frontmatter_stuff: +{ + \color{__gzt_default_text_color} + \normalsize% + \clearpage% + \bool_gset_false:N \g__gzt_frontmatter_bool% +} +\cs_new_protected:Nn \__gzt_before_editorial_presidentmessage:nn +{ + \__gzt_before_frontmatter_stuff: {} + \__gzt_boxed_issue_number:nn {#1}{#2} + \color{__gzt_frontmatter_text_color}% + \fontsize{11}{13.6}\selectfont + \RaggedRight +} +\cs_new_protected:Nn \__gzt_after_editorial_presidentmessage: +{ + \justifying + \bigskip + \par +} +\cs_new_protected:Nn \__gzt_before_display_editorial:n +{ + \__gzt_before_editorial_presidentmessage:nn {}{#1} +} +\cs_new_protected:Nn \__gzt_after_display_editorial: +{ + \__gzt_after_editorial_presidentmessage: {} + \hspace*{\fill}% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \AtNextCitekey{\defcounter{maxnames}{100}} + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -editorinchief- 1} + }{ + \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{editorinchief}]{people}{% + \l__gzt_firstlastname_tl=first-last-name% + ,\l__gzt_people_role_tl=role% + }{% + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -editorinchief- \exp_not:V\DTLcurrentindex}% + } + } + % + \__gzt_after_frontmatter_stuff: {} +} +\cs_new_protected:Nn \__gzt_display_editorial:n +{ + \__gzt_before_display_editorial:n {#1} + \file_if_exist_input:nF {\c__gzt_editorial_file_string_tl} + {% + \msg_error:nn { gzt } { editorial-file-missing } + } + \__gzt_after_display_editorial: {} +} +\AddToHook{begindocument/before}{% + \tl_set_eq:NN \g__gzt_editorial_heading_tl \c__gzt_editorial_heading_string_tl + \bool_if:NT {\g__gzt_special_edition_bool} { + \tl_if_empty:NF \g__gzt_special_edition_editorial_heading_tl {% + \tl_set_eq:NN \g__gzt_editorial_heading_tl \g__gzt_special_edition_editorial_heading_tl + } + } + \NewDocumentCommand \editorial { O{\g__gzt_editorial_heading_tl} } + { + \bool_if:NF {\g__gzt_for_authors_bool} { + \__gzt_display_editorial:n {#1} + } + } +} +\cs_new_protected:Nn \__gzt_display_toc: +{ + \__gzt_before_frontmatter_stuff: {} + \__gzt_boxed_issue_number:nn {\g__gzt_frontcover_image_file_tl}{\c__gzt_toc_string_tl} + \phantomsection + \hypertarget{__gzt_toc}{} + \bool_if:NTF {\g__gzt_special_edition_bool} { + \bookmark[dest=__gzt_toc,level=chapter]{\c__gzt_toc_string_tl} + }{ + \bookmark[dest=__gzt_toc,level=part]{\c__gzt_toc_string_tl} + } + \etocsettocdepth.toc{chapter}% + \tableofcontents + \the\toctabletok + \__gzt_after_frontmatter_stuff: {} +} +\NewDocumentCommand \gzttableofcontents {} +{ + \bool_if:NF {\g__gzt_for_authors_bool} { + \__gzt_display_toc: {} + } +} +\tl_new:N \g__gzt_frontcover_minitoc_tl% +\tl_new:N \l__gzt_minitoc_label_tl% +\cs_new_protected:Nn \__gzt_frontcover_minitoc:n +{ + \tl_gset:Nn \g__gzt_frontcover_minitoc_tl {#1} +} +\NewDocumentCommand \minitoc { O{} m } +{ + \keys_set:nn { gzt/minitoc } { #1 } + \__gzt_frontcover_minitoc:n {#2} +} +\newlist{__gzt_minitoc_list}{itemize}{1} +\setlist[__gzt_minitoc_list]{itemsep=2ex,label=\textcolor{__gzt_cover_itemize_label_color}\textbullet} +\NewDocumentEnvironment{minitoclist}{} +{% + \cs_set_eq:NN \__gzt_orig_item \item + \RenewDocumentCommand \item { s O{} }{% + \tl_set:Nn \l__gzt_minitoc_label_tl {##2} + \__gzt_orig_item\textbf{##2} + \IfBooleanT {##1} + { + \c__gzt_minitoc_rubric_title_separator_string_tl + } + } + \begin{__gzt_minitoc_list} +}{ + \end{__gzt_minitoc_list} + \cs_set_eq:NN \item \__gzt_orig_item +} +\cs_new_protected:Nn \__gzt_before_display_presidentmessage: +{ + \__gzt_before_editorial_presidentmessage:nn {\c__gzt_smf_logo_file_string_tl}{\c__gzt_president_message_string_tl} + \phantomsection + \par% + \addcontentsline{toc}{part}{\g__gzt_smf_short_string_tl}% + \addcontentsline{toc}{chapter}{\c__gzt_president_message_string_tl}% +} +\cs_new_protected:Nn \__gzt_after_display_presidentmessage: +{ + \__gzt_after_editorial_presidentmessage: {} + % + \hspace*{\fill}% + \c__gzt_president_message_date_string_tl% + \displaydate{__gzt_president_message_date}% + \\[1.5mm] + \hspace*{\fill}% + \__gzt_display_people_by_role:n { president }% + ,\c_space_tl + \c__gzt_president_signatory_string_tl + % + \__gzt_after_frontmatter_stuff: {} +} +\cs_new_protected:Nn \__gzt_display_president_message: +{ + \__gzt_before_display_presidentmessage: {} + \file_input:n {\c__gzt_president_message_file_string_tl} + \__gzt_after_display_presidentmessage: {} +} +\NewDocumentCommand \presidentmessage {} +{ + \bool_if:NF {\g__gzt_for_authors_bool} { + \__gzt_display_president_message: {} + } +} +\titleformat{\chapter}% +[block] +{\Huge\bfseries} +{} +{\c_zero_dim} +{\scshape}% +\titleformat{\section} +{% + \raggedright% + \bfseries% + \color{__gzt_section_color} +} +{\fontsize{20}{15}\selectfont\thesection.\enspace} +{-3pt} +{\fontsize{13}{15}\selectfont} +\titleformat{\subsection} +{% + \fontsize{11}{16}\selectfont% + \bfseries% + \color{__gzt_subsection_color}% +} +{\thesubsection\ \textendash{}\ } +{\c_zero_dim} +{} +\titleformat{\subsubsection} +{% + \fontsize{11}{16}\selectfont% + \bfseries% + \color{__gzt_subsubsection_color}% +} +{} +{\c_zero_dim} +{} +\AddToHook{begindocument}{% + \graphicspath{{\c__gzt_issue_images_path_string_tl//}{../\c__gzt_issue_images_path_string_tl//}} + % \glsdisablehyper + \g__gzt_mainmatter_switch_tl + % \bool_gset_false:N \g__gzt_frontmatter_bool + % \bool_gset_true:N \g__gzt_mainmatter_bool + % \SetParskip{\c__gzt_mainmatter_parskip_skip} + % \pagestyle{__gzt_mainmatter_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_main_geometry_tl}% +} +\AddToHook{begindocument}{% + \dim_if_exist:NTF \g__gzt_pagegrid_dim {% + \pagegridsetup{% + enable,% + step=\g__gzt_pagegrid_dim% + } + }{% + \pagegridsetup{% + disable% + } + } + % \bool_if:NTF {\g__gzt_for_authors_bool} { + % \thispagestyle{empty} + % \includegraphics{gzt-logo} + % \hfill + % \includegraphics[height=22.5mm]{\c__gzt_smf_logo_file_string_tl}% + % \par + % \vfill + % \begin{adjustbox}{valign=c,minipage=\linewidth} + % \Large% + % \c__gzt_preliminary_version_string_tl% + % \end{adjustbox} + % \vfill + % \newpage + % }{ + % \bool_if:NF {\g__gzt_inside_pages_bool} { + % \g__gzt_display_frontcover_tl + % \g__gzt_display_inside_frontcover_tl + % } + % } + \bool_if:NF {\g__gzt_for_authors_bool} { + \bool_if:NF {\g__gzt_inside_pages_bool} { + \g__gzt_display_frontcover_tl + \bool_if:NTF {\g__gzt_coverpage_bool} { + \AddToHook{begindocument/end}{\end{document}} + }{ + \g__gzt_display_inside_frontcover_tl + } + } + } +} +\tl_new:N \g__gzt_background_footer_tl +\tl_gset:Nn \g__gzt_background_footer_tl {% + \draw [__gzt_footer_bg_color,fill] + (current~page.south~west) + rectangle ([yshift=\c__gzt_footer_background_height_dim]current~page.south~east) + ; +} +\tl_new:N \l__gzt_frontmatter_head_text_tl +\tl_set:Nn \l__gzt_frontmatter_head_text_tl {% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \g__gzt_special_edition_title_tl + }{ + \includegraphics{gzt-logo} + } +} +\tl_new:N \g__gzt_frontmatter_page_headrule_tl +\tl_gset:Nn \g__gzt_frontmatter_page_headrule_tl {% + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west) + -- + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east) + ;% +} +\tl_new:N \g__gzt_frontmatter_headtext_tl +\tl_gset:Nn \g__gzt_frontmatter_headtext_tl {% + \mbox{}% + \checkoddpage% + \ifoddpage% + \node[ + anchor=north~east,% + align=center,% + fill=white,% + inner~xsep=3.5mm,% + outer~sep=\c_zero_dim,% + ] at + ([% + xshift=\c__gzt_frontmatter_headtext_o_xshift_dim,% + yshift=\c__gzt_frontmatter_headtext_yshift_dim% + ]current~page.north~east) {% + \Large + \bool_if:NT {\g__gzt_special_edition_bool} { + \c__gzt_short_special_edition_string_tl + \c_space_tl + } + \l__gzt_frontmatter_head_text_tl + }% + ; + \else% + \node[% + anchor=north~west,% + align=center,% + fill=white,% + inner~xsep=3.5mm,% + outer~sep=\c_zero_dim,% + ] at + ([% + xshift=\c__gzt_frontmatter_headtext_e_xshift_dim,% + yshift=\c__gzt_frontmatter_headtext_yshift_dim% + ]current~page.north~west) {% + \Large + \bool_if:NT {\g__gzt_special_edition_bool} { + \c__gzt_short_special_edition_string_tl + \c_space_tl + } + \l__gzt_frontmatter_head_text_tl + }% + ; + \fi% +} +\tl_new:N \g__gzt_mainmatter_oddpage_headrule_tl +\tl_gset:Nn \g__gzt_mainmatter_oddpage_headrule_tl {% + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~east) + -- + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west) + ; +} +\tl_new:N \g__gzt_mainmatter_evenpage_headrule_tl +\tl_gset:Nn \g__gzt_mainmatter_evenpage_headrule_tl {% + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~west) + -- + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east) + ; +} +\ExplSyntaxOff +\tcbuselibrary{breakable,skins,hooks,xparse,theorems,listingsutf8} +\usetikzlibrary{babel,fadings,positioning,calc} +\tcbset{% + new/blend into/tables-/.style={% + use counter*=table,% + /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@table}}}},% + new/blend into/figures-/.style={% + use counter*=figure,% + /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@figure}}}},% +} +\newcommand\gzt@arcthroughthreepoints[4][]% +{ + % \NoAutoSpacing% + \coordinate (middle1) at ($(#2)!.5!(#3)$); + \coordinate (middle2) at ($(#3)!.5!(#4)$); + \coordinate (aux1) at ($(middle1)!1!90:(#3)$); + \coordinate (aux2) at ($(middle2)!1!90:(#4)$); + \coordinate (center) at ($(intersection of middle1--aux1 and middle2--aux2)$); + \filldraw[fill=white,draw=__gzt_headrule_color,line width=0.25mm,#1] + let \p1=($(#2)-(center)$), + \p2=($(#4)-(center)$), + \n0={veclen(\p1)}, % Radius + \n1={atan2(\y1,\x1)}, % angles + \n2={atan2(\y2,\x2)}, + \n3={\n2>\n1?\n2:\n2+360} + in (#2) arc(\n1:\n3:\n0); + % \foreach \p in {#2,#3,#4,center} + % \fill[red] (\p) circle(2pt); +} +\ExplSyntaxOn +\tl_new:N \g__gzt_rubric_page_head_tl +\tl_gset:Nn \g__gzt_rubric_page_head_tl {% + \bool_if:nF { \g__gzt_for_authors_bool } { + \tikz[remember~picture,overlay] { + \path (current~page.north~west |- current~page~header~area.south~west) coordinate (__gzt_pwest); + \path (current~page.north~east |- current~page~header~area.south~east) coordinate (__gzt_peast); + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]__gzt_pwest) + -- + ([yshift=\c__gzt_header_line_yshift_dim]__gzt_peast) + ;% + \tl_if_empty:NF \g__gzt_rubric_abstract_tl {% + \mbox{}% + \checkoddpage% + \ifoddpage% + \coordinate (__gzt_A) at ([xshift=\c__gzt_xshift_arccircle_A_dim,yshift=\c__gzt_yshift_arccircle_A_dim]current~page.north~west); + \coordinate (__gzt_B) at ([xshift=\c__gzt_xshift_arccircle_B_dim,yshift=\c__gzt_yshift_arccircle_B_dim]current~page.north~west) ; + \coordinate (__gzt_C) at ([xshift=\c__gzt_xshift_arccircle_C_dim,yshift=\c__gzt_yshift_arccircle_C_dim]current~page.north~west) ; + \gzt@arcthroughthreepoints{__gzt_A}{__gzt_B}{__gzt_C}; + \else% + \coordinate (__gzt_A) at ([xshift=-\c__gzt_xshift_arccircle_A_dim,yshift=\c__gzt_yshift_arccircle_A_dim]current~page.north~east); + \coordinate (__gzt_B) at ([xshift=-\c__gzt_xshift_arccircle_B_dim,yshift=\c__gzt_yshift_arccircle_B_dim]current~page.north~east) ; + \coordinate (__gzt_C) at ([xshift=-\c__gzt_xshift_arccircle_C_dim,yshift=\c__gzt_yshift_arccircle_C_dim]current~page.north~east) ; + \gzt@arcthroughthreepoints{__gzt_C}{__gzt_B}{__gzt_A}; + \fi% + } + } + } +} +\newpagestyle{__gzt_frontcover_ps}[]{% + \sethead + {}% + {% + \adjustbox{stack=c}{ + {\Large + \c__gzt_frontcover_header_string_tl + }\\[7mm] + \adjustbox{scale=2.08}{ + \huge + \bool_if:NT {\g__gzt_special_edition_bool} { + \color{__gzt_generic_dark_color} + } + \l__gzt_frontmatter_head_text_tl + }% + }% + }% + {}% + % + \setfoot% + {}% + {}% + {}% +}% +\newpagestyle{__gzt_inside_frontcover_ps}[]{% + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + []% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {}% +}% +\newpagestyle{__gzt_frontmatter_ps}[]{% + \widenhead*{\c__gzt_front_matter_extra_innermargin_dim}{\c__gzt_front_matter_extra_outermargin_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + [ + ]% + { + }% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% +}% +\newpagestyle{__gzt_rubric_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + ]% + [ + ]% + [ + \g__gzt_rubric_page_head_tl% + \bool_if:nF { \g__gzt_for_authors_bool } { + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height},lap=-\c__gzt_header_xshift_dim-\linewidth}{% + \includegraphics[width=\c__gzt_pictogram_width_dim]{\g__gzt_rubric_pictofile_tl}% + }% + }% + ]% + { + \g__gzt_rubric_page_head_tl% + }% + {}% + {% + \bool_if:nF { \g__gzt_for_authors_bool } { + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height},lap=\c__gzt_header_xshift_dim}{% + \includegraphics[width=\c__gzt_pictogram_width_dim]{\g__gzt_rubric_pictofile_tl}% + }% + }% + }% + % + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% +}% +\newpagestyle{__gzt_advertisement_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_evenpage_headrule_tl} + ]% + [% + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{__gzt_head_text_color}\c__gzt_advertisement_string_tl% + }% + ]% + []% + {}% + {% + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{__gzt_head_text_color}\c__gzt_advertisement_string_tl% + } + }% + { + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_oddpage_headrule_tl} + }% + % + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% +} +\newpagestyle{__gzt_blank_pages_ps}[]{% + \sethead + {}% + {}% + {}% + % + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% +}% +\newpagestyle{__gzt_inside_backcover_ps}[]{% + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + []% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {}% +}% +\newpagestyle{__gzt_backcover_ps}[]{% + \sethead + {}% + {}% + {}% + % + \setfoot% + {}% + {}% + {}% +}% +\AddToHook{shipout/background}{ + \bool_if:nF { \g__gzt_frontcover_bool || \g__gzt_backcover_bool }{ + \bool_if:NF {\g__gzt_advertisement_bool} { + \tikz[remember~picture,overlay] { \g__gzt_background_footer_tl }% + }% + }% +} +\newpagestyle{__gzt_mainmatter_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_evenpage_headrule_tl} + ]% + [% + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{__gzt_head_text_color}\g__gzt_rubric_title_tl% + }% + ]% + []% + {}% + {% + \bool_if:nF { + \g__gzt_rearviewmirror_rubric_bool || \g__gzt_books_rubric_bool + }{ + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \bfseries\color{__gzt_head_text_color}\g__gzt_short_title_tl% + } + } + }% + { + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_oddpage_headrule_tl} + }% + % +\bool_if:nTF { \g__gzt_for_authors_bool } { + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + [\c__gzt_compiled_string_tl]% + {\c__gzt_compiled_string_tl}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% + }{ + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% + } +} +\NewDocumentCommand \acknowledgements { +m } { + \__gzt_article_acknowledgements:n {#1}% +} +\NewDocumentCommand \printminibios {} { + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + \FloatBarrier% + \begin{__gzt_minibiographies_acknowledgements_tcbox} + \__gzt_display_people_by_role:n { author-art-\int_use:N \g__gzt_articles_int } + \DTLsavelastrowcount{\__gzt_authors_number} + \tl_if_empty:NF \l__gzt_article_acknowledgements_tl + {% + \footnotesize + \int_compare:nNnT {\__gzt_authors_number}>{0} + { + \par% + \bigskip% + } + \begin{adjustbox}{valign=t,minipage=\linewidth} + \color{__gzt_acknowledgements_color}% + \setlength{\parskip}{\c__gzt_mainmatter_parskip_skip} + \l__gzt_article_acknowledgements_tl + \end{adjustbox} + } + \bool_gset_true:N \g__gzt_previous_article_with_bibliography_or_minibio_bool + \end{__gzt_minibiographies_acknowledgements_tcbox} +} +\let\printauthorsdetails\printminibios +\cs_set_eq:NN \__gzt_printbibliography \printbibliography +\RenewDocumentCommand \printbibliography { s O{} } { + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + \FloatBarrier% + \begin{__gzt_bibliography_tcbox} + \__gzt_printbibliography[heading=subbibliography,resetnumbers,#2] + \end{__gzt_bibliography_tcbox} + % + \IfBooleanF {#1} + { + \nopagebreak[0] + \printauthorsdetails + } +} +\deftranslation[to=French]{__gzt_century}{si\`ecle}% +\deftranslation[to=English]{__gzt_century}{century}% +\deftranslation[to=French]{__gzt_first}{\ier}% +\deftranslation[to=English]{__gzt_first}{\up{st}\xspace}% +\deftranslation[to=French]{__gzt_nth}{\ieme}% +\deftranslation[to=English]{__gzt_nth}{\up{th}\xspace}% +\deftranslation[to=French]{__gzt_bc}{avant~J.-C}% +\deftranslation[to=English]{__gzt_bc}{BC}% +\cs_new_protected:Nn \__gzt_century:n +{ + \textsc{ + \int_to_roman:n {\int_abs:n {#1}} + }% + \int_compare:nNnTF { \int_abs:n {#1} } > { 1 }{\translate{__gzt_nth}}{\translate{__gzt_first}} +} +\cs_new_protected:Nn \__gzt_century_suffix:n +{ + \translate{__gzt_century}% + \int_compare:nNnT { #1 } < { 0 }{ + \c_space_tl + \translate{__gzt_bc} + \IfLanguageName {french}{ + \@ifnextchar.% + { + }{ + .\xspace + }% + } + }{ + } +} +\cs_new_protected:Nn \__gzt_advertisement:nn + { + \vfill + \begin{center} + \dim_set:Nn \fboxsep {\c_zero_dim} + \fbox{% + \includegraphics[max~size={\linewidth}{\textheight},#1]{#2} + } + \end{center} + \vfill + } +\NewDocumentCommand \advertisement { O{} m } + { + \__gzt_advertisement:nn {#1}{#2} + } +\cs_new_protected:Nn \__gzt_fullpageadvertisement:nn + { + \newpage + \thispagestyle{__gzt_advertisement_ps} + \begin{minipage}[c][\textheight][c]{\textwidth}% + \centering\includegraphics[max~size={\linewidth}{\textheight},#1]{#2}% + \end{minipage}% + } +\NewDocumentCommand \fullpageadvertisement { O{} m } +{ + \__gzt_fullpageadvertisement:nn {#1}{#2} +} +\NewDocumentCommand \aboutfrontcover { O{} O{\c__gzt_about_frontcover_string_tl} m } +{ + \__gzt_about_frontcover:nnn {#1}{#2}{#3}% +} +\cs_new_protected:Nn \__gzt_prepare_rubric:nnn {% + \newpage% + \tl_gclear:N \g__gzt_rubric_abstract_tl + \tl_gset:Nn \g__gzt_rubric_title_tl {#2} + \tl_gset:Nn \g__gzt_rubric_pictofile_tl {#3} + \IfNoValueF {#1} + { + \keys_set:nn { gzt/rubric } { #1 } + } + \__gzt_rubric:nnn + {\g__gzt_rubric_abstract_tl}{\g__gzt_rubric_title_tl}{\g__gzt_rubric_pictofile_tl}% +} +\NewDocumentCommand \rubric {O{}mm} +{ + \bool_if:NTF {\g__gzt_special_edition_bool} { + \__gzt_rubric:nnn {#1}{#2}{#3}% + \tl_gset:Nn \g__gzt_rubric_title_tl {% + \c__gzt_short_special_edition_string_tl + \c_space_tl + \g__gzt_special_edition_title_tl + } + }{ + \__gzt_rubric:nnn {#1}{#2}{#3}% + } +} +\NewDocumentCommand \mathematics {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_mathematics_rubric_string_tl}{\c__gzt_mathematics_pictogram_file_name_tl} +} +\NewDocumentCommand \dossier {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_dossier_rubric_string_tl}{\c__gzt_dossier_pictogram_file_name_tl} +} +\NewDocumentCommand \community {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_community_rubric_string_tl}{\c__gzt_hands_pictogram_file_name_tl} +} +\NewDocumentCommand \interview {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_interview_rubric_string_tl}{\c__gzt_interview_pictogram_file_name_tl} + \bool_gset_true:N \g__gzt_interview_rubric_bool +} +\NewDocumentCommand \teaching {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_teaching_rubric_string_tl}{\c__gzt_teaching_pictogram_file_name_tl} +} +\NewDocumentCommand \parity {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_parity_rubric_string_tl}{\c__gzt_parity_pictogram_file_name_tl} +} +\NewDocumentCommand \tellme {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_tellme_rubric_string_tl}{\c__gzt_tellme_pictogram_file_name_tl} + \bool_gset_true:N \g__gzt_tellme_rubric_bool +} +\NewDocumentCommand \information {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_information_rubric_string_tl}{\c__gzt_information_pictogram_file_name_tl} +} +\NewDocumentCommand \rearviewmirror {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_rearviewmirror_rubric_string_tl}{\c__gzt_rearviewmirror_pictogram_file_name_tl} + \bool_gset_true:N \g__gzt_rearviewmirror_rubric_bool +} +\NewDocumentCommand \tribute {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_tribute_rubric_string_tl}{\c__gzt_tribute_pictogram_file_name_tl} +} +\NewDocumentCommand \books {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_books_rubric_string_tl}{\c__gzt_books_pictogram_file_name_tl} + \bool_gset_true:N \g__gzt_books_rubric_bool + \vspace{1.5\c__gzt_book_review_frontcover_extend_dim} +} +\NewDocumentCommand \latextips {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_latex_rubric_string_tl}{} +} +\NewDocumentCommand \forum {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_forum_rubric_string_tl}{\c__gzt_forum_pictogram_file_name_tl} +} +\NewDocumentCommand \moralreport {O{}} +{ + \__gzt_rubric:nnn {#1}{\c__gzt_moralreport_rubric_string_tl}{\c__gzt_smf_logo_file_string_tl} +} +\DeclareCiteCommand{\citeinterviewee}{}{% + \printnames{interviewee}% +} +{}{} +\DeclareCiteCommand{\citereviewer}{}{% + \g__gzt_blx_given_first_inits_false_tl + \printnames{reviewer}% +} +{}{} +\DeclareCiteCommand{\citereviewerinstitution}{}{% + \printlist{reviewerinstitution}% +} +{}{} +\DeclareCiteCommand{\__gzt_cite_public_price}{}{% + \printfield{publicprice}% +} +{}{} +\DeclareCiteCommand{\__gzt_cite_smf_price}{}{% + \printfield{smfprice}% +} +{}{} +\DeclareCiteCommand{\citecopublisher}{}{% + \printlist{copublisher}% +} +{}{} +\DeclareCiteCommand{\citefrenchabstract}{}{% + \printfield{frenchabstract}% +} +{}{} +\DeclareCiteCommand{\__gzt_cite_englishabstract}{}{% + \printfield{englishabstract}% +} +{}{} +\NewDocumentCommand \email {m} +{ + \__gzt_email:n {#1}% +} +\cs_new_protected:Nn \__gzt_question:n +{ + \int_incr:N \g__gzt_question_int + {% + \par% + \bigskip% + \color{__gzt_question_color} + #1% + \par% + }% +} +\NewDocumentCommand \question {m} +{ + \__gzt_question:n {#1}% +} +\NewDocumentCommand \smf { s } { + \IfBooleanTF {#1} + { + \g__gzt_smf_string_tl + } + { + \g__gzt_smf_short_string_tl + } + \xspace +} +\DeclareExpandableDocumentCommand \surname { m } { + \textsc{#1} +} +\NewDocumentCommand \cad { s } { + \IfBooleanTF {#1} + { + \c__gzt_cad_string_tl + } + { + \c__gzt_cad_short_string_tl + } + \xspace +} +\NewDocumentCommand \Cad { s } { + \IfBooleanTF {#1} + { + \c__gzt_Cad_string_tl + } + { + \c__gzt_Cad_short_string_tl + } + \xspace +} +\NewDocumentCommand \gzt { s } { + \IfBooleanTF {#1} + { + \l__gzt_gzt_string_tl + } + { + \l__gzt_gzt_short_string_tl + } + \xspace +} +\NewDocumentCommand \gztcl {} +{% + \textsl{\texttt{\c__gzt_class_name_tl}} + \xspace +} +\NewDocumentCommand \gztarticlecl {} +{% + \textsl{\texttt{\c__gzt_article_class_name_tl}} + \xspace +} +\NewDocumentCommand \century { s m } {% + \__gzt_century:n {#2}% + \IfBooleanTF {#1} + { + \int_compare:nNnT { #2 } < { 0 }{ + \__gzt_century_suffix:n {#2}% + } + } + { + \__gzt_century_suffix:n {#2}% + } +} +\NewDocumentCommand \aside { s m } {% + \IfBooleanTF {#1} + { + \c__gzt_aside_string_tl{}~#2 + } + { + \c__gzt_aside_string_tl{}~#2~\c__gzt_aside_string_tl + } +} +\tl_new:N \g__gzt_font_designer_text_tl% +\cs_new_protected:Nn \__gzt_font_designer_text:n +{ + \tl_gset:Nn \g__gzt_font_designer_text_tl { #1 } +} +\NewDocumentCommand \fontdesignertext {m} +{ + \__gzt_font_designer_text:n {#1}% +} +\tl_new:N \g__gzt_printer_text_tl% +\cs_new_protected:Nn \__gzt_printer_text:n +{ + \tl_gset:Nn \g__gzt_printer_text_tl { #1 } +} +\NewDocumentCommand \printertext {m} +{ + \__gzt_printer_text:n {#1}% +} +\renewcommand{\textflush}{flushepinormal} +\cs_set_eq:NN \__gzt_orig_epigraph \epigraph +\cs_new_protected:Nn \__gzt_epigraph:nn +{ + \bool_if:nTF { \tl_if_empty_p:n {#2} } + { + \setlength{\epigraphrule}{\c_zero_dim} + } + { + \setlength{\epigraphrule}{.4\p@} + } + \__gzt_orig_epigraph{% + \emph{% + \enquote{% + #1% + }% + }% + }% + {% + #2 + } +} +\RenewDocumentCommand \epigraph { m m } +{ + \__gzt_epigraph:nn {#1}{#2}% +} +\NewDocumentEnvironment{authorsinstructions}{} +{% + \begingroup + \tcbverbatimwrite{\c__gzt_authors_instructions_file_tl} +}% +{ + \endtcbverbatimwrite + \endgroup +} +\lstdefinestyle{__gzt_lst_style}{% + escapechar=+, + language=[LaTeX]TeX, + texcsstyle=*\bfseries, + breaklines=true, + basicstyle=\normalfont\ttfamily, + columns=flexible, + inputencoding=utf8/latin1 +}% +\DeclareTotalTCBox{\gztverb}{ v }{verbatim,blank,fuzzy~halo=0pt~with~__gzt_light_generic_dark_color!8}{#1} +\NewTCBListing{gztcode}{ !O{} }{% + listing~style=__gzt_lst_style, + listing~only, + enlarge~top~by=\medskipamount, + breakable, + #1% +} +\DeclareTColorBox[blend~into=figures]{gztfigure}{ O{} } +{ + ,width=\linewidth% + ,blend~before~title=dash% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=figures]{gztfigure*}{ O{} } +{ + ,float* + ,blend~before~title=dash% + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=tables]{gzttable}{ O{} } +{ + ,width=\linewidth% + ,blend~before~title=dash% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=tables]{gzttable*}{ O{} } +{ + ,float* + ,blend~before~title=dash% + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox{gztframe}{ O{} } +{ + ,width=\linewidth% + ,__gzt_tcb_floats_style% + ,#1% +} +\DeclareTColorBox{gztframe*}{ O{} } +{ + ,float* + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,#1% +} +\DeclareTColorBox{gztscan}{ O{} } +{ + #1% + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,size=tight% +} +\DeclareTColorBox{__gzt_book_review}{ O{} } +{ + overlay~unbroken~and~first={% + \node at (frame.north~west) { + { + \makebox[\c_zero_dim][l]{% + \adjustbox{raise={-2\height+\c__gzt_book_review_frontcover_extend_dim}{\c_zero_dim}}{% + \includegraphics[width=20mm]{\g__gzt_bookreview_frontcover_tl}% + }% + } + } + }; + }, + __gzt_tcb_book_review_box_style, + #1 +} +\DeclareTColorBox{__gzt_bibliography_tcbox}{ O{} } +{ + __gzt_tcb_bibliography_style, + #1 +} +\DeclareTColorBox{__gzt_minibiographies_acknowledgements_tcbox}{ O{} } +{ + __gzt_tcb_minibiographies_acknowledgements_style, + #1 +} +\DeclareTColorBox{inset}{ O{} } +{ + __gzt_tcb_minibiographies_acknowledgements_style, + #1 +} +\NewDocumentEnvironment{bookreview}{ O{} m } +{ + \keys_set:nn { gzt/bookreview } { #2 } + \begin{__gzt_book_review}[#1] + \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}% + \xpretonameformat{author}{\color{__gzt_people_color}}{}{}% + \g__gzt_blx_given_first_inits_false_tl + \noindent% + \parbox[][21.5mm][l]{\linewidth}{\fullcite{\g__gzt_bookreview_bibkey_tl}} + \tcblower +}{ + \begin{flushright} + % \g__gzt_reviewer_tl + \bigskip + \citereviewer{\g__gzt_bookreview_bibkey_tl}\\ + \citereviewerinstitution{\g__gzt_bookreview_bibkey_tl} + \end{flushright} + % \vspace*{10mm} + \mbox{} + \end{__gzt_book_review} +} +\DeclareTColorBox{__gzt_book_advertisement}{ O{} } +{ + __gzt_tcb_book_advertisement_box_style, + #1 +} +\DeclareTColorBox{__gzt_inside_cover_tcb}{ O{} } +{ + #1 +} +\NewDocumentCommand \bookadvertisement {O{} m} +{ + \newpage{} + \mbox{} + \vfill + \begin{__gzt_book_advertisement}[#1] + \fullcite{#2} + \par + \bigskip + \tcblower + \includegraphics[height=22.5mm]{\c__gzt_smf_logo_file_string_tl}% + \par{} + \smallskip% + \url{\l__gzt_journal_url_tl} + \end{__gzt_book_advertisement} + \vfill + \newpage + \bool_gset_false:N \g__gzt_advertisement_bool + \bool_gset_true:N \g__gzt_mainmatter_bool +} +\NewDocumentCommand \gztinput { m m } {% + \tl_gclear:N \g__gzt_people_affiliation_tl + \tl_gclear:N \g__gzt_people_email_tl + \tl_gclear:N \g__gzt_people_minibio_tl + \tl_gclear:N \g__gzt_people_photo_tl + \tl_gclear:N \g__gzt_people_webpage_tl + \tl_clear:N \l__gzt_article_acknowledgements_tl + \startcustomization% + \bool_if:NF {\g__gzt_refsection_bool} { + \begin{refsection} + } + \bool_if:NF { \g__gzt_backcover_bool } { + \tl_if_in:NnT + { \c__gzt_advertisement_directory_string_tl } { #1 } {% + \newpage + \thispagestyle{__gzt_advertisement_ps} + } + } + \inputfrom{#1}{#2} + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + \bool_if:NT {\g__gzt_refsection_bool} { + \end{refsection} + } + \cleancustomization% +} +\bool_if:NF {\g__gzt_coverpage_bool} { + \bool_if:NF {\g__gzt_inside_pages_bool} { + \AddToHook{enddocument/end}{ + \bool_gset_true:N \g__gzt_backmatter_bool + \g__gzt_display_inside_backcover_tl + \newpage + \g__gzt_display_backcover_tl + }% + }% +}% +\bool_if:NF {\g__gzt_coverpage_bool} { + \bool_if:nF { \g__gzt_for_authors_bool } { + \bool_if:nT { \g__gzt_inside_pages_bool } { + \AddToHook{enddocument}{% + \prg_replicate:nn + { \int_mod:nn { 4 - \int_mod:nn { \getpagerefnumber{LastPage} } { 4 } } { 4 } } + { \thispagestyle{__gzt_blank_pages_ps}\null\clearpage } + } + } + } +} +\pgfplotsset{% + /pgf/number~format/.cd, + use~comma, + 1000~sep={\,}, + min~exponent~for~1000~sep=4 +}% +\defbibheading{bibassection}[\bibname]{\section*{#1}}% +\renewcommand{\bibfont}{\normalfont\footnotesize} +\exp_after:wN\addbibresource\exp_after:wN{\c__gzt_issue_bib_path_string_tl} +\@ifpackagelater{biblatex}{2016/01/01}{% + \DeclareNameFormat{giveninits-last}{% + \nameparts{#1} + \usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}% + \usebibmacro{name:andothers}% + } +}{ + \DeclareNameFormat{giveninits-last}{% + \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}% + \usebibmacro{name:andothers}% + } +} +\DeclareNameAlias{labelname}{giveninits-last} +\renewcommand*\bibnamedelimc{\addnbspace} +\renewcommand*\bibnamedelimd{\addnbspace} +\renewbibmacro{in:}{% + \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}} +\renewbibmacro*{journal}{% + \iffieldundef{shortjournal}% + {% + \iffieldundef{journaltitle} + {} + {% + \printtext[journaltitle]% + {% + \printfield[titlecase]{journaltitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{journalsubtitle}% + }% + }% + }% + {\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}% +} +\renewbibmacro*{volume+number+eid}{% + \printfield{volume}% + \setunit{\addcomma\c_space_tl}% + \printfield{number}% + \setunit{\addcomma\c_space_tl}% + \printfield{eid}} +\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat[book]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat[article]{number}{\bibstring{number}#1} +\DeclareLanguageMapping{french}{gzt}% use the new abbreviations +\ifkp@easyscsl +\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit% + \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{% + \fontshape\itdefault}\selectfont} +\fi +\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} +\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} +\@ifpackageloaded{draftwatermark}{% + \SetWatermarkColor{gray!10}% + \SetWatermarkFontSize{30mm}% + \SetWatermarkText{\text_uppercase:n{\c__gzt_draftwatermark_string_tl}}% +}{% +} +\tikzset{ + __gzt_dots/.style={ + line~width=\c__gzt_tikz_dot_diameter_dim, + line~cap=round, + dash~pattern=on~0pt~off~\c__gzt_tikz_dot_spacing_dim + }, + __gzt_tcb_segmentation_style/.style={ + __gzt_dots, + draw=__gzt_dotfill_color, + shorten~>=~\c__gzt_tcb_left_dim+\c__gzt_tcb_boxsep_dim, + shorten~<=~\c__gzt_tcb_left_dim+\c__gzt_tcb_boxsep_dim, + } +} +\tcbset{ + copyright/.style={% + overlay={% + \node[rotate=90,anchor=south~west,font=\tiny] at (frame.south~east) {% + \begin{minipage}[t]{\tcbtextheight} + \copyright{}~#1% + \end{minipage} + };% + }% + }% +} +\tcbset{% + __gzt_tcb_floats_style/.style={% + enhanced% + ,every~float=\centering% + ,coltitle=__gzt_generic_dark_color% + ,colbacktitle=__gzt_float_title_bg_color% + ,colback=white% + ,colframe=__gzt_float_frame_color% + ,center~upper% + ,sharp~corners=all% + ,boxrule=0.3mm% + }% +} +\tcbset{% + __gzt_tcb_notitle/.style={% + blend~before~title~code={##1} + ,title={\c_space_tl}% + }% +} +\tcbset{% + __gzt_tcb_book_review_box_style/.style={% + enhanced,% + colback=__gzt_book_review_frame_bg_color,% + breakable,% + % height=50mm,% + boxrule=\c_zero_dim, + sharp~corners=all,% + skin=enhancedlast, + leftupper=25mm, + enlarge~bottom~finally~by=-1mm, + middle=4mm, + segmentation~style={__gzt_tcb_segmentation_style}% + } +} +\tcbset{% + __gzt_tcb_book_advertisement_box_style/.style={% + enhanced,% + colframe=__gzt_book_advertisement_frame_color,% + colback=__gzt_book_advertisement_bg_color,% + center~lower, + sharp~corners=all,% + % skin=enhancedlast, + % middle=4mm, + lower~separated=false, + % segmentation~style={__gzt_tcb_segmentation_style}% + } +} +\tcbset{% + __gzt_tcb_inside_cover_style/.style={% + % split=0.6,% + colback=__gzt_inside_frontcover_frame_bg_color,% + colbacktitle=__gzt_inside_frontcover_frame_bg_color,% + sharp~corners=all,% + center~title,% + coltitle=__gzt_inside_frontcover_frame_title_color,% + fonttitle=\bfseries\large,% + boxrule=\c_zero_dim,% + toptitle=3mm,% + bottomtitle=4mm,% + frame~hidden,% + enhanced,% + height=\c__gzt_layoutheight_dim-\c__gzt_topmargin_inside_cover_dim-\c__gzt_botmargin_dim, + width=\c__gzt_inside_cover_box_width_dim, + middle=4mm, + segmentation~style={__gzt_tcb_segmentation_style}% + }, + __gzt_tcb_inside_frontcover_style/.style={% + __gzt_tcb_inside_cover_style, + enlarge~left~by=-\c__gzt_inside_cover_offset_dim, + }, + __gzt_tcb_inside_backcover_style/.style={% + __gzt_tcb_inside_cover_style, + enlarge~left~by=\c__gzt_inside_cover_offset_dim, + } +} +\AddToHook{begindocument/before}{% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tcbset{ + __gzt_tcb_inside_frontcover_style/.append~style={% + title=\c__gzt_special_edition_editorial_board_string_tl + }, + __gzt_tcb_inside_backcover_style/.append~style={% + notitle + }, + } + }{ + \tcbset{ + __gzt_tcb_inside_frontcover_style/.append~style={% + title=\c__gzt_editorial_board_string_tl + }, + __gzt_tcb_inside_backcover_style/.append~style={% + title=\file_if_exist:nT { \c__gzt_authors_instructions_file_tl } {% + \c__gzt_authors_instructions_string_tl + } + }, + } + } +} +\tcbset{% + __gzt_tcb_bibliography_style/.style={% + colback=__gzt_bibliography_minibios_acknowledgements_bg_color, + breakable, + boxrule=\c_zero_dim, + sharp~corners=all,% + enhanced + } +} +\tcbset{% + __gzt_tcb_minibiographies_acknowledgements_style/.style={% + colback=__gzt_bibliography_minibios_acknowledgements_bg_color, + breakable, + boxrule=\c_zero_dim, + extras~unbroken~and~last={drop~lifted~shadow}, + sharp~corners=all,% + skin=enhancedlast, + height~fixed~for=middle, + } +} +\tcbset{% + enlargepage~flexible=\baselineskip, + left=\c__gzt_tcb_left_dim, + boxsep=\c__gzt_tcb_boxsep_dim, +} +\setlist[1]{labelindent=\parindent} +\setlist[itemize]{label=\textendash{}, nosep} +\setlist{% + labelwidth=\widthof{\textendash}, + itemsep=0.4ex plus 0.2ex minus 0.2ex, + parsep=0.4ex plus 0.2ex minus 0.2ex, + topsep=0.8ex plus 0.4ex minus 0.4ex, + partopsep=0.4ex plus 0.2ex minus 0.2ex, + leftmargin=!% +} +\setlist[description]{ + font= + \bool_if:nTF { \g__gzt_books_rubric_bool || \g__gzt_inside_frontcover_bool || \g__gzt_inside_backcover_bool } + { + \color{black} + }{ + \color{__gzt_description_label_light_color} + } + \bfseries +} +\DeclarePlainStyle{«~}{~»}{`}{'} +\setcounter{topnumber}{3} +\renewcommand{\topfraction}{0.8} +\addtolength{\skip\footins}{.25\baselineskip} +\setlength{\columnsep}{7mm}% +\renewcommand{\thesection}{\arabic{section}}% +\@ifpackageloaded{siunitx}{% + \sisetup{locale=FR} +} +\arrayrulecolor{__gzt_arrayrule_color}% +\addto\captionsfrench{\def\tablename{{\scshape Tableau}}}% +\RenewDocumentCommand \vec { m } { + \vv{#1} +} +\cs_set_eq:NN \__gzt_orig_usetikzlibrary \usetikzlibrary +\RenewDocumentCommand \usetikzlibrary { m } { + \shorthandoff{:}% + \__gzt_orig_usetikzlibrary{#1} + \shorthandon{:}% + % \begingroup + % \NoAutoSpacing + % \__gzt_orig_usetikzlibrary{#1} + % \endgroup +} +\cs_new_protected:Nn \__gzt_bilingual:nnn +{ + \deftranslation[to=French]{#1}{#2}% + \deftranslation[to=English]{#1}{#3}% +} +\cs_new_protected:Nn \__gzt_new_theorem:nnnn +{ + % \__gzt_bilingual:nnn {#2}{#3}{#4} + \deftranslation[to=French]{#2}{#3}% + \deftranslation[to=English]{#2}{#4}% + \declaretheorem[% + #1,% + name=\translate{#2} + ]{#2} + \declaretheorem[% + #1,% + name=\translate{#2}, + numbered=no + ]{#2*} +} +\cs_generate_variant:Nn \__gzt_new_theorem:nnnn { nnVV } +\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\itshape]{theorem} +\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\normalfont]{definition} +\declaretheoremstyle[spaceabove=3pt,bodyfont=\normalfont,qed=\ensuremath{\qedsymbol},headfont=\normalfont\itshape,numbered=no]{proof} +\RenewDocumentCommand \newtheorem { O{} m } +{ + \tl_clear:N \l__gzt_newtheorem_style_tl + \tl_clear:N \l__gzt_newtheorem_frenchtitle_tl + \tl_clear:N \l__gzt_newtheorem_englishtitle_tl + \tl_set:Nn \l__gzt_newtheorem_englishtitle_tl { + \text_titlecase:n {#2} + } + \tl_set:Nf \l__gzt_newtheorem_frenchtitle_tl { + \l__gzt_newtheorem_englishtitle_tl + } + \tl_set:Nn \l__gzt_newtheorem_style_tl { + theorem + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/newtheorem } { #1 } + } + % \tl_if_eq:VVF { \l__gzt_newtheorem_englishtitle_tl } { \MakeUppercase #2 } + % {% + % \tl_if_eq:NNF { \l__gzt_newtheorem_frenchtitle_tl } { \l__gzt_newtheorem_englishtitle_tl } + % {% + % \tl_set:Nf \l__gzt_newtheorem_frenchtitle_tl { + % \l__gzt_newtheorem_englishtitle_tl + % } + % } + % } + \__gzt_new_theorem:nnVV {style=\l__gzt_newtheorem_style_tl}{#2}{\l__gzt_newtheorem_frenchtitle_tl}{\l__gzt_newtheorem_englishtitle_tl} +} +\newtheorem[frenchtitle=Th\'eor\`eme]{theorem} +\newtheorem[frenchtitle=Corollaire]{corollary} +\newtheorem{conjecture} +\newtheorem{proposition} +\newtheorem[frenchtitle=Lemme]{lemma} +\newtheorem[frenchtitle=Axiome]{axiom} +\newtheorem[style=definition,frenchtitle=D\'efinition]{definition} +\newtheorem[style=definition,frenchtitle=Remarque]{remark} +\newtheorem[style=definition,frenchtitle=Exemple]{example} +\newtheorem[style=definition]{notation} +\let\proof\relax +\newtheorem[style=proof,frenchtitle=Preuve]{proof} +\cs_new_protected:Nn \__gzt_clone_theorem:nn +{ + \NewDocumentEnvironment{#1}{} + { + \begin{#2} + } + { + \end{#2} + } + \NewDocumentEnvironment{#1*}{} + { + \begin{#2*} + } + { + \end{#2*} + } +} +\__gzt_clone_theorem:nn {theoreme} {theorem} +\__gzt_clone_theorem:nn {corollaire}{corollary} +\__gzt_clone_theorem:nn {lemme}{lemma} +\__gzt_clone_theorem:nn {axiome}{axiom} +\__gzt_clone_theorem:nn {remarque}{remark} +\__gzt_clone_theorem:nn {exemple}{example} +\__gzt_clone_theorem:nn {preuve}{proof} +\DeclareMathOperator{\cotan}{cotan} +\DeclareMathOperator{\Arccos}{Arccos} +\DeclareMathOperator{\Arcsin}{Arcsin} +\DeclareMathOperator{\Arctan}{Arctan} +\DeclareMathOperator{\Argch}{Argch} +\DeclareMathOperator{\Argsh}{Argsh} +\DeclareMathOperator{\Argth}{Argth} +\cs_set_eq:NN \__gzt_orig_arccos \arccos +\cs_set_eq:NN \__gzt_orig_arcsin \arcsin +\cs_set_eq:NN \__gzt_orig_arctan \arctan +\RenewDocumentCommand \arccos {} { + \IfLanguageName {french}{\Arccos}{\__gzt_orig_arccos}% +} +\RenewDocumentCommand \arcsin {} { + \IfLanguageName {french}{\Arcsin}{\__gzt_orig_arcsin}% +} +\RenewDocumentCommand \arctan {} { + \IfLanguageName {french}{\Arctan}{\__gzt_orig_arctan}% +} +\DeclareMathOperator{\ch}{ch} +\DeclareMathOperator{\sh}{sh} +\cs_set_eq:NN \__gzt_orig_tanh \tanh +\RenewDocumentCommand \tanh {} { + \IfLanguageName {french}{\operatorname{th}}{\__gzt_orig_tanh}% +} +\cs_set_eq:NN \__gzt_orig_log \log +\cs_set_eq:NN \__gzt_orig_lg \lg +\RenewDocumentCommand \log { s } { + \IfBooleanTF {#1} + { + \__gzt_orig_log + } + { + \ln + } +} +\RenewDocumentCommand \lg { s } { + \IfBooleanTF {#1} + { + \__gzt_orig_lg + } + { + \ln + } +} +\cs_set_eq:NN \__gzt_orig_leq \leq +\cs_set_eq:NN \__gzt_orig_geq \geq +\RenewDocumentCommand \le {} {% + \IfLanguageName {french}{\leqslant}{\__gzt_orig_leq}% +} +\RenewDocumentCommand \leq {} {% + \IfLanguageName {french}{\leqslant}{\__gzt_orig_leq}% +} +\RenewDocumentCommand \ge {} {% + \IfLanguageName {french}{\geqslant}{\__gzt_orig_geq}% +} +\RenewDocumentCommand \geq {} {% + \IfLanguageName {french}{\geqslant}{\__gzt_orig_geq}% +} +\NewDocumentCommand \N {} {\mathbb{N}} +\NewDocumentCommand \Z {} {\mathbb{Z}} +\NewDocumentCommand \D {} {\mathbb{D}} +\NewDocumentCommand \Q {} {\mathbb{Q}} +\NewDocumentCommand \R {} {\mathbb{R}} +\NewDocumentCommand \C {} {\mathbb{C}} +\NewDocumentCommand \K {} {\mathbb{K}} +\ExplSyntaxOff +%% ---------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Denis Bitouz'e. +%% +%% This work consists of the file gzt.dtx +%% and the derived files gzt.cls, +%% gztarticle.cls, +%% gzt.ins, +%% gzt.pdf, +%% and a number of configuration files. +%% +%% End of file `gzt.cls'. diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/gzt.dbx b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.dbx new file mode 100644 index 0000000000..3850451c9e --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.dbx @@ -0,0 +1,243 @@ +%% +%% This is file `gzt.dbx', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gzt.dtx (with options: `datamodel') +%% ----------------------------------------------------------------------------- +%% gzt --- SMF bundle of classes for the French journal "La Gazette des +%% Math'ematiciens" +%% +%% E-mail: denis.bitouze@univ-littoral.fr +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% ----------------------------------------------------------------------------- +\DeclareDatamodelFields[type=list,datatype=name]{interviewee} +\DeclareDatamodelEntryfields[interview]{ + interviewee, + author +} +\DeclareBibliographyDriver{interview}{% + \printnames{author}~interviewent~\printnames{interviewee}% + \usebibmacro{finentry}% +} +\DeclareBibliographyDriver{bookreview}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{maintitle+title}% + \newline\nopunct\newblock + \usebibmacro{author/editor+others/translator+others}% + \setunit{\labelnamepunct} + \newline\nopunct\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit + \iffieldundef{maintitle} + {\printfield{volume}% + \printfield{part}} + {}% + \newunit + \printfield{volumes}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \printlist{language}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isbn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \newunit\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} +\DeclareDatamodelFields[type=list,datatype=name]{reviewer} +\DeclareDatamodelFields[type=list,datatype=literal]{reviewerinstitution} +\DeclareDatamodelEntryfields[bookreview]{ + reviewer, + reviewerinstitution +} +\DeclareDatamodelFields[type=field,datatype=literal]{publicprice} +\DeclareDatamodelFields[type=field,datatype=literal]{smfprice} +\DeclareDatamodelFields[type=field,datatype=literal]{frenchabstract} +\DeclareDatamodelFields[type=field,datatype=literal]{englishabstract} +\DeclareDatamodelFields[type=list,datatype=literal]{copublisher} +\DeclareDatamodelFields[type=field, datatype=verbatim]{thumbnail} +\DeclareDatamodelEntryfields[bookadvertisement]{ + publicprice, + smfprice, + frenchabstract, + englishabstract, + copublisher, + thumbnail +} +\newcommand*{\insertbibimage}[1]{\includegraphics[width=45mm]{#1}} +\DeclareBibliographyDriver{bookadvertisement}{% + \begin{tcolorbox}[ + lefthand width=47.5mm + ,sidebyside + ,colback=white + ,fontlower=\large + ,flushleft lower + ,boxrule=0mm + ,frame hidden% + ,leftright skip=0mm + ,before skip=0mm + ,lower separated=false + ] + \iffieldundef{thumbnail} + {} + { + \usefield{\insertbibimage}{thumbnail} + } + \tcblower + \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}% + \def\abx@str{abx@lstr}% + \noindent + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \textbf{\printfield{series}}% + % \usebibmacro{series+number}% + \bigskip\newline\nopunct\newblock + {% + \Large% + \printfield{title}% + \newunit\newblock + }% + \iffieldundef{volume} + {}% + {\textbf{\printfield{volume}}} + \iffieldundef{titleaddon} + {}% + {% + \newline\nopunct\newblock + \textbf{\printfield{titleaddon}}% + } + \iffieldundef{subtitle} + {}% + {% + \newline\nopunct\newblock + \printfield{subtitle}% + } + \newline\nopunct\newblock + \newline\nopunct\newblock + \usebibmacro{author/editor+others/translator+others}% + \setunit{\labelnamepunct} + \newline\nopunct\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{publisher+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \printlist{language}% + \iftoggle{bbx:isbn} + {% + \newline\nopunct\newblock + \printfield{isbn} + } + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \def\abx@str{abx@sstr}% + \end{tcolorbox} + \iflistundef{copublisher} + {}% + {% + \bigskip + % \newline\nopunct\newblock% + \normalsize + Publi\'e avec le concours de : \printlist{copublisher}% + \par + } + \iffieldundef{frenchabstract} + {}% + {% + \bigskip + \printfield{frenchabstract}% + \par + \medskip + % + \begin{center} + Prix~public~:\c_space_tl + \EUR{\printfield{publicprice}} + \c_space_tl\textendash\c_space_tl Prix~membre~\smf{}~:\c_space_tl + \EUR{\printfield{smfprice}} + \c_space_tl\textendash\c_space_tl Frais~de~port~non~compris + \end{center} + } + \iffieldundef{englishabstract} + {}% + {% + \par + \bigskip + \begin{otherlanguage}{english} + \itshape + \printfield{englishabstract}% + % + \par + \medskip + % + \begin{center} + Public~price:\c_space_tl + \EUR{\printfield{publicprice}} + \c_space_tl\textendash\c_space_tl \smf{}~member~price:\c_space_tl + \EUR{\printfield{smfprice}} + \c_space_tl\textendash\c_space_tl Shipping~costs~not~included + \end{center} + \end{otherlanguage} + } + \usebibmacro{finentry} +} +%% ---------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Denis Bitouz'e. +%% +%% This work consists of the file gzt.dtx +%% and the derived files gzt.cls, +%% gztarticle.cls, +%% gzt.ins, +%% gzt.pdf, +%% and a number of configuration files. +%% +%% End of file `gzt.dbx'. diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/gzt.lbx b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.lbx new file mode 100644 index 0000000000..4ad100fa06 --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/gzt.lbx @@ -0,0 +1,44 @@ +%% +%% This is file `gzt.lbx', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gzt.dtx (with options: `languagemodel') +%% ----------------------------------------------------------------------------- +%% gzt --- SMF bundle of classes for the French journal "La Gazette des +%% Math'ematiciens" +%% +%% E-mail: denis.bitouze@univ-littoral.fr +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% ----------------------------------------------------------------------------- +\ProvidesFile{gzt.lbx} +\InheritBibliographyExtras{french}% extras are inherited from French... +\DeclareBibliographyStrings{% + inherit = {french},% .... as well as all the keys + number = {{\no}{\no}}, + volume = {{volume}{vol\adddot}}, + volumes = {{volumes}{vol\adddot}}, +} +%% ---------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Denis Bitouz'e. +%% +%% This work consists of the file gzt.dtx +%% and the derived files gzt.cls, +%% gztarticle.cls, +%% gzt.ins, +%% gzt.pdf, +%% and a number of configuration files. +%% +%% End of file `gzt.lbx'. diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/gztarticle.cls b/macros/latex/contrib/gzt/tex/latex/gzt/gztarticle.cls new file mode 100644 index 0000000000..78173f28dd --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/gztarticle.cls @@ -0,0 +1,3263 @@ +%% +%% This is file `gztarticle.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gzt.dtx (with options: `class-article') +%% ----------------------------------------------------------------------------- +%% gzt --- SMF bundle of classes for the French journal "La Gazette des +%% Math'ematiciens" +%% +%% E-mail: denis.bitouze@univ-littoral.fr +%% Released under the LaTeX Project Public License v1.3c or later +%% See http://www.latex-project.org/lppl.txt +%% ----------------------------------------------------------------------------- +\def\gztfileversion{1.0.1} +\def\gztfiledate{2021-02-14} +\RequirePackage{silence}% +\WarningFilter{kpfonts}{With 'easyscsl' option} +\RequirePackage{xpatch}% +\patchcmd% + {\use@@tikzlibrary}% + {% + \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{ + \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{% + \expandafter\usepgflibrary\expandafter{\pgf@temp}% + }{% + \tikzerror{I did not find the tikz library + '\pgf@temp'. I looked for files named + tikzlibrary\pgf@temp.code.tex and + pgflibrary\pgf@temp.code.tex, but neither + could be found in the current texmf trees.} + }}% + }% + {% + \@pushfilename + \pgfutil@InputIfFileExists{tikzlibrary\pgf@temp.code.tex}{}{ + \pgfutil@IfFileExists{pgflibrary\pgf@temp.code.tex}{% + \expandafter\usepgflibrary\expandafter{\pgf@temp}% + }{% + \tikzerror{I did not find the tikz library + '\pgf@temp'. I looked for files named + tikzlibrary\pgf@temp.code.tex and + pgflibrary\pgf@temp.code.tex, but neither + could be found in the current texmf trees.} + }}% + \@popfilename + }% + {}{}% +\patchcmd + {\tcb@input@library@in} + {% + \input\tcbpkgprefix#1\relax% + } + {% + \@pushfilename + \input\tcbpkgprefix#1\relax% + \@popfilename + } + {}{} +\RequirePackage{l3keys2e} +\RequirePackage{xparse} +\ExplSyntaxOn +\ProvidesExplClass + {gztarticle} + {\gztfiledate} + {\gztfileversion} + { + SMF~class~for~the~French~journal^^J + "La~Gazette~des~Math'ematiciens". +~(Author~version.) + } +\NeedsTeXFormat{LaTeX2e} +\bool_new:N \g__gzt_moral_report_bool +\bool_new:N \g__gzt_special_edition_bool +\bool_new:N \g__gzt_for_authors_bool +\bool_new:N \g__gzt_for_printer_bool +\bool_new:N \g__gzt_cover_bool +\bool_new:N \g__gzt_coverpage_bool +\bool_new:N \g__gzt_inside_pages_bool +\bool_new:N \g__gzt_no_inside_backcover_bool +\bool_gset_true:N \g__gzt_for_authors_bool% +\bool_gset_true:N \g__gzt_inside_pages_bool% +\tl_gset:Nn \g__gzt_moral_report_common_option_tl {% + \AddToHook{begindocument/before} {% + \bool_gset_true:N \g__gzt_moral_report_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \title[short={\bfseries\c__gzt_moralreport_rubric_string_tl}]{} + \tl_gset:Nn \g__gzt_rubric_title_tl {\c__gzt_moralreport_rubric_string_tl} + } +} +\keys_define:nn { gztarticle } +{ + editorial .code:n = {% + \AddToHook{begindocument}{% + \__gzt_before_display_editorial:n {}% + } + \AddToHook{enddocument}{% + \__gzt_after_display_editorial: {}% + } + },% + presidentmessage .code:n = {% + \AddToHook{begindocument}{% + \__gzt_before_display_presidentmessage: {}% + } + \AddToHook{enddocument}{% + \__gzt_after_display_presidentmessage: {}% + } + },% + moralreport .code:n = { + \g__gzt_moral_report_common_option_tl + \keys_set:nn { gztarticle / moralreport } {#1} + }, + moralreport / title .code:n = {% + \tl_gset:Nn \g__gzt_moral_report_title_tl {#1} + },% + moralreport / short~title .code:n = {% + \tl_gset:Nn \g__gzt_moral_report_short_title_tl {#1} + },% +}% +\PassOptionsToClass{openany,english,french}{book} +\LoadClass { book } +\PassOptionsToPackage{table,cmyk}{xcolor}% +\PassOptionsToPackage{export}{adjustbox}% +\PassOptionsToPackage{english,french}{translator} +\PassOptionsToPackage{english,french}{babel} +\PassOptionsToPackage{english,french}{varioref} +\PassOptionsToPackage{english,french}{cleveref} +\RequirePackage[group=false]{standalone}% +\RequirePackage{datatool}% +\sys_if_engine_pdftex:TF + { + \RequirePackage[T1]{fontenc} + \RequirePackage[utf8]{inputenc} + }{ + \RequirePackage{fontspec} + } +\RequirePackage[sfmath,easyscsl,noDcommand]{kpfonts} +\RequirePackage[pagestyles]{titlesec}% +\RequirePackage{multicol}% +\RequirePackage{graphicx}% +\RequirePackage{longtable}% +\RequirePackage{adjustbox}% +\RequirePackage{mwe} +\RequirePackage{zref-totpages} +\RequirePackage{zref-xr}% +\RequirePackage{ragged2e}% +\RequirePackage{xspace}% +\RequirePackage{textcase}% +\RequirePackage{epigraph}% +\RequirePackage[autostyle]{csquotes}% +\RequirePackage[backend=biber,datamodel=gzt,defernumbers=true,autolang=other]{biblatex}% +\@ifpackagelater{biblatex}{2016/01/01}{% + \ExecuteBibliographyOptions{giveninits} +}{ + \ExecuteBibliographyOptions{firstinits} +} +\RequirePackage{array} +\RequirePackage{booktabs} +\RequirePackage{tabularx} +\RequirePackage{nccparskip} +\RequirePackage{multirow} +\RequirePackage{varioref} +\RequirePackage{mathtools} +\RequirePackage{rsfso} +\RequirePackage{esvect} +\RequirePackage{translator}% +\RequirePackage{geometry} +\RequirePackage{babel}% +\RequirePackage{eurosym}% +\RequirePackage{iflang}[2007/11/11]% +\RequirePackage{etoc}% +\RequirePackage[babel=true]{microtype}% +\RequirePackage[nodayofweek]{datetime}% +\RequirePackage[inline]{enumitem}% +\RequirePackage{afterpage} +\RequirePackage{xcolor}% +\cs_set_eq:NN \__gzt_orig_preamblecmds \@preamblecmds +\RequirePackage{tikz} +\RequirePackage{pgfplots} +\RequirePackage{tcolorbox} +\RequirePackage{tikzpagenodes} +\RequirePackage{amsthm} +\RequirePackage{thmtools} +\cs_set_eq:NN \@preamblecmds \__gzt_orig_preamblecmds +\RequirePackage{placeins}% +\RequirePackage[hidelinks,hypertexnames=false]{hyperref}% +\RequirePackage[numbered]{bookmark}% +\RequirePackage[nowarn]{glossaries}% +\RequirePackage{cleveref}% +\makeglossaries +\setglossarystyle{indexhypergroup} +\setacronymstyle{long-sc-short} +\sys_if_engine_pdftex:T + { + \renewcommand\familydefault{\sfdefault} + \renewcommand{\ttdefault}{lmtt} + } +\tl_remove_all:Nn \@preamblecmds { \do \DeclareMathOperator } +\tl_remove_all:Nn \@preamblecmds { \do \newacronym } +\tl_remove_all:Nn \@preamblecmds { \do \@declmathop } +\tl_remove_all:Nn \@preamblecmds { \do \usetikzlibrary } +\msg_new:nnnn{gzt}{issue-number-needed}{Option~`#1'~needed!} + {Please~specify~`#1=<number>', + ~otherwise~`<number>'~will~be~set~to + ~`\int_use:N\c__gzt_first_issue_number_int'.} +\msg_new:nnnn{gzt}{unknown-choice}{Choice~`#3'~invalid!} + {Please~specify~#1=#2.} +\int_new:N \g__gzt_editors_in_chief_int +\int_new:N \g__gzt_item_in_rubric_int +\int_new:N \g__gzt_articles_int +\int_new:N \g__gzt_question_int +\int_const:Nn \c__gzt_first_issue_number_int { 143 } +\int_const:Nn \c__gzt_first_issue_year_int { 2015 } +\int_const:Nn \c__gzt_first_issue_month_int { 1 } +\int_const:Nn \c__gzt_interval_in_months_int { 3 } +\tl_const:Nn \c__gzt_journal_short_title_string_tl {Gazette} +\tl_const:Nn \c__gzt_journal_title_string_tl { + \c__gzt_journal_short_title_string_tl{}~des~Math\'ematiciens% +} +\tl_const:Nn \c__gzt_class_name_tl {gzt} +\tl_const:Nn \c__gzt_article_class_name_tl {gztarticle} +\tl_const:Nn \c__gzt_editors_in_chief_string_tl +{ + \int_compare:nNnTF { \g__gzt_editors_in_chief_int } > { 1 } + { \c__gzt_editorsinchief_string_tl } + { \c__gzt_editorinchief_string_tl } +} +\tl_const:Nn \c__gzt_editorinchief_string_tl {R\'edacteur~en~chef } +\tl_const:Nn \c__gzt_editorsinchief_string_tl {R\'edacteurs~en~chef } +\tl_const:Nn \c__gzt_editors_string_tl {R\'edacteurs } +\tl_const:Nn \c__gzt_editorial_board_string_tl {Comit\'e~de~r\'edaction} +\tl_const:Nn \c__gzt_special_edition_editorial_board_string_tl {Num\'ero~sp\'ecial~de~la~Gazette~des~Math\'ematiciens~sous~la~direction~de~:} +\tl_const:Nn \c__gzt_editorial_secretariat_string_tl {Secr\'etariat~de~r\'edaction} +\tl_const:Nn \c__gzt_phone_string_tl {T\'el.} +\tl_const:Nn \c__gzt_fax_string_tl {Fax} +\tl_const:Nn \c__gzt_informations_string_tl {Renseignements} +\tl_const:Nn \c__gzt_publishingdirector_string_tl {Directeur~de~la~publication} +\tl_const:Nn \c__gzt_issn_string_tl {\textsc{issn}} +\tl_const:Nn \c__gzt_isbn_string_tl {\textsc{isbn}} +\tl_const:Nn \c__gzt_latexclass_string_tl {Classe~\LaTeX{}} +\tl_const:Nn \c__gzt_printer_string_tl {Impression} +\tl_const:Nn \c__gzt_configuration_file_string_tl {gzt.cfg} +\tl_const:Nn \c__gzt_artistic_director_string_tl {Conception~graphique} +\AddToHook{begindocument/before}{ + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_const:Nn \c__gzt_editorial_heading_string_tl {Avant-propos} + }{ + \tl_const:Nn \c__gzt_editorial_heading_string_tl {\'Editorial} + } +} +\tl_const:Nn \c__gzt_editorinchief_signatory_string_tl {\c__gzt_editorinchief_string_tl~de~la~\c__gzt_journal_title_string_tl} +\tl_const:Nn \c__gzt_toc_string_tl {Sommaire} +\tl_const:Nn \c__gzt_president_message_string_tl {Mot~du~pr\'esident} +\tl_const:Nn \c__gzt_president_signatory_string_tl {pr\'esident~de~la~\g__gzt_smf_short_string_tl} +\tl_const:Nn \c__gzt_editorinchief_message_date_string_tl {Le~\displaydate{__gzt_editorinchief_message_date}} +\tl_const:Nn \c__gzt_president_message_date_string_tl {Le~} +\tl_const:Nn \c__gzt_special_edition_string_tl {\c_space_tl{}sp{\'e}cial} +\tl_const:Nn \c__gzt_long_special_edition_string_tl {Numéro\c__gzt_special_edition_string_tl}% +\tl_const:Nn \c__gzt_short_special_edition_string_tl {\No{}\c__gzt_special_edition_string_tl}% +\AddToHook{begindocument/before}{ + \tl_const:Nn \c__gzt_frontcover_header_string_tl { + \bool_if:NT {\g__gzt_special_edition_bool} { + \text_uppercase:n {\c__gzt_long_special_edition_string_tl} + \medskip + \par + \normalsize + } + \l__gzt_uppercased_date_format\displaydate{__gzt_date} + \bool_if:NF {\g__gzt_special_edition_bool} { + \c_space_tl + \textendash{} + \c_space_tl + \No + \int_use:N\g__gzt_issue_number_int% + } + } +} +\clist_const:Nn \c__gzt__graphics_extensions_clist {png,PNG,jpg,JPG,jpeg,JPEG,pdf,PDF} +\tl_const:Nn \c__gzt_pdftitle_string_tl { + \bool_if:NTF {\g__gzt_moral_report_bool} { + \c__gzt_moralreport_rubric_string_tl + }{ + \c__gzt_journal_title_string_tl + % \c_space_tl + % \textendash{} + % \c_space_tl + % \l__gzt_uppercased_date_format{\displaydate{__gzt_date}} + \c_space_tl + \textendash{} + \c_space_tl + N° + \bool_if:NTF {\g__gzt_special_edition_bool} { + \c__gzt_special_edition_string_tl + \c_space_tl + \g__gzt_special_edition_title_tl + }{ + \int_use:N\g__gzt_issue_number_int + } + } +} +\tl_const:Nn \c__gzt_frontmatter_directory_string_tl {frontmatter} +\tl_const:Nn \c__gzt_backmatter_directory_string_tl {backmatter} +\tl_const:Nn \c__gzt_editorial_file_string_tl {\c__gzt_frontmatter_directory_string_tl/editorial} +\tl_const:Nn \c__gzt_president_message_file_string_tl {\c__gzt_frontmatter_directory_string_tl/presidentmessage} +\tl_const:Nn \c__gzt_issue_path_string_tl {\int_use:N \g__gzt_issue_number_int} +\tl_const:Nn \c__gzt_images_directory_string_tl {images} +\tl_const:Nn \c__gzt_issue_images_path_string_tl {% \c__gzt_issue_path_string_tl/ + \c__gzt_images_directory_string_tl} +\tl_const:Nn \c__gzt_issue_frontcover_default_image_file_tl {frontcover} +\tl_const:Nn \c__gzt_issue_backcover_text_file_string_tl {backcover} +\tl_const:Nn \c__gzt_backcover_page_file_string_tl {\c__gzt_backmatter_directory_string_tl/\c__gzt_issue_backcover_text_file_string_tl} +\tl_const:Nn \c__gzt_special_edition_backcover_text_file_string_tl {abstract_backcover} +\tl_const:Nn \c__gzt_special_edition_backcover_page_file_string_tl {\c__gzt_backmatter_directory_string_tl/\c__gzt_special_edition_backcover_text_file_string_tl} +\tl_const:Nn \c__gzt_special_edition_backcover_picture_string_tl {picture_backcover} +\tl_const:Nn \c__gzt_special_edition_backcover_page_picture_string_tl {\c__gzt_backmatter_directory_string_tl/\c__gzt_special_edition_backcover_picture_string_tl} +\tl_const:Nn \c__gzt_acronyms_file_string_tl {\c__gzt_class_name_tl acronyms} +\tl_const:Nn \c__gzt_authors_instructions_file_extension_tl {ain} +\tl_const:Nn \c__gzt_authors_instructions_file_tl {\c_sys_jobname_str.\c__gzt_authors_instructions_file_extension_tl} +\tl_const:Nn \c__gzt_about_frontcover_string_tl {\`A~propos~de~la~couverture.} +\tl_const:Nn \c__gzt_credit_frontcover_string_tl {cr\'edit} +\tl_const:Nn \c__gzt_authors_instructions_string_tl {Instructions~aux~auteurs} +\tl_const:Nn \c__gzt_preliminary_version_string_tl {% + Ce~document~est~une~{\'e}preuve~vous~permettant~de~contr{\^o}ler~l'int{\'e}grit{\'e}~du~ + texte~d'origine~(et~de~la~bibliographie~s'il~y~en~a~une)~de~votre~article~ + {\`a}~para{\^\i}tre~dans~le~prochain~num{\'e}ro~de~la~\gzt*{}.~La~mise~en~page~ + actuelle~n'est~pas~d{\'e}finitive\,:~votre~article~pourra~en~particulier~ne~pas~ + d{\'e}buter~en~haut~d'une~page.% +} +\tl_const:Nn \c__gzt_tellme_extra_title_string_tl {...\c_space_tl} +\tl_const:Nn \c__gzt_minitoc_rubric_title_separator_string_tl {\c_space_tl\textendash} +\tl_const:Nn \c__gzt_mathematics_pictogram_file_name_tl {picto-mathematics} +\tl_const:Nn \c__gzt_dossier_pictogram_file_name_tl {picto-dossier} +\tl_const:Nn \c__gzt_community_pictogram_file_name_tl {picto-hands} +\tl_const:Nn \c__gzt_interview_pictogram_file_name_tl {picto-interview} +\tl_const:Nn \c__gzt_teaching_pictogram_file_name_tl {picto-teaching} +\tl_const:Nn \c__gzt_parity_pictogram_file_name_tl {picto-parity} +\tl_const:Nn \c__gzt_tellme_pictogram_file_name_tl {picto-tellme} +\tl_const:Nn \c__gzt_information_pictogram_file_name_tl {picto-information} +\tl_const:Nn \c__gzt_rearviewmirror_pictogram_file_name_tl {picto-rearviewmirror} +\tl_const:Nn \c__gzt_tribute_pictogram_file_name_tl {picto-tribute} +\tl_const:Nn \c__gzt_books_pictogram_file_name_tl {picto-books} +\tl_const:Nn \c__gzt_forum_pictogram_file_name_tl {picto-forum} +\tl_const:Nn \c__gzt_mathematics_rubric_string_tl {Math\'ematiques} +\tl_const:Nn \c__gzt_dossier_rubric_string_tl {Dossier} +\tl_const:Nn \c__gzt_community_rubric_string_tl {Vie~de~la~communaut\'e} +\tl_const:Nn \c__gzt_interview_rubric_string_tl {Entretien} +\tl_const:Nn \c__gzt_teaching_rubric_string_tl {Diffusion~des~savoirs} +\tl_const:Nn \c__gzt_parity_rubric_string_tl {Parit\'e} +\tl_const:Nn \c__gzt_tellme_rubric_string_tl {Raconte-moi} +\tl_const:Nn \c__gzt_information_rubric_string_tl {Information} +\tl_const:Nn \c__gzt_rearviewmirror_rubric_string_tl {R\'etroviseur} +\tl_const:Nn \c__gzt_tribute_rubric_string_tl {Carnet} +\tl_const:Nn \c__gzt_books_rubric_string_tl {Livres} +\tl_const:Nn \c__gzt_latex_rubric_string_tl {Astuces~\LaTeX{}} +\tl_const:Nn \c__gzt_forum_rubric_string_tl {Tribune~libre} +\tl_const:Nn \c__gzt_published_with_help_of_string_tl {Publi\'e~avec~le~concours~de~:} +\tl_const:Nn \c__gzt_advertisement_directory_string_tl {advertisement/} +\tl_const:Nn \c__gzt_advertisement_string_tl {Publicit\'e} +\tl_const:Nn \c__gzt_moralreport_rubric_string_tl {Rapport~moral} +\tl_const:Nn \c__gzt_smf_short_string_tl {\textsc{smf}} +\tl_const:Nn \c__gzt_smf_short_pdf_string_tl {SMF} +\tl_const:Nn \c__gzt_smf_string_tl {Soci\'et\'e~Math\'ematique~de~France} +\tl_const:Nn \c__gzt_cad_short_string_tl {c.-\`a-d.} +\tl_const:Nn \c__gzt_cad_string_tl {c'est-\`a-dire} +\tl_const:Nn \c__gzt_Cad_short_string_tl {C.-\`a-d.} +\tl_const:Nn \c__gzt_Cad_string_tl {C'est-\`a-dire} +\tl_const:Nn \c__gzt_footer_string_tl { + \c__gzt_footer_size_font_tl + \textcolor{__gzt_smf_number_color}{\text_uppercase:n {\c__gzt_smf_short_string_tl}} + \c_space_tl + \textcolor{__gzt_date_color}{ + \textendash{}\c_space_tl + \bool_if:NTF {\g__gzt_moral_report_bool} { + \text_uppercase:n { \c__gzt_moralreport_rubric_string_tl } + }{ + \text_uppercase:n {\c__gzt_journal_short_title_string_tl} + \bool_if:nF { \g__gzt_inside_frontcover_bool || \g__gzt_backmatter_bool || {\int_compare_p:nNn {\g__gzt_issue_number_int}={0}} } + { + \c_space_tl\textendash{}\c_space_tl + \l__gzt_uppercased_date_format\displaydate{__gzt_date} + \bool_if:NF {\g__gzt_special_edition_bool} { + \c_space_tl + \textendash{}\c_space_tl + \textcolor{__gzt_smf_number_color}{\No\int_use:N\g__gzt_issue_number_int} + } + } + } + } +} + \file_if_exist:nTF { logo_SMF.pdf }{% + \tl_const:Nn \c__gzt_smf_logo_file_string_tl {logo_SMF} + }{ + \tl_const:Nn \c__gzt_smf_logo_file_string_tl {example-image} + } +\tl_const:Nn \c__gzt_issue_bib_file_suffix_string_tl {__gzt} +\tl_const:Nn \c__gzt_issue_bib_file_string_tl {\c_sys_jobname_str\c__gzt_issue_bib_file_suffix_string_tl.bib} +\tl_const:Nn \c__gzt_issue_bib_path_string_tl {\c__gzt_issue_bib_file_string_tl} +\bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_const:Nn \c__gzt_issue_bib_key_tl {special-edition} +}{ + \tl_const:Nn \c__gzt_issue_bib_key_tl {\int_use:N \g__gzt_issue_number_int} +} +\tl_const:Nn \c__gzt_interview_title_string_tl {En~apart\'e~avec~} +\tl_const:Nn \c__gzt_aside_string_tl {--} +\tl_const:Nn \c__gzt_draftwatermark_string_tl {draft} +\tl_const:Nn \c__gzt_compiled_string_tl { + \int_compare:nNnT {\g__gzt_issue_number_int}={0} { + \c__gzt_footer_size_font_tl + \IfLanguageName{french}{ + Compil\'e~le~ + }{ + Compiled~on~ + } + \today + } +} +\bool_new:N \g__gzt_frontcover_bool +\bool_new:N \g__gzt_inside_frontcover_bool +\bool_new:N \g__gzt_inside_backcover_bool +\bool_new:N \g__gzt_frontmatter_bool +\bool_new:N \g__gzt_rubric_bool +\bool_new:N \g__gzt_interview_rubric_bool +\bool_new:N \g__gzt_tellme_rubric_bool +\bool_new:N \g__gzt_rearviewmirror_rubric_bool +\bool_new:N \g__gzt_books_rubric_bool +\bool_new:N \g__gzt_mainmatter_bool +\bool_new:N \g__gzt_backmatter_bool +\bool_new:N \g__gzt_backcover_bool +\bool_new:N \g__gzt_frontcover_without_minitoc_bool +\bool_new:N \g__gzt_previous_article_with_bibliography_or_minibio_bool +\bool_new:N \g__gzt_advertisement_bool +\bool_new:N \g__gzt_multicols_bool +\bool_new:N \g__gzt_refsection_bool +\dim_const:Nn \c__gzt_rubrics_abstract_width_dim { 85mm} +\dim_const:Nn \c__gzt_rubrics_head_text_abstract_width_dim { 50mm} +\dim_const:Nn \c__gzt_rubrics_head_text_no_abstract_width_dim +{ \c__gzt_rubrics_abstract_width_dim + \c__gzt_rubrics_head_text_abstract_width_dim} +\dim_new:N \l__gzt_rubrics_head_text_width_dim +\dim_const:Nn \c__gzt_layoutheight_dim { 270mm} +\dim_const:Nn \c__gzt_layoutwidth_dim { 210mm} +\dim_const:Nn \c__gzt_printer_layoutoffset_dim { 5mm} +\bool_if:NTF {\g__gzt_for_printer_bool} { + \dim_const:Nn \c__gzt_potential_layoutoffset_dim { \c__gzt_printer_layoutoffset_dim} +}{ + \dim_const:Nn \c__gzt_potential_layoutoffset_dim {\c_zero_dim} +} +\int_const:Nn \c__gzt_thresold_a_int {68} +\int_const:Nn \c__gzt_thresold_b_int {80} +\int_const:Nn \c__gzt_thresold_c_int {88} +\int_const:Nn \c__gzt_thresold_d_int {96} +\int_const:Nn \c__gzt_thresold_e_int {104} +\int_const:Nn \c__gzt_thresold_f_int {120} +\dim_const:Nn \c__gzt_bindingoffset_a_dim {3mm} +\dim_const:Nn \c__gzt_bindingoffset_b_dim {3.5mm} +\dim_const:Nn \c__gzt_bindingoffset_c_dim {3.9mm} +\dim_const:Nn \c__gzt_bindingoffset_d_dim {4.1mm} +\dim_const:Nn \c__gzt_bindingoffset_e_dim {4.5mm} +\dim_const:Nn \c__gzt_bindingoffset_f_dim {5mm} +\int_new:N \g__gzt_total_pages_number_int% +\int_new:N \g__gzt_total_inside_pages_number_int% +\zexternaldocument[self]{\jobname}% +\int_gset:Nn \g__gzt_total_pages_number_int { \zref@extractdefault{selfLastPage}{abspage}{0} } +\int_gset:Nn \g__gzt_total_inside_pages_number_int { \g__gzt_total_pages_number_int - 4 } +\int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_a_int} +{ + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c_zero_dim } +}{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_b_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_a_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_c_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_b_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_d_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_c_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_e_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_d_dim } + }{ + \int_compare:nNnTF {\g__gzt_total_inside_pages_number_int}<{\c__gzt_thresold_f_int} + { + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_e_dim } + }{ + \dim_const:Nn \c__gzt_printer_bindingoffset_dim { \c__gzt_bindingoffset_f_dim } + } + } + } + } + } +} +\bool_if:NTF {\g__gzt_cover_bool} { + \dim_const:Nn \c__gzt_potential_bindingoffset_dim { \c__gzt_printer_bindingoffset_dim } +}{ + \dim_const:Nn \c__gzt_potential_bindingoffset_dim {\c_zero_dim} +} +\dim_const:Nn \c__gzt_paperheight_dim { \c__gzt_layoutheight_dim+2\c__gzt_potential_layoutoffset_dim} +\bool_if:NTF {\g__gzt_cover_bool} { + \dim_const:Nn \c__gzt_paperwidth_dim { + \c__gzt_layoutwidth_dim + + + \c__gzt_potential_layoutoffset_dim + +\c__gzt_potential_bindingoffset_dim + } +}{ + \dim_const:Nn \c__gzt_paperwidth_dim { + \c__gzt_layoutwidth_dim + + + 2 + \c__gzt_potential_layoutoffset_dim + +\c__gzt_potential_bindingoffset_dim + } +} +\dim_const:Nn \c__gzt_frontcover_image_width_dim { + \c__gzt_layoutwidth_dim + + + \c__gzt_printer_layoutoffset_dim +} +\dim_const:Nn \c__gzt_topmargin_dim { 31mm} +\dim_const:Nn \c__gzt_topmargin_frontcover_dim { + \c__gzt_topmargin_dim + + 30mm +} +\dim_const:Nn \c__gzt_topmargin_inside_cover_dim { + \c__gzt_topmargin_dim + +10mm +} +\dim_const:Nn \c__gzt_topmargin_front_matter_dim { + \c__gzt_topmargin_inside_cover_dim +} +\dim_const:Nn \c__gzt_headsep_dim { 24mm} +\dim_const:Nn \c__gzt_headsep_frontcover_dim { + \c__gzt_headsep_dim + +31mm + % -\c__gzt_potential_layoutoffset_dim +} +\dim_const:Nn \c__gzt_headsep_inside_frontcover_dim { + \c__gzt_headsep_dim + +7mm +} +\dim_const:Nn \c__gzt_headsep_front_matter_dim { + \c__gzt_headsep_inside_frontcover_dim +} +\dim_const:Nn \c__gzt_headheight_dim { \c_zero_dim } +\dim_const:Nn \c__gzt_botmargin_dim { 30mm} +\dim_const:Nn \c__gzt_footskip_dim { 26mm} +\dim_const:Nn \c__gzt_extra_margin_dim { 5mm } +\dim_const:Nn \c__gzt_innermargin_dim { 15mm - \c__gzt_potential_bindingoffset_dim + \c__gzt_extra_margin_dim} +\dim_const:Nn \c__gzt_outermargin_dim { 30mm - \c__gzt_extra_margin_dim } +\dim_const:Nn \c__gzt_inside_cover_box_width_dim { 165mm }% +\dim_const:Nn \c__gzt_innermargin_inside_cover_dim { + (\c__gzt_layoutwidth_dim - \c__gzt_inside_cover_box_width_dim)/2 + - \c__gzt_potential_bindingoffset_dim + % + \c__gzt_adjustmargin_dim +} +\dim_const:Nn \c__gzt_outermargin_inside_cover_dim { + (\c__gzt_layoutwidth_dim - \c__gzt_inside_cover_box_width_dim)/2 + % - \c__gzt_adjustmargin_dim +} +\dim_const:Nn \c__gzt_innermargin_backcover_dim { 10mm } +\dim_const:Nn \c__gzt_outermargin_backcover_dim { \c__gzt_innermargin_backcover_dim } +\dim_const:Nn \c__gzt_topmargin_backcover_dim { \c__gzt_innermargin_backcover_dim } +\dim_const:Nn \c__gzt_bottommargin_backcover_dim { \c__gzt_innermargin_backcover_dim } +\dim_const:Nn \c__gzt_frontcover_image_height_dim { 160mm} +\dim_const:Nn \c__gzt_radius_arc_dim { 85mm }% +\dim_const:Nn \c__gzt_frontmatter_headtext_xshift_dim { 19mm }% +\dim_const:Nn \c__gzt_frontmatter_headtext_o_xshift_dim { + -\c__gzt_frontmatter_headtext_xshift_dim -\c__gzt_potential_layoutoffset_dim% +}% +\dim_const:Nn \c__gzt_frontmatter_headtext_e_xshift_dim { + \c__gzt_frontmatter_headtext_xshift_dim +\c__gzt_potential_layoutoffset_dim% +}% +\dim_const:Nn \c__gzt_frontmatter_headtext_yshift_dim { -6.5mm-\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_header_line_width_dim { 0.25mm} +\dim_const:Nn \c__gzt_header_line_yshift_dim { -1mm-\c__gzt_header_line_width_dim}% +\dim_const:Nn \c__gzt_footer_background_height_dim { 10mm + \c__gzt_potential_layoutoffset_dim } +\dim_const:Nn \c__gzt_front_matter_extra_innermargin_dim { 28mm } +\dim_const:Nn \c__gzt_front_matter_extra_outermargin_dim { 7mm } +\dim_const:Nn \c__gzt_inside_cover_offset_dim { \c_zero_dim }% +\dim_const:Nn \c__gzt_pictogram_width_dim { 23mm }% +\dim_const:Nn \c__gzt_header_xshift_dim { \c__gzt_pictogram_width_dim-6mm }% +\dim_const:Nn \c__gzt_header_yshift_dim { 5mm }% +\dim_const:Nn \c__gzt_xshift_arccircle_A_dim { \c__gzt_rubrics_abstract_width_dim+\c__gzt_innermargin_dim+10mm+\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_yshift_arccircle_A_dim { -22mm-\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_xshift_arccircle_B_dim {% + (\c__gzt_rubrics_abstract_width_dim+\c__gzt_innermargin_dim)/2% + % \c__gzt_innermargin_dim+(\c__gzt_rubrics_abstract_width_dim/2)% + % \c__gzt_xshift_arccircle_A_dim/2 +}% +\dim_const:Nn \c__gzt_yshift_arccircle_B_dim { -\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_xshift_arccircle_C_dim { \c__gzt_potential_layoutoffset_dim-5mm }% +\dim_const:Nn \c__gzt_yshift_arccircle_C_dim { -19.75mm-\c__gzt_potential_layoutoffset_dim }% +\dim_const:Nn \c__gzt_book_review_frontcover_extend_dim { 12mm }% +\dim_const:Nn \c__gzt_tcb_left_dim { 4mm }% +\dim_const:Nn \c__gzt_tcb_boxsep_dim { 1mm }% +\dim_const:Nn \c__gzt_tikz_dot_diameter_dim { 0.33mm }% +\dim_const:Nn \c__gzt_tikz_dot_spacing_dim { 1.05mm }% +\dim_const:Nn \c__gzt_rubric_extra_xoffset_dim { -\c__gzt_innermargin_dim/2 }% +\dim_const:Nn \c__gzt_rubric_xoffset_dim { 14.5mm }% +\dim_const:Nn \c__gzt_boxed_issue_number_width_dim { 30mm} +\dim_const:Nn \c__gzt_boxed_issue_number_height_dim { 8mm} +\dim_new:N \l__gzt_thumbnail_width_dim +\dim_set:Nn \l__gzt_thumbnail_width_dim {30mm} +\dim_new:N \g__gzt_abstract_box_width_dim +\dim_new:N \c__gzt_original_parindent_dim +\dim_gset_eq:NN \c__gzt_original_parindent_dim \parindent +\dim_new:N \l__gzt_between_rubric_head_text_and_abstract_dim +\dim_new:N \g__gzt_minitoc_circle_diameter_dim +\dim_new:N \g__gzt_minitoc_textwidth_dim +\dim_new:N \g__gzt_minitoc_xshift_dim +\dim_new:N \g__gzt_minitoc_yshift_dim +\dim_gset:Nn \g__gzt_minitoc_circle_diameter_dim {142mm} +\dim_gset:Nn \g__gzt_minitoc_textwidth_dim {65mm} +\dim_gset:Nn \g__gzt_minitoc_xshift_dim {-22mm} +\dim_gset:Nn \g__gzt_minitoc_yshift_dim {30mm} +\dim_const:Nn \c__gzt_minitoc_from_circle_xshift_dim {-15mm} +\dim_const:Nn \c__gzt_minitoc_from_circle_yshift_dim {-\c__gzt_minitoc_from_circle_xshift_dim} +\dim_const:Nn \c__gzt_footer_height_font_dim {3mm} +\dim_const:Nn \c__gzt_minitoc_list_labelsep_dim {1em} +\dim_const:Nn \c__gzt_authors_photos_width_dim {16mm} +\dim_const:Nn \c__gzt_authors_photos_box_width_dim {\c__gzt_authors_photos_width_dim + + 2mm} +\dim_new:N \l__gzt_minibio_width_dim +\geometry{% + papersize={\c__gzt_paperwidth_dim,\c__gzt_paperheight_dim} +} +\bool_if:NTF {\g__gzt_cover_bool} { + \tl_const:Nn \c__gzt_frontcover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutvoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_frontcover_dim + ,headsep=\c__gzt_headsep_frontcover_dim + ,headheight=\c__gzt_headheight_dim + % ,bottom=\c_zero_dim + ,bottom=11mm + ,footskip=\c_zero_dim + ,outer=\c_zero_dim + ,inner=\c__gzt_potential_layoutoffset_dim + ,nomarginpar% + }% +}{ + \tl_const:Nn \c__gzt_frontcover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_frontcover_dim + ,headsep=\c__gzt_headsep_frontcover_dim + ,headheight=\c__gzt_headheight_dim + % ,bottom=\c_zero_dim + ,bottom=11mm + ,footskip=\c_zero_dim + ,hmargin=\c__gzt_potential_layoutoffset_dim + ,nomarginpar% + }% +} +\bool_if:NTF {\g__gzt_cover_bool} { + \tl_const:Nn \c__gzt_inside_cover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutvoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_inside_cover_dim + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_inside_frontcover_dim + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_inside_cover_dim-\c__gzt_potential_layoutoffset_dim + ,outer=\c__gzt_outermargin_inside_cover_dim+\c__gzt_potential_layoutoffset_dim + ,nomarginpar% + }% +}{ + \tl_const:Nn \c__gzt_inside_cover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_inside_cover_dim + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_inside_frontcover_dim + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_inside_cover_dim + ,outer=\c__gzt_outermargin_inside_cover_dim + ,nomarginpar% + }% +} +\tl_const:Nn \c__gzt_front_matter_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + % ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_front_matter_dim% + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_front_matter_dim + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim% + ,inner=\c__gzt_innermargin_dim+\c__gzt_front_matter_extra_innermargin_dim% + ,outer=\c__gzt_outermargin_dim+\c__gzt_front_matter_extra_outermargin_dim% + ,nomarginpar% +}% +\tl_const:Nn \c__gzt_main_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + % ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_dim-15mm% + ,headheight=\c__gzt_headheight_dim + ,headsep=\c__gzt_headsep_dim-18mm + ,bottom=\c__gzt_botmargin_dim + ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_dim + ,outer=\c__gzt_outermargin_dim +}% +\tl_const:Nn \c__gzt_backcover_geometry_tl {% + ,layoutsize={\c__gzt_layoutwidth_dim,\c__gzt_layoutheight_dim} + ,layoutoffset=\c__gzt_potential_layoutoffset_dim + % ,bindingoffset=\c__gzt_potential_bindingoffset_dim + ,top=\c__gzt_topmargin_backcover_dim% + % ,top=\c__gzt_topmargin_dim-15mm% + % ,headheight=\c__gzt_headheight_dim + % ,headsep=\c__gzt_headsep_dim-18mm + ,bottom=\c__gzt_bottommargin_backcover_dim + % ,footskip=\c__gzt_footskip_dim + ,inner=\c__gzt_innermargin_backcover_dim + ,outer=\c__gzt_outermargin_backcover_dim + ,nomarginpar + ,hcentering + ,twoside=false +} +\skip_const:Nn \c__gzt_editorial_presidentmessage_parskip_skip { 12pt plus 2pt minus .8pt }% +\skip_const:Nn \c__gzt_mainmatter_parskip_skip { 2pt plus .5pt minus .2pt }% +\int_new:N \g__gzt_issue_number_int +\int_new:N \g__gzt_issue_month_int +\int_new:N \g__gzt_issue_year_int +\tl_new:N \g__gzt_frontcover_image_options_tl +\keys_define:nn { gzt/issuesetup } +{ + number .int_gset:N = \g__gzt_issue_number_int, + month .int_gset:N = \g__gzt_issue_month_int, + year .int_gset:N = \g__gzt_issue_year_int, + number .value_required:n = true, + month .value_required:n = true, + year .value_required:n = true, + number .initial:n = 0, + frontcoverimageoptions .tl_gset:N = \g__gzt_frontcover_image_options_tl +} +\tl_new:N \l__gzt_journal_publisher_tl +\tl_new:N \l__gzt_journal_address_tl +\tl_new:N \l__gzt_journal_phone_tl +\tl_new:N \l__gzt_journal_fax_tl +\tl_new:N \l__gzt_journal_email_tl +\tl_new:N \l__gzt_journal_url_tl +\tl_new:N \l__gzt_journal_issn_tl +\tl_new:N \l__gzt_journal_isbn_tl +\keys_define:nn { gzt/journalsetup } +{ + publisher .tl_set:N = \l__gzt_journal_publisher_tl, + address .tl_set:N = \l__gzt_journal_address_tl, + phone .tl_set:N = \l__gzt_journal_phone_tl, + fax .tl_set:N = \l__gzt_journal_fax_tl, + email .tl_set:N = \l__gzt_journal_email_tl, + url .tl_set:N = \l__gzt_journal_url_tl, + issn .tl_set:N = \l__gzt_journal_issn_tl, + isbn .tl_set:N = \l__gzt_journal_isbn_tl, + publisher .value_required:n = true, + address .value_required:n = true, + phone .value_required:n = true, + fax .value_required:n = true, + email .value_required:n = true, + url .value_required:n = true, + issn .value_required:n = true, + isbn .value_required:n = true, +} +\keys_define:nn { gzt/title } +{ + short .tl_gset:N = \g__gzt_short_title_tl, + minishort .tl_gset:N = \g__gzt_mini_short_title_tl, + notintoc .bool_gset:N = \g__gzt_title_not_in_toc_bool, + short .value_required:n = true, + minishort .value_required:n = true, +} +\keys_define:nn { gzt/subtitle } +{ + short .tl_gset:N = \g__gzt_short_subtitle_tl, + minishort .tl_gset:N = \g__gzt_mini_short_subtitle_tl, + notintoc .bool_gset:N = \g__gzt_subtitle_not_in_toc_bool, + short .value_required:n = true, + minishort .value_required:n = true, +} +\keys_define:nn { gzt/rubric } +{ + abstract .tl_gset:N = \g__gzt_rubric_abstract_tl, + title .tl_gset:N = \g__gzt_rubric_title_tl, + pictogram .tl_gset:N = \g__gzt_rubric_pictofile_tl, + abstract .value_required:n = true, + title .value_required:n = true, + pictogram .value_required:n = true, +} +\keys_define:nn { gzt/minitoc } +{ + list .bool_gset:N = \g__gzt_minitoc_list_bool, + help .bool_gset:N = \g__gzt_minitoc_help_bool, + diameter .dim_gset:N = \g__gzt_minitoc_circle_diameter_dim, + textwidth .dim_gset:N = \g__gzt_minitoc_textwidth_dim, + xshift .dim_gset:N = \g__gzt_minitoc_xshift_dim, + yshift .dim_gset:N = \g__gzt_minitoc_yshift_dim, + diameter .value_required:n = true, + textwidth .value_required:n = true, + xshift .value_required:n = true, + yshift .value_required:n = true, +} +\keys_define:nn { gzt/authors } +{ + affiliation .tl_gset:N = \g__gzt_people_affiliation_tl, + email .tl_gset:N = \g__gzt_people_email_tl, + minibio .tl_gset:N = \g__gzt_people_minibio_tl, + photo .tl_gset:N = \g__gzt_people_photo_tl, + webpage .tl_gset:N = \g__gzt_people_webpage_tl, + affiliation .value_required:n = true, + email .value_required:n = true, + minibio .value_required:n = true, + photo .value_required:n = true, + webpage .value_required:n = true, +} +\tl_new:N \g__gzt_interviewee_minibio_tl +\tl_new:N \g__gzt_interviewee_photo_tl +\tl_new:N \g__gzt_interviewee_first_last_name_tl +\keys_define:nn { gzt/interviewees } +{ + minibio .tl_gset:N = \g__gzt_interviewee_minibio_tl, + photo .tl_gset:N = \g__gzt_interviewee_photo_tl, + minibio .value_required:n = true, + photo .value_required:n = true, +} +\tl_new:N \g__gzt_bookreview_frontcover_tl +\tl_new:N \g__gzt_bookreview_bibkey_tl +\keys_define:nn { gzt/bookreview } +{ + frontcover .tl_gset:N = \g__gzt_bookreview_frontcover_tl, + bibkey .tl_gset:N = \g__gzt_bookreview_bibkey_tl, + frontcover .value_required:n = true, + bibkey .value_required:n = true, +} +\tl_new:N \g__gzt_bookadvertisement_frontcover_tl +\tl_new:N \g__gzt_bookadvertisement_bibkey_tl +\keys_define:nn { gzt/bookadvertisement } +{ + frontcover .tl_gset:N = \g__gzt_bookadvertisement_frontcover_tl, + bibkey .tl_gset:N = \g__gzt_bookadvertisement_bibkey_tl, + frontcover .value_required:n = true, + bibkey .value_required:n = true, +} +\tl_new:N \l__gzt_newtheorem_style_tl +\keys_define:nn { gzt/newtheorem } +{ + frenchtitle .tl_set:N = \l__gzt_newtheorem_frenchtitle_tl, + englishtitle .tl_set:N = \l__gzt_newtheorem_englishtitle_tl, + frenchtitle .value_required:n = true, + englishtitle .value_required:n = true, + % + style .choice:, + style / theorem .code:n = {\tl_set:Nn \l__gzt_newtheorem_style_tl {theorem}}, + style / definition .code:n = {\tl_set:Nn \l__gzt_newtheorem_style_tl {definition}}, + style / proof .code:n = {\tl_set:Nn \l__gzt_newtheorem_style_tl {proof}}, + style / unknown .code:n = + \msg_error:nnxxx { gzt } { unknown-choice } + { style } % Name of choice key + { theorem~or~definition~or~proof } % Valid choices + { \exp_not:n {#1} } % Invalid choice given +} +\definecolorset{cmyk}{__gzt_}{_color}{ + generic_dark,1,.60,.10,0; % kind of blue (!) + light_generic_dark,1,.35,0,0 % kind of blue (!), light +} +\colorlet{__gzt_generic_light_color}{black!50} +\colorlet{__gzt_dark_generic_light_color}{black!60} +\colorlet{__gzt_description_label_light_color}{__gzt_dark_generic_light_color} +\colorlet{__gzt_minitoc_color}{__gzt_generic_light_color} +\colorlet{__gzt_cover_itemize_label_color}{__gzt_light_generic_dark_color} +\colorlet{__gzt_default_text_color}{black} +\colorlet{__gzt_head_text_color}{black!65} +\colorlet{__gzt_rubric_head_text_color}{__gzt_head_text_color} +\colorlet{__gzt_bibliography_minibios_acknowledgements_bg_color}{black!10} +\colorlet{__gzt_headrule_color}{__gzt_generic_light_color!65} +\colorlet{__gzt_circlerule_color}{__gzt_generic_dark_color!65} +\colorlet{__gzt_frontmatter_text_color}{black!75} +\colorlet{__gzt_people_color}{__gzt_generic_dark_color} +\colorlet{__gzt_arrayrule_color}{__gzt_generic_dark_color} +\colorlet{__gzt_acknowledgements_color}{__gzt_generic_dark_color} +\colorlet{__gzt_question_color}{__gzt_generic_dark_color} +\colorlet{__gzt_boxed_issue_number_bg_color}{__gzt_generic_dark_color} +\colorlet{__gzt_rule_in_toc_color}{__gzt_generic_dark_color} +\colorlet{__gzt_rubric_in_toc_color}{__gzt_generic_dark_color} +\colorlet{__gzt_article_in_toc_color}{__gzt_frontmatter_text_color} +\colorlet{__gzt_rubric_title_color}{__gzt_generic_light_color} +\colorlet{__gzt_article_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_section_color}{__gzt_generic_dark_color} +\colorlet{__gzt_subsection_color}{__gzt_generic_dark_color!90} +\colorlet{__gzt_subsubsection_color}{__gzt_generic_dark_color!80} +\colorlet{__gzt_rubric_abstract_color}{__gzt_generic_dark_color} +\colorlet{__gzt_article_abstract_color}{__gzt_generic_light_color} +\colorlet{__gzt_dotfill_color}{__gzt_generic_dark_color} +\colorlet{__gzt_about_frontcover_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_reflected_text_color}{__gzt_generic_dark_color} +\colorlet{__gzt_inside_frontcover_frame_bg_color}{__gzt_generic_dark_color!8} +\colorlet{__gzt_inside_frontcover_frame_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_footer_bg_color}{black!10} +\colorlet{__gzt_float_title_color}{__gzt_generic_dark_color} +\colorlet{__gzt_float_title_bg_color}{__gzt_generic_dark_color!10} +\colorlet{__gzt_float_frame_color}{__gzt_generic_dark_color!20} +\colorlet{__gzt_chapter_color}{__gzt_generic_dark_color} +\colorlet{__gzt_smf_number_color}{__gzt_generic_dark_color} +\colorlet{__gzt_date_color}{__gzt_generic_light_color} +\colorlet{__gzt_table_head_color}{__gzt_generic_dark_color!25} +\colorlet{__gzt_book_review_frame_bg_color}{__gzt_generic_dark_color!8} +\colorlet{__gzt_book_advertisement_bg_color}{white} +\colorlet{__gzt_book_advertisement_frame_color}{__gzt_generic_dark_color} +\colorlet{__gzt_default_cover_color}{white} +\AddToHook{env/multicols/begin}{ + \bool_gset_true:N \g__gzt_multicols_bool +} +\AddToHook{env/multicols/end}{ + \bool_gset_false:N \g__gzt_multicols_bool +} +\AddToHook{env/refsection/begin}{ + \bool_gset_true:N \g__gzt_refsection_bool +} +\AddToHook{env/refsection/end}{ + \bool_gset_false:N \g__gzt_refsection_bool +} +\tl_const:Nn \c__gzt_footer_size_font_tl { + \fontsize{\c__gzt_footer_height_font_dim}{\c_zero_dim}\selectfont% +} +\tl_new:N \g__gzt_smf_short_string_tl +\tl_new:N \g__gzt_smf_string_tl +\tl_gset:Nn \g__gzt_smf_short_string_tl { + % \cs_if_exist:cTF {texorpdfstring} + % { + \texorpdfstring{\c__gzt_smf_short_string_tl}{\c__gzt_smf_short_pdf_string_tl} + % }{% + % \c__gzt_smf_short_pdf_string_tl + % }% +} +\tl_gset:Nn \g__gzt_smf_string_tl { + % \cs_if_exist:cTF {texorpdfstring} + % { + % \texorpdfstring{Soci\'et\'e~Math\'ematique~de~France}{\c__gzt_smf_string_tl} + \c__gzt_smf_string_tl + % }{% + % \acrlong*{smf} + % }% +} +\tl_new:N \l__gzt_gzt_short_string_tl +\tl_new:N \l__gzt_gzt_string_tl +\tl_set:Nn \l__gzt_gzt_short_string_tl { + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\emph{\c__gzt_journal_short_title_string_tl}}{\c__gzt_journal_short_title_string_tl} + }{% + \emph{\c__gzt_journal_short_title_string_tl} + }% +} +\tl_set:Nn \l__gzt_gzt_string_tl { + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\emph{\c__gzt_journal_title_string_tl}}{\c__gzt_journal_title_string_tl} + }{% + \emph{\c__gzt_journal_title_string_tl} + }% +} +\tl_new:N \g__gzt_pdftitle_string_tl +\tl_new:N \g__gzt_pdfauthor_string_tl +\tl_gset:Nn \g__gzt_pdftitle_string_tl { + \c__gzt_pdftitle_string_tl +} +\tl_gset:Nn \g__gzt_pdfauthor_string_tl { + \g__gzt_smf_string_tl +} +\AddToHook{begindocument/before}{% + \hypersetup{% + pdftitle=\g__gzt_pdftitle_string_tl, + pdfauthor=\g__gzt_pdfauthor_string_tl% + } +} +\cs_new_protected:Nn \__gzt_email:n + { + \href{mailto:#1}{\nolinkurl{#1}}% + } +\cs_new_protected:Nn \__gzt_display_author:nnnnn +{ + \begin{tabular}[t]{p{\c__gzt_authors_photos_box_width_dim}p{0.75\linewidth}} + \tl_if_empty:nF {#5} + {% + \begin{adjustbox}{valign=t} + \includegraphics[width=\c__gzt_authors_photos_width_dim]{#5} + \end{adjustbox}% + } + & + \begin{description}[leftmargin=1em,style=nextline,nosep] + \item[\textcolor{__gzt_people_color}{\DeclareNameAlias{labelname}{default}\citeauthor{#1}}] + \tl_if_empty:nF {#2} + {% + #2% + \par% + \smallskip% + } + \tl_if_empty:nF {#3} + {% + \href{mailto:#3}{\nolinkurl{#3}}% + \par% + \smallskip% + } + \tl_if_empty:nF {#4} + {% + #4 + } + \end{description} + \end{tabular} +} +\cs_generate_variant:Nn \__gzt_display_author:nnnnn { VVVVV } +\DTLnewdb{people} +\tl_new:N \l__gzt_crossref_tl +\cs_new_protected:Nn \__gzt_people:nnnnnnnn +{ + \DTLnewrow{people}% + \DTLnewdbentry{people}{first-last-name}{#1}% + \DTLnewdbentry{people}{affiliation}{#2}% + \DTLnewdbentry{people}{email}{#3}% + \DTLnewdbentry{people}{minibio}{#4}% + \DTLnewdbentry{people}{photo}{#5}% + \DTLnewdbentry{people}{speciality}{#6}% + \DTLnewdbentry{people}{role}{#7}% + \DTLnewdbentry{people}{webpage}{#8}% + \int_if_exist:cF {g__gzt_#7_int} + { + \int_new:c {g__gzt_#7_int} + } + \int_incr:c {g__gzt_#7_int} + \tl_if_in:nnTF { #7 } { author } { + \tl_set:Nn \l__gzt_crossref_tl {\c__gzt_issue_bib_key_tl -art-\int_use:N \g__gzt_articles_int} + } { + \tl_set:Nn \l__gzt_crossref_tl {\c__gzt_issue_bib_key_tl} + } + \tl_set:Nn \l__gzt_people_first_last_name_tl {#1} + \iow_now:Nx \g__gzt_bib_out_iow {% + @article{ + \c__gzt_issue_bib_key_tl -#7- \int_use:c {g__gzt_#7_int}, + \iow_newline: + author={\exp_not:V\l__gzt_people_first_last_name_tl}, + \iow_newline: + options={skipbib}, + \iow_newline: + crossref = {\l__gzt_crossref_tl} + \iow_newline: + } + \iow_newline: + }% +} +\cs_generate_variant:Nn \__gzt_people:nnnnnnnn { nVVVVnxV } +\cs_new_protected:Nn \__gzt_display_academic_signature:n +{ + \bigskip + \begin{__gzt_minibiographies_acknowledgements_tcbox} + #1 + \end{__gzt_minibiographies_acknowledgements_tcbox} +} +\cs_new_protected:Nn \__gzt_display_people_by_role:n +{ + \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{#1}]{people}{% + \l__gzt_firstlastname_tl=first-last-name% + ,\l__gzt_people_affiliation_tl=affiliation% + ,\l__gzt_people_email_tl=email% + ,\l__gzt_people_minibio_tl=minibio% + ,\l__gzt_people_photo_tl=photo% + ,\l__gzt_people_speciality=speciality% + ,\l__gzt_people_role_tl=role% + ,\l__gzt_people_webpage_tl=webpage% + }{% + \tl_if_in:NnTF \l__gzt_people_role_tl { editor } { + \item[ + \textcolor{__gzt_people_color}{% + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}% + } + \tl_if_in:NnF \l__gzt_people_speciality { NoValue } { ~(\l__gzt_people_speciality) } + ] + \leavevmode + \vbox_top:n {% + \l__gzt_people_affiliation_tl% + \newline% + \href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}% + } + \medskip% + }{ + \tl_if_in:NnTF \l__gzt_people_role_tl { author } { + \tl_if_empty:NF \l__gzt_firstlastname_tl { + \footnotesize% + % \noindent% + \DTLiffirstrow{% + }{ + \DTLpar% + \medskip% + } + \dim_set:Nn \l__gzt_minibio_width_dim {\linewidth-1em - \c__gzt_authors_photos_box_width_dim} + \tl_if_empty:NTF \l__gzt_people_photo_tl + {% + \dim_add:Nn \l__gzt_minibio_width_dim {\c__gzt_authors_photos_box_width_dim} + }{% + \begin{adjustbox}{valign=t,minipage=\c__gzt_authors_photos_box_width_dim} + \includegraphics[width=\c__gzt_authors_photos_width_dim]{\l__gzt_people_photo_tl} + \end{adjustbox}% + \quad% + } + \begin{adjustbox}{valign=t,minipage=\l__gzt_minibio_width_dim} + \begin{description}[leftmargin=1em,style=nextline] + \item[% + \textcolor{__gzt_people_color}{% + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- \exp_not:V\DTLcurrentindex}% + }% + ] + \tl_if_empty:NF \l__gzt_people_affiliation_tl + {% + \mbox{}% + \par% + \vspace{-2ex}% + \l__gzt_people_affiliation_tl% + } + \tl_if_empty:NF \l__gzt_people_email_tl + {% + \par% + \href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}% + } + \tl_if_empty:NF \l__gzt_people_webpage_tl + {% + \par% + \url{\l__gzt_people_webpage_tl}% + } + \tl_if_empty:NF \l__gzt_people_minibio_tl + {% + \par% + \smallskip% + \l__gzt_people_minibio_tl + } + \end{description} + \end{adjustbox} + } + }{ + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -#1- + \exp_not:V\DTLcurrentindex}% + \tl_if_empty:NF \l__gzt_people_email_tl + { + \c_space_tl(\href{mailto:\l__gzt_people_email_tl}{\nolinkurl{\l__gzt_people_email_tl}}) + } + } + } + } +} +\cs_new_protected:Nn \__gzt_reflected_text:n +{ + \begin{tikzpicture} + \tikzset{__gzt_reflect_node/.style={% + anchor=base,% + inner~sep=0,% + line~width=0,% + font=\Huge, + color=__gzt_reflected_text_color% + }% + }% + \node[__gzt_reflect_node]{#1}; + \node[scope~fading=south,opacity=0.2,yscale=-1,__gzt_reflect_node]{#1}; + \end{tikzpicture} +} +\tl_new:N \g__gzt_display_frontcover_tl% +\tl_gset:Nn \g__gzt_display_frontcover_tl {% + \bool_gset_true:N \g__gzt_frontcover_bool + \pagenumbering{roman}% + \pagestyle{__gzt_frontcover_ps}% + \pagecolor{\g__gzt_special_edition_color_tl} + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_frontcover_geometry_tl}% + \noindent% + \bool_if:NTF {\g__gzt_cover_bool} { + \hspace*{-\c__gzt_potential_layoutoffset_dim} + }{ + \hspace*{-2\c__gzt_potential_layoutoffset_dim} + } + \exp_after:wN\includegraphics\exp_after:wN[\g__gzt_frontcover_image_options_tl]{\g__gzt_frontcover_image_file_tl} + \begin{tikzpicture}[remember~picture, overlay] + \coordinate (__gzt_circle_minitoc_center) at + ([xshift=\g__gzt_minitoc_xshift_dim-\c__gzt_potential_layoutoffset_dim,yshift=\g__gzt_minitoc_yshift_dim+\c__gzt_potential_layoutoffset_dim]current~page.south~east) ; + \node[name=__gzt_circle_minitoc,shape=circle,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,text~width=\g__gzt_minitoc_circle_diameter_dim] at + (__gzt_circle_minitoc_center) {}; + \node[text~width=\g__gzt_minitoc_textwidth_dim,anchor=north~west] at + ([xshift=\c__gzt_minitoc_from_circle_xshift_dim,yshift=\c__gzt_minitoc_from_circle_yshift_dim]$ (__gzt_circle_minitoc.north)!.5!(__gzt_circle_minitoc.west) $) + { + \bool_if:NF {\g__gzt_frontcover_without_minitoc_bool} { + \large + \color{__gzt_minitoc_color} + \g__gzt_frontcover_minitoc_tl + } + }; + \bool_if:NT {\g__gzt_minitoc_help_bool} { + \fill[red] (__gzt_circle_minitoc_center) circle (2pt); + } + \end{tikzpicture} + \bool_if:NT {\g__gzt_cover_bool} { + \small + \begin{tikzpicture}[remember~picture, overlay] + \node[name=__gzt_binding_sw,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,rotate=90,anchor=west] at + ([xshift=0.45\c__gzt_potential_bindingoffset_dim,yshift=15mm+\c__gzt_potential_layoutoffset_dim]current~page.south~west) { + \No + \bool_if:NTF {\g__gzt_special_edition_bool} { + \c__gzt_special_edition_string_tl + }{ + \int_use:N\g__gzt_issue_number_int + } + }; + \node[name=__gzt_binding_w,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,rotate=90] at + ([xshift=0.45\c__gzt_potential_bindingoffset_dim]current~page.west) { + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_if_exist:NTF \g__gzt_special_edition_short_title_tl {% + \g__gzt_special_edition_short_title_tl + }{ + \g__gzt_special_edition_title_tl + } + }{ + \text_uppercase:n {\c__gzt_journal_title_string_tl} + } + }; + \node[name=__gzt_binding_nw,inner~sep=\c_zero_dim,fill=\g__gzt_special_edition_color_tl,rotate=90,anchor=east] at + ([xshift=0.45\c__gzt_potential_bindingoffset_dim,yshift=-15mm-\c__gzt_potential_layoutoffset_dim]current~page.north~west) { + \l__gzt_uppercased_date_format\displaydate{__gzt_date} + }; + \end{tikzpicture} + } + \vfill% + \noindent% + \hspace*{10mm}% + \hspace*{-\c__gzt_potential_layoutoffset_dim} + \includegraphics[height=22.5mm]{\c__gzt_smf_logo_file_string_tl}% + \bool_if:NT {\g__gzt_special_edition_bool} { + \hfill + \includegraphics[scale=1.2]{gzt-logo} + \hspace*{10mm} + } + % \vfill% + \clearpage% + \bool_gset_false:N \g__gzt_frontcover_bool + \nopagecolor +} +\tl_new:N \g__gzt_display_inside_frontcover_tl% +\tl_gset:Nn \g__gzt_display_inside_frontcover_tl {% + \bool_gset_true:N \g__gzt_inside_frontcover_bool% + \pagestyle{__gzt_inside_frontcover_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_inside_cover_geometry_tl}% + \small% + \setlength{\columnseprule}{2pt} + \renewcommand{\columnseprulecolor}{\color{white}} + \begin{__gzt_inside_cover_tcb}[__gzt_tcb_inside_frontcover_style] + \begin{multicols}{2} + \setlength{\columnsep}{1mm} + \bool_if:NTF {\g__gzt_special_edition_bool} { + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \__gzt_display_people_by_role:n {editor} + \end{description} + }{% + \begin{description}[leftmargin=1em] + \item[\c__gzt_editors_in_chief_string_tl] \ + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \__gzt_display_people_by_role:n {editorinchief} + \end{description} + \bigskip + \par + \item[\c__gzt_editors_string_tl] \ + \begin{description}[leftmargin=1em,style=nextline,labelindent=\c_zero_dim] + \__gzt_display_people_by_role:n {editor} + \end{description} + \end{description} + } + \end{multicols} + \setlength{\columnseprule}{1pt} + \tcblower + \begin{tabular}{@{}m{.75\c__gzt_inside_cover_box_width_dim}@{}m{.2\c__gzt_inside_cover_box_width_dim-2\tabcolsep}@{}} + \begin{description}[leftmargin=1em] + \item[\c__gzt_editorial_secretariat_string_tl{}~:] \ \par% + \l__gzt_journal_publisher_tl% + % \par% + \c_space_tl\textendash{}\c_space_tl% + \__gzt_display_people_by_role:n { secretary }\par + \l__gzt_journal_address_tl\par% + \c__gzt_phone_string_tl{}~:~\l__gzt_journal_phone_tl{} \c_space_tl\textendash{}\c_space_tl + \c__gzt_fax_string_tl{}~:~\l__gzt_journal_fax_tl\par% + \href{mailto:\l__gzt_journal_email_tl}{\nolinkurl{\l__gzt_journal_email_tl}}% + % \newline% + \c_space_tl\textendash{}\c_space_tl + \url{\l__gzt_journal_url_tl} + \item[\c__gzt_publishingdirector_string_tl{}~:] + \__gzt_display_people_by_role:n { president } + \item[\c__gzt_issn_string_tl{}~:] \l__gzt_journal_issn_tl + \tl_if_empty:NF \l__gzt_journal_isbn_tl + {% + \item[\c__gzt_isbn_string_tl{}~:] \l__gzt_journal_isbn_tl + } + \bool_if:NT {\g__gzt_no_inside_backcover_bool} { + \item[\c__gzt_latexclass_string_tl{}~:] + \__gzt_display_people_by_role:n { classdesigner } + \item[\c__gzt_artistic_director_string_tl{}~:] + \__gzt_display_people_by_role:n { graphicdesigner } + \item[\c__gzt_printer_string_tl{}~:] \g__gzt_printer_text_tl + } + \end{description} + \bool_if:NT {\g__gzt_no_inside_backcover_bool} { + \g__gzt_font_designer_text_tl + } + & + \hspace*{\fill}% + \includegraphics[height=20mm]{\c__gzt_smf_logo_file_string_tl}% + \end{tabular} + % \\ + % \c__gzt_font_string_tl + \bigskip + \tl_if_empty:NF \g__gzt_about_frontcover_tl + {% + \\ + \begin{adjustbox}{valign=t,minipage=.75\c__gzt_inside_cover_box_width_dim+.2\c__gzt_inside_cover_box_width_dim-2\tabcolsep} + \begin{description}[leftmargin=1em,font=\color{__gzt_about_frontcover_title_color}] + \item[\g__gzt_about_frontcover_string_tl] \g__gzt_about_frontcover_tl + \bool_if:NT {\g__gzt_credit_frontcover_bool} { + \c_space_tl(\c__gzt_credit_frontcover_string_tl{}~:~% + \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{frontcovercredit}]{people}{% + \l__gzt_firstlastname_tl=first-last-name% + ,\l__gzt_people_role_tl=role% + }{% + \__gzt_citeauthor_no_firstinits:n + {\c__gzt_issue_bib_key_tl -frontcovercredit- \exp_not:V\DTLcurrentindex}% + }% + ).% + } + \end{description} + \end{adjustbox} + } + \end{__gzt_inside_cover_tcb} + \clearpage% + \pagenumbering{arabic}% + \bool_gset_false:N \g__gzt_inside_frontcover_bool +} +\tl_new:N \g__gzt_display_inside_backcover_tl% +\tl_gset:Nn \g__gzt_display_inside_backcover_tl {% + \bool_gset_true:N \g__gzt_inside_backcover_bool% + \cleardoublepage% + \pagestyle{__gzt_inside_backcover_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_inside_cover_geometry_tl}% + \bool_if:NTF {\g__gzt_no_inside_backcover_bool} { + \hbox{} + }{% + \small% + \begin{__gzt_inside_cover_tcb}[__gzt_tcb_inside_backcover_style] + \bool_if:NF {\g__gzt_special_edition_bool} { + % \begin{multicols}{2} + % \setlength{\columnsep}{1mm} + \file_if_exist_input:n {\c__gzt_authors_instructions_file_tl} + % \end{multicols} + % \setlength{\columnseprule}{1pt} + \tcblower + } + \begin{description}[leftmargin=1em] + \item[\c__gzt_latexclass_string_tl{}~:] + \__gzt_display_people_by_role:n { classdesigner } + \item[\c__gzt_artistic_director_string_tl{}~:] + \__gzt_display_people_by_role:n { graphicdesigner } + \item[\c__gzt_printer_string_tl{}~:] \g__gzt_printer_text_tl + \end{description} + \g__gzt_font_designer_text_tl + \end{__gzt_inside_cover_tcb} + } + \bool_gset_false:N \g__gzt_inside_backcover_bool +} +\tl_new:N \g__gzt_display_backcover_tl% +\tl_gset:Nn \g__gzt_display_backcover_tl {% + \bool_gset_true:N \g__gzt_backcover_bool + \pagestyle{__gzt_backcover_ps}% + \pagecolor{\g__gzt_special_edition_color_tl} + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_backcover_geometry_tl}% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \mbox{} + \vfill + \clist_map_inline:Nn \c__gzt__graphics_extensions_clist{ + \file_if_exist:nT {\c__gzt_issue_images_path_string_tl/\g__gzt_special_edition_backcover_image_tl.#1} { + \begin{center} + \includegraphics[width=.25\linewidth]{\g__gzt_special_edition_backcover_image_tl} + \end{center} + \bigskip + \clist_map_break: + } + } + \group_begin: + \leftskip.125\linewidth + \rightskip\leftskip + \file_if_exist_input:nF {\c__gzt_special_edition_backcover_page_file_string_tl} + {% + \c_empty_box + } + \par + \group_end: + \vfill + \clist_if_empty:NF \g__gzt_special_edition_logos_clist { + \vfill + \noindent + \clist_map_inline:Nn \g__gzt_special_edition_logos_clist { + \hfill + \includegraphics[height=2cm]{#1} + \hfill + } + \mbox{} + } + }{ + \file_if_exist_input:nF {\c__gzt_backcover_page_file_string_tl} + {% + \hbox{} + } + } +} +\NewDocumentCommand \editorinchief {ommm} +{ + \int_incr:N \g__gzt_editors_in_chief_int + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editorinchief}{} +} +\NewDocumentCommand \editor {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{editor}{} +} + +\NewDocumentCommand \president {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{president}{} +} +\NewDocumentCommand \classdesigner {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classdesigner}{} +} +\NewDocumentCommand \classmaintainer {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{classmaintainer}{} +} +\NewDocumentCommand \fontdesigner {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{fontdesigner}{} +} +\NewDocumentCommand \graphicdesigner {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{graphicdesigner}{} +} +\NewDocumentCommand \secretary {ommm} +{ + \__gzt_people:nnnnnnnn {#2}{#3}{#4}{}{}{#1}{secretary}{} +} +\NewDocumentCommand \issuesetup { m } { + \keys_set:nn { gzt/issuesetup } {frontcoverimageoptions={width=\c__gzt_frontcover_image_width_dim},#1} + \int_compare:nNnT {\g__gzt_issue_number_int}<{1} + { + \int_set:Nn \g__gzt_issue_number_int { \c__gzt_first_issue_number_int } + \msg_warning:nnn{gzt}{issue-number-needed}{number} + } + \int_compare:nNnT {\g__gzt_issue_month_int * \g__gzt_issue_year_int}<{1} + { + \int_new:N \g__gzt_issue_age_in_months_int% + \int_gset:Nn \g__gzt_issue_age_in_months_int + { + \c__gzt_first_issue_month_int + + \c__gzt_interval_in_months_int + * ( \int_use:N \g__gzt_issue_number_int - \c__gzt_first_issue_number_int ) + } + } + \int_compare:nNnT {\g__gzt_issue_month_int}<{1} + { + \int_gset:Nn \g__gzt_issue_month_int + { + \int_mod:nn { \g__gzt_issue_age_in_months_int } { 12 } + } + } + \int_compare:nNnT {\g__gzt_issue_year_int}<{1} + { + \int_new:N \g__gzt_issue_age_in_years_int% + \int_gset:Nn \g__gzt_issue_age_in_years_int + {% + \int_div_truncate:nn { \g__gzt_issue_age_in_months_int } { 12 } + }% + \int_gset:Nn \g__gzt_issue_year_int + { + \g__gzt_issue_age_in_years_int + \c__gzt_first_issue_year_int + } + }% +} +\NewDocumentCommand \specialeditionsetup { m } { + \bool_gset_true:N \g__gzt_special_edition_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \keys_set:nn { gzt/specialedition } {#1} +} +\NewDocumentCommand \moralreportsetup { m } { + \bool_gset_true:N \g__gzt_moral_report_bool + \bool_gset_true:N \g__gzt_frontcover_without_minitoc_bool + \keys_set:nn { gzt/moralreport } {#1} +} +\NewDocumentCommand \journalsetup { m } { + \keys_set:nn { gzt/journalsetup } { #1 } +} +\RenewDocumentCommand \date { mmm } { + \newdate{__gzt_president_message_date}{#1}{#2}{#3}% +} +\NewDocumentCommand \interviewee { om } { + \tl_if_empty:nT \g__gzt_title_tl { + \tl_gset:Nn \g__gzt_title_tl { + \c__gzt_interview_title_string_tl + \DeclareNameAlias{labelname}{default}\citeauthor{\c__gzt_issue_bib_key_tl -art-\int_use:N + \g__gzt_articles_int} + } + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/interviewees } { #1 } + } + \tl_set:Nn \l__gzt_people_first_last_name_tl {#2} + \__gzt_people:nVVVVnxV + {#2} + {\g__gzt_people_affiliation_tl} + {\g__gzt_people_email_tl} + {\g__gzt_people_minibio_tl} + {\g__gzt_people_photo_tl} + {} + {interviewee-art-\int_use:N \g__gzt_articles_int} + {} + % \maketitle +} +\NewDocumentCommand \academicsignature { m } { + \__gzt_display_academic_signature:n {#1} +} +\cs_new_protected:Nn \__gzt_uppercased_monthname_french:n +{ + \@orgargctr=#1\relax + \ifcase\@orgargctr + \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{% + Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}% + \or JANVIER% + \or F\'EVRIER% + \or MARS% + \or AVRIL% + \or MAI% + \or JUIN% + \or JUILLET% + \or AO\^UT% + \or SEPTEMBRE% + \or OCTOBRE% + \or NOVEMBRE% + \or D\'ECEMBRE% + \else + \PackageError{datetime}{Invalid~month~number~\the\@orgargctr}{% + Month~numbers~should~go~from~1~(janvier)~to~12~(decembre)}% + \fi +} +\newdate{__gzt_date} + {1} + {\int_use:N \g__gzt_issue_month_int} + {\int_use:N \g__gzt_issue_year_int} +\newdateformat{l__gzt_uppercased_date_format}{ + \__gzt_uppercased_monthname_french:n {\THEMONTH}~\THEYEAR +} +\AddToHook{begindocument}{% +\tl_new:N \g__gzt_bib_issue_date_tl +\tl_gset:Nn \g__gzt_bib_issue_date_tl { + \int_use:N \g__gzt_issue_year_int- + \int_compare:nNnT {\g__gzt_issue_month_int}<{10} + { + 0 + } + \int_use:N \g__gzt_issue_month_int +} + \iow_now:Nx \g__gzt_bib_out_iow {% + @periodical{\c__gzt_issue_bib_key_tl,\iow_newline: + issuetitle = {\exp_not:f\c__gzt_journal_title_string_tl},\iow_newline: + date = {\g__gzt_bib_issue_date_tl},\iow_newline: + number = \int_use:N \g__gzt_issue_number_int,\iow_newline: + % issn = {\l__gzt_journal_issn_tl},\iow_newline: + options = {skipbib}\iow_newline: + } + \iow_newline: + }% +} +\tl_new:N \g__gzt_title_tl +\RenewDocumentCommand \title { o m } { + \int_gincr:N \g__gzt_articles_int + \tl_gclear:N \g__gzt_short_title_tl + \tl_gclear:N \g__gzt_short_subtitle_tl + \bool_gset_false:N \g__gzt_title_not_in_toc_bool + % + \IfNoValueF {#1} + { + \keys_set:nn { gzt/title } { #1 } + } + \tl_gset:Nn \g__gzt_title_tl {#2} + \bool_if:nT \g__gzt_tellme_rubric_bool + { + \tl_put_left:Nx \g__gzt_title_tl {\c__gzt_tellme_extra_title_string_tl} + } + \tl_if_empty:NT \g__gzt_short_title_tl {% + \tl_gset_eq:NN \g__gzt_short_title_tl \g__gzt_title_tl + } +} +\tl_new:N \g__gzt_subtitle_tl +\NewDocumentCommand \subtitle { o m } { + \bool_gset_false:N \g__gzt_subtitle_not_in_toc_bool + % + \IfNoValueF {#1} + { + \keys_set:nn { gzt/subtitle } { #1 } + } + \tl_gset:Nn \g__gzt_subtitle_tl {#2} + \tl_if_empty:NT \g__gzt_short_subtitle_tl {% + \tl_gset_eq:NN \g__gzt_short_subtitle_tl \g__gzt_subtitle_tl + } +} +\RenewDocumentCommand \author { o m } { + \IfNoValueF {#1} + { + \keys_set:nn { gzt/authors } { #1 } + } + \tl_gset:Nn \l__gzt_people_first_last_name_tl {#2} + \__gzt_people:nVVVVnxV + {#2} + {\g__gzt_people_affiliation_tl} + {\g__gzt_people_email_tl} + {\g__gzt_people_minibio_tl} + {\g__gzt_people_photo_tl} + {} + {author-art-\int_use:N \g__gzt_articles_int} + {\g__gzt_people_webpage_tl} +} +\iow_new:N \g__gzt_bib_out_iow +\ior_new:N \g__gzt_bib_out_ior +\tl_new:N \g__gzt_bib_out_tl +\file_if_exist:nTF { \c__gzt_issue_bib_path_string_tl } +{ + \ior_open:Nn \g__gzt_bib_out_ior { \c__gzt_issue_bib_path_string_tl } + \ior_str_map_inline:Nn \g__gzt_bib_out_ior + { \tl_gput_right:Nn \g__gzt_bib_out_tl {#1 \par } } + \ior_close:N \g__gzt_bib_out_ior +}{ + \typeout{no file! rerun} +} +\iow_open:Nn \g__gzt_bib_out_iow { \c__gzt_issue_bib_path_string_tl } +\tl_new:N \g__gzt_abstract_body_tl +\NewDocumentEnvironment{abstract}{} + {\CollectAbstract} + {\endCollectAbstract} +\NewEnviron{CollectAbstract} + { + \tl_gset_eq:NN \g__gzt_abstract_body_tl \BODY + } +\tl_new:N \g__gzt_mainmatter_switch_tl% +\tl_gset:Nn \g__gzt_mainmatter_switch_tl { + \bool_gset_false:N \g__gzt_frontmatter_bool + \bool_gset_true:N \g__gzt_mainmatter_bool + \SetParskip{\c__gzt_mainmatter_parskip_skip} + \pagestyle{__gzt_mainmatter_ps}% +} +\tl_new:N \l__gzt_article_acknowledgements_tl% +\cs_new_protected:Nn \__gzt_article_acknowledgements:n +{ + \tl_set:Nn \l__gzt_article_acknowledgements_tl { #1 } +} +\cs_new_protected:Nn \__gzt_display_localtoc: +{ + \etocsettocstyle{\section*{\contentsname}}{}% + \etocsetstyle {section} + {} + {\leavevmode\leftskip 0cm\relax} + {\bfseries\normalsize\makebox[.6cm][l]{\etocnumber}% + \etocname\nobreak\hfill\nobreak% + \makebox[.5cm][r]{% + \etocpage% + }% + \par% + } + {\medskip} + \localtableofcontentswithrelativedepth{+1} +} +\NewDocumentCommand \gztlocaltableofcontents {} +{ + \__gzt_display_localtoc: {} +} +\tl_new:N \g__gzt_article_bib_key_tl% +\tl_new:N \l__gzt_people_first_last_names_tl +\tl_new:N \g__gzt_authors_first_last_names_tl% +\tl_new:N \l__gzt_interviewees_first_last_names_tl% +\tl_new:N \g__gzt_citeauthor_no_firstinits% +\tl_new:N \g__gzt_citeauthor_tl% +\tl_new:N \g__gzt_citeinterviewee_tl% +\tl_new:N \g__gzt_blx_given_first_inits_tl% +\@ifpackagelater{biblatex}{2016/01/01}{% + \tl_gset:Nn \g__gzt_blx_given_first_inits_false_tl + {% + \togglefalse{abx@bool@giveninits}% + } +}{ + \tl_set:Nn \g__gzt_blx_given_first_inits_false_tl + {% + \togglefalse{blx@firstinits}% + } +} +\cs_new_protected:Nn \__gzt_citeauthor_no_firstinits:n {% + \tl_gset:Nn \g__gzt_citeauthor_tl {% + \DeclareNameAlias{labelname}{default}% + \group_begin: + \g__gzt_blx_given_first_inits_false_tl + \citeauthor{#1} + \group_end: + }% + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{\g__gzt_citeauthor_tl}{} + }{% + \g__gzt_citeauthor_tl + }% +} +\cs_set_eq:NN \__gzt_orig_multinamedelim \multinamedelim +\cs_set_eq:NN \__gzt_orig_finalnamedelim \finalnamedelim +\cs_new_protected:Nn \__gzt_itemized_citeauthor:n +{ + \cs_set_eq:NN \multinamedelim \item + \cs_set_eq:NN \finalnamedelim \multinamedelim + \AtNextCitekey{\defcounter{maxnames}{100}} + \begin{itemize}[label=\textbullet,noitemsep] + \item \citeauthor{#1} + \end{itemize} + \cs_set_eq:NN \multinamedelim \__gzt_orig_multinamedelim + \cs_set_eq:NN \finalnamedelim \__gzt_orig_finalnamedelim +} +\tl_new:N \l__gzt_bullet_and_rule_tl +\tl_new:N \l__gzt_authors_box_tl +\tl_new:N \l__gzt_abstract_box_tl +\tl_new:N \l__gzt_bullet_and_rule_odd_tl +\tl_new:N \l__gzt_bullet_and_rule_even_tl +\tl_new:N \l__gzt_title_box_tl +\RenewDocumentCommand \maketitle { s } { + \FloatBarrier% +\int_gincr:N \g__gzt_item_in_rubric_int +\dim_set_eq:NN \parindent \c__gzt_original_parindent_dim +\glsresetall +\setcounter{section}{0} +\setcounter{figure}{0} +\setcounter{table}{0} +\setcounter{footnote}{0} +\setcounter{equation}{0} +\setcounter{theorem}{0} +\setcounter{corollary}{0} +\setcounter{conjecture}{0} +\setcounter{proposition}{0} +\setcounter{lemma}{0} +\setcounter{axiom}{0} +\setcounter{definition}{0} +\setcounter{remark}{0} +\setcounter{example}{0} +\setcounter{notation}{0} +\tl_gset:Nn \g__gzt_article_bib_key_tl {% + \c__gzt_issue_bib_key_tl + -art- + \int_use:N \g__gzt_articles_int +} +\DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{author-art-\int_use:N \g__gzt_articles_int}]{people}{% + \l__gzt_people_first_last_name_tl=first-last-name% + ,\l__gzt_people_role_tl=role% +}{% + \tl_if_in:NnT \l__gzt_people_role_tl { author } { + \DTLiffirstrow{% + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {\exp_not:V\l__gzt_people_first_last_name_tl} + }{ + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {~and~\exp_not:V\l__gzt_people_first_last_name_tl} + } + } +} +\DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{interviewee-art-\int_use:N \g__gzt_articles_int}]{people}{% + \l__gzt_people_first_last_name_tl=first-last-name% + ,\l__gzt_people_role_tl=role% +}{% + \tl_if_in:NnT \l__gzt_people_role_tl { interviewee } { + \DTLiffirstrow{% + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {\exp_not:V\l__gzt_people_first_last_name_tl} + }{ + \tl_put_right:Nx + \l__gzt_people_first_last_names_tl + {~and~\exp_not:V\l__gzt_people_first_last_name_tl} + } + } +} +\tl_if_empty:NF \g__gzt_title_tl {% + \iow_now:Nx \g__gzt_bib_out_iow {% + @article{ + \g__gzt_article_bib_key_tl, + \iow_newline: + title={\exp_not:V\g__gzt_title_tl}, + \iow_newline: + \tl_if_empty:NF \g__gzt_subtitle_tl {% + subtitle={\exp_not:V\g__gzt_subtitle_tl}, + \iow_newline: + } + \tl_if_eq:NNF { \g__gzt_short_title_tl } { \g__gzt_title_tl } {% + shorttitle={\exp_not:V\g__gzt_short_title_tl}, + \iow_newline: + }% + \tl_if_empty:NF \l__gzt_people_first_last_names_tl + { + author={\exp_not:V\l__gzt_people_first_last_names_tl}, + \iow_newline: + } + options={skipbib}, + \iow_newline: + crossref = {\c__gzt_issue_bib_key_tl} + } + \iow_newline: + }% +}% +\tl_set:Nn \l__gzt_bullet_and_rule_odd_tl +{% + \begin{tikzpicture}[remember~picture,overlay] + \draw[fill=__gzt_circlerule_color,draw=__gzt_circlerule_color,line~width=0.7mm] + ([xshift=-\c__gzt_innermargin_dim-\c__gzt_potential_layoutoffset_dim]0,0 -| current~page.west) -- (\linewidth,0);% + \fill[__gzt_circlerule_color] (\linewidth-2\pgflinewidth,0) circle [radius=2.75mm]; + \end{tikzpicture}% +}% +\tl_set:Nn \l__gzt_bullet_and_rule_even_tl +{% + \begin{tikzpicture}[remember~picture,overlay] + \draw[fill=__gzt_circlerule_color,draw=__gzt_circlerule_color,line~width=0.7mm] + (0,0 -| current~page.east) -- (0,0);% + \fill[__gzt_circlerule_color] (0,0) circle [radius=2.75mm]; + \end{tikzpicture}% +}% +\tl_set:Nn \l__gzt_title_box_tl +{% + \noindent% + \hspace*{18mm}% + \begin{adjustbox}{minipage=\linewidth-18mm,valign=t} + \raggedright% + \color{__gzt_article_title_color}% + \fontsize{20}{25}\selectfont% + \bfseries% + \g__gzt_title_tl + \tl_if_empty:NF \g__gzt_subtitle_tl {% + \par% + \g__gzt_subtitle_tl + } + \phantomsection + \par% + \bool_if:NTF {\g__gzt_title_not_in_toc_bool} { + \bookmark[page=\thepage,level=chapter]{\g__gzt_short_title_tl} + }{ + \addcontentsline{toc}{chapter}{% + \tl_if_empty:NTF \g__gzt_short_title_tl {% + \g__gzt_title_tl% + }{ + \g__gzt_short_title_tl% + } + \bool_if:NF {\g__gzt_subtitle_not_in_toc_bool} { + \bool_if:nF { \tl_if_empty_p:N \g__gzt_short_subtitle_tl || \g__gzt_interview_rubric_bool || \g__gzt_rearviewmirror_rubric_bool } + { + \c_space_tl\textendash{}\c_space_tl\g__gzt_short_subtitle_tl + } + } + \bool_if:nF { \tl_if_empty_p:N \l__gzt_people_first_last_names_tl || \g__gzt_interview_rubric_bool || \g__gzt_rearviewmirror_rubric_bool } + { + \textsl{ + \cs_if_exist:cTF {texorpdfstring} + { + \texorpdfstring{% + \c_space_tl\textendash{}\c_space_tl\citeauthor{\g__gzt_article_bib_key_tl} + }{} + }{% + \c_space_tl\textendash{}\c_space_tl\citeauthor{\g__gzt_article_bib_key_tl} + }% + } + } + } + } + \end{adjustbox} +} + \dim_gset:Nn \g__gzt_abstract_box_width_dim {0.75\linewidth} + % \bool_if:nT { \tl_if_empty_p:N \l__gzt_people_first_last_names_tl } + % { + % \dim_gset:Nn \g__gzt_abstract_box_width_dim {\linewidth} + % } + \tl_set:Nn \l__gzt_abstract_box_tl + {% + \begin{adjustbox}{minipage=\g__gzt_abstract_box_width_dim,max~width=\g__gzt_abstract_box_width_dim,valign=t} + \mbox{} + \tl_if_exist:NT \g__gzt_abstract_body_tl + {% + \raggedright% + \bfseries% + \color{__gzt_article_abstract_color}% + \g__gzt_abstract_body_tl + }% + \end{adjustbox} + }% + \tl_set:Nn \l__gzt_authors_box_tl + {% + \begin{adjustbox}{minipage=0.3\linewidth,min~width=0.3\linewidth,valign=t} + \bool_if:nTF { \tl_if_empty_p:N \l__gzt_people_first_last_names_tl || \g__gzt_interview_rubric_bool } + { + \mbox{} + } + { + \color{__gzt_people_color}% + \__gzt_itemized_citeauthor:n {\g__gzt_article_bib_key_tl} + } + \end{adjustbox} + } + \bool_if:nTF { + \int_compare_p:nNn { \g__gzt_item_in_rubric_int } = { 1 } + } + { + \mbox{} + \par + \bool_if:nTF { + \tl_if_empty_p:N \g__gzt_rubric_abstract_tl + }{ + \xleaders\vbox { + \bigskip% + }% + \vskip\bigskipamount% + }{ + \xleaders\vbox { + \smallskip% + }% + \vskip\smallskipamount% + } + } + { + \bool_if:NTF {\g__gzt_previous_article_with_bibliography_or_minibio_bool} + { + \xleaders\vbox { + \mbox{} + \par + \medskip% + }% + \vskip\medskipamount% + } + { + \xleaders\vbox { + \mbox{} + \par + \smallskip% + }% + \vskip\smallskipamount% + } + } + \bool_gset_false:N \g__gzt_previous_article_with_bibliography_or_minibio_bool +\hypersetup{pdftitle=\g__gzt_short_title_tl,pdfauthor=\l__gzt_people_first_last_names_tl} + \l__gzt_title_box_tl + \normalsize% + \nopagebreak[3] + \bool_if:nF { \tl_if_empty_p:N \g__gzt_abstract_body_tl && (\tl_if_empty_p:N \l__gzt_people_first_last_names_tl || \g__gzt_interview_rubric_bool || \g__gzt_rearviewmirror_rubric_bool)} + {% + \par% + \bigskip + \bigskip + \large% + \mbox{}% + \checkoddpage% + \ifoddpage% + \l__gzt_abstract_box_tl + \hspace*{11mm}% + \l__gzt_authors_box_tl + \else% + \hspace*{-.85\c__gzt_outermargin_dim}% + \l__gzt_authors_box_tl + \hspace*{11mm}% + \l__gzt_abstract_box_tl + \fi% + } + \tl_gclear:N \g__gzt_title_tl + \tl_gclear:N \g__gzt_subtitle_tl + \tl_gclear:N \g__gzt_abstract_body_tl + \normalsize% + \bigskip + \tl_if_empty:NF \g__gzt_abstract_body_tl + % {% + % \tl_if_empty:NF \l__gzt_people_first_last_names_tl + % {% + % \bigskip + % } + % } + { + \bigskip + } + \bool_if:nT \g__gzt_interview_rubric_bool + { + \dim_zero:N \parindent + % \tl_if_empty:NF \l__gzt_people_photo_tl + % { + % \begin{adjustbox}{center} + % \includegraphics[height=50mm]{\l__gzt_people_photo_tl} + % \end{adjustbox} + % } + } + \color{__gzt_default_text_color}% + \IfBooleanF {#1}% + { + \bool_if:nF { \g__gzt_multicols_bool || \g__gzt_rearviewmirror_rubric_bool } + { + \begin{multicols}{2}% + } + } + } +\file_if_exist:nT { \c__gzt_acronyms_file_string_tl } {% + \AddToHook{begindocument/before}{\loadglsentries{\c__gzt_acronyms_file_string_tl}} +} +\tl_new:N \g__gzt_boxed_issue_number_tl% +\tl_gset:Nn \g__gzt_boxed_issue_number_tl {% + \tcbox{\Large\No\g__gzt_issue_number_int} +} +\cs_new_protected:Nn \__gzt_boxed_issue_number:nn +{ + \noindent% + \raisebox{\baselineskip}{% + \tl_if_empty:nF {#1} {% + \makebox[\c_zero_dim][r]{% + % \hspace*{\l__gzt_thumbnail_width_dim}% + \begin{adjustbox}{valign=t} + \includegraphics[width=\l__gzt_thumbnail_width_dim]{#1}% + \end{adjustbox}% + }% + }% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tl_set:Nn \l_tmpa_tl {\c__gzt_short_special_edition_string_tl} + }{ + \tl_set:Nn \l_tmpa_tl {\No\int_use:N\g__gzt_issue_number_int} + } + \begin{adjustbox}{valign=t} + \begin{tcolorbox}[% + enhanced,% + title=\l_tmpa_tl,%\int_use:N \g__gzt_issue_number_int,% + fonttitle=\Large,% + colback=white,% + sharp~corners=all,% + height=33mm,% + boxrule=\c_zero_dim,% + % frame~hidden,% + attach~boxed~title~to~top~left,% + tikznode~boxed~title={minimum~width=\c__gzt_boxed_issue_number_width_dim},% + boxed~title~style={% + size=minimal,% + height=\c__gzt_boxed_issue_number_height_dim,% + center~upper,% + before={},% + colback=__gzt_boxed_issue_number_bg_color,% + sharp~corners=all,% + frame~hidden,% + valign=center,% + }% + ] + \__gzt_reflected_text:n { #2 }% + \end{tcolorbox} + \end{adjustbox}% + }% + \par% +} +\cs_new_protected:Nn \__gzt_before_frontmatter_stuff: +{ + \bool_gset_true:N \g__gzt_frontmatter_bool% + \pagestyle{__gzt_frontmatter_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_front_matter_geometry_tl}% +} +\cs_new_protected:Nn \__gzt_after_frontmatter_stuff: +{ + \color{__gzt_default_text_color} + \normalsize% + \clearpage% + \bool_gset_false:N \g__gzt_frontmatter_bool% +} +\cs_new_protected:Nn \__gzt_before_editorial_presidentmessage:nn +{ + \__gzt_before_frontmatter_stuff: {} + \__gzt_boxed_issue_number:nn {#1}{#2} + \color{__gzt_frontmatter_text_color}% + \fontsize{11}{13.6}\selectfont + \RaggedRight +} +\cs_new_protected:Nn \__gzt_after_editorial_presidentmessage: +{ + \justifying + \bigskip + \par +} +\cs_new_protected:Nn \__gzt_before_display_editorial:n +{ + \__gzt_before_editorial_presidentmessage:nn {}{#1} +} +\cs_new_protected:Nn \__gzt_after_display_editorial: +{ + \__gzt_after_editorial_presidentmessage: {} + \hspace*{\fill}% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \AtNextCitekey{\defcounter{maxnames}{100}} + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -editorinchief- 1} + }{ + \DTLforeach*[\DTLiseq{\l__gzt_people_role_tl}{editorinchief}]{people}{% + \l__gzt_firstlastname_tl=first-last-name% + ,\l__gzt_people_role_tl=role% + }{% + \__gzt_citeauthor_no_firstinits:n {\c__gzt_issue_bib_key_tl -editorinchief- \exp_not:V\DTLcurrentindex}% + } + } + % + \__gzt_after_frontmatter_stuff: {} +} +\cs_new_protected:Nn \__gzt_display_editorial:n +{ + \__gzt_before_display_editorial:n {#1} + \file_if_exist_input:nF {\c__gzt_editorial_file_string_tl} + {% + \msg_error:nn { gzt } { editorial-file-missing } + } + \__gzt_after_display_editorial: {} +} +\AddToHook{begindocument/before}{% + \tl_set_eq:NN \g__gzt_editorial_heading_tl \c__gzt_editorial_heading_string_tl + \bool_if:NT {\g__gzt_special_edition_bool} { + \tl_if_empty:NF \g__gzt_special_edition_editorial_heading_tl {% + \tl_set_eq:NN \g__gzt_editorial_heading_tl \g__gzt_special_edition_editorial_heading_tl + } + } + \NewDocumentCommand \editorial { O{\g__gzt_editorial_heading_tl} } + { + \bool_if:NF {\g__gzt_for_authors_bool} { + \__gzt_display_editorial:n {#1} + } + } +} +\cs_new_protected:Nn \__gzt_before_display_presidentmessage: +{ + \__gzt_before_editorial_presidentmessage:nn {\c__gzt_smf_logo_file_string_tl}{\c__gzt_president_message_string_tl} + \phantomsection + \par% + \addcontentsline{toc}{part}{\g__gzt_smf_short_string_tl}% + \addcontentsline{toc}{chapter}{\c__gzt_president_message_string_tl}% +} +\cs_new_protected:Nn \__gzt_after_display_presidentmessage: +{ + \__gzt_after_editorial_presidentmessage: {} + % + \hspace*{\fill}% + \c__gzt_president_message_date_string_tl% + \displaydate{__gzt_president_message_date}% + \\[1.5mm] + \hspace*{\fill}% + \__gzt_display_people_by_role:n { president }% + ,\c_space_tl + \c__gzt_president_signatory_string_tl + % + \__gzt_after_frontmatter_stuff: {} +} +\cs_new_protected:Nn \__gzt_display_president_message: +{ + \__gzt_before_display_presidentmessage: {} + \file_input:n {\c__gzt_president_message_file_string_tl} + \__gzt_after_display_presidentmessage: {} +} +\NewDocumentCommand \presidentmessage {} +{ + \bool_if:NF {\g__gzt_for_authors_bool} { + \__gzt_display_president_message: {} + } +} +\titleformat{\chapter}% +[block] +{\Huge\bfseries} +{} +{\c_zero_dim} +{\scshape}% +\titleformat{\section} +{% + \raggedright% + \bfseries% + \color{__gzt_section_color} +} +{\fontsize{20}{15}\selectfont\thesection.\enspace} +{-3pt} +{\fontsize{13}{15}\selectfont} +\titleformat{\subsection} +{% + \fontsize{11}{16}\selectfont% + \bfseries% + \color{__gzt_subsection_color}% +} +{\thesubsection\ \textendash{}\ } +{\c_zero_dim} +{} +\titleformat{\subsubsection} +{% + \fontsize{11}{16}\selectfont% + \bfseries% + \color{__gzt_subsubsection_color}% +} +{} +{\c_zero_dim} +{} +\AddToHook{begindocument}{% + \graphicspath{{\c__gzt_issue_images_path_string_tl//}{../\c__gzt_issue_images_path_string_tl//}} + % \glsdisablehyper + \g__gzt_mainmatter_switch_tl + % \bool_gset_false:N \g__gzt_frontmatter_bool + % \bool_gset_true:N \g__gzt_mainmatter_bool + % \SetParskip{\c__gzt_mainmatter_parskip_skip} + % \pagestyle{__gzt_mainmatter_ps}% + \exp_after:wN\newgeometry\exp_after:wN{\c__gzt_main_geometry_tl}% +} +\tl_new:N \g__gzt_background_footer_tl +\tl_gset:Nn \g__gzt_background_footer_tl {% + \draw [__gzt_footer_bg_color,fill] + (current~page.south~west) + rectangle ([yshift=\c__gzt_footer_background_height_dim]current~page.south~east) + ; +} +\tl_new:N \l__gzt_frontmatter_head_text_tl +\tl_set:Nn \l__gzt_frontmatter_head_text_tl {% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \g__gzt_special_edition_title_tl + }{ + \includegraphics{gzt-logo} + } +} +\tl_new:N \g__gzt_frontmatter_page_headrule_tl +\tl_gset:Nn \g__gzt_frontmatter_page_headrule_tl {% + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west) + -- + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east) + ;% +} +\tl_new:N \g__gzt_frontmatter_headtext_tl +\tl_gset:Nn \g__gzt_frontmatter_headtext_tl {% + \mbox{}% + \checkoddpage% + \ifoddpage% + \node[ + anchor=north~east,% + align=center,% + fill=white,% + inner~xsep=3.5mm,% + outer~sep=\c_zero_dim,% + ] at + ([% + xshift=\c__gzt_frontmatter_headtext_o_xshift_dim,% + yshift=\c__gzt_frontmatter_headtext_yshift_dim% + ]current~page.north~east) {% + \Large + \bool_if:NT {\g__gzt_special_edition_bool} { + \c__gzt_short_special_edition_string_tl + \c_space_tl + } + \l__gzt_frontmatter_head_text_tl + }% + ; + \else% + \node[% + anchor=north~west,% + align=center,% + fill=white,% + inner~xsep=3.5mm,% + outer~sep=\c_zero_dim,% + ] at + ([% + xshift=\c__gzt_frontmatter_headtext_e_xshift_dim,% + yshift=\c__gzt_frontmatter_headtext_yshift_dim% + ]current~page.north~west) {% + \Large + \bool_if:NT {\g__gzt_special_edition_bool} { + \c__gzt_short_special_edition_string_tl + \c_space_tl + } + \l__gzt_frontmatter_head_text_tl + }% + ; + \fi% +} +\tl_new:N \g__gzt_mainmatter_oddpage_headrule_tl +\tl_gset:Nn \g__gzt_mainmatter_oddpage_headrule_tl {% + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~east) + -- + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~west -| current~page.north~west) + ; +} +\tl_new:N \g__gzt_mainmatter_evenpage_headrule_tl +\tl_gset:Nn \g__gzt_mainmatter_evenpage_headrule_tl {% + \draw [__gzt_headrule_color,line~width=\c__gzt_header_line_width_dim] + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~west) + -- + ([yshift=\c__gzt_header_line_yshift_dim]current~page~header~area.south~east -| current~page.north~east) + ; +} +\ExplSyntaxOff +\tcbuselibrary{breakable,skins,hooks,xparse,theorems,listingsutf8} +\usetikzlibrary{babel,fadings,positioning,calc} +\tcbset{% + new/blend into/tables-/.style={% + use counter*=table,% + /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@table}}}},% + new/blend into/figures-/.style={% + use counter*=figure,% + /tcb/code={\appto\tcb@new@colopt{,before title={\fnum@figure}}}},% +} +\ExplSyntaxOn +\newpagestyle{__gzt_frontmatter_ps}[]{% + \widenhead*{\c__gzt_front_matter_extra_innermargin_dim}{\c__gzt_front_matter_extra_outermargin_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + ]% + []% + []% + {}% + { + \tikz[remember~picture,overlay] {% + \g__gzt_frontmatter_page_headrule_tl% + \g__gzt_frontmatter_headtext_tl% + }% + }% + {}% + % + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + [ +\c__gzt_compiled_string_tl + ]% + { +\c__gzt_compiled_string_tl + }% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% +}% +\AddToHook{shipout/background}{ + \bool_if:NF {\g__gzt_advertisement_bool} { + \tikz[remember~picture,overlay] { \g__gzt_background_footer_tl }% + }% +} +\newpagestyle{__gzt_mainmatter_ps}[]{% + \widenhead{\c_zero_dim}{\c_zero_dim} + \sethead% + [ + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_evenpage_headrule_tl} + ]% + [% + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \large\bfseries\scshape\color{__gzt_head_text_color}\g__gzt_rubric_title_tl% + }% + ]% + []% + {}% + {% + \bool_if:nF { + \g__gzt_rearviewmirror_rubric_bool || \g__gzt_books_rubric_bool + }{ + \adjustbox{raise={\c__gzt_header_yshift_dim}{\height}}{% + \bfseries\color{__gzt_head_text_color}\g__gzt_short_title_tl% + } + } + }% + { + \tikz[remember~picture,overlay] {\g__gzt_mainmatter_oddpage_headrule_tl} + }% + % +\bool_if:nTF { \g__gzt_for_authors_bool } { + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + [\c__gzt_compiled_string_tl]% + {\c__gzt_compiled_string_tl}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% + }{ + \setfoot% + [\c__gzt_footer_size_font_tl\thepage]% + [% + \c__gzt_footer_string_tl + ]% + []% + {}% + {% + \c__gzt_footer_string_tl% + }% + {\c__gzt_footer_size_font_tl\thepage}% + } +} +\NewDocumentCommand \acknowledgements { +m } { + \__gzt_article_acknowledgements:n {#1}% +} +\NewDocumentCommand \printminibios {} { + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + \FloatBarrier% + \begin{__gzt_minibiographies_acknowledgements_tcbox} + \__gzt_display_people_by_role:n { author-art-\int_use:N \g__gzt_articles_int } + \DTLsavelastrowcount{\__gzt_authors_number} + \tl_if_empty:NF \l__gzt_article_acknowledgements_tl + {% + \footnotesize + \int_compare:nNnT {\__gzt_authors_number}>{0} + { + \par% + \bigskip% + } + \begin{adjustbox}{valign=t,minipage=\linewidth} + \color{__gzt_acknowledgements_color}% + \setlength{\parskip}{\c__gzt_mainmatter_parskip_skip} + \l__gzt_article_acknowledgements_tl + \end{adjustbox} + } + \bool_gset_true:N \g__gzt_previous_article_with_bibliography_or_minibio_bool + \end{__gzt_minibiographies_acknowledgements_tcbox} +} +\let\printauthorsdetails\printminibios +\cs_set_eq:NN \__gzt_printbibliography \printbibliography +\RenewDocumentCommand \printbibliography { s O{} } { + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + \FloatBarrier% + \begin{__gzt_bibliography_tcbox} + \__gzt_printbibliography[heading=subbibliography,resetnumbers,#2] + \end{__gzt_bibliography_tcbox} + % + \IfBooleanF {#1} + { + \nopagebreak[0] + \printauthorsdetails + } +} +\deftranslation[to=French]{__gzt_century}{si\`ecle}% +\deftranslation[to=English]{__gzt_century}{century}% +\deftranslation[to=French]{__gzt_first}{\ier}% +\deftranslation[to=English]{__gzt_first}{\up{st}\xspace}% +\deftranslation[to=French]{__gzt_nth}{\ieme}% +\deftranslation[to=English]{__gzt_nth}{\up{th}\xspace}% +\deftranslation[to=French]{__gzt_bc}{avant~J.-C}% +\deftranslation[to=English]{__gzt_bc}{BC}% +\cs_new_protected:Nn \__gzt_century:n +{ + \textsc{ + \int_to_roman:n {\int_abs:n {#1}} + }% + \int_compare:nNnTF { \int_abs:n {#1} } > { 1 }{\translate{__gzt_nth}}{\translate{__gzt_first}} +} +\cs_new_protected:Nn \__gzt_century_suffix:n +{ + \translate{__gzt_century}% + \int_compare:nNnT { #1 } < { 0 }{ + \c_space_tl + \translate{__gzt_bc} + \IfLanguageName {french}{ + \@ifnextchar.% + { + }{ + .\xspace + }% + } + }{ + } +} +\DeclareCiteCommand{\citeinterviewee}{}{% + \printnames{interviewee}% +} +{}{} +\DeclareCiteCommand{\citereviewer}{}{% + \g__gzt_blx_given_first_inits_false_tl + \printnames{reviewer}% +} +{}{} +\DeclareCiteCommand{\citereviewerinstitution}{}{% + \printlist{reviewerinstitution}% +} +{}{} +\DeclareCiteCommand{\__gzt_cite_public_price}{}{% + \printfield{publicprice}% +} +{}{} +\DeclareCiteCommand{\__gzt_cite_smf_price}{}{% + \printfield{smfprice}% +} +{}{} +\DeclareCiteCommand{\citecopublisher}{}{% + \printlist{copublisher}% +} +{}{} +\DeclareCiteCommand{\citefrenchabstract}{}{% + \printfield{frenchabstract}% +} +{}{} +\DeclareCiteCommand{\__gzt_cite_englishabstract}{}{% + \printfield{englishabstract}% +} +{}{} +\NewDocumentCommand \email {m} +{ + \__gzt_email:n {#1}% +} +\cs_new_protected:Nn \__gzt_question:n +{ + \int_incr:N \g__gzt_question_int + {% + \par% + \bigskip% + \color{__gzt_question_color} + #1% + \par% + }% +} +\NewDocumentCommand \question {m} +{ + \__gzt_question:n {#1}% +} +\NewDocumentCommand \smf { s } { + \IfBooleanTF {#1} + { + \g__gzt_smf_string_tl + } + { + \g__gzt_smf_short_string_tl + } + \xspace +} +\DeclareExpandableDocumentCommand \surname { m } { + \textsc{#1} +} +\NewDocumentCommand \cad { s } { + \IfBooleanTF {#1} + { + \c__gzt_cad_string_tl + } + { + \c__gzt_cad_short_string_tl + } + \xspace +} +\NewDocumentCommand \Cad { s } { + \IfBooleanTF {#1} + { + \c__gzt_Cad_string_tl + } + { + \c__gzt_Cad_short_string_tl + } + \xspace +} +\NewDocumentCommand \gzt { s } { + \IfBooleanTF {#1} + { + \l__gzt_gzt_string_tl + } + { + \l__gzt_gzt_short_string_tl + } + \xspace +} +\NewDocumentCommand \gztcl {} +{% + \textsl{\texttt{\c__gzt_class_name_tl}} + \xspace +} +\NewDocumentCommand \gztarticlecl {} +{% + \textsl{\texttt{\c__gzt_article_class_name_tl}} + \xspace +} +\NewDocumentCommand \century { s m } {% + \__gzt_century:n {#2}% + \IfBooleanTF {#1} + { + \int_compare:nNnT { #2 } < { 0 }{ + \__gzt_century_suffix:n {#2}% + } + } + { + \__gzt_century_suffix:n {#2}% + } +} +\NewDocumentCommand \aside { s m } {% + \IfBooleanTF {#1} + { + \c__gzt_aside_string_tl{}~#2 + } + { + \c__gzt_aside_string_tl{}~#2~\c__gzt_aside_string_tl + } +} +\tl_new:N \g__gzt_font_designer_text_tl% +\cs_new_protected:Nn \__gzt_font_designer_text:n +{ + \tl_gset:Nn \g__gzt_font_designer_text_tl { #1 } +} +\NewDocumentCommand \fontdesignertext {m} +{ + \__gzt_font_designer_text:n {#1}% +} +\tl_new:N \g__gzt_printer_text_tl% +\cs_new_protected:Nn \__gzt_printer_text:n +{ + \tl_gset:Nn \g__gzt_printer_text_tl { #1 } +} +\NewDocumentCommand \printertext {m} +{ + \__gzt_printer_text:n {#1}% +} +\renewcommand{\textflush}{flushepinormal} +\cs_set_eq:NN \__gzt_orig_epigraph \epigraph +\cs_new_protected:Nn \__gzt_epigraph:nn +{ + \bool_if:nTF { \tl_if_empty_p:n {#2} } + { + \setlength{\epigraphrule}{\c_zero_dim} + } + { + \setlength{\epigraphrule}{.4\p@} + } + \__gzt_orig_epigraph{% + \emph{% + \enquote{% + #1% + }% + }% + }% + {% + #2 + } +} +\RenewDocumentCommand \epigraph { m m } +{ + \__gzt_epigraph:nn {#1}{#2}% +} +\NewDocumentEnvironment{authorsinstructions}{} +{% + \begingroup + \tcbverbatimwrite{\c__gzt_authors_instructions_file_tl} +}% +{ + \endtcbverbatimwrite + \endgroup +} +\lstdefinestyle{__gzt_lst_style}{% + escapechar=+, + language=[LaTeX]TeX, + texcsstyle=*\bfseries, + breaklines=true, + basicstyle=\normalfont\ttfamily, + columns=flexible, + inputencoding=utf8/latin1 +}% +\DeclareTotalTCBox{\gztverb}{ v }{verbatim,blank,fuzzy~halo=0pt~with~__gzt_light_generic_dark_color!8}{#1} +\NewTCBListing{gztcode}{ !O{} }{% + listing~style=__gzt_lst_style, + listing~only, + enlarge~top~by=\medskipamount, + breakable, + #1% +} +\DeclareTColorBox[blend~into=figures]{gztfigure}{ O{} } +{ + ,width=\linewidth% + ,blend~before~title=dash% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=figures]{gztfigure*}{ O{} } +{ + ,float* + ,blend~before~title=dash% + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=tables]{gzttable}{ O{} } +{ + ,width=\linewidth% + ,blend~before~title=dash% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox[blend~into=tables]{gzttable*}{ O{} } +{ + ,float* + ,blend~before~title=dash% + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,#1% + ,code={\ifdefempty{\kvtcb@title}{\tcbset{__gzt_tcb_notitle}}{}}% +} +\DeclareTColorBox{gztframe}{ O{} } +{ + ,width=\linewidth% + ,__gzt_tcb_floats_style% + ,#1% +} +\DeclareTColorBox{gztframe*}{ O{} } +{ + ,float* + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,#1% +} +\DeclareTColorBox{gztscan}{ O{} } +{ + #1% + ,width=\textwidth% + ,__gzt_tcb_floats_style% + ,size=tight% +} +\DeclareTColorBox{__gzt_book_review}{ O{} } +{ + overlay~unbroken~and~first={% + \node at (frame.north~west) { + { + \makebox[\c_zero_dim][l]{% + \adjustbox{raise={-2\height+\c__gzt_book_review_frontcover_extend_dim}{\c_zero_dim}}{% + \includegraphics[width=20mm]{\g__gzt_bookreview_frontcover_tl}% + }% + } + } + }; + }, + __gzt_tcb_book_review_box_style, + #1 +} +\DeclareTColorBox{__gzt_bibliography_tcbox}{ O{} } +{ + __gzt_tcb_bibliography_style, + #1 +} +\DeclareTColorBox{__gzt_minibiographies_acknowledgements_tcbox}{ O{} } +{ + __gzt_tcb_minibiographies_acknowledgements_style, + #1 +} +\DeclareTColorBox{inset}{ O{} } +{ + __gzt_tcb_minibiographies_acknowledgements_style, + #1 +} +\NewDocumentEnvironment{bookreview}{ O{} m } +{ + \keys_set:nn { gzt/bookreview } { #2 } + \begin{__gzt_book_review}[#1] + \xpatchfieldformat{title}{mkbibemph}{textbf}{}{}% + \xpretonameformat{author}{\color{__gzt_people_color}}{}{}% + \g__gzt_blx_given_first_inits_false_tl + \noindent% + \parbox[][21.5mm][l]{\linewidth}{\fullcite{\g__gzt_bookreview_bibkey_tl}} + \tcblower +}{ + \begin{flushright} + % \g__gzt_reviewer_tl + \bigskip + \citereviewer{\g__gzt_bookreview_bibkey_tl}\\ + \citereviewerinstitution{\g__gzt_bookreview_bibkey_tl} + \end{flushright} + % \vspace*{10mm} + \mbox{} + \end{__gzt_book_review} +} +\DeclareTColorBox{__gzt_book_advertisement}{ O{} } +{ + __gzt_tcb_book_advertisement_box_style, + #1 +} +\DeclareTColorBox{__gzt_inside_cover_tcb}{ O{} } +{ + #1 +} +\NewDocumentCommand \bookadvertisement {O{} m} +{ + \newpage{} + \mbox{} + \vfill + \begin{__gzt_book_advertisement}[#1] + \fullcite{#2} + \par + \bigskip + \tcblower + \includegraphics[height=22.5mm]{\c__gzt_smf_logo_file_string_tl}% + \par{} + \smallskip% + \url{\l__gzt_journal_url_tl} + \end{__gzt_book_advertisement} + \vfill + \newpage + \bool_gset_false:N \g__gzt_advertisement_bool + \bool_gset_true:N \g__gzt_mainmatter_bool +} +\ProcessKeysOptions { gztarticle } +\AddToHook{enddocument}{% + \bool_if:NT {\g__gzt_multicols_bool} { + \end{multicols}% + } + \bool_if:NT {\g__gzt_refsection_bool} { + \end{refsection} + } +} +\pgfplotsset{% + /pgf/number~format/.cd, + use~comma, + 1000~sep={\,}, + min~exponent~for~1000~sep=4 +}% +\defbibheading{bibassection}[\bibname]{\section*{#1}}% +\renewcommand{\bibfont}{\normalfont\footnotesize} +\exp_after:wN\addbibresource\exp_after:wN{\c__gzt_issue_bib_path_string_tl} +\@ifpackagelater{biblatex}{2016/01/01}{% + \DeclareNameFormat{giveninits-last}{% + \nameparts{#1} + \usebibmacro{name:given-family} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}% + \usebibmacro{name:andothers}% + } +}{ + \DeclareNameFormat{giveninits-last}{% + \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}% + \usebibmacro{name:andothers}% + } +} +\DeclareNameAlias{labelname}{giveninits-last} +\renewcommand*\bibnamedelimc{\addnbspace} +\renewcommand*\bibnamedelimd{\addnbspace} +\renewbibmacro{in:}{% + \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}} +\renewbibmacro*{journal}{% + \iffieldundef{shortjournal}% + {% + \iffieldundef{journaltitle} + {} + {% + \printtext[journaltitle]% + {% + \printfield[titlecase]{journaltitle}% + \setunit{\subtitlepunct}% + \printfield[titlecase]{journalsubtitle}% + }% + }% + }% + {\printtext[journaltitle]{\printfield[titlecase]{shortjournal}}}% +} +\renewbibmacro*{volume+number+eid}{% + \printfield{volume}% + \setunit{\addcomma\c_space_tl}% + \printfield{number}% + \setunit{\addcomma\c_space_tl}% + \printfield{eid}} +\DeclareFieldFormat[article]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat[book]{volume}{\mkbibbold{#1}} +\DeclareFieldFormat[article]{number}{\bibstring{number}#1} +\DeclareLanguageMapping{french}{gzt}% use the new abbreviations +\ifkp@easyscsl +\DeclareRobustCommand{\itshape}{\not@math@alphabet\itshape\mathit% + \ifthenelse{\equal{\f@shape}{\scdefault}}{\fontshape{scsl}}{% + \fontshape\itdefault}\selectfont} +\fi +\DeclareMathAlphabet\mathfrak{U}{euf}{m}{n} +\SetMathAlphabet\mathfrak{bold}{U}{euf}{b}{n} +\@ifpackageloaded{draftwatermark}{% + \SetWatermarkColor{gray!10}% + \SetWatermarkFontSize{30mm}% + \SetWatermarkText{\text_uppercase:n{\c__gzt_draftwatermark_string_tl}}% +}{% +} +\tikzset{ + __gzt_dots/.style={ + line~width=\c__gzt_tikz_dot_diameter_dim, + line~cap=round, + dash~pattern=on~0pt~off~\c__gzt_tikz_dot_spacing_dim + }, + __gzt_tcb_segmentation_style/.style={ + __gzt_dots, + draw=__gzt_dotfill_color, + shorten~>=~\c__gzt_tcb_left_dim+\c__gzt_tcb_boxsep_dim, + shorten~<=~\c__gzt_tcb_left_dim+\c__gzt_tcb_boxsep_dim, + } +} +\tcbset{ + copyright/.style={% + overlay={% + \node[rotate=90,anchor=south~west,font=\tiny] at (frame.south~east) {% + \begin{minipage}[t]{\tcbtextheight} + \copyright{}~#1% + \end{minipage} + };% + }% + }% +} +\tcbset{% + __gzt_tcb_floats_style/.style={% + enhanced% + ,every~float=\centering% + ,coltitle=__gzt_generic_dark_color% + ,colbacktitle=__gzt_float_title_bg_color% + ,colback=white% + ,colframe=__gzt_float_frame_color% + ,center~upper% + ,sharp~corners=all% + ,boxrule=0.3mm% + }% +} +\tcbset{% + __gzt_tcb_notitle/.style={% + blend~before~title~code={##1} + ,title={\c_space_tl}% + }% +} +\tcbset{% + __gzt_tcb_book_review_box_style/.style={% + enhanced,% + colback=__gzt_book_review_frame_bg_color,% + breakable,% + % height=50mm,% + boxrule=\c_zero_dim, + sharp~corners=all,% + skin=enhancedlast, + leftupper=25mm, + enlarge~bottom~finally~by=-1mm, + middle=4mm, + segmentation~style={__gzt_tcb_segmentation_style}% + } +} +\tcbset{% + __gzt_tcb_book_advertisement_box_style/.style={% + enhanced,% + colframe=__gzt_book_advertisement_frame_color,% + colback=__gzt_book_advertisement_bg_color,% + center~lower, + sharp~corners=all,% + % skin=enhancedlast, + % middle=4mm, + lower~separated=false, + % segmentation~style={__gzt_tcb_segmentation_style}% + } +} +\tcbset{% + __gzt_tcb_inside_cover_style/.style={% + % split=0.6,% + colback=__gzt_inside_frontcover_frame_bg_color,% + colbacktitle=__gzt_inside_frontcover_frame_bg_color,% + sharp~corners=all,% + center~title,% + coltitle=__gzt_inside_frontcover_frame_title_color,% + fonttitle=\bfseries\large,% + boxrule=\c_zero_dim,% + toptitle=3mm,% + bottomtitle=4mm,% + frame~hidden,% + enhanced,% + height=\c__gzt_layoutheight_dim-\c__gzt_topmargin_inside_cover_dim-\c__gzt_botmargin_dim, + width=\c__gzt_inside_cover_box_width_dim, + middle=4mm, + segmentation~style={__gzt_tcb_segmentation_style}% + }, + __gzt_tcb_inside_frontcover_style/.style={% + __gzt_tcb_inside_cover_style, + enlarge~left~by=-\c__gzt_inside_cover_offset_dim, + }, + __gzt_tcb_inside_backcover_style/.style={% + __gzt_tcb_inside_cover_style, + enlarge~left~by=\c__gzt_inside_cover_offset_dim, + } +} +\AddToHook{begindocument/before}{% + \bool_if:NTF {\g__gzt_special_edition_bool} { + \tcbset{ + __gzt_tcb_inside_frontcover_style/.append~style={% + title=\c__gzt_special_edition_editorial_board_string_tl + }, + __gzt_tcb_inside_backcover_style/.append~style={% + notitle + }, + } + }{ + \tcbset{ + __gzt_tcb_inside_frontcover_style/.append~style={% + title=\c__gzt_editorial_board_string_tl + }, + __gzt_tcb_inside_backcover_style/.append~style={% + title=\file_if_exist:nT { \c__gzt_authors_instructions_file_tl } {% + \c__gzt_authors_instructions_string_tl + } + }, + } + } +} +\tcbset{% + __gzt_tcb_bibliography_style/.style={% + colback=__gzt_bibliography_minibios_acknowledgements_bg_color, + breakable, + boxrule=\c_zero_dim, + sharp~corners=all,% + enhanced + } +} +\tcbset{% + __gzt_tcb_minibiographies_acknowledgements_style/.style={% + colback=__gzt_bibliography_minibios_acknowledgements_bg_color, + breakable, + boxrule=\c_zero_dim, + extras~unbroken~and~last={drop~lifted~shadow}, + sharp~corners=all,% + skin=enhancedlast, + height~fixed~for=middle, + } +} +\tcbset{% + enlargepage~flexible=\baselineskip, + left=\c__gzt_tcb_left_dim, + boxsep=\c__gzt_tcb_boxsep_dim, +} +\setlist[1]{labelindent=\parindent} +\setlist[itemize]{label=\textendash{}, nosep} +\setlist{% + labelwidth=\widthof{\textendash}, + itemsep=0.4ex plus 0.2ex minus 0.2ex, + parsep=0.4ex plus 0.2ex minus 0.2ex, + topsep=0.8ex plus 0.4ex minus 0.4ex, + partopsep=0.4ex plus 0.2ex minus 0.2ex, + leftmargin=!% +} +\setlist[description]{ + font= + \bool_if:nTF { \g__gzt_books_rubric_bool || \g__gzt_inside_frontcover_bool || \g__gzt_inside_backcover_bool } + { + \color{black} + }{ + \color{__gzt_description_label_light_color} + } + \bfseries +} +\DeclarePlainStyle{«~}{~»}{`}{'} +\setcounter{topnumber}{3} +\renewcommand{\topfraction}{0.8} +\addtolength{\skip\footins}{.25\baselineskip} +\setlength{\columnsep}{7mm}% +\renewcommand{\thesection}{\arabic{section}}% +\@ifpackageloaded{siunitx}{% + \sisetup{locale=FR} +} +\arrayrulecolor{__gzt_arrayrule_color}% +\addto\captionsfrench{\def\tablename{{\scshape Tableau}}}% +\RenewDocumentCommand \vec { m } { + \vv{#1} +} +\cs_set_eq:NN \__gzt_orig_usetikzlibrary \usetikzlibrary +\RenewDocumentCommand \usetikzlibrary { m } { + \shorthandoff{:}% + \__gzt_orig_usetikzlibrary{#1} + \shorthandon{:}% + % \begingroup + % \NoAutoSpacing + % \__gzt_orig_usetikzlibrary{#1} + % \endgroup +} +\cs_new_protected:Nn \__gzt_bilingual:nnn +{ + \deftranslation[to=French]{#1}{#2}% + \deftranslation[to=English]{#1}{#3}% +} +\cs_new_protected:Nn \__gzt_new_theorem:nnnn +{ + % \__gzt_bilingual:nnn {#2}{#3}{#4} + \deftranslation[to=French]{#2}{#3}% + \deftranslation[to=English]{#2}{#4}% + \declaretheorem[% + #1,% + name=\translate{#2} + ]{#2} + \declaretheorem[% + #1,% + name=\translate{#2}, + numbered=no + ]{#2*} +} +\cs_generate_variant:Nn \__gzt_new_theorem:nnnn { nnVV } +\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\itshape]{theorem} +\declaretheoremstyle[spaceabove=3pt,notefont=\bfseries,bodyfont=\normalfont]{definition} +\declaretheoremstyle[spaceabove=3pt,bodyfont=\normalfont,qed=\ensuremath{\qedsymbol},headfont=\normalfont\itshape,numbered=no]{proof} +\RenewDocumentCommand \newtheorem { O{} m } +{ + \tl_clear:N \l__gzt_newtheorem_style_tl + \tl_clear:N \l__gzt_newtheorem_frenchtitle_tl + \tl_clear:N \l__gzt_newtheorem_englishtitle_tl + \tl_set:Nn \l__gzt_newtheorem_englishtitle_tl { + \text_titlecase:n {#2} + } + \tl_set:Nf \l__gzt_newtheorem_frenchtitle_tl { + \l__gzt_newtheorem_englishtitle_tl + } + \tl_set:Nn \l__gzt_newtheorem_style_tl { + theorem + } + \IfNoValueF {#1} + { + \keys_set:nn { gzt/newtheorem } { #1 } + } + % \tl_if_eq:VVF { \l__gzt_newtheorem_englishtitle_tl } { \MakeUppercase #2 } + % {% + % \tl_if_eq:NNF { \l__gzt_newtheorem_frenchtitle_tl } { \l__gzt_newtheorem_englishtitle_tl } + % {% + % \tl_set:Nf \l__gzt_newtheorem_frenchtitle_tl { + % \l__gzt_newtheorem_englishtitle_tl + % } + % } + % } + \__gzt_new_theorem:nnVV {style=\l__gzt_newtheorem_style_tl}{#2}{\l__gzt_newtheorem_frenchtitle_tl}{\l__gzt_newtheorem_englishtitle_tl} +} +\newtheorem[frenchtitle=Th\'eor\`eme]{theorem} +\newtheorem[frenchtitle=Corollaire]{corollary} +\newtheorem{conjecture} +\newtheorem{proposition} +\newtheorem[frenchtitle=Lemme]{lemma} +\newtheorem[frenchtitle=Axiome]{axiom} +\newtheorem[style=definition,frenchtitle=D\'efinition]{definition} +\newtheorem[style=definition,frenchtitle=Remarque]{remark} +\newtheorem[style=definition,frenchtitle=Exemple]{example} +\newtheorem[style=definition]{notation} +\let\proof\relax +\newtheorem[style=proof,frenchtitle=Preuve]{proof} +\cs_new_protected:Nn \__gzt_clone_theorem:nn +{ + \NewDocumentEnvironment{#1}{} + { + \begin{#2} + } + { + \end{#2} + } + \NewDocumentEnvironment{#1*}{} + { + \begin{#2*} + } + { + \end{#2*} + } +} +\__gzt_clone_theorem:nn {theoreme} {theorem} +\__gzt_clone_theorem:nn {corollaire}{corollary} +\__gzt_clone_theorem:nn {lemme}{lemma} +\__gzt_clone_theorem:nn {axiome}{axiom} +\__gzt_clone_theorem:nn {remarque}{remark} +\__gzt_clone_theorem:nn {exemple}{example} +\__gzt_clone_theorem:nn {preuve}{proof} +\DeclareMathOperator{\cotan}{cotan} +\DeclareMathOperator{\Arccos}{Arccos} +\DeclareMathOperator{\Arcsin}{Arcsin} +\DeclareMathOperator{\Arctan}{Arctan} +\DeclareMathOperator{\Argch}{Argch} +\DeclareMathOperator{\Argsh}{Argsh} +\DeclareMathOperator{\Argth}{Argth} +\cs_set_eq:NN \__gzt_orig_arccos \arccos +\cs_set_eq:NN \__gzt_orig_arcsin \arcsin +\cs_set_eq:NN \__gzt_orig_arctan \arctan +\RenewDocumentCommand \arccos {} { + \IfLanguageName {french}{\Arccos}{\__gzt_orig_arccos}% +} +\RenewDocumentCommand \arcsin {} { + \IfLanguageName {french}{\Arcsin}{\__gzt_orig_arcsin}% +} +\RenewDocumentCommand \arctan {} { + \IfLanguageName {french}{\Arctan}{\__gzt_orig_arctan}% +} +\DeclareMathOperator{\ch}{ch} +\DeclareMathOperator{\sh}{sh} +\cs_set_eq:NN \__gzt_orig_tanh \tanh +\RenewDocumentCommand \tanh {} { + \IfLanguageName {french}{\operatorname{th}}{\__gzt_orig_tanh}% +} +\cs_set_eq:NN \__gzt_orig_log \log +\cs_set_eq:NN \__gzt_orig_lg \lg +\RenewDocumentCommand \log { s } { + \IfBooleanTF {#1} + { + \__gzt_orig_log + } + { + \ln + } +} +\RenewDocumentCommand \lg { s } { + \IfBooleanTF {#1} + { + \__gzt_orig_lg + } + { + \ln + } +} +\cs_set_eq:NN \__gzt_orig_leq \leq +\cs_set_eq:NN \__gzt_orig_geq \geq +\RenewDocumentCommand \le {} {% + \IfLanguageName {french}{\leqslant}{\__gzt_orig_leq}% +} +\RenewDocumentCommand \leq {} {% + \IfLanguageName {french}{\leqslant}{\__gzt_orig_leq}% +} +\RenewDocumentCommand \ge {} {% + \IfLanguageName {french}{\geqslant}{\__gzt_orig_geq}% +} +\RenewDocumentCommand \geq {} {% + \IfLanguageName {french}{\geqslant}{\__gzt_orig_geq}% +} +\NewDocumentCommand \N {} {\mathbb{N}} +\NewDocumentCommand \Z {} {\mathbb{Z}} +\NewDocumentCommand \D {} {\mathbb{D}} +\NewDocumentCommand \Q {} {\mathbb{Q}} +\NewDocumentCommand \R {} {\mathbb{R}} +\NewDocumentCommand \C {} {\mathbb{C}} +\NewDocumentCommand \K {} {\mathbb{K}} +\ExplSyntaxOff +%% ---------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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.3c or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Denis Bitouz'e. +%% +%% This work consists of the file gzt.dtx +%% and the derived files gzt.cls, +%% gztarticle.cls, +%% gzt.ins, +%% gzt.pdf, +%% and a number of configuration files. +%% +%% End of file `gztarticle.cls'. diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/images/README-PICTOGRAMS.md b/macros/latex/contrib/gzt/tex/latex/gzt/images/README-PICTOGRAMS.md new file mode 100644 index 0000000000..138d2a4e89 --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/images/README-PICTOGRAMS.md @@ -0,0 +1,6 @@ +# Pictograms possibly missing + +The current directory is supposed to contain the (files of the) logos and +pictograms that illustrate the Gazette whole issues compiled by the SMF. As non +free materials, they are likely to miss here and, in such a case, the `gzt` +class will be replace them by a dummy image (borrowed from the `mwe` package). diff --git a/macros/latex/contrib/gzt/tex/latex/gzt/images/gzt-logo.pdf b/macros/latex/contrib/gzt/tex/latex/gzt/images/gzt-logo.pdf Binary files differnew file mode 100644 index 0000000000..edde3a5f3f --- /dev/null +++ b/macros/latex/contrib/gzt/tex/latex/gzt/images/gzt-logo.pdf diff --git a/macros/latex/contrib/rbt-mathnotes/LICENSE.txt b/macros/latex/contrib/rbt-mathnotes/LICENSE.txt new file mode 100644 index 0000000000..2244313901 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/LICENSE.txt @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % 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 `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/macros/latex/contrib/rbt-mathnotes/README.md b/macros/latex/contrib/rbt-mathnotes/README.md new file mode 100644 index 0000000000..cf7c71a521 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/README.md @@ -0,0 +1,16 @@ +# rbt-mathnotes + +Rebecca Turner’s personal macros and styles for typesetting mathematics notes. + +See `rbt-mathnotes.pdf` for detailed documentation. + +Contents: + +- `rbt-mathnotes` package +- `rbt-mathnotes` document class +- `rbt-mathnotes-hw` document class, containing specialized commands for + typesetting homework assignments and solutions (in particular, the `problem` + environment and `\prob` command) +- `rbt-mathnotes-formula-sheet` document class, optimized for stuffing as much + text as possible onto an exam “cheat sheet” +- Examples of each document class in the `examples` directory diff --git a/macros/latex/contrib/rbt-mathnotes/examples/cheat-sheet.pdf b/macros/latex/contrib/rbt-mathnotes/examples/cheat-sheet.pdf Binary files differnew file mode 100644 index 0000000000..8f92b8337f --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/examples/cheat-sheet.pdf diff --git a/macros/latex/contrib/rbt-mathnotes/examples/cheat-sheet.tex b/macros/latex/contrib/rbt-mathnotes/examples/cheat-sheet.tex new file mode 100644 index 0000000000..11ff82a5a9 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/examples/cheat-sheet.tex @@ -0,0 +1,227 @@ +%% cheat-sheet.tex +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\documentclass{rbt-mathnotes-formula-sheet} +\usepackage{nicefrac} +\ExplSyntaxOn +\NewDocumentCommand \normalized { m } + { \frac { #1 } { \| #1 \| } } +\let \gr \grad +\def \ddx { \frac{d}{dx} } +% VL = vector literal +\NewDocumentCommand \vl { m } { \left\langle #1 \right\rangle } +\ExplSyntaxOff + +\title{Formula Sheet} +\author{Rebecca Turner} +\date{2019-11-12} + +% "The most common size for index cards in North America and UK is 3 by 5 +% inches (76.2 by 127.0 mm), hence the common name 3-by-5 card. Other sizes +% widely available include 4 by 6 inches (101.6 by 152.4 mm), 5 by 8 inches +% (127.0 by 203.2 mm) and ISO-size A7 (74 by 105 mm or 2.9 by 4.1 in)." +\mathnotes{ + height = 4in , + width = 6in , +} +\begin{document} +\maketitle +\begin{gather*} +% 12.2: Vectors +% 12.3: Dot product + \textstyle\vec a \cdot \vec b = \sum_i a_i b_i = |\vec a| |\vec b| \cos \theta. \\ +% 12.4: Cross product + \vec a \times \vec b + % = \left| \begin{array}{rrr} + % \hat{i} & \hat{j} & \hat{k} \\ + % a_1 & a_2 & a_3 \\ + % b_1 & b_2 & b_3 \\ + % \end{array} \right| \\ + = \langle a_2 b_3 - a_3 b_2, + \quad a_3b_1 - a_1b_3, \\ + a_1b_2 - a_2b_1 \rangle.\quad + |\vec a \times \vec b| = |\vec a| |\vec b| \sin \theta. +% 12.5: Equations of lines and planes. +\shortintertext{Param.\ eqns.\ of line through $\langle x_0,y_0,z_0 \rangle$ +par.\ to $\langle a,b,c \rangle$:} + x = x_0 + at, + \quad y = y_0 + bt, + \quad z = z_0 + ct. \\ +\text{Symm.\ eqns.: } + \frac{x-x_0}{a} + = \frac{y-y_0}{b} + = \frac{z-z_0}{c}. \\ +\shortintertext{Vec.\ eqn.\ of plane through $\vec r$ with $\vec n$ normal:} + \vec n \cdot (\vec r - \vec r_0) = 0, + \quad \vec n \cdot \vec r = \vec n \cdot \vec r_0. \\ +% 13.1: Vector functions +% 13.2: Derivatives/integrals of vector functions +% 13.3: Arc length and curvature +\shortintertext{Length along a vec.\ fn.\ $\vec r(t)$:} + \textstyle\int_a^b \left|\vec r'(t)\right|\,dt = \int_a^b \sqrt{\sum_i + r_i'(t)^2}\,dt, \\ +\shortintertext{Unit tang.\ $\vec T(t) = \vec r'(t)/\left|\vec +r'(t)\right|$, so curvature of $\vec r(t)$ w/r/t the arc len.\ fn. $s$:} + \kappa = \left|\frac{d\vec T}{ds}\right| + = \frac{\left| \vec T'(t) \right|}{\left| \vec r'(t) \right|} + = \frac{\left| \vec r'(t) \times \vec r''(t) \right|}{\left| \vec r'(t) + \right|^3}. \\ +\text{Unit normal:}\quad + \vec N(t) = \vec T'(t)\,/\,\left| \vec T'(t) \right| \\ +% 14.1: Functions of several variables +% 14.2: Limits and continuity +% 14.3: Partial derivatives +\text{Clairaut's thm.:}\quad + f_{xy}(a,b) = f_{yx}(a,b) \\ +% 14.4: Tangent planes & linear approximations +\shortintertext{Tan.\ plane to $z = f(x,y)$ at $\langle x_0, y_0, +z_0\rangle$:} + z - z_0 = f_x(x_0, y_0) (x-x_0) \\ + + f_y(x_0, y_0) (y-y_0). \\ +% Partial derivatives of f for each variable exist near a point and are +% continuous => f is differentiable at the po\int. +% 14.6: Directional derivatives and the gradient vector +\text{Grad.:}\quad + \grad f(x,y) = \pd[f]x \hat{i} + \pd[f]y \hat{j}. \\ +\shortintertext{Dir.\ deriv.\ towards $\vec u$ at $\langle x_0, y_0 \rangle$:} + D_{\langle a,b\rangle} f(x_0, y_0) = f_x(x,y) a + f_y(x,y) b \\ + = \grad f(x,y) \cdot \vec u. \\ +\shortintertext{Max of $D_{\vec u} f(\vec x) = \left|\grad f(\vec +x)\right|$. Tan.\ plane of $f$ at $\vec p$:} + 0 = + f_x(\vec p)(x-\vec p_x) + + f_y(\vec p)(y-\vec p_y) \\ + + f_z(\vec p)(z-\vec p_z). +% 14.7: Maximum and minimum values +\shortintertext{If $f$ has loc.\ extrem.\ at $\vec p$, then $f_x(\vec p) = +0$ (\& $f_y$, etc). If so, let} + D = \left| \begin{array}{ll} + f_{xx} & f_{xy} \\ + f_{yx} & f_{yy} + \end{array}\right| + = f_{xx} f_{yy} - (f_{xy})^2. +\shortintertext{% + $D = 0$: no information. + $D < 0$: saddle pt. + $D > 0$: $f_{xx}(\vec p) > 0 \implies$ loc.\ min; + $f_{xx}(\vec p) < 0 \implies$ loc.\ max. + ($D$ is the \textbf{Hessian mat.}) +\endgraf + Set of possible abs. min and max vals of $f$ in reg.\ $D$: $f$ at critical + pts.\ and extreme vals.\ on the boundary of $D$. +% 14.8: Lagrange multipliers +\endgraf + Lagrange mults.: extreme vals of $f(\vec p)$ when $g(\vec p) = k$. + Find all $\vec x, \lambda$ s.t. +} + \grad f(\vec x) = \lambda \grad g(\vec x),\quad g(\vec x) = k. +\shortintertext{i.e.\ $f_x = \lambda g_x$, etc.} +% 15.1: Double integrals over rectangles +% 15.2: Iterated integrals +% 15.3: Double integrals over general regions + \iint f(r\cos\theta, r\sin\theta)r\,dr\,d\theta. \\ + A = \iint_D \left(\sqrt{f_x(x,y)^2 + f_y(x,y)^2 + 1}\right) \,dA. \\ +\shortintertext{Line int.s} + \int_C f(x,y)\,ds = \\ + \int_a^b f(x(t), y(t))\sqrt{\left(\pd[x]t\right)^2 + \left(\pd[y]t\right)^2}\,dt \\ +\shortintertext{If $C$ is a smooth curve given by $\vec r(t)$ from $a \le t +\le b$,} + \int_C \grad f \cdot d\vec r = f(\vec r(b)) - f(\vec r(a)) \\ +\text{Spherical coords:}\quad + x = \rho \sin \phi \cos \theta \\ + y = \rho \sin \phi \sin \theta, z = \rho \cos \phi \\ + \curl \vec F = \\ \left< \pd[R]y - \pd[Q]z, \pd[P]z - \pd[R]x, \pd[Q]x - + \pd[P]y\right>. \\ + \vec F = \langle P,Q,R \rangle,\quad + \curl \vec F = \grad \times \vec F \\ + \vec F \text{ ``conservative''} \implies \exists f, \vec F = \grad f. \\ + \dive \vec F = \grad \cdot \vec F = \pd[P]x + \pd[Q]y + \pd[R]z. \\ + \curl(\grad f) = \vec 0,\quad \dive \curl \vec F = 0 \\ +\shortintertext{If $C$ is a positively-oriented (ccw) closed curve, $D$ +is bounded by $C$, and $\vec n$ represents the normal,} + % \int_C P\,dx + Q\,dy = \iint_D\left( \pd[Q]{x} - \pd[P]{y} \right). \\ + \oint_C \vec F \cdot \vec n\,ds = \iint_D \dive \vec F(x,y)\,dA. +\end{gather*} + +\pagebreak +\raggedright Common derivs: +$f(g(x)) \to g'(x) f'(g(x))$, +$b^x \to b^x \ln b$, +$f^{-1}(x) \to 1/f'(f^{-1}(x))$, +$\ln x \to 1/x$, +$\sin x \to \cos x$, $\cos x \to -\sin x$, +$\tan x \to \sec^2 x$, +$\sin^{-1} x \to 1/\sqrt{1-x^2}$, +$\cos^{-1} x \to -(\sin^{-1}x)'$ (etc.), +$\tan^{-1} x \to 1/(1+x^2)$, +$\sec^{-1} x \to 1/(|x|\sqrt{x^2-1})$. + +Common ints (don't forget $+C$): +\begin{gather*} + x^n \to \frac{x^{n + 1}}{n + 1} + C \quad \text{when } n \ne -1 \\ + 1/x \to \ln |x| \\ + \tan x \to -\ln(\cos x) \\ + \int uv'\,dx = uv - \int u'v\,dx \quad\text{(Int.\ by parts)} \\ + \int u\,dv = uv-\int v\,du \\ + \int_{g(a)}^{g(b)} f(u)\,du = \int_a^b f(g(x))g'(x)\,dx + \quad\text{$u$-substitution.} +\intertext{E.x.\ in $\int 2x \cos x^2\,dx$, let $u=x^2$, find $du/dx=2x +\implies du = 2x\,dx$, subs.\ $\int \cos u\,du = \sin u + C = \sin x^2 + +C$.} + \iint_R f(x,y)\,dA = \int_\alpha^\beta \int_a^b f(r\cos\theta, + r\sin\theta)r\,dr\,d\theta +\end{gather*} +\begin{itemize} + \item Integrand contains $a^2-x^2$, let $x = a\sin\theta$ and use $1 - + \sin^2 \theta = \cos^2 \theta$. + \item $a^2 + x^2$, let $x = a\tan\theta$, use $1 + \tan^2 \theta = \sec^2 + \theta$. + \item $x^2 - a^2$, let $x = a\sec\theta$, use $\sec^2\theta - 1 = \tan^2 + \theta$. +\end{itemize} + +\begin{gather*} + \lim_{x \to 0} \sin x/x = 1 \\ + \lim_{x \to 0} (1-\cos x)/x = 0 \\ + \lim_{x \to \infty} x \sin(1/x) = 1 \\ + \lim_{x \to 0} (1+x)^{1/x} = e \\ + \lim_{x \to 0} (e^{ax}-1)/(bx) = a/b \\ + \lim_{x \to 0^+} x^x = 1 \\ + \lim_{x \to 0^+} x^{-n} = \infty \\ + \text{For $0/0$ or $\pm\infty/\infty$,}\quad + \lim_{x \to c} f(x)/g(x) = \lim_{x \to c} f'(x)/g'(x) \\ + \text{For $g(x)$ cont.\ at $L$,} + \lim_{x \to c} f(x) = L \implies \lim_{x \to c} g(L) +\end{gather*} + +\end{document} diff --git a/macros/latex/contrib/rbt-mathnotes/examples/multivar.pdf b/macros/latex/contrib/rbt-mathnotes/examples/multivar.pdf Binary files differnew file mode 100644 index 0000000000..e6fdd5f7a3 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/examples/multivar.pdf diff --git a/macros/latex/contrib/rbt-mathnotes/examples/multivar.tex b/macros/latex/contrib/rbt-mathnotes/examples/multivar.tex new file mode 100644 index 0000000000..fc026754f6 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/examples/multivar.tex @@ -0,0 +1,507 @@ +%% multivar.tex +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\documentclass[knowledge]{rbt-mathnotes} +\title{Multivariable Calculus} +\mathnotes{ + instructor = Prof.~Corey Bregman , + name = Rebecca Turner , + email = rebeccaturner@brandeis.edu , + course = \textsc{math} 20a (multivariable calculus) , + institution = Brandeis University , + semester = Fall 2019 , +} + +\ExplSyntaxOn +\NewDocumentCommand \normalized { m } + { \frac { #1 } { \| #1 \| } } +\let \gr \grad +\def \ddx { \frac{d}{dx} } +% VL = vector literal +\NewDocumentCommand \vl { m } { \left\langle #1 \right\rangle } +\ExplSyntaxOff + +% \makeatletter +% \@ifpackageloaded{knowledge} +% { +\knowledge{notion, index={Derivative!Partial}} + | partial derivative +\AtBeginDocument{\index{Partial derivative|see{Derivative, partial}}} + +\knowledge{notion, index={Derivative!Directional}} + | directional derivative +\AtBeginDocument{\index{Directional derivative|see{Directional, partial}}} + +\knowledge{notion, index=Unit vector} + | unit vector + +\knowledge{notion, index=Limit} + | limit + +\knowledge{notion, index={Differentiable functions}} + | differentiable + +\knowledge{notion, index=Gradient} + | gradient + +\knowledge{notion, index={Neighborhood (topology)}} + | neighborhood + +\knowledge{notion, index=Local maximum} + | local maximum + | local maxima + +\knowledge{notion, index=Local minimum} + | local minimum + | local minima + +\knowledge{notion, index=Absolute maximum} + | absolute maximum + | absolute maxima + +\knowledge{notion, index=Absolute minimum} + | absolute minimum + | absolute minima + +\knowledge{notion, index=Local extremum} + | local extremum + | local extrema + +\knowledge{notion, index=Critical point} + | critical point + +\knowledge{notion, index=Saddle point} + | saddle point + +\knowledge{notion, index={Lagrange multiplier}} + | Lagrange multiplier + | Lagrange multipliers + | the method of Lagrange multipliers + +\knowledge{url={https://en.wikipedia.org/wiki/Joseph-Louis_Lagrange}} + | Joseph-Louis Lagrange + | Lagrange + +\knowledge{url={https://en.wikipedia.org/wiki/Marquis_de_Condorcet}} + | Marquis de Condorcet + + \knowledge{url={https://en.wikipedia.org/wiki/Adrien-Marie_Legendre}} + | Adrien-Marie Legendre +% } +% {} +% \makeatother +\date{2019-10-23} +\begin{document} +\maketitle +\tableofcontents + +\chapter{Vectors} +I already know about vectors --- I've been taught them in about five +different courses so far. I'm skipping this. + +\chapter{Partial derivatives} + +If we have a function of multiple variables, say +\[f(a_1, a_2, a_3, \dots),\] +we might care about the change of $f$ with respect to only one variable. By +picking a fixed value for all but one of the variables, we can determine +this. + +Say that we want to find the "partial derivative" of $f$ with respect to +$a_2$; then, by constructing $g(a_2) = f(c_1, a_2, c_3, \dots)$, we've +created a function of \emph{one} variable, which we can differentiate as +usual. +\begin{notation} + We write the "partial derivative" of a function $f$ at a point $\vec p$ + with respect to a basis element $a$ of $\vec p$ as \fbox{$f_a(\vec p)$.} + + We may also use much more common notation + \[\pd[f]{a},\] + using the "partial derivative" symbol $\partial$, a stylized cursive + ``d''.\footnote{Introduced by "Marquis de Condorcet" in 1770, who used it + to represent a partial \emph{differential}, i.e.~the $dy$ or $dx$ in + $dy/dx$, and then adapted in 1786 by "Adrien-Marie Legendre" for use as the + partial derivative.} + + In the interest of completeness, I'll exhaustedly note that the book also + uses, on occasion, the notation $D_a f$. +\end{notation} + +We can also calculate ""higher partial derivatives"" --- similarly to the +higher ordinary derivatives. The notation is a fairly clear extension: +\[(f_x)_x = f_{xx} = \pd x \left( \pd[f]{x} \right) = \pd[^2 f]{x^2}.\] + +\begin{thm}[Clairaut's Theorem] + Suppose $f$ is defined on a neighborhood $N$ about a point $\vec p$. + If $f_{xy}$ and $f_{yx}$ are continuous in $N$, then $f_{xy}(\vec p) = + f_{yx}(\vec p)$. +\end{thm} + +\section{Gradients} +\begin{notation} + This ridiculous textbook denotes the "partial derivative" of a function + $f(x, y) = z$ with respect to $x$ as $f_x(x, y)$. +\end{notation} + +\begin{defn} + The ""directional derivative"" of a function $f$ at $(x_0, y_0)$ in the + direction of a "unit vector" $\vec u = \langle a, b \rangle$ is + \[D_{\vec u} f(x_0, y_0) = \lim_{h \to 0} \frac{f(x_0 + ha, y_0 + hb) - + f(x_0, y_0)}{h},\] + if the "limit" exists. +\end{defn} + +If $f : \Re^2 \mapsto \Re$ is a "differentiable" function, then $f$ has a +"directional derivative" in the direction of any "unit vector" $\vec u = +\langle a, b \rangle$ of +\begin{alignat*}{1} + D_{\vec u} f(x, y) &= f_x(x, y) a + f_y(x, y) b. +\intertext{Or, if $\vec u = \langle \cos \theta, \sin \theta \rangle$, then} + D_{\vec u} f(x, y) &= f_x(x, y) \cos \theta + f_y(x, y) \sin \theta. +\end{alignat*} + +Noticing that the "directional derivative" of a function can be written as +the dot product of two vectors, +\begin{alignat*}{1} + D_{\vec u} f(x, y) &= f_x(x, y) a + f_y(x, y) b \\ + &= \langle f_x(x, y), f_y(x, y) \rangle \cdot \langle a, b \rangle \\ + &= \langle f_x(x, y), f_y(x, y) \rangle \cdot \vec u, +\end{alignat*} +we call the first vector $\langle f_x(x, y), f_y(x, y) \rangle$ the +""gradient"" of $f$ and denote it as $\grad f$. + +\begin{defn} + The "gradient" of a function $f$ of two variables is defined as + \[\grad f(x, y) = \langle f_x(x, y), f_y(x, y) \rangle + = \frac{\partial f}{\partial x} \vec i + \frac{\partial f}{\partial y} + \vec j.\] +\end{defn} + +Therefore, we can rewrite the "directional derivative" of a function $f$ +as +\[D_{\vec u} f(x, y) = \grad f(x, y) \cdot \vec u.\] +It's intuitive, then, that the maximum value of the "directional derivative" +is $|\grad f(x, y)|$, when $\vec u$ is parallel to $\grad f(x, y)$. + +\section{Maximum and minimum values} +\begin{defn} + $f : A^k \mapsto B$ has a ""local maximum"" at $\vec a$ if for some + "neighborhood" $N \subset A$ about $\vec a$, for all $\vec x \in N$, + $f(\vec x) \le f(\vec a)$. + + Conversely, if $f(\vec x) \ge f(\vec a)$, then $f(\vec a)$ is a ""local + \emph{minimum}@local minimum"". + + If the statement also holds true for $N = A$, then $\vec a$ is an + ""absolute maximum"" (or ""absolute minimum""). +\end{defn} + +If $f$ has a "local maximum" or "minimum@local minimum" at $\vec a$ and the +partials of $f$ exist at $\vec a$, then $\partial f/\partial x (\vec a) = 0$ +and $f_y(a, b) = 0$; geometrically, the tangent plane to a maximum or +minimum must be horizontal. + +\begin{defn} + A point $\vec a$ is called a ""critical point"" of $f$ if $f_x(\vec a) = + 0$ or $f_x(\vec a)$ doesn't exist for all variables of $f$. +\end{defn} + +\begin{defn} + A ""saddle point"" of a function is a "critical point" which is not a + "local extremum" of the function. +\end{defn} + +If $(a, b)$ is a critical point of $f$, then let +\[D = D(a, b) = f_{xx} (a,b) \, f_{yy} (a,b) - (f_{xy}(a,b))^2.\] +If $D < 0$, then $(a, b)$ is a "saddle point" of $f$. + +\section{Lagrange multipliers} +Often we want to find the "local extrema" of a function subject to +constraints, i.e.~maximizing the volume of an object while keeping its +surface area constant. The method of "Lagrange multipliers"\footnote{After +"Joseph-Louis Lagrange" (1736--1813), ``an Italian Enlightenment Era +mathematician and astronomer [who] made significant contributions to the +fields of analysis, number theory, and both classical and celestial +mechanics.''} is a strategy for doing this. + +To find extrema of $f(\vec p)$ constrained with $g(\vec p) = k$, +we look for extrema of $f$ that are restricted to lie on the level curve +$g(\vec p) = k$; it happens that the largest $c$ such that $f(\vec p) = c$ +intersects with $g(\vec p) = k$ when the two level curves are tangent with +each other, i.e.~they have identical normals. In other words, for some +scalar $\lambda$, $\grad f(\vec p) = \lambda \grad g(\vec p)$. + +More formally, suppose $f$ has an extrema at $\vec p_0$. Then, let the level +surface generated by the constraint $g(\vec p) = k$ be called $S$, where +$\vec p_0 \in S$. Then, let $C$ be the set of points given by $\vec r(t)$ such +that $C \subset S$ and $\vec p_0 \in C$. Further, let $t_0$ be a point such +that $\vec r(t_0) = \vec p_0$. + +Then, $f \after \vec r$ gives the values of $f$ on the curve $C$. $f$ has an +extrema at $\vec p$, so $f \after \vec r$ must also, and $(f \after \vec +r)'(t_0) = 0$. If $f$ is "differentiable", we can use the chain rule to +write +\begin{alignat*}{1} + 0 &= (f \after \vec r)'(t_0) \\ + &= \grad f(\vec p_0) \cdot \vec r'(t_0). +\end{alignat*} +Therefore, the gradient of $f$ is orthogonal to the tangent of every such +curve $C$. We also know that $\grad g(\vec p_0)$ is orthogonal to $\vec +r'(t_0)$, so the gradients of $f$ and $g$ at $\vec p_0$ must be parallel. +Therefore, if $\grad g(\vec p_0) \ne 0$, there exists some $\lambda$ such +that +\begin{equation} + \grad f(\vec p_0) = \lambda \grad g(\vec p_0), +\end{equation} +where the constant $\lambda$ is called a "Lagrange multiplier". + +Then, the ""method of Lagrange multipliers"" gives us a process to +find the maximum and minimum values of a function $f(\vec p)$ subject to the +constraint $g(\vec p) = k$, where $\vec p \in \Re^n$. To use the method of +Lagrange multipliers, we assume that the extreme values exist and that +$\grad g \ne 0$ on the level surface $g(\vec p) = k$. +\begin{enumerate} + \item Find all values of $\vec p$ and $\lambda$ such that + \begin{alignat*}{1} + \grad f(\vec p) &= \lambda \grad g(\vec p) \\ + \text{and}\qquad g(\vec p) &= k. \\ + \end{alignat*} + + \item Next, evaluate $f$ at all of the points found in the first step. The + largest of these values is the maximum value of $f$, and the smallest of + them is the minimum value. +\end{enumerate} + +\chapter{Multiple integrals} +Single integrals are good for functions of one variable. To integrate +functions of multiple variables, we use multiple integrals. Straightforward +enough. + +Multiple integrals allow us to calculate things like surface areas and +volumes of geometric objects. + +In general, for some double integral +\[\underbrace{\int_a^b \overbrace{\int_c^d f(x,y)\,dx}^{\mathclap{\text{We +treat $y$ as constant while evaluating this.}}}\,dy,}_{\mathclap{\text{We've +eliminated $x$ from the equation before evaluating this.}}}\] +we do the opposite of partial differentiation and treat all variables other +than the one we're integrating for as constant, repeatedly, until we've +integrated with respect to all variables; each step in this process is +called, predictably, ""partial integration"". + +\section{Double integrals} +For an axis-aligned rectangle $R$ on the $xy$-plane from $(x_0, y_0)$ to $(x_1, +y_1)$, the area of a function $f(x, y)$ under $R$ is given by the double +integral +\begin{alignat*}{1} + \iint_{Y} f(x,y)\,dA &= \underbrace{\int_{x_0}^{x_1} \int_{y_0}^{y_1} + f(x,y)\,dy\,dx}_{\mathclap{\text{This is the iterated form of the + integral.}}} \\ + &= \int_{y_0}^{y_1} \int_{x_0}^{x_1} f(x,y)\,dx\,dy, \\ +\end{alignat*} +where we use $\iint_R$ to mean ``integrating over the area of $R$'' and +``$dA$'' to mean ``with respect to area.'' + +The right-hand side of the equation above is called the ""iterated form"", +or an \reintro*"iterated integral". + +We can also iterate over funkier regions if we're willing to play with the +limits of integration a bit. The easiest regions to integrate over are the +ones that are easily expressible as the region bounded above and below by +functions of one variable, e.g. ``the region under the line $y = 2x$ and +above the line $y = x^2$'' (note that this is bounded on the left at $x = 0$ +and on the right at $x = 2$). + +% Area[ImplicitRegion[x^2 < y \[And] y < 2 x, {x, y} +The area of that region is expressed by the integral +\begin{alignat*}{1} + A &= \int_0^2 \int_{x^2}^{2x}\,dy\,dx \\ + &= \int_0^2 {\bigg[ x \bigg]}_{x^2}^{2x}\,dx \\ + &= \int_0^2 {\bigg( 2x-x^2 \bigg)}\,dx \\ + &= {\left[ x^2 - \frac{x^3}{3} \right]}_0^2 \\ + &= 4 - \frac{8}{3} = \frac{4}{3}. +\end{alignat*} + +A more complicated region might be ``the region under the paraboloid $z = +x^2 + y^2$ and above the region in the $xy$-plane bounded by $y = \sqrt{x}$ +and $y=1-\cos x$.'' + +We can build larger regions out of pieces, by summing smaller integrals. + +\section{Polar coordinates} +Use the conversions +\begin{alignat*}{1} + r &= \sqrt{x^2+y^2} \\ + x &= r\cos\theta \\ + y &= r\sin\theta \\ +\intertext{for the coordinates and then we have that if $R$ is a ``polar +rectangle'' (arc-shaped region bounded by angles and radii) from $r=a$ to +$r=b$ and $\theta = \alpha$ to $\theta = \beta$, we have} + \iint_R f(x,y)\,dA &= \int_\alpha^\beta \int_a^b f(r\cos\theta, + r\sin\theta)r\,dr\,d\theta, \\ +\intertext{which makes our lives easier for circly areas and volumes. Don't +forget to multiply by $r$. +\endgraf +For squiggly and varying radii, we can use functions $h_1(\theta)$ and +$h_2(\theta)$ instead of constants $a$ and $b$:} + \iint_D f(x,y)\,dA &= \int_\alpha^\beta \int_{h_1(\theta)}^{h_2(\theta)} f(r\cos\theta, + r\sin\theta)r\,dr\,d\theta. \\ +\end{alignat*} + +\section{Cylindrical coordinates} +Just add $z$. + +\section{Spherical coordinates} +I can never remember how these work. If we have a point $P$, and we drop it +down to the $xy$-plane, the angle between the positive $x$-axis and the +segment from the origin to $P$ is $\theta$. + +Next, the angle between the positive $z$-axis and the segment from the origin +to $P$ is $\phi$. + +Finally, the length of the segment from the origin to $P$ is $\rho$. + +The conversions +\begin{alignat*}{1} + x &= \rho \sin \phi \cos \theta \\ + y &= \rho \sin \phi \sin \theta \\ + z &= \rho \cos \phi \\ +\intertext{give us the integral-conversion for the spherical wedge bounded +by $a \le \rho \le b, \alpha \le \theta \le \beta, c \le \phi \le d$ as} + \iiint_E f(x,y,z)\,dV &= \int_c^d \int_\alpha^\beta \int_a^b + f(\rho \sin\phi \cos\theta,\, + \rho \sin\phi \sin\theta,\, + \rho \cos \theta) + [\rho^2 \sin\phi] + \,d\rho\,d\theta\,d\phi. \\ +\end{alignat*} +Very gross! + +\section{Surface area} + +For $f(x,y)$ with $f_x$, $f_y$ continuous, the surface area of $f$ within +a region $D$ is +\[A = \iint_D \left(\sqrt{f_x(x,y)^2 + f_y(x,y)^2 + 1}\right) \,dA.\] + +% Need notes on: +% - Change of variables (in multiple integrals) + +\chapter{Vector calculus} +A vector field is a mapping $\R^k \mapsto \R^n$; for each point in +$k$-dimensional Euclidean space, we associate an $n$-dimensional vector. +These vectors can represent velocity, distance, or anything else, and come +up in all sorts of applied fields. + +We'll be mostly concerned with vector fields $\R^2\mapsto\R^2$ and +$\R^3\mapsto\R^3$. + +If we have a plane curve given by the vector equation +\begin{alignat*}{1} + \vec r(t) &= \left< x(t), y(t) \right> \qquad a \le t \le b, \\ +\intertext{then the line integral of $f$ along $\vec r(t)$ from $a$ to $b$ +is} + & \int_a^b f(x(t), y(t)) \sqrt{{\left(\dd[x]{t}\right)}^2 + + {\left(\dd[y]{t}\right)}^2}\,dt, +\end{alignat*} +i.e.\ the length of the curve multiplied, at each point, by the value of the +vector field $f$ at that point. + +% Need notes on: +% 16.1, 16.2, 16.3, 16.4, 16.5, +% Need to update cheat sheet. + +\appendix +\chapter{Common formulas for derivatives and integrals} +\backmatter +\section{Derivatives} + +\begin{alignat*}{2} + \ddx&\;& (f + g) &= f' + g' \\ + \ddx&& x^n &= nx^{n - 1} \\ + \ddx&& (fg) &= fg' + f'g \\ + \ddx&& \frac{h}{l} &= \frac{l h' - h l'}{l^2} \\ + \ddx&& f(g(x)) &= f'(g(x)) g'(x) \quad\text{(Chain rule.)} \\ + \ddx&& b^x &= b^x \ln b \\ + \ddx&& f^{-1}(x) &= \frac{1}{f'(f^{-1}(x)} \\ + \ddx&& c &= 0 \\ + \ddx&& c\,f &= c\,f' \\ + \ddx&& e^x &= e^x \\ + \ddx&& e^{f(x)} &= f'(x) e^{f(x)} \quad\text{(By the chain rule.)} \\ + \ddx&& \ln x &= \frac{1}{x} \\ + \ddx&& \log_b x &= \frac{1}{x \ln b} \\ + \ddx&& [\vec u \cdot \vec v] &= \vec u' \cdot \vec v + \vec u \cdot \vec v' \\ + \ddx&& [\vec u \times \vec v] &= \vec u' \times \vec v + \vec u \times \vec v' \\ +\end{alignat*} + +\subsection{Trigenometric} +\begin{alignat*}{2} + \ddx&\;& \sin x &= \cos x \\ + \ddx&& \cos x &= -\sin x \\ + \ddx&& \tan x &= \sec^2 x \\ + \ddx&& \cot x &= -\csc^2 x \\ + \ddx&& \sec x &= \sec x \tan x \\ + \ddx&& \csc x &= -\csc x \cot x \\ + % inverse + \ddx&& \sin^{-1} x &= \frac{ 1}{\sqrt{1 - x^2}} \\ + \ddx&& \cos^{-1} x &= \frac{-1}{\sqrt{1 - x^2}} \\ + \ddx&& \tan^{-1} x &= \frac{ 1}{1 + x^2} \\ + \ddx&& \cot^{-1} x &= \frac{-1}{1 + x^2} \\ + \ddx&& \sec^{-1} x &= \frac{ 1}{|x| \sqrt{x^2 - 1}} \\ + \ddx&& \csc^{-1} x &= \frac{-1}{|x| \sqrt{x^2 - 1}} \\ +\end{alignat*} + +\section{Integrals} +See also: +\emph{\href{https://www.whitman.edu/mathematics/calculus/calculus_08_Techniques_of_Integration.pdf}{Techniques +of Integration}}. +\begin{alignat*}{1} + \int x^n\,dx &= \frac{x^{n + 1}}{n + 1} + C \quad \text{when } n \ne -1 \\ + \int x^{-1}\,dx &= \ln|x| + C \\ + \int e^x\,dx &= e^x + C \\ + \dd{t} \int_{a(t)}^{b(t)} g(s)\,ds &= b'(t) g(b(t)) - a'(t) g(a(t)) + \quad\text{(Leibniz' rule.)} \\ + \int uv'\,dx &= uv - \int u'v\,dx \\ +\end{alignat*} + +\subsection{Trigenometric} +\begin{alignat*}{1} + \int \sin x\,dx &= -\cos x + C \\ + \int \cos x\,dx &= \sin x + C \\ + \int \sec^2 x\,dx &= \tan x + C \\ + \int \sec x \tan x\,dx &= \sec x + C \\ + \int \frac{1}{1 + x^2}\,dx &= \tan^{-1} x + C \\ + \int \frac{1}{\sqrt{1 + x^2}}\,dx &= \sin^{-1} x + C \\ +\end{alignat*} + +\printindex +\end{document} diff --git a/macros/latex/contrib/rbt-mathnotes/examples/topology-hw-1.pdf b/macros/latex/contrib/rbt-mathnotes/examples/topology-hw-1.pdf Binary files differnew file mode 100644 index 0000000000..3bbc7d93fb --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/examples/topology-hw-1.pdf diff --git a/macros/latex/contrib/rbt-mathnotes/examples/topology-hw-1.tex b/macros/latex/contrib/rbt-mathnotes/examples/topology-hw-1.tex new file mode 100644 index 0000000000..406ce622ad --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/examples/topology-hw-1.tex @@ -0,0 +1,246 @@ +%% topology-hw-1.tex +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\documentclass[twocolumn, noxcolor, maketitle]{rbt-mathnotes-hw} +\mathnotes{ + instructor = Prof.~Ruth Charney , + name = Rebecca Turner , + email = rebeccaturner@brandeis.edu , + course = \textsc{math} 104a (Intro to Topology) , + institution = Brandeis University , + semester = Spring 2020 , +} +\title{Homework 1} +\date{2020-01-18} +\def\T{\mathcal{T}} +\def\basis{\mathcal{B}} +\usepackage[ + letterpaper, + margin = 1in, +]{geometry} +\raggedbottom +\begin{document} +\maketitle + +\section{Topological Spaces} +\subsection{Open Sets and the Definition of a Topology} +\begin{problem}[1.7] + Define a topology on $\R$ (by listing the open sets within it) that contains + the open sets $(0,2)$ and $(1,3)$ that contains as few open sets as possible. +\end{problem} +$\T = \{ \emptyset, (0,2), (1,3), (1,2), (0,3), \R \}$. + +\subsection{Basis for a Topology} +\begin{problem}[1.10] + Show that $\mathcal{B} = \{[a,b) \subset \R : a < b\}$ is a basis for a + topology on $\R$. +\end{problem} +\begin{enumerate} + \item \textbf{$\emptyset \in \T$, $\R \in \T$.} $\emptyset \in \T$ (by the + definition of the completion of a basis to a topology). + + Next, we show $\R \in \T$. For all $n \in \Z_{\ge 0}$, $[n-1, n) \in \basis$ + and $[-n + 1, -n) \in \basis$. We know that if $b_1, b_2 \in \basis$, $b_1 + \union b_2 \in \T$, so these short intervals can be gathered together (``unionized'') + to produce $\R$: + \[ \bigunion_{n=1}^{\infty} \left( [n-1, n) \union [-n + 1, -n] \right) = \R, \] + so $\R \in \T$. + + \item \textbf{$\T$ contains all finite intersections of elements of $\T$.} + Suppose we have two intervals $[a, b)$ and $[c, d)$. Then, we define + \begin{alignat*}{1} + a' &= \max(a, c) \\ + b' &= \min(b, d). + \end{alignat*} + If $a' > b'$, the intersection $[a, b) \inter [c, d) = \emptyset$, which is + in $\T$. Otherwise, the intersection is $[a', b')$, which is an element of + $\basis$. All elements of the basis are in $\T$, so the intersection of two + elements is in the topology. + + Thankfully, the intersection is itself always a basis element, so we can + use the same process to show that finite intersections are in $\T$ by + induction. + + \item \textbf{Unions of elements of $\T$ are in $\T$.} By the definition of + the completion of a basis to a topology, this is true (all unions of basis + elements are included in $\T$). +\end{enumerate} + +\begin{problem}[1.12] + % See example 1.9 for defn of \R_l + Determine which of the following are open sets in $\R_l$. In each case, prove + your assertion. + \[ A = [4,5) + \quad B = \{3\} + \quad C = [1,2] + \quad D = (7,8) \] +\end{problem} +\begin{enumerate} + \item $A$ is open in $\R_l$; $[4,5) \in \basis$. + \item $B$ is not an open set in $\R_l$; there is no $[a, b) \subset \R$ where + both $b > a$ and $|[a, b)| = 1$ (because $[0,1) \cong \R$, i.e.~all + intervals contain infinitely many points). + + (Where $\cong$ means ``is isomorphic to.'') + \item $C$ is not open in $\R_l$ because the upper bound of an open set in + $\R_l$ is never inclusive. There is no set of intervals $[a_1, b_1), \dots$ + where the union or intersection of the intervals has an inclusive upper bound. + \item $D$ is open because we can take + \[ D = \lim_{n\to\infty} \left[7 + \frac{1}{n}, 8\right), \] + where $[7 + 1/n, 8) \in \basis$ for any $n \in \R$ with $n \ne 0$. +\end{enumerate} + +\pagebreak +\begin{problem}[1.15] + An arithmetic progression in $\Z$ is a set + \[ A_{a,b} = \{\dots, a - 2b, a - b, a, a + b, a + 2b, \dots\} \] + with $a,b \in \Z$ and $b \ne 0$. Prove that the collection of arithmetic + progressions + \[ \mathcal{A} = \{ A_{a,b} : a, b \in \Z \text{ and } b \ne 0 \} \] + is a basis for a topology on $\Z$. The resulting topology is called the + arithmetic progression topology on $\Z$. +\end{problem} + +\begin{proof} + \def\Ar#1#2{A_{#1,#2}} + \def\Ars{\mathcal{A}} + Let us describe the \emph{minimal form} of an arithmetic progression $\Ar ab$ + to be the progression $\Ar{a'}{b'} = \Ar ab$ with $a', b' > 0$ and the + smallest possible $a'$; in particular, that $a' < b'$. + + We can obtain the minimal form of the progression like so: + \begin{alignat*}{1} + a' &= a \bmod b \\ + b' &= |b|, \\ + \Ar{a'}{b'} &= \Ar ab. + \end{alignat*} + + \begin{remark} + Two arithmetic progressions have the same elements if their minimal forms are + the same; this give an equivalence relation on $\Ars$. + \end{remark} + + Now, suppose we have two arithmetic progressions $\Ar ab$ and $\Ar cd$. We + assume that the progressions are in minimal form without loss of generality. We + also assume that $b \le d$ (by swapping $(a,b)$ with $(c,d)$ if necessary), + again without loss of generality. + + If $b \mid d$ and $a = c$, we have $\Ar ab \subset \Ar cd$. In particular, $\Ar + ab \inter \Ar cd = \Ar cd$. + + If $b \mid d$ and $a \ne c$, we have $\Ar ab \inter \Ar cd = \emptyset$. + + If $b \nmid d$, we have a different progression. An intersection is generated by + an index $(n_1, n_2)$, where + \begin{alignat*}{1} + a + b n_1 &= c + d n_2. \\ + \intertext{We can then solve for $n_1$:} + t(n) &= c - a + dn \\ + n_1 &= \frac{t(n_2)}{b}. \\ + \intertext{Next, we have an infinite \emph{set} of possibilities for $n_2$:} + n_2 &\in \left\{n \in \Z : t(n) \mid b \right\}. + \intertext{Sorting the possible values of $n_2$ by absolute value, let us call + the smallest two values $i_1$ and $i_2$. Then, the difference between + adjacent elements in the intersection progression $\Ar ab \inter \Ar cd$ + is $i_2 - i_1$. + \endgraf + Let} + a' &= a + bi_1 \\ + b' &= i_2 - i_1 \\ + \Ar ab \inter \Ar cd &= \Ar{a'}{b'}. + \end{alignat*} + This isn't super rigorous, admittedly (we're missing some inductive reasoning + about the integers to prove that there are an infinite set of valid values of + $n_2$, in particular), but I have some fairly convincing Haskell code. And the + missing steps are mostly boilerplate, and it's late at night already\dots + + In all cases, the intersection of two arithmetic progressions is either empty or + another arithmetic progression (i.e.~either the empty set or another basis + element), so the same argument given above for $\R_l$ holds (namely that we can + extend this to all finite intersections of elements of $\Ars$ inductively). + + Therefore, finite intersections are in the basis. Unions are in the completion + of the basis (again by definition). The special element $\emptyset$ is in the + completion (by definition), and $\Z = \Ar01$, so $\Z \in \basis$. Therefore, + $\Ars$ forms the basis of a topology on $\Z$. +\end{proof} + +\pagebreak +\subsection{Closed Sets} +\begin{problem}[1.27(a)] + The infinite comb $C$ is the subset of the plane illustrated in Figure~1.17 + and defined by + \begin{multline*} + C = \{(x,0) : 0 \le x \le 1\} \;\union \\ + \bigg\{ \left( \frac{1}{2^n}, y \right) : n = 0,1,2, \dots \\ + \text{ and } 0 \le y \le 1 \bigg\}. + \end{multline*} + Prove that $C$ is not closed in the standard topology on $\R^2$. +\end{problem} +\begin{proof} + Suppose $C$ is closed in the standard topology on $\R^2$. Then, its complement + $C^c = \R^2 \setminus C$ must be an open set. + + The point $(0, 1)$ is not in $C$, so $(0, 1) \in C^c$. Every open ball in $\R^2$ + containing $(0, 1)$ also contains a smaller open ball centered about $(0, 1)$. + (For example, the open ball about $(-1, 1)$ of radius $1.1$ contains the open + ball centered about $(0, 1)$ of radius $0.1$.) + + However, every open ball centered about $(0, 1)$ contains infinitely many + points of $C$; if the ball has radius $r$, all the comb's ``tines'' at $x = + 1/2^n$ for $n > - \log_2 r$ intersect with the ball. + + Therefore, every open ball containing $(0, 1)$ also contains points in $C$. As + a result, $C^c$ is not open, which contradicts our assumption. Therefore, $C$ + is not closed. +\end{proof} + +\begin{problem}[1.32] + Prove that intervals of the form $[a, b)$ are closed in the lower limit + topology on $\R$. +\end{problem} +\begin{proof} + Take some interval $[a, b)$. Its complement is given by $(-\infty, a) \union + [b, \infty)$. Given that + \begin{alignat*}{1} + (-\infty, a) &= \bigunion_{n=1}^\infty [a-n, a) \\ + [b, \infty) &= \bigunion_{n=1}^\infty [b, b+n), + \end{alignat*} + the complement of $[a, b)$ is the union of a number of lower-limit intervals + in $\R$, i.e.~the basis elements. The basis elements and its unions are open + sets, so the complement of $[a, b)$ is an open set. Then, by the definition of + a closed set, $[a, b)$ is closed in $\R_l$. +\end{proof} + + +\end{document} diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls new file mode 100644 index 0000000000..85e789b34a --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-formula-sheet.cls @@ -0,0 +1,150 @@ +%% rbt-mathnotes-formula-sheet.cls +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplClass{rbt-mathnotes-formula-sheet}{2021/11/29}{1.0.2}{Styles + for mathematical exam formula sheets.} + +\LoadClass{article} + +\RequirePackage{rbt-mathnotes} + +\cs_set:Npn \@maketitle + { + \textbf{\@title}~ + (\@author,~\@date) + } + +\cs_set:Npn \mn__tiny_thm:nn #1#2 + { + \RenewDocumentEnvironment { #1 } { o } + { + \textbf + { + #2 + \IfValueT { ##1 } + { + :~##1 + } + . + } + } + { + } + } + +\mn__tiny_thm:nn { thm } { Thm } +\mn__tiny_thm:nn { lem } { Lem } +\mn__tiny_thm:nn { cor } { Cor } +\mn__tiny_thm:nn { prop } { Prop } +\mn__tiny_thm:nn { defn } { Defn } +\mn__tiny_thm:nn { ex } { Ex } +\mn__tiny_thm:nn { note } { Note } +\mn__tiny_thm:nn { remark } { Rmrk } + +\prg_new_conditional:Npnn \mn__if_should_use_multicols: + { T, } + { + \int_compare:nNnTF + { \g__mn_fs_columns_int } = { \c_one_int } + { \prg_return_false: } + { \prg_return_true: } + } + +\RequirePackage{multicol} +\AtBeginDocument + { + \scriptsize + \mn__if_should_use_multicols:T + { + \begin + { + multicols + \bool_if:NF \g__mn_should_balance_multicols_bool + { * } + } + { + \int_use:N \g__mn_fs_columns_int + } + } + \skip_set:Nn \abovedisplayskip { 0pt } + \skip_set:Nn \belowdisplayskip { 0pt } + } + +\AtEndDocument + { + \mn__if_should_use_multicols:T + { + \end + { + multicols + \bool_if:NF \g__mn_should_balance_multicols_bool + { * } + } + } + } + +\bool_new:N \g__mn_should_balance_multicols_bool + +\keys_define:nn { mn__main } + { + columns .int_set:N = \g__mn_fs_columns_int , + columns .initial:x = 3 , + + balance~columns .default:n = true , + balance~columns .bool_set:N = \g__mn_should_balance_multicols_bool , + + width .value_required:n = true , + width .code:n = \geometry{ paperwidth = #1 } , + + height .value_required:n = true , + height .code:n = \geometry{ paperheight = #1 } , + } + +\RequirePackage + [ + letterpaper , + margin = 0.1in , + ] + { geometry } + +\skip_set:Nn \parskip { 0.25em } + +\RequirePackage { enumitem } +\setlist + { + nosep + } + +\def\section#1{\hrulefill\\\textbf{#1}\\} diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-hw.cls b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-hw.cls new file mode 100644 index 0000000000..24e91f715e --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-hw.cls @@ -0,0 +1,325 @@ +%% rbt-mathnotes-hw.cls +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplClass{rbt-mathnotes-hw}{2021/11/29}{1.0.2}{Companion styles + to rbt-mathnotes for typeset homework assignments.} + +% \PassOptionsToPackage{noxcolor}{rbt-mathnotes} + +\RequirePackage{kvoptions} +\DeclareDefaultOption + { + \PassOptionsToClass { \CurrentOption } { rbt-mathnotes } + } +\ProcessKeyvalOptions* + +\LoadClass { rbt-mathnotes } + +\cs_set:Npn \mn__undefine_thm:n #1 + { + \cs_undefine:c { #1 } + \cs_undefine:c { end#1 } + \cs_undefine:c { #1* } + \cs_undefine:c { end#1* } + } + +\mn__undefine_thm:n { thm } +\mn__undefine_thm:n { lem } +\mn__undefine_thm:n { cor } +\mn__undefine_thm:n { prop } +\mn__undefine_thm:n { defn } +\mn__undefine_thm:n { notation } +\mn__undefine_thm:n { ex } + +\cs_undefine:N \mn__undefine_thm:n + +\theoremstyle { definition } +\newtheorem { thm } { Theorem } +\newtheorem { lem } { Lemma } +\newtheorem { cor } { Corollary } +\newtheorem { prop } { Proposition } +\newtheorem { defn } { Definition } +\newtheorem { notation } { Notation } +\newtheorem { ex } { Example } + +% The displayed problem number. \g__mn_problems_int isn't incremented if a +% custom number is given. +\int_new:N \g__mn_problems_int +\int_set_eq:NN \g__mn_problems_int \c_one_int + +% The internal problem number. \g__mn_all_problems_int is *always* +% incremented, so it can be used as a unique identifier in hyperref +% pdf bookmark names. +\int_new:N \g__mn_all_problems_int +\int_set_eq:NN \g__mn_all_problems_int \c_one_int + +% Label prepended to problem numbers. +\tl_const:Nn \g__mn_problem_string_tl { Problem } + +\skip_const:Nn \g__mn_problem_before_skip { 2em } + +% Label appended to problem numbers; omitted from PDF bookmarks. +\tl_const:Nn \g__mn_problem_after_tl { . } + +% A possible custom problem number. If \c_novalue_tl, use +% \g__mn_problems_int instead. +\tl_new:N \mn__problem_number_tl +\tl_set_eq:NN \mn__problem_number_tl \c_novalue_tl + +\tl_const:Nn \mn__problem_number_default_tl + { + \int_to_arabic:n { \g__mn_problems_int } + } + +% Current problem number, either from \g__mn_problems_int or +% \mn__problem_number_tl. +\tl_new:N \mn__problem_number_current_tl + +% Current problem display title, including "problem" label, number, and +% custom title. +% \tl_new:N \mn__problem_display_title_tl + +\keys_define:nn { mn__main } + { + problem~string .value_required:n = true , + problem~string .tl_set:N = \g__mn_problem_string_tl , + problem~before~skip .skip_set:N = \g__mn_problem_before_skip + } + +\keys_define:nn { mn__problem } + { + number .value_required:n = true , + number .tl_set:N = \mn__problem_number_tl , + + title .value_required:n = true , + title .tl_set:N = \mn__problem_title_tl , + title .initial:n = , + + label .value_required:n = true , + label .tl_set:N = \mn__problem_label_tl , + + % Treat unknown keys as the problem number; this lets us avoid having + % 2 or more optional arguments. + unknown .code:n = + \tl_if_empty:nTF { #1 } + { + % No value; use it for the problem number. + \tl_set_eq:NN \mn__problem_number_tl \l_keys_key_tl + } + { + % Non-empty value; give an error. + \msg_error:nnx + { mathnotes } + { no key in problem } + { \tl_use:N \l_keys_key_tl } + } , + } + +\cs_set:Npn \mn__problem_title_pdf: + { + % A string like "Problem" or "Exercise" or "Question" + \tl_use:N \g__mn_problem_string_tl + % The problem number. + \tl_if_empty:NF \mn__problem_number_current_tl + { + \ \tl_use:N \mn__problem_number_current_tl + } + \tl_if_empty:NF \mn__problem_title_tl + { + :~\tl_use:N \mn__problem_title_tl + } + } + +\cs_set:Npn \mn__problem_title: + { + \mn__problem_title_pdf: + % The text after the problem, nominally a period ("."). + \tl_use:N \g__mn_problem_after_tl + } + +% PDF anchor / bookmark name for hyperref. +\cs_set:Npn \mn__problem_anchor: + { + problem.\int_to_arabic:n { \g__mn_all_problems_int } + } + +\NewDocumentEnvironment { problem } + { + O{} % Problem number or options + } + { + \keys_set:nn { mn__problem } { #1 } + + % Set the problem number + \tl_set:Nn \mn__problem_number_current_tl { } + \tl_if_eq:NNTF \mn__problem_number_tl \c_novalue_tl + { + % No number given + \tl_set_eq:NN \mn__problem_number_current_tl \mn__problem_number_default_tl + } + { + % Some number given, *maybe* empty + \tl_set_eq:NN \mn__problem_number_current_tl \mn__problem_number_tl + } + + \vspace { \skip_use:N \g__mn_problem_before_skip } + + \phantomsection + \addcontentsline + { toc } + { chapter } + { \mn__problem_title_pdf: } + \begin{mdframed} + [ + style = note , + startinnercode = + \mn__note_title:n + { + \cs_gset:Npx \@currentlabel { \tl_use:N \mn__problem_number_current_tl } + \cs_gset:Npx \@currentlabelname { \mn__problem_title: } + \tl_if_empty:NF \mn__problem_label_tl + { + \exp_after:wN \label { \tl_use:N \mn__problem_label_tl } + } + \mn__problem_title: + } + , + ] + } + { + \end{mdframed} + % If we didn't get a custom number, increment the counter. + \tl_if_eq:NNT \mn__problem_number_tl \c_novalue_tl + { + \int_gincr:N \g__mn_problems_int + } + % But always increment the internal counter. + \int_gincr:N \g__mn_all_problems_int + } + +\NewDocumentCommand \prob + { + O{} % Problem number or options + m % Problem text + } + { + \begin{problem}[#1] + #2 + \end{problem} + } + +\cs_set:Npn \mn__add_par_arg_to_sectioning_cmd:N #1 + { + \cs_set_eq:cN { mn__\cs_to_str:N #1 _old } #1 + \cs_set_eq:cc + { mn__the\cs_to_str:N #1 _old } + { the\cs_to_str:N #1 } + \RenewDocumentCommand #1 + { + s % ##1: Numbered / in ToC? + d() % ##2: Number override. + o % ##3: ToC title. + o % ##4: Page header title. + m % ##5: Title. + } + { + \group_begin: + \cs_set:Npx \mn__current_thesection_cmd + { the\cs_to_str:N #1 } + % Is there a number override? + \IfValueTF { ##2 } + { + % If yes, *globally* change the number format. + \cs_gset:cpn { \mn__current_thesection_cmd } { ##2 } + } + { + % Otherwise, restore the number format from a previous override, + % if applicable. + \cs_gset_eq:cc + { \mn__current_thesection_cmd } + { mn__the\cs_to_str:N #1 _old } + } + % Save the original command so we can use it as a single token. + \cs_set_eq:Nc \mn__orig_sectioning_cmd { mn__\cs_to_str:N #1 _old } + \exp_last_unbraced:Ne \mn__orig_sectioning_cmd + { + % Propagate the star. + \IfBooleanT { ##1 } { * } + % Propogate other arguments. + \IfValueT { ##3 } { [##3] } + \IfValueT { ##4 } { [##4] } + { ##5 } + } + \group_end: + } + } + +\cs_set:Npn \mn__add_par_arg_to_sectioning_cmds:n #1 + { + \clist_map_function:nN { #1 } \mn__add_par_arg_to_sectioning_cmd:N + } + +\makeheadstyles { rbt-mathnotes-hw } + { + \chapterstyle { rbt-mathnotes } + \headstyles { rbt-mathnotes } + + % Don't use chapter numbers in sections and beyond: + \cs_set:Npn \thesection { \arabic{section} } + + % Add paren-arg to override numbers in sectioning commands. + \mn__add_par_arg_to_sectioning_cmds:n + { + \chapter , + \section , + \subsection , + \subsubsection , + \paragraph , + \subparagraph , + } + } + +\headstyles { rbt-mathnotes-hw } + +\setlength{\columnsep}{3em} + +% No chapter numbers for figures. +\counterwithout{figure}{chapter} + +% Put author name, title in headings +\makeevenfoot { headings } { } { } { } +\makeoddfoot { headings } { } { } { } +\makeevenhead { headings } { } { } { \thepage } +\makeoddhead { headings } { \@author,~\textit{ \@title } } { } { \thepage } diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-messages.sty b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-messages.sty new file mode 100644 index 0000000000..30b0c1a777 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-messages.sty @@ -0,0 +1,76 @@ +%% rbt-mathnotes-messages.sty +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage{rbt-mathnotes-messages}{2021/11/29}{1.0.2}{Messages + for mathnotes.} + +\msg_new:nnnn { mathnotes } + { no name } + { + No~author~name~given~but~\exp_not:N \maketitle~was~still~used. + } + { + Set~your~name~in~the~preamble: \\ + \exp_not:N \mathnotes\{~name~=~Your~name~...~,~\} + } + +\msg_new:nnnn { mathnotes } + { acronym already defined } + { + Command~#1~already~defined;~refusing~to~redefine~as~an~acronym~for~#2. + } + { + Pick~a~different~destination~control~sequence~with~\protect\newacronym's~ + optional~argument? + } + +\msg_new:nnnn { mathnotes } + { no key in problem } + { + Key~#1~is~not~defined~for~the~problem~environment. + } + { + If~you~meant~to~set~the~problem~number,~don't~include~a~value. + } + + +\msg_new:nnnn { mathnotes } + { requires memoir class } + { + Option~#1~can~only~be~used~with~the~memoir~class! + } + { + Use~the~memoir~document~class~or~one~of~the~rbt-mathnotes~classes~wrapping~it. + } diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-util.sty b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-util.sty new file mode 100644 index 0000000000..b95c73da01 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes-util.sty @@ -0,0 +1,180 @@ +%% rbt-mathnotes-util.sty +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage{rbt-mathnotes-util}{2021/11/29}{1.0.2}{Utility commands + for rbt-mathnotes.} + +\cs_set:Npn \mn__legacy_bool_option:n #1 + { + \bool_new:c { g__mn_#1_bool } + \csname if\@currname @#1 \endcsname + \bool_gset_true:c { g__mn_#1_bool } + \else + \bool_gset_false:c { g__mn_#1_bool } + \fi + } + +\keys_define:nn { mn_options } + { + init .tl_set:N = \l__mn_options_init_tl , + init .default:n = true , + init .initial:x = \tl_use:N \c_novalue_tl , + + default .tl_set:N = \l__mn_options_default_tl , + default .value_required:n = true , + default .initial:x = \tl_use:N \c_novalue_tl , + + type .choice: , + type .choices:nn = { bool, str } + { \tl_set_eq:NN \l__mn_options_type_tl \l_keys_choice_tl } , + type .value_required:n = true , + type .initial:n = bool , + } + +% A hook which executes after \ProcessKeyvalOptions and is used to convert +% TeX booleans and so on to LaTeX3 booleans and strings. +\tl_new:N \g__mn_after_options_hook_tl +% A hook used to define a particular option, allowing keys to be set only in +% a group. +\tl_new:N \g__mn_define_option_tl +% Initializes complementary #1 and no#1 package options. +\NewDocumentCommand \mn__option_new { o m } + { + \tl_gclear:N \g__mn_define_option_tl + \group_begin: + \tl_if_novalue:nF { #1 } + { \keys_set:nn { mn_options } { #1 } } + + \tl_set:Nn \l_tmpa_tl { bool } + \tl_if_eq:NNT \l__mn_options_type_tl \l_tmpa_tl + { + % If no default was given, use `false` for bools. + \tl_if_eq:NNT \l__mn_options_init_tl \c_novalue_tl + { \tl_set:Nn \l__mn_options_init_tl { false } } + + \tl_gput_right:Nx \g__mn_define_option_tl + { + \exp_not:N \DeclareBoolOption [\l__mn_options_init_tl]{#2} + \exp_not:N \DeclareComplementaryOption {no#2}{#2} + } + + % After we process options, convert to an expl3 bool. + \tl_gput_right:Nn \g__mn_after_options_hook_tl + { + % Adapt the legacy bool into an expl3 bool. + \mn__legacy_bool_option:n { #2 } + % Then, delete the legacy bool. + \mn__legacy_bool_undefine:n { \@currname @#2 } + } + } + + % For a string option: + \tl_set:Nn \l_tmpa_tl { str } + \tl_if_eq:NNT \l__mn_options_type_tl \l_tmpa_tl + { + \tl_gput_right:No \g__mn_define_option_tl + { + \exp_not:N \DeclareStringOption + \tl_if_eq:NNF \l__mn_options_init_tl \c_novalue_tl + { [\l__mn_options_init_tl] } + { #2 } + \tl_if_eq:NNF \l__mn_options_default_tl \c_novalue_tl + { [\l__mn_options_default_tl] } + } + + \tl_gput_right:Nn \g__mn_after_options_hook_tl + { + % Create the new tl for this option. + \tl_new:c { g__mn_#2_tl } + % Set it to the command kvoptions created. + \tl_set:co { g__mn_#2_tl } { \cs:w \@currname @#2 \cs_end: } + % Delete the old command. + \cs_undefine:c { \@currname @#2 } + } + } + \group_end: + \tl_use:N \g__mn_define_option_tl + } + +\cs_set:Npn \mn__process_options:n #1 + { + \ProcessKeyvalOptions { #1 } + \tl_use:N \g__mn_after_options_hook_tl + } + +\cs_set:Npn \mn__legacy_bool_undefine:n #1 + { + \cs_undefine:c { if#1 } + \cs_undefine:c { #1true } + \cs_undefine:c { #1false } + } + +% Package configuration string values. +% {< module >}{< family >}{< key name >} +\cs_set:Npn \mn__key_new:nnn #1#2#3 + { + \tl_set_eq:cN { l__#1_#3_tl } \c_novalue_tl + \keys_define:nn { #2 } + { + #1 .value_required:n = true, + #1 .tl_set:c = l__#1_#3_tl, + } + } + +\cs_set:Npn \mn__mathnotes_key_new:n #1 + { + \mn__key_new:nnn { mn } { mathnotes } { #1 } + } + +\cs_set:Npn \mn__keys_new:n #1 { \clist_map_function:nN { #1 } \mn__mathnotes_key_new:n } + +\prg_new_conditional:Npnn \mn__if_package_loaded:n #1 + { p, T, F, TF } + { + \@ifpackageloaded { #1 } + { \prg_return_true: } + { \prg_return_false: } + } + +\prg_new_conditional:Npnn \mn__if_novalue:N #1 + { p, T, F, TF } + { + \tl_if_eq:NNTF \c_novalue_tl #1 + { \prg_return_true: } + { \prg_return_false: } + } +\prg_generate_conditional_variant:Nnn \mn__if_novalue:N + { c } + { p, T, F, TF } diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.cls b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.cls new file mode 100644 index 0000000000..df69338ad1 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.cls @@ -0,0 +1,202 @@ +%% rbt-mathnotes.cls +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplClass{rbt-mathnotes}{2021/11/29}{1.0.2}{Styles for mathematical + note taking.} + +\PassOptionsToClass { openany, oneside } { memoir } + +\LoadClass{memoir} +\setsecnumdepth{subsubsection} +\settocdepth{subsubsection} +\nouppercaseheads +\makeevenfoot { plain } { } { } { } +\makeoddfoot { plain } { } { } { } +\makeevenhead { plain } { } { } { \thepage } +\makeoddhead { plain } { } { } { \thepage } + +\RequirePackage{etoolbox} +\RequirePackage{xparse} +\AtBeginDocument{ + \patchcmd { \@tocmaketitle } + { \thispagestyle { chapter } } + { } + { } + { } + } + +\makechapterstyle { rbt-mathnotes } + { + % allow for 99 chapters! + \settowidth{\chapindent}{\chapnumfont 999} + + \RenewDocumentCommand \chapnumfont { } + { + \normalfont + \huge + \exp:w \mn__color:n {MNsecnum} + } + \RenewDocumentCommand \chapterheadstart { } { } + \RenewDocumentCommand \printchaptername { } { } + \RenewDocumentCommand \chapternamenum { } { } + \RenewDocumentCommand \printchapternum { } + { + \noindent + \llap + { + \makebox [ \chapindent ] + { \chapnumfont \thechapter } + } + } + \RenewDocumentCommand \afterchapternum { } { } + \RenewDocumentCommand \printchaptertitle { m } + { + \raggedright + \huge + ##1 + } + \RenewDocumentCommand \afterchaptertitle { } + { + \vskip \onelineskip + \hrule + \vskip \onelineskip + } + } + +\makeheadstyles { rbt-mathnotes } + { + \chapterstyle { rbt-mathnotes } + + \setsecnumformat + { + \group_begin: + \exp:w \mn__color:n {MNsecnum} + \cs:w the##1 \cs_end: + \quad + \group_end: + } + + % Sections. + \setbeforesecskip + { + -1\onelineskip plus -0.5\onelineskip minus -0.5\onelineskip + } + \setaftersecskip + { + 1\onelineskip plus 0.1\onelineskip + } + \setsecheadstyle + { + \normalfont + \memRTLraggedright + \bfseries + \LARGE + % \scshape + % \MakeTextLowercase + } + + % Subsections. + \setbeforesubsecskip + { + -1.0\onelineskip plus -0.25\onelineskip minus -0.25\onelineskip + } + \setaftersubsecskip + { + 1.0\onelineskip plus 0.1\onelineskip + } + \setsubsecheadstyle + { + \sethangfrom { \noindent ####1 } + \normalfont + \bfseries + \memRTLraggedright + } + + % Subsubsections. + \setbeforesubsubsecskip + { + 1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip + } + \setaftersubsubsecskip + { + 1.0\onelineskip plus 0.1\onelineskip + } + \setsubsubsecheadstyle + { + \normalfont + \normalsize + \bfseries + \memRTLraggedright + } + + % Paragraphs. + \setbeforeparaskip + { + 1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip + } + \setafterparaskip { -1em } + \setparaheadstyle + { + \normalfont + \normalsize + \bfseries + } + + % Subparagraphs. + \setsubparaindent { \parindent } + \setbeforesubparaskip + { + 1.0\onelineskip plus 0.5\onelineskip minus 0.2\onelineskip + } + \setaftersubparaskip { -1em } + \setsubparaheadstyle + { + \normalfont + \normalsize + \itshape + \addperiod + } + } + +\headstyles { rbt-mathnotes } + +% \chapterstyle{hangnum} +% \cs_set:Npn \chapnumfont + % { + % \HUGE \bfseries + % \exp:w \mn__color:n {MNsecnum} + % } + +\RequirePackage { rbt-mathnotes } diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.pdf b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.pdf Binary files differnew file mode 100644 index 0000000000..0041a12eb2 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.pdf diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.sty b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.sty new file mode 100644 index 0000000000..afa05cbfb8 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.sty @@ -0,0 +1,1122 @@ +%% rbt-mathnotes.sty +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{expl3} +\ProvidesExplPackage{rbt-mathnotes}{2021/11/29}{1.0.2}{Styles for + mathematical note taking.} +\errorcontextlines 20 +% Module 'mn' + +% Load some utility packages. +\RequirePackage{xparse} % Better command declarations. +\RequirePackage{xkeyval} % Better keyval parsing. +% {{{ Package options +\RequirePackage{kvoptions} % More flexible package options. +\RequirePackage{rbt-mathnotes-util} + +\SetupKeyvalOptions + { + family = mn__package_options , + } + +\mn__option_new[init = true]{fonts} +\mn__option_new[init = true]{stix} +\mn__option_new[init = true]{symbols} +\mn__option_new[init = true]{maketitle} +\mn__option_new[init = true]{titles} +\mn__option_new[init = true]{xcolor} +\mn__option_new[init = true]{theorems} +\mn__option_new[init = true]{enumitem} +\mn__option_new{listings} +\mn__option_new{knowledge} +\mn__option_new{index} +\mn__option_new{footnotes} +\mn__option_new{figures} +\mn__option_new{tabu} +\mn__option_new{kindle} + +\mn__process_options:n { mn__package_options } % }}} + +\RequirePackage{rbt-mathnotes-messages} + +% {{{ Load fonts. +% Check if we can load fontspec; this is taken from fontspec.sty. +\bool_new:N \c__mn_fontspec_bool +\bool_set:Nn \c__mn_fontspec_bool + { + \sys_if_engine_xetex_p: || \sys_if_engine_luatex_p: + } + +% NOTE: The order these packages are loaded in is very important. +% - mathtools has to be loaded before these or overbrackets and such get +% messed up +% - unicode-math overwrites a bunch of commands, so should be loaded after +% amsmath and others +% - amsmath should be loaded after stix2 (not sure why, but the stix2 +% documentation specifies this) -- however, if we can use fontspec, we +% just load the stix2 fonts without the stix2 package itself, so we load +% amsmath before unicode-math (and the stix2 fonts) +\RequirePackage{mathtools} +\bool_if:NTF \g__mn_fonts_bool + { + \bool_if:NTF \c__mn_fontspec_bool + { + \RequirePackage{amsmath}[2013/01/14] + % unicode-math makes equations copy/pastable in PDF output. + % Note that unicode-math encapsulates the functionality of fontspec. + \RequirePackage[ + warnings-off={mathtools-colon,mathtools-overbracket} + ]{unicode-math} + \bool_if:NT \g__mn_stix_bool + { + \setmainfont + [ + UprightFont = *-Regular , + ItalicFont = *-Italic , + BoldFont = *-Bold , + BoldItalicFont = *-BoldItalic , + Extension = .otf , + ] + { STIX2Text } + + \setmathfont + [ + StylisticSet = + { + 1 , % better caligraphic forms + 8 , % upright integrals + } , + Extension = .otf , + ] + { STIX2Math } + } + } + { + % Otherwise, load non-XeTeX fallbacks. + \bool_if:NT \g__mn_stix_bool + { + \RequirePackage[upint]{stix2} + } + \RequirePackage{amsmath}[2013/01/14] + } + } + { + % No fonts + \RequirePackage{amsmath}[2013/01/14] + } % }}} + +\bool_if:NT \g__mn_symbols_bool % {{{ Define math symbol commands + { + % Logical not + \mn__if_package_loaded:nTF { unicode-math } + { \DeclareDocumentCommand \lnot {} { \char "AC } } % 0xAC = ¬ + { \mathchardef \Not = "1218 } + + % Blackboard bold set symbols + \NewDocumentCommand \Rational {}{\mathbb{Q}} + \ProvideDocumentCommand \Rat {}{\Rational} + \ProvideDocumentCommand \Q {}{\Rational} + + % \NewDocumentCommand \Irrational {}{\mathbb{I}} + % \ProvideDocumentCommand \Irrat {}{\Irrational} + % \ProvideDocumentCommand \I {}{\Irrational} + + \NewDocumentCommand \Natural {}{\mathbb{N}} + \ProvideDocumentCommand \Nat {}{\Natural} + \ProvideDocumentCommand \N {}{\Natural} + + \NewDocumentCommand \Integer {}{\mathbb{Z}} + \ProvideDocumentCommand \Int {}{\Integer} + \ProvideDocumentCommand \Z {}{\Integer} + + \NewDocumentCommand \Complex {}{\mathbb{C}} + \ProvideDocumentCommand \Comp {}{\Complex} + % Renew \C to mean \Complex in math-mode; normally, \C just gives an + % error in math-mode. + % ...if \C isn't defined, just define it normally. + \AtBeginDocument + { + \cs_if_free:NTF \C + { \NewDocumentCommand } + { + \cs_set_eq:NN \mn__C_old \C + \RenewDocumentCommand + } + \C {}{ + \mode_if_math:TF + { \Complex } % Complex set + { \mn__C_old } % Copyright sign + } + } + + \NewDocumentCommand \Real {}{\mathbb{R}} + \ProvideDocumentCommand \R {}{\Real} + + % Using the Weierstrass p here is probably a bit controversial, but I like + % it. I'm open to change, though... + \ProvideDocumentCommand \powerset {}{\wp} + + \RenewDocumentCommand \vec {m}{\mathbf{#1}} + + % Operator synonyms. + % Set intersect. + \ProvideDocumentCommand \intersection {}{\cap} + \ProvideDocumentCommand \inter {}{\cap} + \ProvideDocumentCommand \bigintersection {}{\bigcap} + \ProvideDocumentCommand \biginter {}{\bigcap} + + % Set union. + \ProvideDocumentCommand \union {}{\cup} + \ProvideDocumentCommand \bigunion {}{\bigcup} + % Disjoint union. + \ProvideDocumentCommand \disjointunion {}{\sqcup} + \ProvideDocumentCommand \disunion {}{\sqcup} + + % Divisiblity. + \ProvideDocumentCommand \divisible {}{\mid} + \ProvideDocumentCommand \div {}{\mid} + % Negation. + \ProvideDocumentCommand \notdivisible {}{\nmid} + \ProvideDocumentCommand \ndivisible {}{\nmid} + \ProvideDocumentCommand \notdiv {}{\nmid} + \ProvideDocumentCommand \ndiv {}{\nmid} + + % Wrappers around floor and ceil. + \ProvideDocumentCommand \floor {m}{\lfloor #1\rfloor} + \ProvideDocumentCommand \ceil {m}{\lceil #1\rceil} + + % The default empty set symbol is very ugly. Use \varnothing instead, + % which is less ugly. + \AtBeginDocument{\RenewDocumentCommand \emptyset {}{\varnothing}} + \ProvideDocumentCommand \es {}{\emptyset} + + % Function composition. The notation g \after f helps internalize the + % order of operations. :) + \ProvideDocumentCommand \after {}{\circ} + + % Cross product. + \ProvideDocumentCommand \cross {}{\times} + + % Operators. + % Function image. + \cs_if_free:NT \img + { \DeclareMathOperator \img {img} } + % Function pre-image. + \cs_if_free:NT \pre + { \DeclareMathOperator \pre {pre} } + % Function stabilizer. + \cs_if_free:NT \Stab + { \DeclareMathOperator \Stab {Stab} } + % Set of a function's fixed points. + \cs_if_free:NT \FixPt + { \DeclareMathOperator \FixPt {FixPt} } + % Identity function + \cs_if_free:NT \id + { \DeclareMathOperator \id {id} } + + % Injective function. + \ProvideDocumentCommand \injection {}{\hookrightarrow} + \ProvideDocumentCommand \inj {}{\hookrightarrow} + % Surjective function. + \ProvideDocumentCommand \surjection {}{\twoheadrightarrow} + \ProvideDocumentCommand \surj {}{\twoheadrightarrow} + % Bijective function. + \ProvideDocumentCommand \bijection {}{\twoheadrightarrowtail} + \ProvideDocumentCommand \bijective {}{\twoheadrightarrowtail} + \ProvideDocumentCommand \bij {}{\twoheadrightarrowtail} + % Function restriction. + \cs_if_free:NT \restriction + { \DeclareMathOperator \restriction {|} } + \ProvideDocumentCommand \restr {}{\restriction} + + % d/dx + \ProvideDocumentCommand \dd { O{} m }{\frac{d#1}{d#2}} + \ProvideDocumentCommand \pd { O{} m }{\frac{\partial#1}{\partial#2}} + \ProvideDocumentCommand \gradient {}{\nabla} + \ProvideDocumentCommand \grad {}{\nabla} + \cs_if_free:NT \curl + { \DeclareMathOperator \curl {curl} } + \cs_if_free:NT \dive + { \DeclareMathOperator \dive {div} } + } % }}} + +% Gives this an equation a number in an amsmath starred environment. +\ProvideDocumentCommand \numberthis { } % {{{ + { + \tag { \theequation } + \refstepcounter { equation } + } % }}} + +% Gives this equation a number and label in an amsmath starred environment. +\ProvideDocumentCommand \labelthis { m } % {{{ + { + \numberthis + \IfValueT { #1 } + { \label { #1 } } + } % }}} + +\bool_if:NT \g__mn_enumitem_bool + { \RequirePackage{enumitem} } + +\bool_if:NT \g__mn_listings_bool + { \RequirePackage{listings} } + +\bool_if:NT \g__mn_xcolor_bool % {{{ Load xcolor and define MN colors + { + \PassOptionsToPackage { rgb } { xcolor } + \RequirePackage { xcolor } + \providecolorset { HTML } + % Prefix/postfix of all color names + { } { } + { + \use_none:n + ; MNthmtitle , 0F0066 + ; MNthmbg , EBFEFF + ; MNthmline , 4836B3 + ; MNextitle , 692219 + ; MNexbg , FFF0EB + ; MNexline , CC7468 + ; MNdefntitle , 00540B + ; MNdefnline , 196924 + ; MNdefnbg , EBFFED + ; MNnotetitle , 6B0019 + ; MNnoteline , CC3F60 + ; MNnotebg , FFF5F7 + + ; MNsecnum , 8015A1 + + ; MNlink , 113DB8 + } + } % }}} + +\bool_if:NT \g__mn_listings_bool % {{{ Better default styles + { + \RequirePackage { xcolor } + \lstset + { + % Use a monospace font for code listings. + basicstyle = \ttfamily , + language = Mathematica , + % Tab size of 4, but you should probably use spaces. + tabsize = 4 , + % Keywords in blue. + keywordstyle = \bfseries\ttfamily\color[rgb]{0,.3,.7} , + % Comments in green. + commentstyle = \color[rgb]{0.133,0.545,0.133} , + % Strings in orange. + stringstyle = \color[rgb]{0.75,0.49,0.07} , + % The default listings characters are too widely-spaced. + % 0.55em/character makes things look a lot better. + basewidth = 0.55em , + % Wrap lines if they're too long, and wrap at whitespace. + breaklines , + breakatwhitespace = true , + } + } % }}} + +% Creates an acronym-command. +% \newacronym[<\command>]{<text>} defines \command to be \textsc{text}. +% \newacronym{<text>} defines \text to be \textsc{text}. +\ProvideDocumentCommand \newacronym { o m } % {{{ + { + \group_begin: + % If we have #1, then #1 is the cs we're going to define; #1 is a cs. + % Otherwise, we define \#2. + \IfValueTF { #1 } + { \cs_set:Npn \mn__acronym_cs: { \cs_to_str:N #1 } } + { \cs_set:Npn \mn__acronym_cs: { #2 } } + + % Ensure that the cs is undefined. + \cs_if_exist:cT { \mn__acronym_cs: } + { + \msg_error:nnxx + { mathnotes } + { acronym already defined } + { \exp_not:c { \mn__acronym_cs: } } + { #2 } + } + + % Finally, define the acronym command. + \cs_new:cpn { \mn__acronym_cs: } + { \textsc { #2 } } + \group_end: + } % }}} + +% \newacronyms takes a comma-separated list as its argument and defines them +% all as acronyms. +\ProvideDocumentCommand \newacronyms { m } + { \clist_map_function:nN { #1 } \newacronym } + +% {{{ Package configuration string values; \mathnotes command +\keys_define:nn { mn__main } + { + date .value_required:n = true , + date .code:n = \date{#1} , + author .value_required:n = true , + author .code:n = \author{#1} , + title .value_required:n = true , + title .code:n = \title{#1} , + + generate~thanks .value_required:n = false , + generate~thanks .bool_set:N = \g__mn_should_make_thanks , + generate~thanks .default:n = true , + generate~thanks .initial:n = true , + } + +\cs_set:Npn \mn__key_new:n #1 + { + \keys_define:nn { mn__main } + { + #1 .value_required:n = true , + #1 .tl_gset:c = g__mn_#1_tl , + #1 .initial:x = , + } + } + +\cs_set:Npn \mn__keys_new:n #1 { \clist_map_function:nN { #1 } \mn__key_new:n } + +\mn__keys_new:n + { + instructor, course, name, email, institution, semester, + } + +\NewDocumentCommand \mathnotes { m } + { + \keys_set:nn { mn__main } { #1 } + } +% }}} + +\bool_if:NT \g__mn_maketitle_bool % {{{ \author, \title, \maketitle, \thanks, etc. + { + \bool_new:N \g__mn_author_set + \cs_set:Npn \author #1 + { + \bool_gset_true:N \g__mn_author_set + \cs_gset:Npn \@author { #1 } + } + + \bool_new:N \g__mn_title_set + \cs_set:Npn \title #1 + { + \bool_gset_true:N \g__mn_title_set + \cs_gset:Npn \@title { #1 } + } + + \prg_new_conditional:Npnn \mn__if_should_make_thanks: % {{{ + { T, } + { + \bool_if:NTF \g__mn_should_make_thanks + { + \bool_lazy_all:nTF + { + { \tl_if_empty_p:N \g__mn_email_tl } + { \tl_if_empty_p:N \g__mn_course_tl } + { \tl_if_empty_p:N \g__mn_instructor_tl } + { \tl_if_empty_p:N \g__mn_institution_tl } + { \tl_if_empty_p:N \g__mn_semester_tl } + } + { \prg_return_false: } + { \prg_return_true: } + } + { \prg_return_false: } + } % }}} + + \cs_set:Npn \mn__make_thanks_text % {{{ + { + \tl_if_empty:NF \g__mn_email_tl + { + \email { \tl_use:N { \g__mn_email_tl } } + \bool_lazy_all:nF + { + { \tl_if_empty_p:N \g__mn_course_tl } + { \tl_if_empty_p:N \g__mn_instructor_tl } + { \tl_if_empty_p:N \g__mn_institution_tl } + { \tl_if_empty_p:N \g__mn_semester_tl } + } + { ;~ } + } + \tl_if_empty:NF \g__mn_course_tl + { + \tl_use:N \g__mn_course_tl + \bool_lazy_all:nF + { + { \tl_if_empty_p:N \g__mn_instructor_tl } + { \tl_if_empty_p:N \g__mn_institution_tl } + { \tl_if_empty_p:N \g__mn_semester_tl } + } + { ~ } + } + \tl_if_empty:NF \g__mn_instructor_tl + { + \bool_lazy_all:nTF + { + { \tl_if_empty_p:N \g__mn_email_tl } + { \tl_if_empty_p:N \g__mn_course_tl } + } + { Taught~by~ } + { taught~by~ } + \tl_use:N \g__mn_instructor_tl + } + \tl_if_empty:NF \g__mn_institution_tl + { + \bool_lazy_all:nTF + { + { \tl_if_empty_p:N \g__mn_email_tl } + { \tl_if_empty_p:N \g__mn_course_tl } + { \tl_if_empty_p:N \g__mn_instructor_tl } + } + { At~ } + { ~at~ } + \tl_use:N \g__mn_institution_tl + } + \tl_if_empty:NF \g__mn_semester_tl + { + \bool_lazy_all:nF + { + { \tl_if_empty_p:N \g__mn_email_tl } + { \tl_if_empty_p:N \g__mn_course_tl } + { \tl_if_empty_p:N \g__mn_instructor_tl } + { \tl_if_empty_p:N \g__mn_institution_tl } + } + { ,~ } + \tl_use:N \g__mn_semester_tl + } + . + } % }}} + + \cs_set:Npn \@author % {{{ + { + % If the author hasn't been set, we provide this (complicated, PITA) + % default; however, if we don't have any information to put in it, we + % still give a warning. + \tl_if_eq:NNTF \g__mn_name_tl \c_novalue_tl + { + \msg_warning:nn { mathnotes } { no name } + } + { + \tl_use:N \g__mn_name_tl + % Do we have any information to put in a \thanks? + \mn__if_should_make_thanks:T + { + \thanks { \mn__make_thanks_text } + } + } + } % }}} + + % {{{ \@maketitle and \maketitle + \skip_const:Nn \g__mn_maketitle_after_title { 1em } + \skip_const:Nn \g__mn_maketitle_after_author { 0.5em } + \skip_const:Nn \g__mn_maketitle_after { 1.5em } + + \RenewDocumentCommand \@maketitle {} + { + \begin{center} + \let \footnote \thanks + + % Set the title, if it exists. + \bool_if:NT \g__mn_title_set + { + \group_begin: + \HUGE + \bfseries + \@title + \par + \group_end: + } + \skip_vertical:N \g__mn_maketitle_after_title + + % Set the author. + \group_begin: + \LARGE + \lineskip 0.5em + \begin{tabular}[t]{c} + \@author + \end{tabular} + \par + \group_end: + \skip_vertical:N \g__mn_maketitle_after_author + + % Set the date. + \large + \@date + + \end{center} + \par + \skip_vertical:N \g__mn_maketitle_after + } + + \RenewDocumentCommand \maketitle {} + { + \par + \group_begin: + \cs_set:Npn \thefootnote + { + \@fnsymbol + \c@footnote + } + \cs_set:Npn \@makefnmark + { + \rlap + { + \@textsuperscript { \normalfont \@thefnmark } + } + } + \cs_set:Npn \@makefntext ##1 + { + \parindent 1em + \noindent + \hbox_to_wd:nn + { 1.8em } + { + \hss + \@textsuperscript { \normalfont \@thefnmark } + } + ##1 + } + \legacy_if:nTF { @twocolumn } + { + \if_int_compare:w \col@number = \@ne + \@maketitle + \else: + \twocolumn [ \@maketitle ] + \fi: + } + { + \newpage + \global\@topnum\z@ + \@maketitle + } + \thispagestyle{empty} + \@thanks + \group_end: + \setcounter{footnote}{0} + \cs_set:Npn \thanks ##1 { } + % NOTE: we don't erase the definitions of \@title, etc. + } + % }}} \@maketitle and \maketitle + } % }}} + +\bool_if:NT \g__mn_kindle_bool % {{{ + { + \keys_set:nn { mn__main } + { + generate~thanks = false , + } + \skip_gset:Nn \g__mn_maketitle_after_title { 0em } + \skip_gset:Nn \g__mn_maketitle_after_author { 0em } + \skip_gset:Nn \g__mn_maketitle_after { 0em } + \@ifclassloaded { memoir } + { + \pagestyle { empty } + + \setstocksize{12.2cm}{9cm} + \settrimmedsize{12.2cm}{9cm}{*} + \settypeblocksize{12.2cm}{9cm}{*} + + \setlrmargins{0cm}{*}{*} + \setulmargins{0cm}{*}{*} + + \setlength{\headheight}{0cm} + \setlength{\headsep}{0cm} + \setlength{\footskip}{0cm} + + \checkandfixthelayout + } + { + \msg_error:nnx + { mathnotes } + { requires memoir class } + { kindle } + } + } % }}} + +% e.g. `\exp:w \mn__color:n { MNnotetitle }` +\cs_set:Npn \mn__color:n #1 % {{{ + { + \bool_if:NTF \g__mn_xcolor_bool + { + \exp_end: + \color{#1} + } + { + \exp_end: + } + } % }}} + +\bool_if:NT \g__mn_theorems_bool % {{{ mdtheorem setup + { + \RequirePackage[thmmarks, amsmath, amsthm]{ntheorem} + + \RequirePackage{mdframed} + + \mdfdefinestyle { theorem } + { + linewidth = 1.5pt , + } + + \bool_if:NT \g__mn_xcolor_bool + { + \mdfapptodefinestyle { theorem } + { + frametitlefont = \normalfont\bfseries\color{MNthmtitle} , + linecolor = MNthmline , + backgroundcolor = MNthmbg , + } + } + + \mdfdefinestyle { minor-theorem } + { + style = theorem , + linewidth = 0.75pt , + } + + \mdfdefinestyle { example } + { + theoremtitlefont = \normalfont , + } + + \bool_if:NT \g__mn_xcolor_bool + { + \mdfapptodefinestyle { example } + { + frametitlefont = \normalfont\bfseries\color{MNextitle} , + linecolor = MNexline , + backgroundcolor = MNexbg , + } + } + + \mdfdefinestyle { definition } + { + } + + \bool_if:NT \g__mn_xcolor_bool + { + \mdfapptodefinestyle { definition } + { + frametitlefont = \normalfont\bfseries\color{MNdefntitle} , + linecolor = MNdefnline , + backgroundcolor = MNdefnbg , + } + } + + \mdfdefinestyle { note } + { + topline = false , + rightline = false , + bottomline = false , + linewidth = 2pt , + } + + \bool_if:NT \g__mn_xcolor_bool + { + \mdfapptodefinestyle { note } + { + frametitlefont = \normalfont\bfseries\color{MNnotetitle} , + linecolor = MNnoteline , + backgroundcolor = MNnotebg , + } + } + + \mdfdefinestyle { example } + { + theoremtitlefont = \normalfont , + } + + \bool_if:NT \g__mn_xcolor_bool + { + \mdfapptodefinestyle { example } + { + frametitlefont = \normalfont\bfseries\color{MNextitle} , + linecolor = MNexline , + backgroundcolor = MNexbg , + } + } + + \mdtheorem + [ style = theorem ] + { thm } + { Theorem } + % \newtheorem{shortthm}[thm]{Theorem} + \mdtheorem + [ style = minor-theorem ] + { lem } + { Lemma } + \mdtheorem + [ style = minor-theorem ] + { cor } + { Corollary } + \mdtheorem + [ style = minor-theorem ] + { prop } + { Proposition } + + % \theoremstyle{definition} + \mdtheorem + [ style = definition ] + { defn } + { Definition } + \mdtheorem + [ style = definition ] + { notation } + { Notation } + + % \theoremstyle{remark} + \mdtheorem + [ style = example ] + { ex } + { Example } + + \skip_new:N \mn__note_title_after_skip + \skip_set:Nn \mn__note_title_after_skip { 1em plus 0.25em minus 0.75em } + \cs_set:Npn \mn__note_title:n #1 + { + \textbf + { + \exp:w \mn__color:n { MNnotetitle } + #1 + } + \skip_horizontal:N \mn__note_title_after_skip + } + + \newmdenv + [ + style = note , + startinnercode = \mn__note_title:n { Note: } , + ] + { note } + + \newmdenv + [ + style = note , + startinnercode = \mn__note_title:n { Remark: } , + ] + { remark } + + \newmdenv + [ + style = note , + startinnercode = \mn__note_title:n { Hint: } , + ] + { hint } + + \newmdenv + [ + style = note , + startinnercode = \mn__note_title:n { Abuse of notation: } , + ] + { abuse-of-notation } + + % % reset for future defn.s + % \theoremstyle{plain} + } % }}} + +\NewDocumentCommand \TODO { o } % {{{ + { + \framebox + { + \textbf{ TODO \IfValueT { #1 } { :~} } + \IfValueT { #1 } { #1 } + } + } % }}} + +% \bool_if:NT \g__mn_titles_bool % {{{ + % { + % \RequirePackage{titlesec} + % % \titleformat { \command } [ shape ] { format } { label } { sep } { before-code } [ after-code ] + % % before-code can be a command + % \titleformat { \chapter } + % [ block ] + % { \bfseries \HUGE } + % { { \exp:w \mn__color:n {MNsecnum} \thechapter} } + % { 20pt } + % { } + % [ ] + + % \titleformat { \section } + % [ hang ] + % { \bfseries \LARGE } + % { { \exp:w \mn__color:n {MNsecnum} \thesection} } + % { 16pt } + % { } + % [ ] + + % \titleformat { \subsection } + % [ hang ] + % { \bfseries \Large } + % { { \exp:w \mn__color:n {MNsecnum} \thesubsection} } + % { 16pt } + % { } + % [ ] + + % % \titlespacing* { \command } { left } { before } { after } [ right ] + % \titlespacing* { \chapter } { 0em } { 0em } { 2em } [ 0em ] + % \titlespacing* { \section } { 0em } { 2em } { 0.5em } [ 0em ] + % \titlespacing* { \subsection } { 0em } { 1em } { 0em } [ 0em ] + % \titlespacing* { \subsubsection } { 0em } { 1em } { 0em } [ 0em ] + % } % }}} + +\bool_if:NT \g__mn_xcolor_bool % {{{ + { + \RequirePackage[hidelinks]{hyperref} + \hypersetup + { + colorlinks = true , + allcolors = MNlink , + } + } % }}} + +\bool_if:NT \g__mn_index_bool + { + \bool_set_true:N \g__mn_knowledge_bool + } + +\bool_if:NTF \g__mn_knowledge_bool % {{{ + { + \bool_if:NT \g__mn_xcolor_bool + { + \PassOptionsToPackage{xcolor}{knowledge} + \providecolorset { HTML } + % Prefix/postfix of all color names + { } { } + { + \use_none:n + ; MNunknown , DE0B0F + ; MNunknowncont , AD483E + ; MNintro , 051338 + } + } + \RequirePackage[quotation, notion, makeidx]{knowledge} + + % Disable the redefined \label command; this fixes some documents. + \KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{patch~label} + + % {{{ Patch in the automatic-AP feature + \bool_new:N \g__mn_noAP_bool + \NewDocumentCommand \noAP { } + { \bool_gset_true:N \g__mn_noAP_bool } + \cs_set:Npn \mn__maybe_AP:N #1 + { + \bool_if:NTF \g__mn_noAP_bool + { \bool_gset_false:N \g__mn_noAP_bool } + { #1 } + } + + \RequirePackage{etoolbox} + \pretocmd { \intro } + { \mn__maybe_AP:N \AP } + { } { } + + \bool_new:N \l__mn_using_itemAP + \cs_set:Npn \mn__use_itemAP: + { + \bool_if:NF \l__mn_using_itemAP + { + \let \mn__item_orig: \item + \bool_set_true:N \l__mn_using_itemAP + \RenewDocumentCommand \item { o } + { + \IfNoValueTF { ##1 } + { + \mn__item_orig: + \mn__maybe_AP:N \AP + } + { + \mn__item_orig: + [ + \mn__maybe_AP:N \knowledge_itemAP: + % NOTE: this isn't expandable, which fucks up + % everything. + \cs_set_eq:NN \AP \prg_do_nothing: + ##1 + ] + } + } + } + } + \apptocmd { \enumerate } { \mn__use_itemAP: } { } { } + \apptocmd { \itemize } { \mn__use_itemAP: } { } { } + \apptocmd { \description } { \mn__use_itemAP: } { } { } + % }}} + + % {{{ Make some better styles. + \knowledgeconfigure + { + visible~anchor~points = false + } + \cs_set:Npn \mn__knowledgestyles:nn #1#2 + { + \clist_map_inline:nn { #1 } + { \knowledgestyle* { ##1 } { #2 } } + } + % List of default styles + % notion, intro notion + % intro, intro unknown, intro unknown cont + % kl unknown, kl unknown cont + \bool_if:NTF \g__mn_xcolor_bool + { + \mn__knowledgestyles:nn + { notion , intro~notion } + { + color = MNlink , + } + \mn__knowledgestyles:nn + { intro , intro~notion , intro~unknown, intro~unknown~cont , } + { + boldface , + color = MNintro , + } + \mn__knowledgestyles:nn + { intro~unknown , intro~unknown~cont , kl~unknown , kl~unknown~cont , } + { + underline = false , + color = MNunknown , + } + \mn__knowledgestyles:nn + { intro~unknown~cont , kl~unknown~cont , } + { + color = MNunknowncont , + } + } + { + % These blank definitions are important for erasing some very poorly + % typeset decisions. + \mn__knowledgestyles:nn + { notion , intro~notion } + { + } + \mn__knowledgestyles:nn + { intro , intro~notion , intro~unknown, intro~unknown~cont , } + { + boldface , + } + \mn__knowledgestyles:nn + { intro~unknown , intro~unknown~cont , kl~unknown , kl~unknown~cont , } + { + } + \mn__knowledgestyles:nn + { intro~unknown~cont , kl~unknown~cont , } + { + } + } + % }}} + } + { + % If we don't load the knowledge package, provide a *similar* interface + % to make writing commands that *optionally* use the knowledge interface + % easier. + \ProvideDocumentCommand \itemAP { O{} } { \item[#1] } + \ProvideDocumentCommand \AP { } { } + \ProvideDocumentCommand \phantomintro { d() m } { } + \ProvideDocumentCommand \nointro { m } { } + \ProvideDocumentCommand \reintro { s o m } { #3 } + \ProvideDocumentCommand \intro { d() o d() m } { #4 } + \ProvideDocumentCommand \kl { d() o d() m } { #4 } + } % }}} + +\bool_if:NT \g__mn_index_bool + { + \makeindex + } + +% The \emailstyle command gives the style of an email; by default, we +% initialize it to \texttt. +\ProvideDocumentCommand \emailstyle { m } { \texttt{#1} } +% The \email command typesets an email; if the user has loaded the +% hyperref package, we can add a link as well. +\mn__if_package_loaded:nTF { hyperref } % {{{ + { + \ProvideDocumentCommand \email { m } + { \href{mailto:#1}{\emailstyle{#1}} } + } + { + \ProvideDocumentCommand \email { m } + { \emailstyle{#1} } + } % }}} + +\bool_if:NT \g__mn_tabu_bool % {{{ + { + \RequirePackage{multirow} + \RequirePackage{booktabs} + \RequirePackage{longtable} + \RequirePackage{tabu} + \ProvideExpandableDocumentCommand \Th { O{l} m } + { + \multicolumn + { 1 } % For 1 column... + { #1 } % ...with column-spec #1... + { \textbf{#2} } % Typeset #2 in bold. + } + } % }}} + +\bool_if:NT \g__mn_figures_bool % {{{ + { + % figure captions + \RequirePackage{graphicx} + \RequirePackage{caption} + \captionsetup + { + format = hang, + font = { sf, footnotesize }, + margin = 1in + } + } % }}} + +% {{{ Footnotes +\bool_if:NT \g__mn_footnotes_bool + { + \PassOptionsToPackage{bottom, hang}{footmisc} + \RequirePackage{footmisc} + } +\setlength { \footnotesep } { \baselineskip } +% }}} + +% Document style. +\setlength { \parindent } { 0em } +\setlength { \parskip } { 1em } +% {{{ Set \parskip=0 around \tableofcontents +\RequirePackage{etoolbox} +\pretocmd { \tableofcontents } + { + \group_begin: + \setlength{\parskip}{0pt} + } + { } { } +\apptocmd { \tableofcontents } + { \group_end: } + { } { } +% }}} + +% This has to be hooked so that it doesn't break the other bools undefined +% with it first. +\AtEndOfPackage { \cs_undefine:N \mn__legacy_bool_undefine:n } diff --git a/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.tex b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.tex new file mode 100644 index 0000000000..59550cc105 --- /dev/null +++ b/macros/latex/contrib/rbt-mathnotes/rbt-mathnotes.tex @@ -0,0 +1,475 @@ +%% rbt-mathnotes.tex +%% Copyright 2021 Rebecca B. Turner. +% +% 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 `maintained'. +% +% The Current Maintainer of this work is Rebecca B. Turner. +% +% This work consists of the files: +% README.md +% rbt-mathnotes.tex +% rbt-mathnotes.sty +% rbt-mathnotes.cls +% rbt-mathnotes-util.sty +% rbt-mathnotes-messages.sty +% rbt-mathnotes-hw.cls +% rbt-mathnotes-formula-sheet.cls +% examples/cheat-sheet.tex +% examples/multivar.tex +% examples/topology-hw-1.tex +% and the derived files: +% rbt-mathnotes.pdf +% examples/cheat-sheet.pdf +% examples/multivar.pdf +% examples/topology-hw-1.pdf + +\documentclass{ltxguidex} + +\errorcontextlines=10 +\usepackage{longtable} +\usepackage{changepage} +\usepackage{metalogo} +\usepackage{changelog} +\newcommand{\mn}{\ctan{rbt-mathnotes}} + +\makeatletter +\renewcommand{\SX@explpreset}{ + language=[LaTeX]TeX, + numbers=none, +} +\makeatother + +%\setmainfont{Charter} +\lstset{basewidth=0.6em} + +\usepackage[ + nomaketitle, + notitles, + noxcolor, + noenumitem, + notheorems, +]{rbt-mathnotes} + +\usepackage{FiraSans} +\usepackage{FiraMono} + +\NewDocumentEnvironment{ctandescription}{} + {\NewDocumentCommand{\pkg}{m}{\item[\ctan{##1}]} + \begin{description}} + {\end{description}} + +\author{Rebecca Turner\thanks{\email{rbt@sent.as}, \https{becca.ooo}}} +\title{The \mn\ Package} +\date{1.0.2 2021/11/29} +\begin{document} +\maketitle + +\begin{abstract} + Rebecca Turner's personal macros and styles for typesetting mathematics + notes. +\end{abstract} + +\begin{note} + Browse the sources, contribute, or complain at \\ + \https{github.com/9999years/latex-mathnotes} +\end{note} + +\tableofcontents +\vfill +\pagebreak + +\begin{note} + Copyright 2021 Rebecca B. Turner. + + 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 + \https{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 `maintained'. + + The Current Maintainer of this work is Rebecca B. Turner. + + This work consists of the files: + \begin{itemize} + \item \texttt{README.md} + \item \texttt{rbt-mathnotes.tex} + \item \texttt{rbt-mathnotes.sty} + \item \texttt{rbt-mathnotes.cls} + \item \texttt{rbt-mathnotes-util.sty} + \item \texttt{rbt-mathnotes-messages.sty} + \item \texttt{rbt-mathnotes-hw.cls} + \item \texttt{rbt-mathnotes-formula-sheet.cls} + \item \texttt{examples/cheat-sheet.tex} + \item \texttt{examples/multivar.tex} + \item \texttt{examples/topology-hw-1.tex} + \end{itemize} + and the derived files: + \begin{itemize} + \item \texttt{rbt-mathnotes.pdf} + \item \texttt{examples/cheat-sheet.pdf} + \item \texttt{examples/multivar.pdf} + \item \texttt{examples/topology-hw-1.pdf} + \end{itemize} +\end{note} + +\vfill +\pagebreak + +\section{Package options} + +Some options are enabled by default, and can be disabled by passing +|no<option>|. The enabled-by-default options are: +\begin{keys} + \key{fonts}[\bool][true] + \key{stix}[\bool][true] + \begin{itemize} + \item In \XeTeX\ or \LuaTeX, loads the \ctan{unicode-math} package, and + then, if the \option{stix} option is also given, loads the + \texttt{STIX2Text} and \texttt{STIX2Math} \textsc{otf} fonts (available + in the \ctan{stix2-otf} package). + + The \texttt{STIX2Math} font is loaded with stylistic sets 1 (roundhand + script forms instead of chancery script for |\mathcal| Script + Alphanumeric Symbols) and 8 (upright, rather than slanted, forms for + integrals); see ``Stylistic Sets'' in + \href{http://mirrors.ctan.org/fonts/stix2-otf/STIXTwoMath-Regular.pdf}{the + \texttt{stix2-otf} documentation} (pp.~51--53) for more information. + + \item In other engines, if the \option{stix} option is also given, loads + the \package{stix2} package from \ctan{stix2-type1}. + \end{itemize} + + \key{symbols}[\bool][true] + + Defines a collection of ``natural language'' math-mode symbol commands. + Most commands are declared with |\ProvideDocumentCommand| so that they + won't overwrite custom commands you've already defined. + + Note that symbols may look different depending on the \option{fonts} and + \option{stix} options. + + \begin{longtable}{rl} + |\lnot| & $\lnot$ \\ + |\Rational|, |\Rat|, |\Q| & $\Rational$ \\ + |\Natural|, |\Nat|, |\N| & $\Natural$ \\ + |\Integer|, |\Int|, |\Z| & $\Integer$ \\ + |\Complex|, |\Comp|, |\C| & $\Complex$ \\ + |\Real|, |\R| & $\R$ \\ + |\powerset| & $\powerset$ \\ + |\vec{A}| & $\vec{A}$ \\ + |\intersection|, |\inter| & $\intersection$ \\ + |\bigintersection|, |\biginter| & $\bigintersection$ \\ + |\union| & $\union$ \\ + |\bigunion| & $\bigunion$ \\ + |\divisible|, |\div| & $a \divisible b$ \\ + |\notdivisible|, |\ndivisible|, |\notdiv|, |\ndiv| & $a \notdivisible b$ \\ + |\floor{A}| & $\floor{A}$ \\ + |\ceil{A}| & $\ceil{A}$ \\ + |\emptyset|, |\es| & $\emptyset$ \\ + |\after| & $g \after f$ \\ + |\cross| & $a \cross b$ \\ + |\img| & $\img f$ \\ + |\pre| & $\pre f$ \\ + |\Stab| & $\Stab f$ \\ + |\FixPt| & $\FixPt f$ \\ + |\id| & $\id$ \\ + |\injection|, |\inj| & $\injection$ \\ + |\surjection|, |\surj| & $\surjection$ \\ + |\bijection|, |\bij| & $\bijection$ \\ + |\restriction|, |\restr| & $f \restr_{\N}$ \\ + |\dd[y]{x}| & $\dd[y]{x}$ \\ + |\pd[y]{x}| & $\pd[y]{x}$ \\ + |\curl| & $\curl$ \\ + |\dive| & $\dive$ \\ + \end{longtable} + + \key{maketitle}[\bool][true] + Redefines |\maketitle| and related commands. The provided |\maketitle| + command will automatically insert a |\thanks| if any email, course, + instructor, institution, or semester is supplied with the |\mathnotes| + command. + + \key{titles}[\bool][true] + No-op; may set the format of sectioning commands in the future. + + \key{xcolor}[\bool][true] + Load the \ctan{xcolor} package and defines several colors with the |MN| + prefix. + + \key{theorems}[\bool][true] + Set up various theorem environments with the \ctan{ntheorem} and + \ctan{mdframed} packages. + + Provides |thm| (Theorem), |lem| (Lemma), |cor| (Corollary), |prop| + (Proposition), |defn| (Definition), |notation|, |ex| + (Example), |note|, |remark|, |hint|, and |abuse-of-notation| (Abuse of + notation) theorem-like environments. + + \key{enumitem}[\bool][true] + Loads the \ctan{enumitem} package. + +\end{keys} + +The other options are not enabled by default, and can be enabled by passing +|<option>| --- the option name --- as a package option: +\begin{keys} + \key{listings}[\bool] + Loads the \ctan{listings} and \ctan{xcolor} packages. + Sets default styles for listings, including setting the default language to + |Mathematica|. + + \key{knowledge}\bool] + Loads the \ctan{knowledge} package and sets up default styles. + Patches lists so that manually placing |\AP| and |\itemAP| commands is + unecessary. + + \key{index}[\bool] + Sets the |knowledge| key and starts indexing with |\makeindex|. + + \key{footnotes}[\bool] + Loads the \ctan{footmisc} package and sets up footnotes. + + \key{figures}[\bool] + Loads the \ctan{graphicx} and \ctan{caption} packages and sets up figure + captions. + + \key{tabu}[\bool] + Loads the \ctan{multirow}, \ctan{booktabs}, \ctan{longtable}, and + \ctan{tabu} packages. + + Defines the |\Th| command. + + \key{kindle}[\bool] + Sets a small page size and tweaks the layout for Kindle devices; designed in + particular for whatever generation of Kindle Paperwhite I have. + Only compatible with the \ctan{memoir} document class. + +\end{keys} + +\section{Commands} + +\begin{desc} +|\numberthis| +\end{desc} + +At the end of a line (before the |\\|) in an \ctan{amsmath} starred +environment, gives an equation a number. + +\begin{LTXexample} +\begin{alignat*}{2} + x &= y \\ + y &= 2z \numberthis \\ + z &= 1/w +\end{alignat*} +\end{LTXexample} + +\begin{desc} +|\labelthis{<label>}| +\end{desc} + +At the end of a line (before the |\\|) in an \ctan{amsmath} starred +environment, gives an equation a number and label for referencing. + +\begin{LTXexample} +\begin{alignat*}{2} + x &= y \\ + y &= 2z \labelthis{eq:cool} \\ + z &= 1/w. +\end{alignat*} +As we saw in +Equation~\ref{eq:cool}, \dots +\end{LTXexample} + +\begin{desc} +|\newacronym[<command>]{<text>}| +\end{desc} + +Defines |\<command>| to be |\textsc{<text>}|; |<command>| defaults to |<text>| +if ommitted. + +\begin{LTXexample} +\newacronym{nist} +\newacronym[\seetan]{ctan} + +\nist\ is not associated +with \seetan. +\end{LTXexample} + +\begin{desc} +|\newacronyms{<acronyms>}| +\end{desc} + +Defines a collection of acronym commands together using |\newacronym|; +|<acronyms>| is a comma-separated list of acronyms. + +\begin{LTXexample} +\newacronyms{apa, mla} + +\apa\ and \mla\ are common +citation styles. +\end{LTXexample} + +\begin{desc} +|\mathnotes{<key-value pairs>}| +\end{desc} + +\begin{keys} + \key{date}[\m{date}] + \key{author}[\m{author}] + \key{title}[\m{title}] + Sets the date, author, or title; setting these keys are equivalent to using the + |\date|, |\author|, and |\title| commands, respectively. + + \key{institution}[\m{institution}] + Sets the institution (e.g., Brandeis University) associated with the + document. + \key{course}[\m{course}] + Sets the course (e.g., \textsc{math}~23a) associated with the + document. + \key{semester}[\m{semester}] + Sets the semester (e.g., Fall 2018) associated with the document. + \key{instructor}[\m{instructor}] + Sets the instructor (e.g., Prof.~Ruth~Charney) associated with the document. + \key{email}[\m{email}] + Sets the email (e.g., \email{rbt@sent.as}) associated with the author. +\end{keys} + +\begin{desc} +|\TODO[<item>]| +\end{desc} + +Typesets a to-do marker. + +\begin{LTXexample} +\TODO + +\TODO[explain in detail] +\end{LTXexample} + +\begin{desc} +|\email{<email>}| +\end{desc} +Typesets an email address, with a link if the \ctan{hyperref} package is loaded. + +\begin{LTXexample} +\email{rbt@sent.as} +\end{LTXexample} + +\begin{desc} +|\Th[<column spec>]{<header>}| +\end{desc} +Typesets a table column header in bold using |\multicolumn|. Especially useful +if the column in question is a math or numeric column. + +\m{column spec} defaults to |l| (left-aligned). + +\section{The \texttt{rbt-mathnotes} document class} + +The \mn\ document class is a \ctan{memoir}-based class that automatically loads +the \mn\ package. + +\section{The \texttt{rbt-mathnotes-hw} document class} + +The |rbt-mathnotes-hw| document class is based on the |rbt-mathnotes| document +class, providing additional commands and styles for typesetting homework +assignments. Theorems are given subtler styling that takes up less space on +the page. The author name and title are added to the top-left heading. + +\begin{desc} +|problem| \\ +|\begin{problem}[<number or options>]| \\ +|\prob[<number or options>]{<text>}| +\end{desc} + +The |problem| environment (and its matching shorthand |\prob|) typesets a +homework problem typesets a homework problem. Problems are added to the table of +contents at the chapter-level, which is the top level if I remember correctly. + +\m{number or options} is a list of key-value pairs: + +\begin{keys} + \key{number}[\m{number}] + Sets the problem's number. For brevity, an unrecognized key with no value + is also used as the problem number; this allows concise expressions like + |\begin{problem}[4.3a] ...| to specify problem numbers (to match textbook + problem numbers, for example). Otherwise, problem numbers + start at 1 and count up. + + \key{title}[\m{title}] + Sets the problem's ``title''. + + \key{label}[\m{label}] + Sets the problem's label (e.g., |prob:n-sheeted-covering|), which can be + referred to later with |\ref|. +\end{keys} + +If your professor calls them ``exercises'' or something, you can change the +string used to refer to them with the |\mathnotes| command, which supports an +additional key in |rbt-mathnotes-hw|: +\begin{keys} + \key{problem string}[\m{problem string}][Problem] + The string used to represent a problem in titles and contents entries. +\end{keys} + +\pagebreak +\section{The \texttt{rbt-mathnotes-formula-sheet} document class} + +Sometimes, exams will let you take any formula sheet of a given size as +reference material. The |rbt-mathnotes-formula-sheet| document class (based on the +\ctan{article} class) is optimized for getting as much material as possible in +that area. A tiny |\maketitle| is provided, as well as a tiny |\section|. +Theorem titles are highly abbreviated (``Thm'' instead of ``Theorem''). Lists +are rendered without linebreaks between items. Paragraphs are compressed and the +page margins are set to a tenth of an inch. The entire document is set in +|\scriptsize|. + +Some additional keys are added to the |\mathnotes| command to customize the +output: + +\begin{keys} + \key{columns}[\m{column count}][3] + The number of text columns to set the formula sheet in; use 1 to turn off + columns. + + \key{balance columns} + If set, the unstarred |multicols| environment is used instead of |multicols*|, + which attempts to spread material between each of the columns evenly, to + make their vertical sizes as even as possible. + + It doesn't look great --- you want to know when you've filled up one column + --- so it's off by default. + + \key{width}[\m{width}][8.5in] + \key{height}[\m{height}][11in] + Set the paper width and height. The 0.1 inch margins are not customizable. +\end{keys} + +\begin{changelog}[author=Rebecca Turner] + \begin{version}[v=1.0.2, date=2021-11-27, short] + Added license notice to all files. + \end{version} + + \begin{version}[v=1.0.1, date=2021-11-24, short] + Renamed package from \texttt{mathnotes} to \texttt{rbt-mathnotes} to avoid + a file name conflict with + \href{http://mirrors.ctan.org/fonts/newtx/doc/mathnotes.pdf}{\texttt{CTAN:/fonts/newtx/doc/mathnotes.pdf}}. + \end{version} + + \begin{version}[v=1.0.0, date=2021-11-04, short] + Initial release as \texttt{mathnotes}, documented package. + \end{version} +\end{changelog} + +\end{document} diff --git a/macros/unicodetex/latex/njuthesis/README.md b/macros/unicodetex/latex/njuthesis/README.md index e8e9c42190..c80ddf0469 100644 --- a/macros/unicodetex/latex/njuthesis/README.md +++ b/macros/unicodetex/latex/njuthesis/README.md @@ -1,26 +1,28 @@ -# The njuthesis class +The `njuthesis` class +===================== -## Overview +The `njuthesis` class is intended for typesetting Nanjing University dissertations with LaTeX, providing support for bachelor, masters, and doctoral thesis. Compilation of this class requires either `xelatex` or `lualatex` engine. -This package is intended for typesetting Nanjing University thesis with LaTeX, providing support for bachelor, master, and doctoral thesis. Compilation of this class requires either `xelatex` or `lualatex` engine. +Contributing +------------ -## License +[Issues](https://github.com/nju-lug/NJUVisual/issues) and +[pull requests](https://github.com/nju-lug/NJUVisual/pulls) +are always welcome. ------ - This work may be distributed and/or modified under the conditions of - the [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), - either version 1.3c of this license or (at your option) any later - version. ------ - -## Contributing +Wiki +---- -If you run into any problem with the template, please contact us via Github issue or submit Pull Request. +Please see [Chinese wiki](https://github.com/nju-lug/NJUThesis/wiki)。 -## Wiki +License +------- -Please see [Chinese wiki](https://github.com/nju-lug/NJUThesis/wiki)。 +This work may be distributed and/or modified under the conditions of +the [LaTeX Project Public License](http://www.latex-project.org/lppl.txt), +either version 1.3c of this license or (at your option) any later +version. ----- -Copyright © NJU-LUG +Copyright (C) 2021 by NJU LUG. diff --git a/macros/unicodetex/latex/njuthesis/njuthesis.dtx b/macros/unicodetex/latex/njuthesis/njuthesis.dtx index 42cf9a9e77..926b68a51c 100644 --- a/macros/unicodetex/latex/njuthesis/njuthesis.dtx +++ b/macros/unicodetex/latex/njuthesis/njuthesis.dtx @@ -12,6 +12,16 @@ % % https://www.latex-project.org/lppl.txt % +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Yu Xiong. +% +% This work consists of the files njuthesis.dtx, +% and the derived files njuthesis.ins, +% njuthesis.cls, +% njuthesis.pdf, +% and README.md. +% % ----------------------------------------------------------------------- % % The development version of the template can be found at @@ -33,7 +43,7 @@ %</internal> % %<*install> -\input l3docstrip.tex +\input docstrip.tex \keepsilent \askforoverwritefalse @@ -43,7 +53,7 @@ Copyright (C) 2021 by Nanjing University Linux User Group <nju.lug@yaoge123.cn> This file may be distributed and/or modified under the conditions of -the LaTeX Project Public License, either version 1.3 of this license +the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in: @@ -60,9 +70,6 @@ through XeTeX. \generate{ \usedir{tex/latex/njuthesis} \file{\jobname.cls} {\from{\jobname.dtx}{class}} - \file{njuvisual.sty} - {\from{\jobname.dtx}{visual} - \from{njuvisual.dtx}{visual}} %</install> %<*internal> \usedir{source/latex/njuthesis} @@ -81,7 +88,6 @@ through XeTeX. \Msg{* *} \Msg{* njuthesis.cls *} \Msg{* njuthesis.ins *} -\Msg{* njuvisual.sty *} \Msg{* *} \Msg{* To produce the documentation, run the file njuthesis.dtx *} \Msg{* through XeLaTeX. *} @@ -97,44 +103,39 @@ through XeTeX. \fi %</internal> % -%<class|visual>\NeedsTeXFormat{LaTeX2e} -%<class|visual>\RequirePackage{expl3} -%<class|visual>\GetIdInfo $Id: njuthesis.dtx 0.11.0 2021-10-01 19:00:00 +0800 NJU LUG <nju.lug@yaoge123.cn> $ +%<class>\NeedsTeXFormat{LaTeX2e} +%<class>\RequirePackage{expl3} +%<class>\GetIdInfo $Id: njuthesis.dtx 0.12.0 2021-11-30 11:30:00 +0800 NJU LUG <nju.lug@yaoge123.cn> $ %<class> { Thesis template for Nanjing University } %<class>\ProvidesExplClass{njuthesis} -%<visual> { LaTeX3 Package for NJU Visual Identity } -%<visual>\ProvidesExplPackage{njuvisual} -%<class|visual>{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} +%<class>{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} % %<*driver> \ProvidesFile{njuthesis.dtx} \documentclass{ctxdoc} -\usepackage{listings,xcolor,tabularray} +\usepackage{floatrow,tabularray,njuvisual} +\usepackage[firstpage=true]{background} +\backgroundsetup{contents={\njuemblem[white!85!gray]{22cm}{!}},scale=1,angle=0,hshift=-4cm} \setlist[1]{labelindent=0.5em} \UseTblrLibrary{booktabs,siunitx,diagbox} \DefTblrTemplate{caption-tag}{default}{表\hspace{0.25em}\thetable} \SetTblrStyle{caption-tag}{font=\bfseries} \DefTblrTemplate{caption-sep}{default}{\quad} -\definecolor{njuviolet}{cmyk}{0.5,1,0,0.4} -\definecolor{njumagenta}{cmyk}{0.05,1,0.55,0} -\definecolor{njublue}{cmyk}{0.8,0.5,0,0} -\definecolor{njuyellow}{cmyk}{0,0.3,1,0} \begin{document} - \DocInput{njuthesis.dtx} - \DocInput{njuvisual.dtx} + \DocInput{njuthesis.dtx} \PrintChanges \PrintIndex \end{document} %</driver> % \fi % -% \title{\color{njuviolet}{The \textsc{NJuThesis} class\\ 南京大学学位论文模板}} +% \title{\color{njuviolet}{The \cls{njuthesis} class\\ 南京大学学位论文模板}} % % \author{^^A % Nanjing University Linux User Group % \thanks{E-mail: \href{mailto:nju.lug@yaoge123.cn}{nju.lug@yaoge123.cn}}} % -% \date{v0.11.0 \\ Released 2021-10-01} +% \date{v0.12.0 \\ Released 2021-11-30} % % \changes{v0.1}{2021/09/04}{开始开发。} % \changes{v0.2}{2021/09/07}{初步搭建了可用的模板。} @@ -150,44 +151,51 @@ through XeTeX. % \changes{v0.9}{2021/09/15}{大幅度修改宏名称以符合\hologo{LaTeX3}规范。} % \changes{v0.9}{2021/09/15}{进一步完善文档。} % \changes{v0.10}{2021/09/24}{删除了生成自述文件的代码。} +% \changes{v0.12}{2021/11/28}{删除内置的 \pkg{njuvisual} 代码。} +% \changes{v0.12}{2021/11/29}{更新了说明文档封面设计。} % % \maketitle % % \begin{abstract} -% 南京大学学位论文\hologo{LaTeX}模板基于本科生院的论文撰写规范制作, -% 同时参考研究生院提供的硕士、博士学位材料包, -% 用于生成符合南京大学学位论文排版要求和相应的国家规范、行业标准的学位论文, -% 旨在为同学提供毕业论文书写的方便。 +% 南京大学学位论文 \hologo{LaTeX} 模板 \cls{njuthesis} 基于本科生院的论文撰写 +% 规范制作,同时参考研究生院提供的硕士、博士学位材料包,用于生成符合南京大学学 +% 位论文排版要求和相应的国家规范、行业标准的学位论文,旨在为同学提供毕业论文书 +% 写的方便。 % \end{abstract} % % \def\abstractname{Abstract} % \begin{abstract} -% The \textsc{NJuThesis} class is intended for -% typesetting Nanjing University thesis with \hologo{LaTeX}, -% providing support for bachelor, master, and doctoral thesis. +% The \cls{njuthesis} class is intended for typesetting Nanjing University +% dissertations with \hologo{LaTeX}, providing support for bachelor, masters, +% and doctoral thesis. % \end{abstract} % % \vspace{2cm} % \def\abstractname{特别声明} % \begin{abstract} -% 请注意,本模板仍未完成开发,出现bug或者文档不完善属于正常情况,提issue或Pull Request即可。 -% \href{https://git.nju.edu.cn/nju-lug/lug-introduction}{NJU LUG}始终欢迎您的加入与贡献! +% 请注意,本模板仍未完成开发,出现bug或者文档不完善属于正常情况,欢迎提交 +% issue 或 Pull Request。 +% +% 本模板未经学校官方部门的审核,作者不对使用本模板产生的格式审查问题负责。 +% +% \href{https://git.nju.edu.cn/nju-lug/lug-introduction}{NJU LUG}始终欢迎 +% 您的加入! % \end{abstract} % % \clearpage % % \setcounter{tocdepth}{4} % \tableofcontents +% % \clearpage % % \EnableDocumentation -%^^A \DisableDocumentation % % \begin{documentation} % % % \section{模板介绍} -% \textsc{NJuThesis},即南京大学学位论文模板,是一个由南京大学LUG组织维护的,用于处理本校学生毕业论文排版需求的\hologo{LaTeX}模板。 +% \cls{njuthesis},即南京大学学位论文模板,是一个由南京大学 LUG 组织维护的,用于处理本校学生毕业论文排版需求的 \hologo{LaTeX} 模板。 % % \subsection{历史沿革} % @@ -217,7 +225,7 @@ through XeTeX. % \end{itemize} % % \subsection{君\hologo{LaTeX}本当上手} -% \hologo{LaTeX}并不是一种零门槛的语言,亦不是南京大学学生的必备技能。有同学听到“\emph{给毕业论文交差也得写代码}”这种事情就头疼,实在是我们不愿意见到而必须要面对的情况。目前,中文互联网上的\hologo{LaTeX}写作教程不能说屈指可数,起码也是汗牛充栋,比较著名的包括刘海洋的《\hologo{LaTeX}入门》等等都是不错的参考资料。然而如何快速准确找到所需要的用法,尤其是\hologo{LaTeX3}的新接口,需要一定的时间或者良好的英文阅读能力。在本文档的写作中,我们无力从盘古开天辟地开始从头构建您的相关知识体系,只能\textbf{尽力做到有求必应},在需要的地方顺带提一嘴,保证您少走点弯路。 +% \hologo{LaTeX}并不是一种零门槛的语言,亦不是南京大学学生的必备技能。有同学听到“\emph{给毕业论文交差也得写代码}”这种事情就头疼,实在是我们不愿意见到而必须要面对的情况。目前,中文互联网上的 \hologo{LaTeX} 写作教程不能说屈指可数,起码也是汗牛充栋,比较著名的包括刘海洋的《\hologo{LaTeX}入门》等等都是不错的参考资料。然而如何快速准确找到所需要的用法,尤其是 \hologo{LaTeX3} 的新接口,需要一定的时间或者良好的英文阅读能力。在本文档的写作中,我们无力从盘古开天辟地开始从头构建您的相关知识体系,只能\emph{尽力做到有求必应},在需要的地方顺带提一嘴,保证您少走点弯路。 % % \subsection{关于本说明手册} % @@ -236,12 +244,14 @@ through XeTeX. % % \subsubsection{自动安装} % -% \pkg{njuthesis}已经于2021年9月12日\href{https://ctan.org/pkg/njuthesis}{发布在CTAN}(Comprehensive \hologo{TeX} Archive Network),将在明年进入\hologo{TeX}\,Live 2022。 +% \href{https://ctan.org/pkg/njuthesis}{\cls{njuthesis}} 已经于2021年9月12日发布在CTAN(Comprehensive \hologo{TeX} Archive Network),将在明年进入\hologo{TeX}\,Live 2022。 +% \href{https://ctan.org/pkg/njuvisual}{\pkg{njuvisual}} 也已于同年11月28日发布。 % 目前,南大\hologo{TeX}已预置本模板,详见\ref{subsec:onlinecompile}。 % 您可以通过 \hologo{TeX}\,Live Manager 或者 \hologo{MiKTeX} Console 等 -% 图形化包管理器直接安装并使用最新的稳定版,也可以使用 \pkg{tlmgr} +% 图形化包管理器直接安装并使用以上两个宏包最新的稳定版,也可以使用 \pkg{tlmgr} % \begin{ctexexam} % tlmgr install njuthesis +% tlmgr install njuvisual % \end{ctexexam} % % 我们强烈建议使用这一类安装方式。 @@ -290,8 +300,6 @@ through XeTeX. % \color{njuyellow}\file{njuthesis.ins} & 文档类安装脚本 \\ % \file{njuthesis.pdf} & 用户手册(本文档) \\ % \file{njuthesis-sample.tex} & 示例文档,不妨以此为基础撰写论文 \\ -% \color{njuyellow}\file{njuvisual.dtx} & 视觉识别系统源代码 \\ -% \file{njuvisual.sty} & 南京大学视觉识别系统 \\ % \file{README.md} & 自述文件 \\ % \bottomrule % \end{tabular} @@ -300,69 +308,95 @@ through XeTeX. % \subsection{本地编译} % \label{subsec:localcompile} % +% 本地编译的安装过程分为两个阶段:安装 \hologo{TeX} 发行版以及配置编辑器。前者提供了可以被命令行终端调用的编译程序,后者则提供了语法高亮、自动编译等人性化功能。 +% % \subsubsection{安装\hologo{TeX}发行版} % -% 首先需要下载\hologo{TeX}软件发行版,校园网环境中使用\href{https://mirror.nju.edu.cn/download/app/TeX%20%E6%8E%92%E7%89%88%E7%B3%BB%E7%BB%9F}{南大镜像站}可以获得最好的体验。\textbf{推荐使用最新的\hologo{TeX}\,Live 2021或者\hologo{MiKTeX} 21以避免潜在的兼容性问题。使用\hologo{LuaLaTeX}编译需要将\pkg{LuaTeX-ja}包更新至2021-09-19或更新的版本} +% 首先需要下载并安装 \hologo{TeX} 软件发行版,各操作系统适用情况请参考表\ref {tab:texdistribution}。第一次编译前请务必通过 MiKTeX Console、TeX Live Manager 等图形化程序或 \pkg{tlmgr}\emph{手动更新全部宏包}以避免潜在的兼容性问题。 +% +% \begin{table}[H] +% \centering +% \caption{\hologo{TeX} 软件发行版一览} +% \label{tab:texdistribution} +% \begin{tabular}{cccc} +% \toprule +% \hologo{TeX} & Windows & macOS & Linux \\ +% \midrule +% \hologo{TeX}\,Live & $\bullet$ & $\bullet$ & $\bullet$ \\ +% mac\hologo{TeX} & & $\bullet$ & \\ +% \hologo{MiKTeX} & $\bullet$ & $\bullet$ & \\ +% \bottomrule +% \end{tabular} +% \end{table} % +% 以下是一些值得注意的要点: % \begin{itemize} -% \item 为了避免不必要的麻烦,请尽可能下载 full 版本,如 texlive-full。简而言之,下载大的那个。 -% \item 并且,尽可能使用最新版(截至目前是 2021)。2020 及之前版本使用 PDF 格式的图片可能会出现加粗问题以及l3语法解释错误。 +% \item 校园网环境中访问\href{https://mirror.nju.edu.cn/download/app/TeX%20%E6%8E%92%E7%89%88%E7%B3%BB%E7%BB%9F}{南大镜像站}可以获得最佳的下载体验。 +% \item 使用最新的发行版,即版本号为2021或者21。 +% \item 对于 Windows 和 macOS 用户,更推荐轻量化的 \hologo{MiKTeX} 套件。 +% \item Linux用户请尽可能下载 full 版本,如 |texlive-full|。换言之,下载最大的软件包。 +% \item 对于一部分用到新版本特性的宏包,\cls{njuthesis}内置了版本检查,请确认各宏包已升级至最新版。 % \end{itemize} % -% 下表是目前经过测试的环境。如果有其他可用不可用的环境,欢迎补充。 -% \begin{table}[ht] -% \centering -% \caption{经过测试的环境} -% \label{tab:1} -% \begin{tabular}{ccc} -% \toprule -% OS & TeX & 测试情况 \\ -% \midrule -% Windows 10 & \hologo{TeX}\,Live 2020 & cref存在格式问题 \\ -% Windows 10 & \hologo{TeX}\,Live 2021 & 通过 \\ -% Windows 10 & \hologo{MiKTeX} & 通过 \\ -% macOS 10.15 & mac\hologo{TeX} 2021 & 通过 \\ -% Ubuntu 20.04 & \hologo{TeX}\,Live 2021 & 通过 \\ -% Arch Linux & \hologo{TeX}\,Live 2021 & 通过 \\ -% \bottomrule -% \end{tabular} -% \end{table} -% -% \subsubsection{选择编辑器} +% \subsubsection{配置编辑器} +% \changes{v0.11}{2021/11/23}{提供TeXstudio配置文件。} % -% 配置完编译器后,还需要一个\textbf{文本编辑器}作为前端来完成\file{.tex}文件内容的写作。 +% 配置完编译器后,还需要一个\emph{文本编辑器}来完成\file{.tex}文件内容的写作。 % -% 至今仍有相当一部分人认为Windows自带的\emph{记事本}是最好的文本编辑器,但对于本项目而言,在此诚心诚意地推荐你使用\textbf{更现代更美观更多功能}的编辑器,譬如\emph{安装了 LaTeX Workshop 插件 的 \href{https://code.visualstudio.com/}{Visual Studio Code}},来完成论文编写。你也可以根据个人的喜好随便使用其他编辑器,如 TeXworks、TeX Studio 等,顺手就行。 +% 关于具体使用哪一种,至今仍有相当一部分人认为Windows自带的\emph{记事本}是最好的文本编辑器,但对于本项目而言,在此诚心诚意地推荐你使用\emph{更现代更美观更多功能}的编辑器,譬如\emph{安装了 LaTeX Workshop 插件 的 \href{https://code.visualstudio.com/}{Visual Studio Code}}。你也可以根据个人的喜好随意使用 TeXworks、TeXstudio 等编辑器,顺手就行。 % -% 若使用 \hologo{LaTeX} Workshop 插件,本项目在|.vscode/|中提供一份简易配置,可以省略初始配置步骤直接使用。 +% \cls{njuthesis} 为一些常见编辑器提供了配置文件,如 +% \begin{description} +% \item[Visual Studio Code] 本模板在\file{.vscode/}中提供一份\hologo{LaTeX} Workshop 插件的简易配置,在打开文件夹后将自动导入,可以省略初始配置步骤直接使用。 +% \item[TeXstudio] 本模板提供 \file{conf.txsprofile},可以使用快捷键 |alt+O+P| 导入配置文件。为了简化流程\footnote{当然,也可以设置为使用 \hologo{XeLaTeX} 编译,然后按照 \ref{subsubsec:compileseq} 内容使用快捷键 |F8| 手动编译参考文献。},该配置文件使用 \pkg{latexmk},第一次编译前请参考下一节内容安装 Perl。 +% \end{description} % % \subsubsection{编译顺序} -% 假设即将使用的文件名为\file{mynjuthesis.tex} -% 应采用以下命令顺序进行编译,以生成正确的目录、编号和参考文献条目。 +% \label{subsubsec:compileseq} +% \hologo{TeX} 本身是命令行程序,通过不同的命令调用所需的编译引擎。 +% 尽管上述的文本编辑器已经提供了自动化编译的方法,为了便于排查运行错误,以下通过具体终端命令简要描述编译过程。 +% +% 编译本模板概括为如下步骤:生成初始文档,编译参考文献,生成页码、编号、目录,需要编译4次。 +% \emph{假设即将使用的文件名为 \file{mynjuthesis.tex}}, +% 应采用以下命令顺序进行编译,以生成内容正确的 \file{mynjuthesis.pdf}。输出的 PDF 文档位于同一目录下。 +% +% 编译命令具体为引擎名称加文件名,在编译\file{.tex}文件时,文件扩展名可以省略不写。现阶段 \cls{njuthesis} 仅支持 \hologo{XeLaTeX} 与 \hologo{LuaLaTeX}。请注意,几种命令的输出文件基本相同,可以任取一种;但如果你不清楚这两种编译引擎的区别,我们建议优先使用|latexmk -xelatex|。 +% +% \subparagraph{使用 \hologo{XeLaTeX}} +% % \begin{ctexexam} % xelatex mynjuthesis % biber mynjuthesis % xelatex mynjuthesis % xelatex mynjuthesis % \end{ctexexam} -% 使用 \pkg{latexmk} -% \begin{ctexexam} -% latexmk -xelatex mynjuthesis -% \end{ctexexam} % +% \subparagraph{使用 \hologo{LuaLaTeX}} % \begin{ctexexam} % lualatex mynjuthesis % biber mynjuthesis % lualatex mynjuthesis % lualatex mynjuthesis % \end{ctexexam} -% 使用 \pkg{latexmk} +% +% \subparagraph{使用 \pkg{latexmk}} +% \href{https://mg.readthedocs.io/latexmk.html}{\pkg{latexmk}} 是一个基于 Perl 脚本的自动编译工具,宗旨是通过单一命令简化上述的多次编译流程。在使用该命令前,请确保安装了以下软件: +% \begin{description} +% \item[Perl] 一般预装于 macOS 和 Linux,而 Windows 用户需要单独安装 \href{https://strawberryperl.com/}{Strawberry Perl}。 +% \item[\pkg{latexmk}] \hologo{MiKTeX}已预装;如果终端找不到|latexmk|命令,\hologo{TeX}\,Live 用户需使用 \pkg{tlmgr} 单独安装。 +% \end{description} +% +% 该命令的使用方法为 % \begin{ctexexam} -% latexmk -lualatex mynjuthesis +% latexmk mynjuthesis % \end{ctexexam} % -% 编译产物为\file{njuthesis.pdf},位于主目录下。此外还会生成一系列中间文件,可以选择使用以下命令进行清理。 +% 如需指定编译器,可以加入|-xelatex|或|-lualatex|参数,例如指定 \hologo{XeLaTeX} 的命令为 +% \begin{ctexexam} +% latexmk -xelatex mynjuthesis +% \end{ctexexam} % +% 此外可以选择使用以下命令清理编译生成的临时文件。 % \begin{ctexexam} % latexmk -c % \end{ctexexam} @@ -370,19 +404,19 @@ through XeTeX. % \subsection{在线编译} % \label{subsec:onlinecompile} % -% 相信你在接触了本地编译以后,很快就会意识到一些十分显然的事实,譬如\hologo{TeX}编译器安装过程较为漫长,占用空间过大,而且在一部分处理器性能不佳的电脑上需要较长编译时间\footnote{其实这三点都是对广大的Windows用户说的,同一个模板在Linux编译可以节省一半耗时}。拒绝接受这些麻烦的同学不妨尝试本节介绍的在线编译方法。 +% 相信你在接触了本地编译以后,很快就会意识到一些十分显然的事实,譬如\hologo{TeX}编译器安装过程较为漫长\footnote{因此对于 Windows 推荐 \hologo{MiKTeX}。},占用空间过大,而且在一部分处理器性能不佳的电脑上需要较长编译时间\footnote{同一个模板在 Linux 编译可以相对 Windows 节省一半耗时。}。拒绝接受这些麻烦的同学不妨尝试本节介绍的在线编译方法。 % % \subsubsection{南大\hologo{TeX}平台简介} % \changes{v0.2}{2021/09/07}{添加对南大\hologo{TeX}的支持。} % -% \href{https://tex.nju.edu.cn}{南大\hologo{TeX}}基于开源的ShareLaTeX平台\footnote{理论上在\href{https://doc.nju.edu.cn/books/latex}{这个网站}能找到一段平台简介,实际上大家都有意无意地鸽了,下次一定补上。},于2021年3月4日正式上线,面向南京大学全体师生开放,首次使用需凭学校邮箱自助注册账号。 +% \href{https://tex.nju.edu.cn}{南大\hologo{TeX}}基于开源的 ShareLaTeX 平台\footnote{理论上在\href{https://doc.nju.edu.cn/books/latex}{这个网站}能找到一段平台简介,实际上大家都有意无意地鸽了,下次一定补上。},于2021年3月4日正式上线,是 \href{https://sci.nju.edu.cn/}{eScience 中心}为南大在校师生提供的 \hologo{LaTeX} 在线编译平台,首次使用需凭学校邮箱自助注册账号。 % % \subsubsection{操作步骤} % % \begin{enumerate} % \item 访问\href{https://tex.nju.edu.cn}{南大\hologo{TeX}},点击界面右上方Register,使用\emph{南京大学邮箱}注册账号并登录 % \item 在项目页面左上角的Menu中,将编译器改为\hologo{XeLaTeX}或者\hologo{LuaLaTeX} -% \item 仿照\file{njuthesis-sample.tex}编写论文 +% \item 仿照 \file{njuthesis-sample.tex} 编写论文 % \item 点击Compile按钮进行编译和预览 % \end{enumerate} % @@ -390,9 +424,11 @@ through XeTeX. % % \subsubsection{关于Overleaf} % -% 由于\href{https://www.overleaf.com/}{Overleaf平台}的\hologo{TeX}\,Live版本停留在2020,\texttt{cleveref}包在引用章节时会生成错误的标签,引发格式错误;而南大\hologo{TeX}通过及时更新规避了若干问题。因此\emph{请务必不要使用Overleaf官网进行编译}。 +% 由于\href{https://www.overleaf.com/}{Overleaf} 平台的\hologo{TeX}\,Live版本停留在2020,\texttt{cleveref}包在引用章节时会生成错误的标签,引发格式错误;而南大\hologo{TeX}通过及时更新规避了若干问题。因此\emph{请务必不要使用Overleaf官网进行编译}。 % +% \subsubsection{关于TeXPage} % +% \href{https://www.texpage.com/}{TeXPage} 是国人研发的\hologo{LaTeX}在线编辑器,当前版本已具备较为完善的编辑编译功能,而且免费版相对 Overleaf 增加了公式识别、编辑历史等实用工具,也可以作为一个备选项。目前的缺憾是对于 \cls{njuthesis} 的编译速度较慢。 % % \section{使用方法} % @@ -434,7 +470,7 @@ through XeTeX. % degree = <(ug)|mg|mf|phd> % \end{syntax} % -% 选择学位,分别为本科、学术型硕士、专业硕士、博士。 +% 选择学位,分别为学士、学术型硕士、专业硕士、博士。 % \end{function} % % \begin{function}[added=2021-09-07]{nlcover} @@ -545,15 +581,15 @@ through XeTeX. % % 若要手动选择字体,则需将字体设置为 \opt{none},再通过 \pkg{fontspec} 宏包或 \pkg{ctex} 宏包中给出的命令来实现。 % -% 最后,出于统一格式的需要,本模板还选取了与正文字体相似度最高的数学字体(\href{https://www.stixfonts.org}{STIX 字体})用于公式排版。 +% 最后,出于统一格式的需要,本模板还选取了与正文字体相似度最高的数学字体(\href{https://github.com/aliftype/xits}{XITS 字体})用于公式排版。 % % 本节提及的字库中,中文字库只有方正书宋、方正黑体、方正楷体、方正仿宋、两种思源字体和四种Fandol字体能够\emph{免费商用}; -% 英文字库中只有 Times New Roman、STIX 和三种\Hologo{TeX} Gyre字体能够\emph{免费商用}。 +% 英文字库中只有 Times New Roman、XITS 和三种\Hologo{TeX} Gyre字体能够\emph{免费商用}。 % 因此,若需要将本模板用于商业相关的活动,请咨询专业人士。 % % \subsection{个人信息} % -% \begin{function}[added=2021-09-10]{\njusetup} +% \begin{function}[updated=2021-10-01]{\njusetup} % \begin{syntax} % \tn{njusetup}\Arg{键值列表} % \end{syntax} @@ -663,11 +699,12 @@ through XeTeX. % udc = \Arg{udc} % supervisor-contact = \Arg{导师联系方式} % \end{syntax} -% 国家图书馆封面相关,包括中图分类号、密级和udc。 +% 国家图书馆封面相关,包括中图分类号、密级、udc和导师联系方式。 % \end{function} % -% 本科生可以参考如下列表输入个人信息。注意不能有空行。 +% \subsubsection{输入示范} % +% 本科生可以参考如下列表输入个人信息。注意不能有空行。 % % \begin{ctexexam} % \njusetup { @@ -793,7 +830,7 @@ through XeTeX. % \end{ctexexam} % % -% 文字环绕图像,\env{wrapfigure}后面不能有空行 +% 对于较为瘦长,或者仅起到辅助作用的图像,可以使用\env{wrapfigure}实现文字环绕效果。注意这个环境后紧跟的一行不能为空。 % % \begin{ctexexam} % \begin{wrapfigure}{r}{0cm} @@ -804,7 +841,7 @@ through XeTeX. % <text> % \end{ctexexam} % -% TODO:使用\pkg{subcaption}的\env{subfigure}实现多张图片并排的效果 +% TODO:使用\pkg{subcaption}的\env{subfigure}实现多张图片并排的效果。较为老旧的\pkg{subfigure}并不在此受到支持。 % % \begin{ctexexam} % \begin{figure} @@ -829,9 +866,7 @@ through XeTeX. % % \subsubsection{表格} % -% 下面这个例子展示了如何插入一张表格。 -% -% 通过\pkg{booktabs}提供的\tn{toprule}、\tn{midrule}和\tn{bottomrule},我们可以很轻松地绘制出一张漂亮规范的三线表。 +% 下面这个例子展示了如何插入一张表格。通过 \pkg{booktabs} 提供的 \tn{toprule}、\tn{midrule} 和 \tn{bottomrule},我们可以很轻松地绘制出一张漂亮规范的三线表。 % \begin{ctexexam} % \begin{table}[htbp] % \caption{我的表} @@ -871,7 +906,7 @@ through XeTeX. % % \subsubsection{数学} % -% 符号表可以参考\url{https://www.caam.rice.edu/~heinken/latex/symbols.pdf}。单位请参考\pkg{siunitx}。 +% 符号表可以参考\url{https://www.caam.rice.edu/~heinken/latex/symbols.pdf}。单位请参考\pkg{siunitx}。\pkg{siunitx}是一个更新频繁的包,可能会引发兼容性问题。 % % 行内公式形如|$\mathrm{e}^{(a+2b)x}$| % @@ -1052,50 +1087,18 @@ through XeTeX. % \end{function} % % \subsection{视觉识别系统} -% -% \begin{function}[added=2021-09-24]{njuviolet,njumagenta,njublue,njuyellow} -% \begin{syntax} -% \tn{color}\Arg{颜色} -% \end{syntax} -% 定义并使用南京大学视觉形象规范化标准中给定的四种标准色: -% -% {\color{njuviolet}紫色}\hspace{1em}{\color{njumagenta}洋红}\hspace{1em} -% {\color{njublue}蓝色}\hspace{1em}{\color{njuyellow}黄色} -% -% \end{function} -% -% \begin{function}[added=2021-09-24]{\njuemblem} -% \begin{syntax} -% \tn{njuemblem}\oarg{颜色}\Arg{宽度}\Arg{高度} -% \end{syntax} -% 生成指定颜色和大小的南京大学校徽。 -% \end{function} -% -% \begin{function}[added=2021-09-24]{\njuname,\njuname*} -% \begin{syntax} -% \tn{njuname}\oarg{颜色}\Arg{宽度}\Arg{高度} -% \tn{njuname*}\oarg{颜色}\Arg{宽度}\Arg{高度} -% \end{syntax} -% 生成指定颜色和大小的南京大学校名,加星号的为英文校名。 -% \end{function} -% -% -% \begin{function}[added=2021-09-24]{\njumotto} -% \begin{syntax} -% \tn{njumotto}\oarg{颜色}\Arg{宽度}\Arg{高度} -% \end{syntax} -% 生成指定颜色和大小的南京大学校训。 -% \end{function} -% -% -% \begin{function}[added=2021-09-24]{\njuspirit} -% \begin{syntax} -% \tn{njuspirit}\oarg{颜色}\Arg{宽度}\Arg{高度} -% \end{syntax} -% 生成指定颜色和大小的南京大学校徽。 -% \end{function} % +% 视觉识别系统 \pkg{njuvisual} 现已被分离为独立宏包,基本使用方法举例如下: +% \begin{ctexexam} +% \njuemblem{!}{3cm} % 默认生成指定大小的紫色南大校徽 +% \njuname{4cm}{!} % 默认生成指定大小的紫色南大中文校名 +% \njuname*{4cm}{!} % 默认生成指定大小的紫色南大英文校名 +% \njuemblem[black]{!}{3cm} % 黑色的南大校徽 +% \njuemblem[department=dii]{!}{4cm} % 紫色匡院徽标 +% \njuemblem[department=cs,color=blue]{!}{3cm} % 纯蓝色计科徽标 +% \end{ctexexam} % +% 本宏包的详细使用方法请参考其\href{http://mirrors.ctan.org/macros/latex/contrib/njuvisual/njuvisual.pdf}{说明文档}。 % % \end{documentation} % @@ -1104,16 +1107,81 @@ through XeTeX. % \section{代码实现} % \changes{v0.10}{2021/09/26}{对代码实现部分进行了整理。} % -% |@@| 在 \pkg{l3docstrip} 中表示名空间,在删除注释生成格式文件时会被等号后的字段替换,譬如在本模板\pkg{njuthesis}中 |@@=nju|。 -% 尖括号包裹的|<*class>||</class>|用来指定某段代码属于哪个文件。 +% 本模板使用 \hologo{LaTeX3} 语法编写,依赖 \pkg{expl3} 环境, +% 并需调用 \pkg{l3packages} 中的相关宏包。 +% +% 以下代码中有一些形如 |<*class>| +% 的标记,这是 \pkg{DocStrip} 中的“guard”,用来选择性地提取文件。 +% “|*|”和“|/|”分别表示该部分的开始和结束。不含 +% “|*|”和“|/|”的 guard 出现在行号右侧,它们用来确定 +% 单独一行代码的归属。这些 guard 的颜色深浅不一,用以明确嵌套关系。 +% +% 另有若干包含|@@|的guard,在 \pkg{l3docstrip} 中表示名空间(模块)。 +% 在删除注释生成格式文件时,变量名称中的|@@|会被等号后的字段替换, +% 譬如在本模板\cls{njuthesis}中 |@@=nju|。 +% +% \subsection{准备} % % \begin{macrocode} -%<@@=nju> %<*class> +%<@@=nju> +% \end{macrocode} +% +% \changes{v0.11}{2021/10/23}{添加了若干环境检查与警告信息。} +% 检查 \hologo{LaTeX3} 编程环境。 +% \begin{macrocode} +\RequirePackage { xtemplate, l3keys2e } +\msg_new:nnn { njuthesis } { l3-too-old } + { + Package~ "#1"~ is~ too~ old. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ \\ + the~ bundles "l3kernel"~ and~ "l3packages"~ \\ + using~ your~ TeX~ package manager~ or~ from~ \\ + CTAN. + } +\clist_map_inline:nn { xtemplate, l3keys2e } + { + \@ifpackagelater {#1} { 2021/08/27 } + { } { \msg_error:nnn { njuthesis } { l3-too-old } {#1} } + } + +% \end{macrocode} +% +% 目前 \cls{njuthesis} 仅支持 \hologo{XeTeX} 和 \hologo{LuaTeX}。 +% \begin{macrocode} +\msg_new:nnn { njuthesis } { unsupported-engine } + { + The~ njuthesis~ class~ requires~ either~ \\ + XeTeX~ or~ LuaTeX. \\\\ + "#1"~ is~ not~ supported~ at~ present.~ \\ + You~ must~ change your~ typesetting~ engine~ \\ + to~ "xelatex"~ or~ "lualatex". + } +\sys_if_engine_xetex:F + { + \sys_if_engine_luatex:F + { + \msg_fatal:nnx { njuthesis } { unsupported-engine } + { \c_sys_engine_str } + } + } % \end{macrocode} % % \subsection{定义常量} % +% \begin{variable}{\c_@@_name_type_clist, +% \c_@@_name_degree_clist,\c_@@_name_degree_en_clist} +% 论文类型与学位类型。 +% \begin{macrocode} +\clist_const:Nn \c_@@_name_type_clist + { 毕业论文, 毕业设计 } +\clist_const:Nn \c_@@_name_degree_clist + { 学士, 硕士, 硕士专业, 博士 } +\clist_const:Nn \c_@@_name_degree_en_clist + { Bachelor, Master, Master, Doctor~of~Philosophy } +% \end{macrocode} +% \end{variable} +% % \begin{macro}{\@@_define_name:nn,\@@_define_name:nnn} % 用来定义默认名称的辅助函数。 % \begin{macrocode} @@ -1142,17 +1210,15 @@ through XeTeX. % \end{macrocode} % % \subsection{模板选项} +% \changes{v0.11}{2021/11/15}{进行了效率优化。} % -% 用于配置模板选项的宏包。 -% \begin{macrocode} -\RequirePackage{xparse,xtemplate,l3keys2e} -% \end{macrocode} -% -% \begin{variable}{\l_@@_info_degree_tl,\l_@@_info_type_tl} +% \begin{variable}{\g_@@_info_degree_int,\g_@@_info_type_int, +% \g_@@_info_diploma_tl} % 用于存储学位名称的变量,注意宏的命名,l代表局部变量,g代表全局变量 % \begin{macrocode} -\tl_new:N \l_@@_info_degree_tl -\tl_new:N \l_@@_info_type_tl +\int_new:N \g_@@_info_degree_int +\int_new:N \g_@@_info_type_int +\tl_new:N \g_@@_info_diploma_tl % \end{macrocode} % \end{variable} % @@ -1174,8 +1240,8 @@ through XeTeX. % 学位类型。 % \begin{macrocode} degree .choices:nn = - { ug, mg, mg, phd } - { \tl_set_eq:NN \l_@@_info_degree_tl \l_keys_choice_tl }, + { ug, mg, mf, phd } + { \int_set_eq:NN \g_@@_info_degree_int \l_keys_choice_int }, degree .initial:n = ug, % \end{macrocode} % \end{macro} @@ -1185,7 +1251,7 @@ through XeTeX. % \begin{macrocode} type .choices:nn = { thesis, design } - { \tl_set_eq:NN \l_@@_info_type_tl \l_keys_choice_tl }, + { \int_set_eq:NN \g_@@_info_type_int \l_keys_choice_int }, type .initial:n = thesis, % \end{macrocode} % \end{macro} @@ -1212,12 +1278,18 @@ through XeTeX. % \end{macro} % % \begin{macro}{\ProcessKeysOptions} -% 在定义完全部设置以后从tex文件导言区输入参数 +% 在定义完全部设置以后从tex文件导言区输入参数。 % \begin{macrocode} \ProcessKeysOptions { nju } % \end{macrocode} % \end{macro} % +% 进行学位的判断。 +% \begin{macrocode} +\int_compare:nTF { \g_@@_info_degree_int == 1 } + { \tl_set:Nn \g_@@_info_diploma_tl { ug } } + { \tl_set:Nn \g_@@_info_diploma_tl { g } } +% \end{macrocode} % % % @@ -1236,7 +1308,7 @@ through XeTeX. % \end{macrocode} % % \begin{macro}{info/titlea,info/titleb,info/titlec,info/title*} -% 题目 +% 题目。以下标注星号(*)的为对应的英文字段。 % \begin{macrocode} titlea .tl_set:N = \l_@@_info_title_a_tl, titleb .tl_set:N = \l_@@_info_title_b_tl, @@ -1247,7 +1319,7 @@ through XeTeX. % % \begin{macro}{info/keywords,info/keywords*} % \changes{v0.11}{2021/10/01}{修改了添加关键词的方式。} -% 关键词 +% 关键词列表。 % \begin{macrocode} keywords .clist_set:N = \l_@@_info_keywords_clist, keywords* .clist_set:N = \l_@@_info_keywords_en_clist, @@ -1255,7 +1327,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \end{macro} % % \begin{macro}{info/grade,info/student-id,info/author,info/author*} -% 年级、学号、姓名 +% 年级、学号、姓名。 % \begin{macrocode} grade .tl_set:N = \l_@@_info_grade_tl, student-id .tl_set:N = \l_@@_info_id_tl, @@ -1297,7 +1369,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \end{macro} % % \begin{macro}{info/submit-date,info/submit-date*} - % 提交日期 +% 提交日期 % \begin{macrocode} submit-date .tl_set:N = \l_@@_submit_date_tl, submit-date* .tl_set:N = \l_@@_submit_date_en_tl, @@ -1305,7 +1377,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \end{macro} % % \begin{macro}{info/defend-date,info/chairman,info/reviewer} -% 答辩 TODO: 用clist处理答辩委员会成员名称 +% 答辩信息。 % \begin{macrocode} defend-date .tl_set:N = \l_@@_defend_date_tl, chairman .tl_set:N = \l_@@_info_chairman_tl, @@ -1314,7 +1386,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \end{macro} % % \begin{macro}{info/clc,info/secret-level,info/udc,info/supervisor-contact} -% 国家图书馆封面相关 +% 国家图书馆封面相关信息。 % \begin{macrocode} clc .tl_set:N = \l_@@_info_clc_tl, secret-level .tl_set:N = \l_@@_info_seclv_tl, @@ -1337,7 +1409,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % % \subsection{载入宏包} % -% 使用\pkg{ctexbook}文档类。 +% 使用\pkg{ctexbook}作为基础文档类。 % \begin{macrocode} \LoadClass[ a4paper, @@ -1346,7 +1418,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, scheme=chinese, % \end{macrocode} % 关于行距,\hologo{LaTeX}默认1.2行距,word默认行距是1.3,要求1.5倍word行距,故 -% \[ 1.5\times\frac{1.3}{1.2} = 1.625\] +% $1.5\times\frac{1.3}{1.2} = 1.625$ % \begin{macrocode} linespread=1.625, % \end{macrocode} @@ -1443,6 +1515,31 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \RequirePackage{blindtext,zhlipsum} % \end{macrocode} % +% \begin{macro}{\@@_check_package:nnn} +% 检查过时宏包。 +% \begin{macrocode} +\msg_new:nnn { njuthesis } { package-too-old } + { + Package~ "#1"~ is~ too~ old. \\ + The~ njuthesis~ class~ only~ supports~ "#1"~ with~ \\ + a~ version higher~ than~ v#2. \\\\ + Please~ update~ an~ up-to-date~ version~ of~ it~ \\ + using~ your TeX~ package~ manager~ or~ from~ CTAN. + } +\cs_new_protected:Npn \@@_check_package:nnn #1#2#3 + { + \@ifpackagelater {#1} {#2} + { } { \msg_error:nnnn { njuthesis } { package-too-old } {#1} {#3} } + } +% \end{macrocode} +% \end{macro} +% +% 检查绘制下划线所需的 \pkg{luatexja} 包版本。该宏包在2021-09-18的解决了下划线中断问题,然而在2021-10-24的更新才提供了正确的内嵌日期。 +% \begin{macrocode} +\sys_if_engine_luatex:T + { \@@_check_package:nnn { luatexja } { 2021/10/24 } { 20211024.0 } } +% \end{macrocode} +% % \subsection{字体设置} % % \pkg{fontspec}已在C\hologo{TeX}套件中包含,无需另外载入。 @@ -1635,6 +1732,12 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \begin{macrocode} \cs_new_protected:Npn \@@_load_cjk_font_founder: { + \sys_if_engine_luatex:T + { + % 在 LuaTeX 中调整方正字体括号位置 + % XeTeX 暂无好的解决方法 + \defaultCJKfontfeatures{JFM={zh_CN/{quanjiao,fzpr}}} + } \setCJKmainfont{FZSSK}[% 方正书宋 Extension=.ttf, BoldFont=FZXBSK,% 方正小标宋 @@ -1659,6 +1762,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % {FZYouHK_508R}[% 方正悠黑508R % Extension=.ttf, % BoldFont=FZYouHK_511M]% 方正悠黑511M + \defaultCJKfontfeatures{} } % \end{macrocode} % \end{macro} @@ -1724,7 +1828,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % % \changes{v0.10}{2021/09/28}{修正了数学字体。} % -% 设置数学字体 (XITS, 或者 STIX, 与 Times New Roman 最为相近) +% 设置数学字体 (XITS, 或者 \href{https://www.stixfonts.org}{STIX}, 与 Times New Roman 最为相近) % \begin{macrocode} % \setmathfont{STIXTwoMath-Regular}[Extension = .otf] \setmathfont{XITSMath-Regular}[ @@ -1742,7 +1846,8 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \begin{macrocode} \geometry{ vmargin = 2.5 cm, - hmargin = 3.2 cm, + hmargin = 3.2 cm, + headheight = 15 pt } % \end{macrocode} % @@ -1768,7 +1873,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % % 载入页眉页脚设置。此处\tn{flushbottom}是为了防止目录页出现underfull \tn{vbox}信息。 % \begin{macrocode} -\str_if_eq:NNTF {\l_@@_info_degree_tl} { ug } +\int_compare:nTF { \g_@@_info_degree_int == 1 } { % the header line \tl_set:Nn \headrulewidth {0pt} @@ -1781,7 +1886,6 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \tl_set:Nn \headrulewidth {1pt} % the footer line \tl_set:Nn \footrulewidth {0pt} - \setlength{\headheight}{20pt} \AtBeginDocument{\pagestyle{fancy}\flushbottom} % 研究生有页眉页脚 } % \end{macrocode} @@ -2130,7 +2234,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \renewcommand*{\proofname}{\rm\bf\songti{\oldproofname}} % \end{macrocode} % -% +% TODO: 简化数学环境的定义方法 % \begin{macrocode} \declaretheorem[ name=算法, @@ -2274,10 +2378,9 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % % 判断学位进行命令定义 % \begin{macrocode} -\str_if_eq:NNTF {\l_@@_info_degree_tl} { ug } +\int_compare:nTF { \g_@@_info_degree_int == 1 } { % 本科 - \tl_const:Nn \l_@@_name_diploma_tl { 本科 } \tl_const:Nn \c_@@_name_title_tl { 题\hfill 目 } \tl_const:Nn \c_@@_cover_uline_len_a_tl { 250pt } @@ -2293,7 +2396,6 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, } { % 本科以外都是研究生 - \tl_const:Nn \l_@@_name_diploma_tl { 研究生 } \tl_const:Nn \c_@@_name_title_tl { 论\hfill 文\hfill 题\hfill 目 } \tl_const:Nn \c_@@_cover_uline_len_a_tl { 250pt } @@ -2303,19 +2405,6 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \tl_const:Nn \c_@@_cover_uline_bskip_tl { \hspace{1em} } \tl_const:Nn \c_@@_cover_box_len_tl { 6em } - - % 研究生学位名称 - \str_if_eq:NNTF { \l_@@_info_degree_tl } { phd } - { - \tl_set:Nn \l_@@_name_degree_tl { 博士 } - \tl_set:Nn \l_@@_name_degree_en_tl { Doctor~of~Philosophy } - } - { - \tl_set:Nn \l_@@_name_degree_en_tl { Master } - \str_if_eq:NNTF { \l_@@_info_degree_tl } { mg } - { \tl_set:Nn \l_@@_name_degree_tl { 硕士 } } - { \tl_set:Nn \l_@@_name_degree_tl { 硕士专业 } } - } } % \end{macrocode} % \begin{macro}{\@@_spread_box:nn} @@ -2371,17 +2460,14 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \end{macrocode} % \end{macro} % -% \begin{macro}{\l_@@_name_diploma_tl} -% 判断类型 +% \begin{macro}{\@@_cover_degree:} +% 学位类型。 % \begin{macrocode} -\str_if_eq:NNTF { \l_@@_info_type_tl } { thesis } -{ - \tl_const:Nn \l_@@_info_type_tl_name - { \l_@@_name_diploma_tl 毕业论文 } -} +\cs_new_protected:Npn \@@_cover_degree: { - \tl_const:Nn \l_@@_info_type_tl_name - { \l_@@_name_diploma_tl 毕业设计 } + { (申请 } + \clist_item:Nn \c_@@_name_degree_clist { \g_@@_info_degree_int } + { 学位) } } % \end{macrocode} % \end{macro} @@ -2419,7 +2505,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % \begin{macrocode} \cs_new_protected:Npn \@@_print_covertab: {% - \str_if_eq:NNTF { \l_@@_info_degree_tl } { ug } +\int_compare:nTF { \g_@@_info_degree_int == 1 } { \begin{tabular}{p{4.2em}c} \@@_cover_box:n {院\hfill 系} @@ -2576,7 +2662,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \begin{center} \njuname{!}{3.35cm} \vskip 10mm - {\zihao{1}\bf\songti\@@_spread_box:nn {9em}{\l_@@_info_type_tl_name}} + {\zihao{1}\bf\songti\@@_spread_box:nn {9em}{本科毕业论文}} \vfill \vskip\stretch{0} {\bgroup @@ -2615,9 +2701,9 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \vskip 15mm \bgroup \zihao{1}\bf\kaishu - \@@_spread_box:nn {10em}{\l_@@_info_type_tl_name} + \@@_spread_box:nn {10em}{研究生毕业论文} \vskip 5mm - {(申请\l_@@_name_degree_tl 学位)} + \@@_cover_degree: \egroup \par\vfill\vskip\stretch{0} \bgroup @@ -2651,15 +2737,8 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \vskip 15mm \end{spacing} \cleardoublepage -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_print_cover_en:} + % 研究生英文封面 -% \begin{macrocode} -\cs_new_protected:Npn \@@_print_cover_en: -{ \thispagestyle{empty} \pdfbookmark{英文封面}{cover-en} % 将封面插入pdf书签 \begin{center} @@ -2678,11 +2757,13 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, \l_@@_info_supv_b_title_en_tl \hspace{.5em}\l_@@_info_supv_b_en_tl \vskip\stretch{1} - \normalsize\rmfamily{% + \normalsize\rmfamily{ A~dissertation~submitted~to\\ the~graduate~school~of~Nanjing~University\\ in~partial~fulfilment~of~the~requirements~for~the~degree~of\\ - {\textsc{\l_@@_name_degree_en_tl}}\\ + \textsc{ + \clist_item:Nn \c_@@_name_degree_en_clist { \g_@@_info_degree_int } + }\\ in\\ {\l_@@_major_en_tl} } @@ -2705,16 +2786,9 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, % 重定义maketitle生成封面 % \begin{macrocode} \tl_set:Nn \maketitle -{% - \str_if_eq:NNTF { \l_@@_info_degree_tl } { ug } - { - \@@_print_cover_ug: % 本科封面 - } - { - \bool_if:NT \g_@@_nlcover_bool { \@@_print_cover_nl: } % 国家图书馆封面 - \@@_print_cover_g: % 研究生封面 - \@@_print_cover_en: % 英文封面 - } +{ + \bool_if:NT \g_@@_nlcover_bool { \@@_print_cover_nl: } % 国家图书馆封面 + \use:c { @@_print_cover_ \g_@@_info_diploma_tl : } } % \end{macrocode} % \end{macro} @@ -2810,7 +2884,7 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, 毕业论文题目:\hspace{0.5em}\njuline{\l_@@_info_title_tl\hfill}\\ \njuline{\makebox[11em]{\l_@@_major_tl}}专业 \njuline{\makebox[4em]{\l_@@_info_grade_tl}}级 - \str_if_eq:NNTF {\l_@@_info_degree_tl} { phd } {博}{硕} + \int_compare:nTF { \g_@@_info_degree_int == 4} { 博 } { 硕 } 士生姓名:\njuline{\hfill\l_@@_info_author_tl\hfill}\\ 指导教师(姓名、职称):\njuline{\hfill\l_@@_info_supv_full_tl\hfill}\par \egroup @@ -2837,29 +2911,25 @@ keywords* .clist_set:N = \l_@@_info_keywords_en_clist, } % \end{macrocode} % \end{macro} -% % -% 判断学位 -% +% \begin{macro}{abstract} +% 中文摘要环境。 % \begin{macrocode} -\str_if_eq:NNTF {\l_@@_info_degree_tl} { ug } -{ - \NewDocumentEnvironment{abstract} {} - {\@@_print_abstract_ug:}{\@@_print_keywords:\newpage} - \NewDocumentEnvironment{abstract*} {} - {\@@_print_abstract_en_ug:}{\@@_print_keywords_en:\cleardoublepage} -} -{ - \NewDocumentEnvironment{abstract} {} - {\@@_print_abstract_g:}{\@@_print_keywords:\newpage} - \NewDocumentEnvironment{abstract*} {} - {\@@_print_abstract_en_g:}{\@@_print_keywords_en:\cleardoublepage} -} +\NewDocumentEnvironment{abstract} { +b } + { \use:c { @@_print_abstract_ \g_@@_info_diploma_tl : } #1 } + { \@@_print_keywords: \newpage } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{abstract*} +% 英文摘要环境。\pkg{xparse} 目前不支持合并带有星号的环境,因此需要单独定义。 +% \begin{macrocode} +\NewDocumentEnvironment{abstract*} { +b } + { \use:c { @@_print_abstract_en_ \g_@@_info_diploma_tl : } #1 } + { \@@_print_keywords_en: \cleardoublepage } %</class> % \end{macrocode} -% -% -% +% \end{macro} % % \end{implementation} % diff --git a/macros/unicodetex/latex/njuthesis/njuthesis.ins b/macros/unicodetex/latex/njuthesis/njuthesis.ins index 3c1216de41..bb465a1532 100644 --- a/macros/unicodetex/latex/njuthesis/njuthesis.ins +++ b/macros/unicodetex/latex/njuthesis/njuthesis.ins @@ -10,7 +10,7 @@ %% by Nanjing University Linux User Group <nju.lug@yaoge123.cn> %% %% This file may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License, either version 1.3 of this license +%% the LaTeX Project Public License, either version 1.3c of this license %% or (at your option) any later version. The latest version of this %% license is in: %% @@ -22,7 +22,7 @@ %% To produce the documentation run the original source files ending with `.dtx' %% through XeTeX. %% -\input l3docstrip.tex +\input docstrip.tex \keepsilent \askforoverwritefalse @@ -32,7 +32,7 @@ Copyright (C) 2021 by Nanjing University Linux User Group <nju.lug@yaoge123.cn> This file may be distributed and/or modified under the conditions of -the LaTeX Project Public License, either version 1.3 of this license +the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. The latest version of this license is in: @@ -49,9 +49,6 @@ through XeTeX. \generate{ \usedir{tex/latex/njuthesis} \file{\jobname.cls} {\from{\jobname.dtx}{class}} - \file{njuvisual.sty} - {\from{\jobname.dtx}{visual} - \from{njuvisual.dtx}{visual}} } \obeyspaces @@ -64,7 +61,6 @@ through XeTeX. \Msg{* *} \Msg{* njuthesis.cls *} \Msg{* njuthesis.ins *} -\Msg{* njuvisual.sty *} \Msg{* *} \Msg{* To produce the documentation, run the file njuthesis.dtx *} \Msg{* through XeLaTeX. *} diff --git a/macros/unicodetex/latex/njuthesis/njuthesis.pdf b/macros/unicodetex/latex/njuthesis/njuthesis.pdf Binary files differindex 4c07e666a6..ee8354e6f7 100644 --- a/macros/unicodetex/latex/njuthesis/njuthesis.pdf +++ b/macros/unicodetex/latex/njuthesis/njuthesis.pdf diff --git a/macros/unicodetex/latex/njuthesis/njuvisual.dtx b/macros/unicodetex/latex/njuthesis/njuvisual.dtx deleted file mode 100644 index 0dad1405ba..0000000000 --- a/macros/unicodetex/latex/njuthesis/njuvisual.dtx +++ /dev/null @@ -1,5203 +0,0 @@ -% \iffalse meta-comment -% !TeX program = XeLaTeX -% !TeX encoding = UTF-8 -% -% Copyright (C) 2021 -% by Nanjing University Linux User Group <nju.lug@yaoge123.cn> -% -% 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 -% -% ----------------------------------------------------------------------- -% -% The development version of the template can be found at -% -% https://github.com/nju-lug/NJUThesis -% -% for those people who are interested. -% -% ----------------------------------------------------------------------- -% -% TODO: 用 l3keys 提供清晰明了的接口 -% -% ----------------------------------------------------------------------- -% -% \fi -% -% \EnableImplementation -% -% \begin{implementation} -% -% \subsection{视觉识别系统 \pkg{njuvisual}} -% \changes{v0.10}{2021/09/24}{添加南京大学视觉识别系统。} -% -% 南京大学视觉形象规范化标准(\pkg{njuvisual})宏包是 \pkg{njuthesis} 文档类的子宏包,负责实现 -% \href{https://www.nju.edu.cn/3647/list.htm}{南京大学视觉形象规范化标准} -% 中定义的配色方案和标识。 -% -% \begin{macrocode} -%<@@=njuvis> -%<*visual> -% \end{macrocode} -% -% \subsubsection{内部命令} -% -% 导入 \pkg{tikz} 宏包,其中已包含 \pkg{xcolor},无需单独加载。 -% \begin{macrocode} -\RequirePackage { tikz } -% \end{macrocode} -% -% -% \begin{macro}{njuviolet,njumagenta,njublue,njuyellow} -% 定义南京大学视觉形象规范化标准中给定的四种标准色:紫色、洋红、蓝色、黄色。 -% \begin{macrocode} -\definecolor { njuviolet } { cmyk } { 0.50, 1 , 0 , 0.40 } -\definecolor { njumagenta } { cmyk } { 0.05, 1 , 0.55, 0 } -\definecolor { njublue } { cmyk } { 0.80, 0.50, 0 , 0 } -\definecolor { njuyellow } { cmyk } { 0 , 0.30, 1 , 0 } -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\@@_tikz_wrapper} -% 可变大小的 tikz 容器。 -% \begin{arguments} -% \item 颜色 -% \item 路径 -% \item 宽度 -% \item 高度 -% \end{arguments} -% 封装 resizebox 和 tikzpicture 环境,减少重复。 -% \begin{macrocode} -\NewDocumentCommand \@@_tikz_wrapper { m m m m } -{ \resizebox { #3 } { #4 } { - \begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1, - xscale=1, inner~sep=0pt, outer~sep=0pt] - \path[fill=#1,nonzero~rule] #2 - \end{tikzpicture} } } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\@@_colon} -% 定义类别为 other 的冒号,用于在 Expl3 中表示路径 -% \begin{macrocode} -\def \@@_colon { \char_generate:nn { 58 } { 12 } } -% \end{macrocode} -% \end{macro} -% -% -% \subsubsection{用户接口} -% -% \begin{macro}{\njuemblem} -% 定义南京大学盾形校徽。 -% \begin{macrocode} -\NewDocumentCommand \njuemblem { O { black } m m } -{ \@@_tikz_wrapper - { #1 } { \@@_path_emblem } { #2 } { #3 } } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\njuname,\njuname*} -% 定义南京大学中英文校名。 -% \begin{macrocode} -\NewDocumentCommand \njuname { t* O { black } m m } -{ - \IfBooleanTF {#1} - { \@@_tikz_wrapper - { #2 } { \@@_path_name_en } { #3 } { #4 } } - { \@@_tikz_wrapper - { #2 } { \@@_path_name_cn } { #3 } { #4 } } } -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\njumotto} -% 定义南京大学校训。在筹备百年校庆过程中,经过广泛征求意见和反复遴选比较,学校决定将“诚朴雄伟,励学敦行”作为南京大学新的校训。 -% \begin{macrocode} -\NewDocumentCommand \njumotto { O { black } m m } -{ \@@_tikz_wrapper - { #1 } { \@@_path_motto } { #2 } { #3 } } -% \end{macrocode} -% \end{macro} -% -% -% \begin{macro}{\njuspirit} -% 定义南京大学校风。1991年,在广泛征求师生意见和总结南大办学传统的基础上,曲钦岳校长确定将“严谨、求实、勤奋、创新”作为南大校风。 -% \begin{macrocode} -\NewDocumentCommand \njuspirit { O { black } m m } -{ \@@_tikz_wrapper - { #1 } { \@@_path_spirit } { #2 } { #3 } } -% \end{macrocode} -% \end{macro} -% -% \subsubsection{图形绘制} -% -% 本部分绘制命令来自于\href{https://xiaoban.nju.edu.cn/c7/7b/c684a509819/page.psp}{南京大学视觉形象规范化标准矢量图}。 -% -% \begin{macro}{\@@_path_emblem,\@@_path_name_en, -% \@@_path_name_cn,\@@_path_motto,\@@_path_spirit} -% 定义用到的各种路径。由于路径本身长达数千行,故在此文档中隐去,有兴趣的同学可以自行查阅\file{njuvisual.dtx}。 -% \begin{macrocode} -%</visual> -% \end{macrocode} -% \end{macro} -% \end{implementation} -% -% \DisableImplementation -% -% \begin{implementation} -% \begin{macrocode} -%<*visual> -\def \@@_path_emblem{ - (217.2400,100.3700) --- (51.2000,100.3700) -.. controls (50.9800,100.3700) and (51.0300,100.6600) .. (50.9300,100.8200) -.. controls (50.7700,122.1600) and (51.0100,144.1300) .. (50.9300,164.9000) -.. controls (50.7700,185.9000) and (53.8200,204.9700) .. (60.6600,219.9000) -.. controls (67.3700,234.7200) and (78.3800,245.3900) .. (90.8800,254.3500) -.. controls (103.6000,263.3500) and (119.5100,268.2100) .. (134.1900,275.7900) -.. controls (148.8200,268.1600) and (164.6800,263.4000) .. (177.3400,254.1600) -.. controls (189.8400,245.1600) and (201.1500,234.7500) .. (207.7700,219.7700) -.. controls (214.3900,204.7900) and (217.3500,186.2300) .. (217.3500,164.5700) -.. controls (217.3500,143.7000) and (217.5100,121.5200) .. (217.2400,100.3700) --- cycle(89.2400,194.6200) -.. controls (100.5200,188.7700) and (111.8200,182.3300) .. (120.6500,173.8200) -arc(76.633 \@@_colon 91.924 \@@_colon 58.050) -.. controls (106.0800,174.0800) and (107.4100,173.2800) .. (108.4700,172.2500) -.. controls (115.9200,165.2500) and (124.2700,158.6300) .. (128.3200,148.0700) -arc(70.952 \@@_colon 89.502 \@@_colon 31.070) -arc(38.240 \@@_colon 12.515 \@@_colon 83.850) --- (134.8700,116.0400) -arc(167.513 \@@_colon 141.732 \@@_colon 83.670) -arc(90.754 \@@_colon 110.364 \@@_colon 29.000) -arc(169.667 \@@_colon 148.710 \@@_colon 13.000) -.. controls (146.4300,158.9700) and (152.2000,164.2100) .. (157.5800,169.2900) -arc(309.925 \@@_colon 316.776 \@@_colon 74.000) -.. controls (158.0100,175.8900) and (155.3400,175.3600) .. (148.8000,173.6800) -.. controls (150.9200,176.2100) and (153.7200,178.0700) .. (156.3000,180.1200) -.. controls (163.3000,185.8700) and (171.7200,190.1200) .. (180.1800,194.6200) -.. controls (180.8500,194.9700) and (181.8900,195.2000) .. (182.1800,196.0800) -arc(82.304 \@@_colon 107.905 \@@_colon 50.730) -.. controls (150.5300,190.8900) and (141.7900,190.7000) .. (135.2600,196.7700) -.. controls (128.0200,190.9400) and (120.8700,190.8600) .. (109.2600,193.9200) -arc(73.280 \@@_colon 95.744 \@@_colon 57.170) -.. controls (87.4300,195.1200) and (88.5400,195.0000) .. (89.2600,194.6200) --- cycle(114.9300,250.0000) --- (113.2000,250.0000) --- (113.2000,239.0000) -arc(46.038 \@@_colon 66.740 \@@_colon 5.580) -arc(53.363 \@@_colon 68.257 \@@_colon 7.910) --- (109.7400,239.4900) -arc(63.077 \@@_colon 49.126 \@@_colon 12.550) -arc(49.556 \@@_colon 29.691 \@@_colon 7.000) --- (114.9300,235.9300) --- cycle(130.3100,247.0000) -arc(19.534 \@@_colon 52.521 \@@_colon 5.270) -arc(54.644 \@@_colon 90.527 \@@_colon 4.610) -arc(86.955 \@@_colon 130.797 \@@_colon 3.850) -arc(132.725 \@@_colon 174.858 \@@_colon 4.000) --- (123.5000,246.6000) -arc(172.573 \@@_colon 135.095 \@@_colon 3.000) -arc(133.313 \@@_colon 86.043 \@@_colon 2.000) -arc(89.869 \@@_colon 59.965 \@@_colon 2.830) -arc(58.633 \@@_colon 31.367 \@@_colon 3.000) -arc(30.803 \@@_colon 12.071 \@@_colon 5.380) -arc(15.082 \@@_colon -0.566 \@@_colon 7.850) --- (129.1800,243.3400) -arc(28.684 \@@_colon 63.754 \@@_colon 3.310) -arc(59.040 \@@_colon 89.943 \@@_colon 3.720) -arc(89.045 \@@_colon 137.167 \@@_colon 4.000) -arc(136.978 \@@_colon 182.098 \@@_colon 4.660) -arc(177.948 \@@_colon 222.981 \@@_colon 4.780) -arc(224.674 \@@_colon 271.157 \@@_colon 4.280) -arc(269.710 \@@_colon 300.460 \@@_colon 5.000) -arc(303.727 \@@_colon 337.665 \@@_colon 4.760) -arc(-17.707 \@@_colon 1.528 \@@_colon 11.910) -arc(-0.891 \@@_colon 15.731 \@@_colon 15.000) --- cycle(143.4800,247.0800) -arc(15.738 \@@_colon 50.275 \@@_colon 4.700) -arc(53.237 \@@_colon 138.832 \@@_colon 4.270) -.. controls (135.2600,247.6700) and (134.7800,245.7500) .. (134.7800,243.1200) -arc(178.756 \@@_colon 196.339 \@@_colon 13.200) -arc(195.886 \@@_colon 231.494 \@@_colon 4.540) -arc(229.835 \@@_colon 273.295 \@@_colon 3.630) -arc(268.585 \@@_colon 295.135 \@@_colon 4.450) -arc(297.779 \@@_colon 327.573 \@@_colon 3.730) -arc(329.132 \@@_colon 346.985 \@@_colon 7.330) -arc(-12.330 \@@_colon 1.417 \@@_colon 14.060) -arc(-1.045 \@@_colon 15.620 \@@_colon 13.600) --- cycle(157.0600,250.0800) --- (147.7600,250.0800) -arc(177.694 \@@_colon 202.657 \@@_colon 2.750) -arc(201.085 \@@_colon 222.434 \@@_colon 6.000) -arc(220.947 \@@_colon 231.137 \@@_colon 17.520) -arc(52.106 \@@_colon 39.773 \@@_colon 20.080) -arc(40.650 \@@_colon 3.048 \@@_colon 3.460) -arc(0.852 \@@_colon -49.587 \@@_colon 2.190) -arc(314.690 \@@_colon 267.983 \@@_colon 2.600) -arc(272.235 \@@_colon 225.652 \@@_colon 2.710) -arc(222.001 \@@_colon 177.696 \@@_colon 2.890) --- (148.0700,240.0000) -arc(183.277 \@@_colon 226.128 \@@_colon 4.520) -arc(231.149 \@@_colon 274.345 \@@_colon 4.580) -arc(266.177 \@@_colon 311.553 \@@_colon 4.370) -arc(-47.159 \@@_colon 0.960 \@@_colon 3.720) -arc(-0.312 \@@_colon 23.328 \@@_colon 4.160) -arc(25.943 \@@_colon 40.823 \@@_colon 8.000) -arc(44.328 \@@_colon 51.018 \@@_colon 31.180) -.. controls (151.8800,246.5800) and (151.1800,247.2200) .. (150.8800,247.4900) -arc(220.373 \@@_colon 211.134 \@@_colon 7.650) --- (157.0400,248.4900) --- cycle(142.8400,210.8600) --- (143.2900,214.5900) --- (127.1700,214.5900) --- (127.6500,210.8600) --- (77.1000,210.8600) --- (83.4100,203.1200) -arc(86.332 \@@_colon 70.599 \@@_colon 91.350) -.. controls (125.0900,191.6800) and (135.5200,200.5200) .. (135.5200,200.5200) -.. controls (143.7400,193.6300) and (154.0600,195.0600) .. (163.6100,198.5800) -.. controls (172.6100,201.8800) and (186.3600,202.8900) .. (186.3600,202.8900) --- (192.2900,210.8100) --- cycle(139.3500,237.2900) -arc(270.625 \@@_colon 213.608 \@@_colon 2.240) -.. controls (136.9000,239.1200) and (136.5800,240.7200) .. (136.5800,243.0600) -.. controls (136.5800,245.4000) and (136.8500,246.8600) .. (137.3900,247.6300) -arc(150.852 \@@_colon 29.148 \@@_colon 2.290) -.. controls (141.9200,246.8600) and (142.2100,245.3700) .. (142.2100,243.0600) -.. controls (142.2100,240.7500) and (141.9200,239.2000) .. (141.3900,238.4300) -arc(326.470 \@@_colon 271.925 \@@_colon 2.550) --- cycle(126.2400,237.2900) -arc(269.009 \@@_colon 217.861 \@@_colon 2.590) -arc(222.347 \@@_colon 176.484 \@@_colon 3.320) -arc(182.618 \@@_colon 137.079 \@@_colon 3.000) -arc(136.557 \@@_colon 88.520 \@@_colon 2.660) -arc(92.692 \@@_colon 42.231 \@@_colon 2.540) -arc(40.468 \@@_colon -3.893 \@@_colon 3.250) -arc(4.088 \@@_colon -42.994 \@@_colon 3.120) -arc(322.770 \@@_colon 270.361 \@@_colon 2.380) --- cycle(229.3700,151.4400) -arc(345.890 \@@_colon 351.762 \@@_colon 8.060) -arc(158.989 \@@_colon 149.093 \@@_colon 4.900) -arc(150.912 \@@_colon 144.053 \@@_colon 7.930) -arc(131.171 \@@_colon 124.021 \@@_colon 10.120) -.. controls (232.5000,155.4100) and (233.5700,156.1000) .. (234.6600,156.7900) -.. controls (235.7500,157.4800) and (237.1600,158.2300) .. (238.8100,159.2400) -arc(124.262 \@@_colon 108.263 \@@_colon 6.090) -arc(109.693 \@@_colon 86.274 \@@_colon 4.080) --- (245.9700,160.2800) -arc(93.309 \@@_colon 61.876 \@@_colon 1.890) -arc(55.356 \@@_colon 27.262 \@@_colon 1.810) -arc(21.572 \@@_colon 10.319 \@@_colon 5.940) -arc(9.220 \@@_colon 2.378 \@@_colon 10.780) --- (249.0700,157.0000) --- (248.8600,166.7400) --- (247.8600,166.6800) -.. controls (247.8600,166.4200) and (247.8000,166.0500) .. (247.7500,165.4900) -arc(357.961 \@@_colon 343.276 \@@_colon 4.560) -arc(340.537 \@@_colon 305.229 \@@_colon 1.530) -arc(298.936 \@@_colon 267.141 \@@_colon 1.780) --- (240.9900,163.3800) -.. controls (240.8300,163.3300) and (240.5600,163.3800) .. (240.1400,163.6200) -.. controls (239.7200,163.8600) and (239.2400,163.9900) .. (238.7500,164.2600) -.. controls (237.5800,164.8400) and (236.3400,165.4800) .. (235.0300,166.1500) -.. controls (233.7200,166.8200) and (232.5600,167.4600) .. (231.6000,167.9900) -arc(247.321 \@@_colon 225.506 \@@_colon 4.060) -arc(231.922 \@@_colon 216.609 \@@_colon 4.140) -arc(210.678 \@@_colon 189.397 \@@_colon 2.450) -arc(199.388 \@@_colon 185.529 \@@_colon 3.650) --- (228.0500,171.3400) --- (228.1900,162.4500) --- (229.2600,162.4500) -arc(182.100 \@@_colon 170.028 \@@_colon 10.390) -.. controls (229.5200,165.0100) and (229.6800,165.2200) .. (229.8900,165.2400) -arc(86.205 \@@_colon 60.786 \@@_colon 0.640) -.. controls (230.3100,165.1600) and (230.5300,165.0100) .. (230.7400,164.9200) -.. controls (230.9500,164.8300) and (231.3300,164.6300) .. (231.6200,164.4700) -arc(67.166 \@@_colon 59.704 \@@_colon 8.590) -.. controls (233.5000,163.5200) and (234.4000,163.0900) .. (235.2500,162.6100) -.. controls (236.1000,162.1300) and (237.2500,161.5500) .. (238.6600,160.8000) -.. controls (236.2100,159.2600) and (234.3200,158.0300) .. (232.9100,157.2100) -arc(306.049 \@@_colon 287.460 \@@_colon 8.390) -arc(276.761 \@@_colon 216.841 \@@_colon 0.610) -arc(219.956 \@@_colon 195.406 \@@_colon 1.620) -arc(199.106 \@@_colon 182.802 \@@_colon 3.340) -arc(2.336 \@@_colon 8.720 \@@_colon 8.390) --- (228.2000,158.7000) --- (228.3600,151.4600) --- cycle(233.6800,174.1400) --- (233.6300,175.1400) -arc(256.557 \@@_colon 243.845 \@@_colon 6.000) -.. controls (231.8700,175.8100) and (231.3800,176.0500) .. (230.9700,176.2800) -arc(236.460 \@@_colon 222.981 \@@_colon 6.590) -arc(232.065 \@@_colon 192.357 \@@_colon 1.740) -.. controls (229.1600,178.5700) and (229.0500,178.9400) .. (229.0000,179.3900) -.. controls (228.9500,179.8400) and (228.9500,180.3000) .. (228.9500,180.6700) --- (228.8900,181.5500) --- (245.5200,182.1300) -arc(93.762 \@@_colon 65.628 \@@_colon 1.840) -arc(67.287 \@@_colon 17.508 \@@_colon 1.110) -arc(26.507 \@@_colon 11.932 \@@_colon 4.550) -.. controls (247.5100,179.6400) and (247.5900,179.1900) .. (247.6200,178.9100) --- (248.6200,178.9100) --- (248.2200,188.7300) --- (247.2200,188.6800) -.. controls (247.2200,188.4300) and (247.1600,187.9600) .. (247.1400,187.4200) -arc(0.845 \@@_colon -19.293 \@@_colon 3.390) -arc(344.019 \@@_colon 307.889 \@@_colon 1.440) -arc(300.117 \@@_colon 270.102 \@@_colon 2.000) --- (228.7100,184.6000) --- (228.7100,185.4800) --- (228.7100,186.6000) -.. controls (228.7100,187.0200) and (228.7100,187.4800) .. (228.7100,187.8500) -arc(171.051 \@@_colon 134.957 \@@_colon 1.920) -arc(137.162 \@@_colon 125.352 \@@_colon 7.370) -arc(126.550 \@@_colon 117.461 \@@_colon 10.120) -arc(117.314 \@@_colon 105.322 \@@_colon 6.320) --- (232.9200,192.2400) --- (227.2800,192.0300) --- (228.0000,173.9000) --- cycle(246.8800,198.7700) --- (245.6000,208.0000) --- (244.6000,207.8600) -.. controls (244.6000,207.5400) and (244.6500,207.2000) .. (244.6800,206.6900) -arc(9.363 \@@_colon -9.363 \@@_colon 3.350) -arc(346.040 \@@_colon 315.463 \@@_colon 1.630) -arc(307.234 \@@_colon 275.015 \@@_colon 1.700) --- (228.4500,202.5100) -arc(273.095 \@@_colon 266.905 \@@_colon 7.780) -arc(245.527 \@@_colon 202.836 \@@_colon 1.360) -arc(210.092 \@@_colon 199.313 \@@_colon 5.860) -arc(203.802 \@@_colon 194.349 \@@_colon 6.870) --- (225.0900,205.1500) --- (226.3700,195.9000) --- (227.3700,196.0300) -.. controls (227.3700,196.3000) and (227.3700,196.6700) .. (227.3700,197.0900) -arc(180.338 \@@_colon 171.634 \@@_colon 7.530) -arc(169.146 \@@_colon 129.553 \@@_colon 1.390) -arc(123.032 \@@_colon 90.983 \@@_colon 1.610) --- (243.6800,201.3800) -arc(98.113 \@@_colon 71.134 \@@_colon 1.830) -arc(67.223 \@@_colon 22.777 \@@_colon 1.290) -arc(31.448 \@@_colon 16.009 \@@_colon 3.700) -arc(21.806 \@@_colon 8.787 \@@_colon 5.350) --- cycle(234.5300,212.5500) -arc(241.231 \@@_colon 265.783 \@@_colon 4.390) -arc(265.421 \@@_colon 286.567 \@@_colon 5.480) -arc(281.977 \@@_colon 334.946 \@@_colon 5.570) -arc(-25.691 \@@_colon 16.057 \@@_colon 7.520) -arc(15.765 \@@_colon 30.041 \@@_colon 11.270) -arc(31.595 \@@_colon 47.450 \@@_colon 9.400) --- (240.8000,226.1200) --- (240.5000,227.2900) --- (233.5900,225.6700) --- (233.9100,224.5200) -arc(89.856 \@@_colon 78.269 \@@_colon 12.450) -arc(81.196 \@@_colon 64.418 \@@_colon 8.000) -arc(61.178 \@@_colon 42.849 \@@_colon 7.090) -arc(39.992 \@@_colon 13.558 \@@_colon 5.340) -arc(15.233 \@@_colon -3.554 \@@_colon 5.420) -arc(358.333 \@@_colon 326.332 \@@_colon 2.570) -arc(330.020 \@@_colon 307.934 \@@_colon 3.460) -arc(299.552 \@@_colon 286.652 \@@_colon 6.920) -arc(282.413 \@@_colon 252.874 \@@_colon 4.770) -arc(249.144 \@@_colon 214.541 \@@_colon 4.490) -.. controls (234.0100,217.5900) and (233.5600,218.2000) .. (233.0600,218.9500) -.. controls (232.5600,219.7000) and (232.0600,220.2700) .. (231.6700,220.8100) -arc(37.724 \@@_colon 66.911 \@@_colon 6.720) -arc(69.041 \@@_colon 106.656 \@@_colon 5.370) -arc(106.200 \@@_colon 129.647 \@@_colon 5.570) -arc(130.122 \@@_colon 153.905 \@@_colon 5.480) -arc(152.291 \@@_colon 174.454 \@@_colon 6.000) -arc(173.966 \@@_colon 194.832 \@@_colon 6.840) -arc(193.811 \@@_colon 214.383 \@@_colon 7.270) -arc(214.091 \@@_colon 230.624 \@@_colon 8.000) --- (223.4200,210.5400) --- (223.6900,209.3700) --- (230.4200,211.0200) --- (230.1300,212.1900) -.. controls (229.3300,212.1900) and (228.5300,212.1900) .. (227.7600,212.2900) -arc(264.112 \@@_colon 249.319 \@@_colon 8.620) -arc(247.206 \@@_colon 223.720 \@@_colon 5.070) -arc(221.334 \@@_colon 194.513 \@@_colon 4.880) -arc(194.474 \@@_colon 153.745 \@@_colon 3.640) -arc(151.823 \@@_colon 106.388 \@@_colon 3.120) -arc(106.424 \@@_colon 71.127 \@@_colon 3.860) -arc(67.879 \@@_colon 38.975 \@@_colon 4.640) -.. controls (229.6700,217.9600) and (230.1700,217.3500) .. (230.5500,216.7400) -.. controls (230.9300,216.1300) and (231.4000,215.5700) .. (231.8300,215.0100) -arc(217.013 \@@_colon 226.103 \@@_colon 11.890) -arc(225.510 \@@_colon 242.670 \@@_colon 6.000) --- cycle(239.8800,230.2900) --- (237.2200,235.1300) -.. controls (234.9100,235.3500) and (232.8800,235.5300) .. (231.2200,235.7700) -.. controls (229.5600,236.0100) and (227.7100,236.2000) .. (225.8500,236.5200) --- (224.8500,238.3800) --- (230.6200,241.5200) -arc(118.202 \@@_colon 99.475 \@@_colon 2.760) -arc(91.472 \@@_colon 48.562 \@@_colon 1.280) -arc(44.710 \@@_colon 34.289 \@@_colon 5.280) -arc(39.020 \@@_colon 24.577 \@@_colon 4.680) --- (234.5100,240.2500) --- (230.2200,248.0000) --- (229.3200,247.4900) -.. controls (229.4300,247.2800) and (229.5300,246.9600) .. (229.7200,246.4900) -arc(26.241 \@@_colon 7.775 \@@_colon 2.770) -arc(7.707 \@@_colon -33.494 \@@_colon 1.210) -arc(323.004 \@@_colon 302.625 \@@_colon 2.620) --- (215.8600,237.0000) -arc(292.886 \@@_colon 281.974 \@@_colon 4.740) -arc(277.509 \@@_colon 227.247 \@@_colon 1.050) -.. controls (213.9400,237.2100) and (213.7300,237.4800) .. (213.4900,237.7700) -arc(225.495 \@@_colon 209.156 \@@_colon 3.540) --- (211.9500,238.1100) --- (216.5500,229.6300) -arc(205.886 \@@_colon 223.712 \@@_colon 7.860) -arc(220.524 \@@_colon 239.612 \@@_colon 7.000) -arc(241.958 \@@_colon 269.050 \@@_colon 4.520) -arc(270.067 \@@_colon 300.530 \@@_colon 4.400) -arc(297.861 \@@_colon 319.458 \@@_colon 5.810) -arc(318.536 \@@_colon 345.669 \@@_colon 4.100) -arc(-14.552 \@@_colon 1.478 \@@_colon 6.930) -arc(4.876 \@@_colon 12.291 \@@_colon 16.580) -.. controls (228.2000,233.0800) and (229.6400,232.8700) .. (230.7600,232.7400) -.. controls (231.8800,232.6100) and (233.2500,232.3700) .. (234.9100,232.1500) -arc(83.275 \@@_colon 71.740 \@@_colon 8.510) -arc(66.949 \@@_colon 54.586 \@@_colon 5.800) -arc(52.137 \@@_colon 40.202 \@@_colon 5.000) -.. controls (238.6500,230.1600) and (238.8100,229.8900) .. (238.9500,229.7100) --- cycle(222.5900,229.6500) -arc(302.048 \@@_colon 254.819 \@@_colon 4.000) -arc(250.570 \@@_colon 204.692 \@@_colon 4.150) --- (215.8100,233.5600) --- (223.6800,237.7700) --- (224.5800,236.0900) -arc(30.190 \@@_colon -14.875 \@@_colon 4.700) -arc(342.514 \@@_colon 296.053 \@@_colon 4.800) --- cycle(222.6400,249.6600) --- (227.0800,253.8600) --- (216.0000,267.1100) --- (215.2000,266.4700) -.. controls (215.3900,266.2300) and (215.6000,265.8900) .. (215.9000,265.4700) -arc(33.127 \@@_colon 16.423 \@@_colon 3.450) -arc(19.139 \@@_colon -19.139 \@@_colon 1.220) -arc(334.642 \@@_colon 305.905 \@@_colon 1.860) --- (204.2700,253.4400) -arc(312.365 \@@_colon 281.934 \@@_colon 1.670) -arc(284.518 \@@_colon 241.391 \@@_colon 1.220) -arc(241.616 \@@_colon 233.927 \@@_colon 8.110) -.. controls (201.3100,254.0300) and (201.0500,254.2700) .. (200.8300,254.4500) --- (200.0600,253.8400) --- (210.3600,241.4400) --- (214.1900,244.6700) --- (213.5000,245.5100) -arc(294.302 \@@_colon 268.656 \@@_colon 6.000) -arc(277.200 \@@_colon 236.403 \@@_colon 3.330) -.. controls (208.3900,245.7300) and (208.1700,245.9900) .. (207.8600,246.2600) -.. controls (207.5500,246.5300) and (207.2700,246.9500) .. (206.8600,247.3500) --- (204.8600,249.8800) --- (211.1400,255.1400) --- (212.6800,253.3600) -arc(41.003 \@@_colon 25.220 \@@_colon 6.000) -arc(16.559 \@@_colon -16.559 \@@_colon 2.000) -arc(348.800 \@@_colon 323.541 \@@_colon 3.000) -arc(327.247 \@@_colon 320.200 \@@_colon 11.000) --- (212.9500,247.7200) --- (219.1700,252.9400) --- (218.5000,253.7300) -arc(299.599 \@@_colon 292.508 \@@_colon 12.150) -arc(294.683 \@@_colon 277.085 \@@_colon 4.180) -arc(272.493 \@@_colon 235.493 \@@_colon 2.000) -arc(237.805 \@@_colon 213.750 \@@_colon 3.750) --- (212.0400,255.9200) --- (216.8800,259.9200) -arc(133.440 \@@_colon 117.182 \@@_colon 5.200) -arc(115.811 \@@_colon 82.370 \@@_colon 1.760) -arc(68.899 \@@_colon 47.416 \@@_colon 3.000) -.. controls (220.3000,260.0500) and (220.7200,259.5400) .. (221.2800,258.9100) -.. controls (221.4400,258.6600) and (221.7400,258.4000) .. (222.0600,257.9100) -arc(46.910 \@@_colon 31.105 \@@_colon 4.680) -arc(36.182 \@@_colon 22.019 \@@_colon 4.920) -arc(33.260 \@@_colon -8.344 \@@_colon 1.240) -arc(354.929 \@@_colon 332.938 \@@_colon 6.820) -arc(336.566 \@@_colon 330.304 \@@_colon 20.470) --- cycle(199.4200,256.4200) -arc(224.131 \@@_colon 217.579 \@@_colon 8.560) -arc(214.867 \@@_colon 196.161 \@@_colon 3.000) -arc(204.597 \@@_colon 170.041 \@@_colon 1.850) -.. controls (198.2700,259.4700) and (198.3600,259.9300) .. (198.4600,260.3800) -.. controls (198.9400,262.0300) and (199.6800,264.5300) .. (200.7000,267.8800) -.. controls (201.7200,271.2300) and (202.8200,274.7700) .. (203.9400,278.4400) --- (203.0100,279.1900) -.. controls (199.5500,277.1400) and (196.2300,275.1900) .. (193.0100,273.1900) -.. controls (189.7900,271.1900) and (187.6100,270.0000) .. (186.4700,269.3100) -arc(297.585 \@@_colon 285.793 \@@_colon 4.610) -arc(273.583 \@@_colon 266.417 \@@_colon 8.000) -arc(261.351 \@@_colon 246.271 \@@_colon 3.690) -.. controls (183.3700,269.3600) and (183.1000,269.5200) .. (182.8600,269.6200) --- (182.1900,268.8300) --- (188.9000,263.4800) --- (189.5900,264.2800) -arc(229.257 \@@_colon 220.743 \@@_colon 12.670) -.. controls (187.9400,266.0100) and (187.8800,266.3000) .. (188.0500,266.5100) -arc(153.676 \@@_colon 118.486 \@@_colon 0.620) -arc(133.395 \@@_colon 120.345 \@@_colon 1.760) -.. controls (189.4800,267.5500) and (190.9200,268.3500) .. (192.9100,269.5500) -.. controls (194.9000,270.7500) and (197.7300,272.4400) .. (201.4000,274.6000) -.. controls (200.8100,272.7400) and (200.1800,270.5300) .. (199.4000,268.0000) -.. controls (198.6200,265.4700) and (198.0500,263.7700) .. (197.7300,262.8400) -arc(344.163 \@@_colon 332.799 \@@_colon 9.500) -.. controls (196.8500,260.7700) and (196.6900,260.5300) .. (196.5900,260.3400) -arc(322.453 \@@_colon 259.869 \@@_colon 0.640) -arc(269.604 \@@_colon 245.195 \@@_colon 2.060) -arc(247.883 \@@_colon 238.505 \@@_colon 6.510) -.. controls (193.9000,260.9300) and (193.6300,261.0900) .. (193.3700,261.2700) --- (192.6800,260.4500) --- (198.7400,255.6300) --- cycle(189.2300,289.0600) --- (180.8200,293.1500) --- (180.3700,292.2200) -.. controls (180.6100,292.1100) and (180.9300,291.8800) .. (181.3700,291.6600) -arc(60.196 \@@_colon 45.848 \@@_colon 4.260) -arc(42.154 \@@_colon 9.853 \@@_colon 1.640) -arc(5.625 \@@_colon -28.746 \@@_colon 1.520) --- (175.7800,275.8100) -arc(342.748 \@@_colon 313.104 \@@_colon 1.730) -arc(295.909 \@@_colon 262.271 \@@_colon 1.750) -.. controls (173.9900,274.9000) and (173.6200,275.0100) .. (173.1900,275.0600) -arc(254.927 \@@_colon 248.528 \@@_colon 10.000) --- (171.6500,274.4800) --- (180.0800,270.3800) --- (180.5400,271.3100) -.. controls (180.2700,271.4500) and (179.9800,271.6600) .. (179.6000,271.8700) -arc(239.952 \@@_colon 221.469 \@@_colon 3.540) -arc(228.278 \@@_colon 182.750 \@@_colon 1.260) -arc(174.968 \@@_colon 156.303 \@@_colon 2.610) --- (185.1100,287.8000) -arc(159.207 \@@_colon 119.029 \@@_colon 1.290) -arc(125.695 \@@_colon 80.294 \@@_colon 1.210) -arc(87.356 \@@_colon 68.924 \@@_colon 3.190) -.. controls (188.0300,288.3600) and (188.4200,288.2300) .. (188.7200,288.1200) --- cycle(168.4300,277.0000) -arc(238.035 \@@_colon 228.225 \@@_colon 7.310) -arc(234.410 \@@_colon 219.745 \@@_colon 5.350) -arc(205.455 \@@_colon 158.338 \@@_colon 1.890) -arc(167.379 \@@_colon 155.065 \@@_colon 12.310) --- (173.3200,296.6300) --- (172.1300,297.1900) --- (153.8200,286.6300) --- (158.1100,296.4500) -arc(159.939 \@@_colon 143.573 \@@_colon 9.650) -arc(150.157 \@@_colon 110.884 \@@_colon 2.290) -arc(106.287 \@@_colon 73.713 \@@_colon 2.710) -arc(84.883 \@@_colon 74.075 \@@_colon 7.560) --- (163.9300,300.5600) --- (156.0800,304.0000) --- (155.6600,303.0000) -arc(60.297 \@@_colon 48.248 \@@_colon 6.690) -arc(52.896 \@@_colon 39.091 \@@_colon 5.090) -arc(24.558 \@@_colon -14.450 \@@_colon 2.210) -arc(345.738 \@@_colon 335.625 \@@_colon 16.290) --- (152.7600,287.7800) -arc(334.714 \@@_colon 319.309 \@@_colon 5.070) -arc(317.321 \@@_colon 291.891 \@@_colon 2.760) -arc(286.558 \@@_colon 266.987 \@@_colon 4.740) -arc(268.439 \@@_colon 249.087 \@@_colon 4.580) --- (147.5100,285.0600) --- (152.9400,282.6900) --- (169.9400,292.5400) --- (166.0000,283.5000) -arc(337.388 \@@_colon 326.204 \@@_colon 14.440) -arc(330.647 \@@_colon 285.447 \@@_colon 1.900) -arc(283.558 \@@_colon 256.442 \@@_colon 3.050) -arc(260.853 \@@_colon 252.032 \@@_colon 9.430) --- (160.2800,279.4600) --- (168.0200,276.1300) --- cycle(144.3000,287.5700) -arc(267.905 \@@_colon 254.602 \@@_colon 5.110) -arc(260.808 \@@_colon 241.005 \@@_colon 4.000) -arc(228.372 \@@_colon 182.147 \@@_colon 2.000) -arc(189.981 \@@_colon 179.435 \@@_colon 13.920) --- (140.9500,301.1700) -arc(-1.402 \@@_colon 28.394 \@@_colon 6.000) -arc(29.125 \@@_colon 54.042 \@@_colon 6.600) -arc(54.338 \@@_colon 76.916 \@@_colon 6.870) -arc(72.156 \@@_colon 90.212 \@@_colon 7.900) -arc(88.876 \@@_colon 108.591 \@@_colon 9.810) -arc(107.359 \@@_colon 129.242 \@@_colon 7.390) -arc(128.888 \@@_colon 157.085 \@@_colon 4.910) -arc(152.785 \@@_colon 180.591 \@@_colon 4.790) --- (125.6800,289.5900) -arc(2.798 \@@_colon -22.742 \@@_colon 2.090) -arc(331.896 \@@_colon 291.061 \@@_colon 1.320) -arc(303.531 \@@_colon 279.860 \@@_colon 2.440) -arc(282.924 \@@_colon 272.824 \@@_colon 5.390) --- (122.9600,286.5000) --- (131.5900,286.5000) --- (131.5900,287.5700) -arc(269.845 \@@_colon 258.733 \@@_colon 5.190) -arc(257.961 \@@_colon 252.176 \@@_colon 9.230) -arc(260.233 \@@_colon 199.988 \@@_colon 0.870) -arc(201.882 \@@_colon 178.526 \@@_colon 2.510) --- (128.8400,300.9100) -arc(180.141 \@@_colon 167.979 \@@_colon 8.210) -arc(166.732 \@@_colon 148.075 \@@_colon 5.780) -arc(142.813 \@@_colon 115.127 \@@_colon 4.220) -arc(115.782 \@@_colon 87.738 \@@_colon 5.670) -arc(90.991 \@@_colon 65.658 \@@_colon 6.310) -arc(67.500 \@@_colon 37.689 \@@_colon 4.160) -arc(36.911 \@@_colon 18.381 \@@_colon 5.890) -arc(14.427 \@@_colon 1.369 \@@_colon 7.680) --- (139.5300,292.4000) -arc(0.281 \@@_colon -10.516 \@@_colon 14.300) -arc(349.548 \@@_colon 318.678 \@@_colon 2.840) -arc(300.415 \@@_colon 284.304 \@@_colon 5.440) -arc(282.622 \@@_colon 274.561 \@@_colon 10.000) --- (135.8300,286.5000) --- (144.3200,286.5000) --- cycle(92.1600,284.1900) -.. controls (91.9500,284.0800) and (91.6200,283.9500) .. (91.3100,283.7600) -arc(294.456 \@@_colon 283.519 \@@_colon 5.160) -arc(273.700 \@@_colon 242.713 \@@_colon 1.740) -arc(235.654 \@@_colon 211.800 \@@_colon 2.310) --- (87.9000,285.6500) -.. controls (87.2600,286.6500) and (86.7900,287.2700) .. (86.6000,287.6500) -arc(215.326 \@@_colon 205.606 \@@_colon 5.820) -arc(98.042 \@@_colon 110.031 \@@_colon 19.740) -arc(111.054 \@@_colon 121.942 \@@_colon 20.080) -arc(126.474 \@@_colon 147.035 \@@_colon 11.000) -arc(145.152 \@@_colon 169.196 \@@_colon 9.220) -arc(169.382 \@@_colon 192.870 \@@_colon 10.000) -arc(190.967 \@@_colon 216.161 \@@_colon 10.380) -arc(212.803 \@@_colon 235.180 \@@_colon 11.390) -arc(235.264 \@@_colon 257.035 \@@_colon 11.000) -arc(258.333 \@@_colon 281.667 \@@_colon 9.890) -arc(282.028 \@@_colon 320.035 \@@_colon 11.110) -arc(323.164 \@@_colon 332.141 \@@_colon 15.880) --- (95.8000,271.6500) --- (96.8000,272.3400) --- (92.8000,278.4300) --- (91.8500,277.7400) -arc(18.722 \@@_colon 11.051 \@@_colon 18.330) -arc(14.458 \@@_colon -4.539 \@@_colon 7.360) -arc(356.534 \@@_colon 331.229 \@@_colon 5.180) -arc(329.869 \@@_colon 304.661 \@@_colon 5.740) -arc(303.067 \@@_colon 277.718 \@@_colon 6.540) -arc(276.651 \@@_colon 248.555 \@@_colon 5.920) -arc(251.009 \@@_colon 225.914 \@@_colon 7.480) -arc(229.283 \@@_colon 214.902 \@@_colon 16.150) -arc(213.657 \@@_colon 199.201 \@@_colon 15.000) -arc(199.028 \@@_colon 180.234 \@@_colon 10.250) -arc(179.658 \@@_colon 123.152 \@@_colon 6.400) -arc(127.075 \@@_colon 102.209 \@@_colon 5.570) -arc(107.485 \@@_colon 83.268 \@@_colon 4.070) -arc(44.992 \@@_colon 34.619 \@@_colon 8.640) -.. controls (85.1700,284.5400) and (85.4300,284.1600) .. (85.6200,283.9000) --- (86.2300,282.9000) -arc(40.449 \@@_colon 10.833 \@@_colon 2.170) -arc(21.331 \@@_colon -39.512 \@@_colon 1.000) -arc(325.817 \@@_colon 311.487 \@@_colon 5.340) -arc(312.990 \@@_colon 304.329 \@@_colon 8.480) --- (85.2500,278.1500) --- (92.8300,283.2800) --- cycle(80.4000,262.8000) -arc(308.934 \@@_colon 299.438 \@@_colon 7.740) -arc(299.010 \@@_colon 283.943 \@@_colon 5.000) -arc(271.741 \@@_colon 230.703 \@@_colon 2.260) -arc(230.808 \@@_colon 222.272 \@@_colon 17.680) --- (64.1700,274.9200) --- (63.2700,274.0400) --- (65.8800,253.0400) --- (58.4800,260.7800) -arc(224.358 \@@_colon 212.139 \@@_colon 13.280) -arc(212.536 \@@_colon 180.286 \@@_colon 2.740) -arc(171.805 \@@_colon 142.783 \@@_colon 3.050) -arc(151.398 \@@_colon 139.876 \@@_colon 7.060) --- (56.9900,267.7800) --- (50.7900,261.8800) --- (51.5400,261.1600) -arc(129.423 \@@_colon 112.947 \@@_colon 4.650) -arc(123.850 \@@_colon 103.255 \@@_colon 3.570) -arc(92.245 \@@_colon 49.397 \@@_colon 2.000) -arc(53.974 \@@_colon 41.809 \@@_colon 13.230) --- (64.4400,252.5800) -arc(40.898 \@@_colon 26.008 \@@_colon 5.180) -arc(26.077 \@@_colon -1.954 \@@_colon 2.470) -arc(355.396 \@@_colon 332.333 \@@_colon 4.140) -arc(336.404 \@@_colon 321.542 \@@_colon 6.000) --- (64.8600,246.6200) --- (69.1800,250.7500) --- (66.7300,270.2700) --- (73.5400,263.1400) -arc(43.846 \@@_colon 33.985 \@@_colon 16.300) -arc(30.307 \@@_colon 2.213 \@@_colon 3.090) -arc(338.802 \@@_colon 328.775 \@@_colon 8.290) -arc(329.764 \@@_colon 323.520 \@@_colon 13.190) --- (74.9800,256.2800) --- (81.0900,262.1000) --- cycle(44.6800,255.4300) --- (39.0000,248.0000) --- (39.8000,247.3600) -arc(314.465 \@@_colon 323.163 \@@_colon 7.710) -.. controls (40.9200,248.5900) and (41.1800,248.8500) .. (41.3400,248.9800) -arc(118.238 \@@_colon 90.784 \@@_colon 1.850) -arc(77.660 \@@_colon 55.294 \@@_colon 2.390) --- (55.0400,239.6700) -arc(56.962 \@@_colon 31.219 \@@_colon 2.000) -arc(18.461 \@@_colon -18.461 \@@_colon 1.500) -arc(341.790 \@@_colon 335.152 \@@_colon 10.120) -.. controls (55.0400,236.5900) and (54.8800,236.3000) .. (54.7200,235.9900) --- (55.5500,235.3500) --- (61.2100,242.7700) --- (60.3700,243.4100) -arc(322.013 \@@_colon 311.042 \@@_colon 5.550) -arc(318.146 \@@_colon 303.382 \@@_colon 4.470) -arc(309.285 \@@_colon 261.226 \@@_colon 1.120) -arc(257.503 \@@_colon 232.770 \@@_colon 2.110) --- (45.1000,251.2300) -arc(235.809 \@@_colon 204.819 \@@_colon 1.620) -arc(197.209 \@@_colon 162.791 \@@_colon 1.690) -.. controls (44.6200,253.0500) and (44.7800,253.4200) .. (44.9600,253.7900) -arc(154.335 \@@_colon 144.583 \@@_colon 6.830) --- cycle(52.0000,231.6500) -.. controls (51.8400,231.4100) and (51.6300,231.1200) .. (51.3900,230.8200) -.. controls (51.1500,230.5200) and (50.8800,230.2900) .. (50.6700,230.0800) -arc(317.375 \@@_colon 260.302 \@@_colon 0.940) -arc(265.608 \@@_colon 236.715 \@@_colon 1.800) --- (38.2700,236.2000) -arc(59.962 \@@_colon 83.513 \@@_colon 5.160) -arc(79.242 \@@_colon 100.758 \@@_colon 6.000) -arc(102.178 \@@_colon 123.232 \@@_colon 7.090) -arc(127.906 \@@_colon 150.450 \@@_colon 7.200) -arc(147.202 \@@_colon 191.006 \@@_colon 5.460) -arc(192.953 \@@_colon 243.725 \@@_colon 4.550) -arc(239.365 \@@_colon 270.451 \@@_colon 3.440) -arc(276.660 \@@_colon 332.895 \@@_colon 1.860) -arc(-29.631 \@@_colon 13.037 \@@_colon 2.000) -arc(9.646 \@@_colon 61.335 \@@_colon 1.620) -arc(62.189 \@@_colon 80.211 \@@_colon 3.170) -arc(82.171 \@@_colon 91.470 \@@_colon 5.560) -arc(272.950 \@@_colon 267.050 \@@_colon 9.230) -arc(275.098 \@@_colon 264.902 \@@_colon 5.120) -arc(205.275 \@@_colon 178.548 \@@_colon 2.830) -arc(176.280 \@@_colon 148.505 \@@_colon 3.650) -arc(148.148 \@@_colon 112.918 \@@_colon 3.000) -arc(115.231 \@@_colon 81.421 \@@_colon 2.850) -arc(82.768 \@@_colon 65.993 \@@_colon 6.620) -.. controls (36.1900,233.6800) and (36.9400,233.3600) .. (37.7100,232.9100) --- (47.2600,227.4000) -arc(55.955 \@@_colon 44.787 \@@_colon 4.270) -arc(29.947 \@@_colon -4.499 \@@_colon 1.610) -arc(352.704 \@@_colon 341.729 \@@_colon 6.380) -.. controls (47.6800,224.3200) and (47.5200,224.0000) .. (47.3900,223.7000) --- (48.3200,223.2000) --- (52.8700,231.1300) --- cycle(45.5000,219.4400) -arc(344.885 \@@_colon 331.512 \@@_colon 5.550) -arc(332.245 \@@_colon 319.383 \@@_colon 5.720) -arc(304.796 \@@_colon 264.324 \@@_colon 2.300) -arc(266.280 \@@_colon 256.294 \@@_colon 15.170) --- (25.2800,220.4500) --- (25.0000,219.2200) --- (38.9100,203.2200) --- (28.4300,205.5100) -arc(259.874 \@@_colon 245.220 \@@_colon 10.850) -arc(245.902 \@@_colon 215.417 \@@_colon 3.000) -arc(204.403 \@@_colon 176.412 \@@_colon 3.090) -arc(186.861 \@@_colon 173.139 \@@_colon 5.860) --- (23.3000,210.4800) --- (21.4300,202.1500) --- (22.4300,201.9200) -.. controls (22.5400,202.1800) and (22.7500,202.5800) .. (23.0500,203.1600) -arc(157.658 \@@_colon 133.131 \@@_colon 2.860) -arc(130.443 \@@_colon 84.893 \@@_colon 1.830) -arc(87.836 \@@_colon 75.180 \@@_colon 13.210) --- (38.0000,202.0000) -arc(77.543 \@@_colon 60.675 \@@_colon 4.780) -arc(55.423 \@@_colon 33.899 \@@_colon 3.200) -arc(29.831 \@@_colon 8.131 \@@_colon 4.410) -arc(5.451 \@@_colon -5.451 \@@_colon 8.000) --- (41.6900,197.3500) --- (43.0000,203.1300) --- (30.0000,218.0000) --- (39.6300,215.8200) -arc(80.287 \@@_colon 65.657 \@@_colon 11.130) -arc(72.821 \@@_colon 27.769 \@@_colon 1.900) -arc(17.356 \@@_colon 2.099 \@@_colon 5.350) -arc(6.217 \@@_colon -6.217 \@@_colon 6.510) --- (44.7000,210.9800) --- (46.5400,219.2500) --- cycle(20.8100,197.7000) --- (19.9100,189.1400) --- (20.9100,189.0300) -arc(171.031 \@@_colon 158.303 \@@_colon 8.700) -.. controls (21.5800,191.3700) and (21.7900,191.5900) .. (22.0600,191.5900) -arc(84.032 \@@_colon 62.959 \@@_colon 0.770) -arc(78.517 \@@_colon 54.224 \@@_colon 0.830) --- (27.1100,189.2200) --- (26.4300,182.0000) -arc(288.255 \@@_colon 280.987 \@@_colon 15.000) -arc(285.824 \@@_colon 279.233 \@@_colon 12.830) -.. controls (22.6800,181.0900) and (22.3600,181.0900) .. (22.0900,181.0400) --- (21.4500,181.0400) -.. controls (21.0500,181.0900) and (20.8100,181.3900) .. (20.6300,182.0400) -arc(191.443 \@@_colon 177.397 \@@_colon 8.490) --- (19.4700,184.2200) --- (18.6700,176.4000) --- (19.6700,176.3500) -arc(168.919 \@@_colon 161.933 \@@_colon 8.480) -arc(160.471 \@@_colon 137.601 \@@_colon 2.500) -arc(145.826 \@@_colon 122.857 \@@_colon 3.090) -arc(118.655 \@@_colon 105.736 \@@_colon 6.000) -.. controls (25.2800,180.3400) and (28.3200,181.1300) .. (31.6700,182.1200) -.. controls (35.0200,183.1100) and (38.0000,183.8400) .. (40.6700,184.5900) --- (40.7800,185.7300) --- (23.6200,194.4600) -arc(249.284 \@@_colon 225.774 \@@_colon 2.560) -arc(222.779 \@@_colon 187.717 \@@_colon 3.230) -arc(191.598 \@@_colon 178.341 \@@_colon 4.000) --- cycle(28.3700,188.5500) --- (36.1100,184.6200) --- (27.7800,182.3300) --- cycle(38.8500,174.0000) -arc(353.071 \@@_colon 343.978 \@@_colon 8.560) -arc(349.294 \@@_colon 327.624 \@@_colon 3.260) -arc(322.861 \@@_colon 273.157 \@@_colon 1.900) -arc(278.127 \@@_colon 269.764 \@@_colon 17.940) --- (18.8700,170.6000) --- (18.8700,169.2900) --- (35.8700,156.7400) --- (25.1500,156.7400) -arc(272.052 \@@_colon 259.182 \@@_colon 12.260) -arc(263.759 \@@_colon 221.474 \@@_colon 2.170) -arc(216.677 \@@_colon 188.916 \@@_colon 3.120) -arc(199.658 \@@_colon 186.823 \@@_colon 6.250) --- (19.1200,160.4100) --- (19.1200,151.9200) --- (20.1200,151.9200) -arc(170.888 \@@_colon 161.658 \@@_colon 8.380) -arc(168.785 \@@_colon 150.857 \@@_colon 4.000) -arc(141.501 \@@_colon 97.482 \@@_colon 1.870) -arc(100.583 \@@_colon 88.783 \@@_colon 14.300) --- (35.2300,155.3300) -arc(88.291 \@@_colon 68.758 \@@_colon 4.000) -arc(74.534 \@@_colon 45.628 \@@_colon 2.450) -arc(38.126 \@@_colon 21.792 \@@_colon 5.850) -arc(22.723 \@@_colon 7.331 \@@_colon 5.760) --- (39.8500,151.5200) --- (39.8500,157.5200) --- (24.0000,169.1400) --- (33.9000,169.1400) -arc(92.789 \@@_colon 78.226 \@@_colon 11.080) -arc(85.891 \@@_colon 38.193 \@@_colon 1.820) -arc(32.998 \@@_colon 11.363 \@@_colon 3.740) -.. controls (38.6900,166.2900) and (38.8000,165.8100) .. (38.8500,165.5200) --- (39.8500,165.5200) --- (39.8500,174.0000) --- cycle(140.5200,89.7600) -.. controls (137.3300,85.6000) and (147.5200,86.0300) .. (148.8200,83.8800) -arc(293.078 \@@_colon 274.740 \@@_colon 17.100) -arc(278.470 \@@_colon 271.074 \@@_colon 44.730) -.. controls (137.9100,84.9700) and (139.1900,89.8600) .. (136.1100,90.7400) -.. controls (133.9200,91.3000) and (127.2200,90.7400) .. (126.9000,89.1400) -.. controls (126.2400,85.6000) and (132.0100,87.9200) .. (134.6200,87.5700) -.. controls (135.3100,86.0300) and (134.7000,83.4500) .. (134.1900,82.0900) -.. controls (129.0600,81.6700) and (124.1900,82.6500) .. (119.8800,83.5800) -.. controls (121.1500,85.5800) and (124.8800,85.0700) .. (125.1700,87.0200) -.. controls (125.8900,91.3000) and (118.5000,86.9600) .. (117.4300,86.2700) -arc(119.506 \@@_colon 144.340 \@@_colon 30.940) -.. controls (106.3900,75.8700) and (104.0800,72.9400) .. (104.2400,71.3800) -.. controls (104.4000,69.8200) and (107.7700,68.9600) .. (109.9800,68.3800) -.. controls (122.8900,64.9000) and (137.7600,63.5700) .. (152.1200,66.5000) -arc(283.113 \@@_colon 289.435 \@@_colon 60.830) -.. controls (160.4500,68.9700) and (163.9600,69.7400) .. (164.2000,71.1000) -.. controls (164.4900,72.8800) and (161.2000,77.1000) .. (160.4500,78.1000) -arc(35.592 \@@_colon 66.803 \@@_colon 28.000) -.. controls (146.3200,88.6400) and (143.6100,89.8300) .. (140.5200,89.7600) --- cycle(108.2300,72.3900) -arc(150.865 \@@_colon 127.525 \@@_colon 29.390) -arc(250.013 \@@_colon 261.236 \@@_colon 35.630) -.. controls (121.7500,78.7500) and (120.5900,78.2200) .. (119.2900,77.2100) -.. controls (118.2900,76.4900) and (116.4800,75.4300) .. (116.5600,73.9400) -.. controls (116.6400,72.4500) and (120.0400,71.5700) .. (122.3000,71.0700) -arc(258.413 \@@_colon 282.074 \@@_colon 57.410) -.. controls (148.0800,71.7100) and (151.8400,72.2900) .. (151.8400,74.0700) -.. controls (151.8400,75.0700) and (150.1300,76.5500) .. (149.2300,77.2100) -.. controls (148.0000,78.2100) and (146.6200,78.3300) .. (145.8200,79.6600) -arc(276.838 \@@_colon 291.470 \@@_colon 27.780) -arc(54.790 \@@_colon 24.445 \@@_colon 22.320) -.. controls (146.4800,66.6700) and (122.0900,67.0600) .. (108.2300,72.3900) --- cycle(121.7400,74.8600) -.. controls (127.3300,79.7300) and (140.9500,79.7300) .. (146.5300,74.8600) -.. controls (139.8800,72.6800) and (128.3700,72.6800) .. (121.7400,74.8600) --- cycle(162.3100,49.0000) -.. controls (163.1900,48.8700) and (163.4500,47.8500) .. (164.6200,48.0000) -.. controls (166.4300,48.1400) and (166.8600,53.0000) .. (167.0700,55.4500) -.. controls (167.3900,59.7100) and (167.0700,71.1500) .. (162.7600,67.3500) -arc(172.737 \@@_colon 201.513 \@@_colon 4.380) -.. controls (161.0300,63.9900) and (156.9600,63.0900) .. (153.4300,62.7400) -.. controls (151.6400,62.6100) and (149.1400,62.8500) .. (149.8300,60.4500) -.. controls (150.3900,58.5400) and (154.8900,59.7600) .. (156.7200,60.0000) -arc(279.645 \@@_colon 287.102 \@@_colon 53.190) -.. controls (163.9300,61.2200) and (163.6700,60.1300) .. (163.9000,59.4400) -.. controls (162.2300,58.1900) and (156.5600,56.7000) .. (152.9000,56.4400) -.. controls (151.1000,56.3100) and (149.2900,56.5200) .. (149.2900,54.7100) -.. controls (149.2900,53.8900) and (149.9300,53.6500) .. (150.4600,53.1200) -arc(271.003 \@@_colon 289.790 \@@_colon 41.080) -.. controls (164.7200,51.9200) and (159.9800,51.4700) .. (157.3200,50.8000) -arc(280.989 \@@_colon 274.301 \@@_colon 64.440) -arc(122.344 \@@_colon 264.647 \@@_colon 1.630) -arc(271.604 \@@_colon 289.659 \@@_colon 38.000) --- cycle(236.0000,81.3000) -.. controls (234.6100,80.3900) and (232.8000,81.6700) .. (231.3600,81.9900) -.. controls (229.6300,82.4100) and (228.0900,82.3800) .. (227.3600,83.8800) -.. controls (227.0400,84.5700) and (227.2000,85.3400) .. (226.9400,86.0000) -.. controls (225.7700,88.8000) and (223.0500,89.5100) .. (220.9400,91.3000) -.. controls (219.5100,91.5700) and (217.8100,91.0000) .. (216.0800,91.3000) -.. controls (214.9100,91.5100) and (214.3500,92.3000) .. (212.4900,91.8900) -.. controls (209.8300,91.4000) and (206.1800,89.6500) .. (205.5900,88.1600) -.. controls (204.4500,85.2900) and (207.5900,84.8100) .. (209.4800,84.0100) -.. controls (209.9900,81.1400) and (207.9100,81.5900) .. (205.4800,81.3000) -.. controls (204.3100,81.1400) and (202.9500,80.6800) .. (202.3100,80.8400) -.. controls (201.6700,81.0000) and (199.9200,83.2400) .. (199.3100,84.5900) -.. controls (198.9900,85.2900) and (199.0400,86.2400) .. (198.7300,86.8800) -arc(34.837 \@@_colon 85.941 \@@_colon 8.000) -.. controls (190.3600,90.2100) and (189.9600,88.1000) .. (187.2700,87.7600) -.. controls (186.6600,86.5600) and (186.4500,84.8600) .. (187.2700,84.1400) -.. controls (187.9300,83.5800) and (189.7500,83.8800) .. (190.5700,83.2600) -.. controls (191.5700,82.5700) and (193.7900,76.8500) .. (193.0200,74.1100) -.. controls (192.5100,72.3600) and (190.2200,70.8100) .. (189.8500,69.4100) -arc(172.400 \@@_colon 180.217 \@@_colon 18.230) -.. controls (189.6900,63.4700) and (189.8000,58.7700) .. (191.8700,56.2100) -.. controls (192.7300,55.1200) and (194.2700,54.5600) .. (195.3300,53.4700) -.. controls (197.2400,51.3900) and (197.5100,48.0400) .. (200.3300,47.3300) -arc(354.702 \@@_colon 342.940 \@@_colon 25.170) -.. controls (200.4000,40.9700) and (201.5100,39.6600) .. (204.2000,39.9500) -.. controls (204.6500,39.3200) and (203.6400,38.5700) .. (204.3300,37.9500) -.. controls (205.4800,37.5300) and (207.5800,37.4200) .. (208.3300,38.1100) -arc(250.405 \@@_colon 264.067 \@@_colon 21.120) -.. controls (216.2300,36.5500) and (217.8500,39.5300) .. (218.9400,41.5000) -arc(323.636 \@@_colon 353.300 \@@_colon 9.260) -.. controls (220.7800,46.9100) and (220.6800,48.2300) .. (220.6800,49.5300) -arc(-3.441 \@@_colon 3.441 \@@_colon 27.240) -.. controls (220.1700,55.6500) and (216.0700,58.8000) .. (219.6800,60.6800) -.. controls (221.5700,60.4400) and (223.7800,61.0500) .. (225.8000,60.6800) -.. controls (226.8600,60.4900) and (227.8700,59.6800) .. (228.5400,59.5300) -arc(262.265 \@@_colon 277.735 \@@_colon 24.000) -.. controls (239.2100,60.0900) and (242.5000,62.8300) .. (245.1600,65.2800) -.. controls (245.2200,66.9500) and (246.4700,68.3900) .. (246.7600,70.2800) -arc(-6.320 \@@_colon 7.720 \@@_colon 43.530) -.. controls (246.3900,82.4100) and (245.8600,83.8200) .. (246.3400,85.9200) -.. controls (246.5500,86.9200) and (247.4000,87.4400) .. (247.3400,88.2400) -.. controls (247.2000,90.1300) and (244.8100,90.1300) .. (242.7900,90.6900) -.. controls (239.1700,91.6900) and (235.3400,93.4500) .. (233.7400,89.8400) -.. controls (233.8200,87.7000) and (233.5100,86.6400) .. (234.3300,85.2100) -.. controls (235.1500,83.7800) and (237.2400,83.2600) .. (236.0000,81.3000) --- cycle(212.9000,44.4500) -.. controls (212.9600,43.5200) and (211.9000,43.3300) .. (211.6200,42.4500) -.. controls (211.3400,41.5700) and (211.9700,40.6400) .. (211.1500,39.9700) -.. controls (209.4200,41.3400) and (210.9400,44.8000) .. (212.9300,44.4500) --- cycle(217.0500,44.0300) -arc(101.351 \@@_colon 46.758 \@@_colon 1.270) -arc(359.414 \@@_colon 289.173 \@@_colon 2.740) -.. controls (216.1200,42.0000) and (217.0000,43.0000) .. (217.0800,44.0000) --- cycle(205.7500,42.0000) -.. controls (205.8600,44.4200) and (207.9000,44.5600) .. (209.2100,45.9100) -.. controls (210.2100,47.0000) and (210.4900,48.4400) .. (211.7600,48.6300) -.. controls (213.2300,46.8700) and (210.4300,44.8500) .. (208.9100,44.2100) -.. controls (208.2500,43.1700) and (207.4500,41.5000) .. (205.7500,42.0000) --- cycle(201.0000,50.6000) -.. controls (201.0000,50.2500) and (200.4600,49.5100) .. (199.8800,49.6000) -.. controls (199.3000,49.6900) and (198.1200,52.5500) .. (198.1200,52.9000) -.. controls (199.2000,53.0000) and (201.0700,51.5300) .. (201.0000,50.6000) --- cycle(207.0000,50.1700) -.. controls (206.3300,50.2500) and (205.5600,49.4800) .. (205.0000,49.5900) -.. controls (204.4400,49.7000) and (203.6200,51.3700) .. (204.6800,51.5900) -.. controls (205.3200,51.1900) and (207.6800,50.6600) .. (208.5600,51.5900) -.. controls (209.4400,51.0300) and (209.0200,50.0500) .. (208.2400,49.5900) -.. controls (207.6600,49.5600) and (207.7400,50.0600) .. (207.0000,50.1700) --- cycle(212.6300,51.7400) -.. controls (211.2000,52.3800) and (211.1500,54.3500) .. (209.7600,55.0100) -arc(291.815 \@@_colon 270.409 \@@_colon 22.910) -.. controls (200.9900,54.3700) and (198.6400,54.7500) .. (198.2700,56.0800) -arc(194.569 \@@_colon 146.279 \@@_colon 5.070) -.. controls (200.6700,59.4300) and (200.8200,53.4200) .. (203.1600,56.7400) -.. controls (202.9500,57.5900) and (202.3100,58.0500) .. (202.1600,58.9200) -.. controls (203.1600,59.5600) and (202.6000,60.9200) .. (203.0500,61.9200) -.. controls (204.8000,61.9200) and (204.0500,59.4500) .. (205.2000,58.9200) -.. controls (206.1300,58.7100) and (207.3000,58.7100) .. (208.2000,58.4500) -.. controls (209.5900,59.4500) and (210.6500,61.2600) .. (213.0500,60.3900) -.. controls (214.3300,61.6900) and (216.7200,62.2000) .. (216.5300,64.4800) -arc(86.805 \@@_colon -1.699 \@@_colon 1.780) -.. controls (218.1000,61.2900) and (215.2100,60.1700) .. (213.7900,59.3500) -.. controls (212.9700,58.8500) and (212.3000,58.1500) .. (211.5000,57.7500) -.. controls (210.5000,57.3000) and (209.2200,57.3500) .. (209.0600,56.3200) -.. controls (209.1600,55.8400) and (210.0600,56.1000) .. (210.5000,56.0800) -.. controls (211.5600,55.5700) and (211.5600,53.9500) .. (212.6700,53.4700) -.. controls (213.4200,53.6000) and (213.7600,54.8800) .. (214.5100,54.5600) -arc(353.613 \@@_colon 299.855 \@@_colon 3.730) --- cycle(195.2900,60.1700) -.. controls (196.2900,61.9500) and (197.4200,59.3800) .. (196.7000,58.0500) -.. controls (195.5900,58.1000) and (195.4800,59.2200) .. (195.3200,60.1700) --- cycle(206.0400,61.1700) -.. controls (206.4400,62.1700) and (207.2100,62.7700) .. (207.2900,64.0200) -.. controls (206.6800,65.6100) and (204.2900,64.9500) .. (202.8500,65.0200) -.. controls (203.1900,67.0200) and (203.5900,70.1600) .. (207.0000,69.5200) -.. controls (208.1100,71.2500) and (209.0000,73.1600) .. (210.7700,74.2500) -.. controls (213.2700,73.2500) and (213.0600,75.7900) .. (215.1900,75.6900) -.. controls (216.4600,76.0600) and (216.4100,78.4800) .. (217.6100,78.5600) -.. controls (219.0200,78.6700) and (219.1000,76.0900) .. (218.6100,74.6800) -.. controls (217.3800,74.1700) and (216.2900,74.6000) .. (214.9900,74.0900) -.. controls (214.3800,73.8500) and (213.9300,73.0300) .. (213.2900,72.8200) -.. controls (212.2900,72.5000) and (211.2900,72.8200) .. (210.4200,72.5000) -.. controls (209.1900,72.0200) and (208.2300,70.1600) .. (208.2300,68.6400) -.. controls (208.5300,67.9500) and (209.8300,68.3200) .. (209.9900,67.4700) -.. controls (209.9400,66.9400) and (209.5600,66.7500) .. (209.1400,66.6500) -.. controls (208.6100,67.4700) and (207.2000,68.6500) .. (206.4000,67.2000) -.. controls (206.9600,66.0100) and (207.9200,65.2900) .. (207.7000,63.2900) -.. controls (208.0700,62.7900) and (209.1400,62.9500) .. (209.2700,62.1800) -.. controls (209.2600,60.7600) and (206.8700,59.8600) .. (206.0700,61.2100) --- cycle(232.1100,63.0900) -.. controls (233.9700,63.4800) and (234.7700,65.0900) .. (237.0000,65.1900) -.. controls (237.2100,64.4400) and (238.3900,64.5200) .. (238.5500,63.7200) -.. controls (238.1200,63.1600) and (237.1900,63.1100) .. (237.2700,62.0200) -.. controls (236.4200,61.8400) and (236.6300,62.7100) .. (235.8300,62.6100) -.. controls (234.4800,61.5800) and (232.7300,60.7900) .. (232.1400,63.1300) --- cycle(228.2300,64.1800) -arc(54.429 \@@_colon -17.959 \@@_colon 2.300) -.. controls (227.2700,61.3700) and (226.7100,63.7600) .. (228.2600,64.2200) --- cycle(221.9500,64.8900) -arc(231.795 \@@_colon 147.274 \@@_colon 1.930) -.. controls (223.0000,67.8300) and (223.0900,65.1200) .. (222.0000,64.9300) --- cycle(240.8300,68.8900) -.. controls (241.7700,69.5000) and (243.4400,69.2600) .. (244.5800,69.0200) -.. controls (244.2100,67.3000) and (242.7500,66.6000) .. (241.2800,66.0200) -arc(-9.138 \@@_colon 25.183 \@@_colon 5.100) --- cycle(217.2100,69.1300) -.. controls (217.6900,69.9000) and (219.7700,69.8200) .. (220.7800,69.5500) -.. controls (221.1800,67.4900) and (217.3500,67.4100) .. (217.2400,69.2200) --- cycle(233.5500,72.0000) -.. controls (234.2300,72.8800) and (235.5500,73.2000) .. (236.2600,74.0000) -.. controls (236.2000,74.3200) and (236.0000,74.7500) .. (236.2600,75.0000) -.. controls (237.1600,74.9300) and (236.6300,74.3100) .. (236.5500,73.7000) -.. controls (238.7000,72.1300) and (238.4400,75.8800) .. (239.4000,77.2600) -.. controls (240.0300,78.2000) and (240.8300,78.2600) .. (241.1500,79.0000) -.. controls (241.6800,79.1000) and (242.2700,79.1500) .. (242.7500,79.2900) -.. controls (243.9700,81.4700) and (240.7500,82.4500) .. (242.0100,84.6300) -.. controls (245.2000,85.0600) and (245.6800,79.3400) .. (243.3400,78.4600) -arc(354.147 \@@_colon 329.327 \@@_colon 2.450) -arc(99.718 \@@_colon 181.558 \@@_colon 4.670) -.. controls (239.6600,73.7900) and (240.4900,72.9700) .. (241.4200,73.3900) -.. controls (241.4200,72.7800) and (240.9400,72.5100) .. (240.4200,72.2800) -.. controls (240.0200,72.2800) and (239.8100,72.5700) .. (239.4200,72.5700) -.. controls (239.0500,72.2500) and (238.7800,71.7400) .. (238.1400,71.5700) -.. controls (237.5000,71.5700) and (237.6600,72.4200) .. (236.8900,72.2900) -.. controls (236.0000,71.6100) and (234.4300,70.3600) .. (233.5800,72.0900) --- cycle(244.1300,74.7700) -.. controls (244.9600,73.9700) and (244.6600,71.6300) .. (243.4400,71.5800) -.. controls (242.8300,72.6200) and (243.0000,74.5400) .. (244.1600,74.8600) --- cycle(224.0000,75.3900) -arc(121.453 \@@_colon 81.588 \@@_colon 2.350) -arc(176.594 \@@_colon 220.276 \@@_colon 0.680) -.. controls (225.1700,74.8800) and (224.0000,74.0000) .. (224.0000,75.3900) --- cycle(213.8100,78.3900) -.. controls (213.5500,79.8000) and (213.8100,80.9000) .. (213.6500,82.3900) -.. controls (212.9100,83.0900) and (212.1100,83.6100) .. (212.2700,84.8400) -.. controls (211.5200,85.5600) and (209.9800,85.4500) .. (209.5300,86.4400) -.. controls (211.3700,87.4400) and (214.5300,87.5300) .. (215.7000,85.9800) -.. controls (215.8900,84.9800) and (215.4700,83.3800) .. (216.5500,83.2400) -.. controls (218.3600,83.6100) and (216.7900,87.3100) .. (218.5500,87.7400) -arc(18.151 \@@_colon -18.151 \@@_colon 6.420) -.. controls (219.2200,83.3200) and (219.2200,82.3100) .. (220.1300,82.0900) -.. controls (220.2300,82.5700) and (219.8100,83.5800) .. (220.3900,83.5800) -.. controls (220.9700,83.2400) and (220.8900,81.7700) .. (220.5500,81.3000) -.. controls (219.3500,81.0300) and (219.3500,81.8800) .. (218.4000,81.8800) -.. controls (217.8600,80.4700) and (216.4000,80.3900) .. (215.0700,81.1400) -.. controls (214.5900,80.2600) and (214.9100,79.3500) .. (214.8000,78.0200) -.. controls (213.7400,77.6200) and (213.4200,76.5600) .. (213.0500,75.8100) -.. controls (212.5100,77.0000) and (213.4100,77.7900) .. (213.7800,78.4200) --- cycle(237.5600,87.0000) -arc(71.436 \@@_colon 48.168 \@@_colon 7.000) -arc(292.270 \@@_colon 187.334 \@@_colon 1.780) --- cycle(66.5400,38.0000) -.. controls (67.2600,38.5600) and (66.3000,39.4300) .. (66.6700,40.0000) -.. controls (68.7500,39.6100) and (71.3300,41.2000) .. (71.5400,42.3200) -.. controls (71.8400,43.7600) and (70.2400,45.3200) .. (70.6700,47.1900) -.. controls (74.1800,49.3800) and (75.0000,54.2700) .. (79.0000,56.0800) -arc(-26.973 \@@_colon 7.990 \@@_colon 21.500) -.. controls (80.5400,72.2500) and (77.1300,72.6200) .. (77.8300,77.1200) -.. controls (78.1500,79.0600) and (79.3200,82.9700) .. (80.7000,83.5800) -.. controls (81.6100,83.9800) and (82.8300,83.5000) .. (83.7000,84.1400) -.. controls (84.4200,85.0200) and (84.0800,86.9400) .. (83.5400,87.7600) -.. controls (80.7800,88.2700) and (79.7700,91.1900) .. (76.3600,90.0500) -arc(111.568 \@@_colon 140.157 \@@_colon 10.370) -.. controls (71.7900,86.3500) and (71.8400,85.3700) .. (71.4900,84.6200) -.. controls (70.7800,83.0000) and (69.4900,82.0200) .. (68.7500,80.8700) -.. controls (66.6800,81.5100) and (60.3000,80.4200) .. (61.3100,83.7700) -.. controls (61.7900,85.2600) and (66.8400,84.5200) .. (65.1900,88.3500) -.. controls (64.6000,89.6800) and (60.2400,91.5400) .. (58.5900,91.9200) -arc(80.530 \@@_colon 92.032 \@@_colon 10.000) -.. controls (56.0600,91.9900) and (55.5900,91.4900) .. (54.8900,91.3300) -.. controls (53.5000,91.0600) and (51.6400,91.6700) .. (50.1500,91.3300) -.. controls (49.2500,91.1700) and (46.7500,89.3900) .. (45.8400,88.6100) -arc(133.153 \@@_colon 151.282 \@@_colon 10.360) -.. controls (43.1800,84.4600) and (43.6100,83.1600) .. (41.9300,82.4400) -arc(283.120 \@@_colon 276.923 \@@_colon 23.390) -.. controls (37.9000,81.6300) and (36.2400,80.3700) .. (35.0000,81.3100) -.. controls (33.4300,83.0300) and (35.9000,83.7800) .. (36.7000,85.3100) -.. controls (37.5000,86.8400) and (36.9900,87.8100) .. (37.1500,89.8800) -arc(33.887 \@@_colon 73.398 \@@_colon 5.290) -.. controls (32.5400,92.3200) and (30.2000,91.0000) .. (27.7800,90.4300) -.. controls (26.2100,90.0300) and (23.8500,90.0300) .. (23.5300,88.4300) -.. controls (23.3200,87.4300) and (24.3200,86.8300) .. (24.5300,85.9800) -.. controls (24.8200,84.8400) and (24.1900,83.9800) .. (24.9600,82.9800) -.. controls (23.8700,81.3100) and (24.3400,78.7000) .. (24.2400,75.6700) -arc(174.763 \@@_colon 195.652 \@@_colon 21.880) -.. controls (25.2500,66.9200) and (25.3000,65.9300) .. (25.5700,65.4500) -.. controls (26.0000,64.4500) and (28.9500,62.0800) .. (30.1400,61.4500) -arc(242.831 \@@_colon 278.244 \@@_colon 20.000) -.. controls (43.1400,59.5600) and (44.0500,60.4500) .. (45.0100,60.6000) -.. controls (46.8200,60.9200) and (49.2700,60.4100) .. (51.1900,60.6000) -arc(61.375 \@@_colon 34.961 \@@_colon 4.200) -.. controls (52.7800,56.2100) and (51.0200,54.9800) .. (50.1700,52.8600) -.. controls (50.5700,49.7100) and (49.6400,46.1500) .. (50.7600,43.1400) -arc(203.693 \@@_colon 218.525 \@@_colon 18.370) -arc(221.776 \@@_colon 251.181 \@@_colon 7.420) -.. controls (58.0000,36.7100) and (60.7700,37.6400) .. (62.3500,38.1700) -arc(244.465 \@@_colon 290.888 \@@_colon 5.320) --- cycle(58.0600,44.4900) -.. controls (59.4900,44.8400) and (60.0600,43.1100) .. (60.6600,42.1800) -.. controls (60.2900,41.4900) and (60.5000,40.1800) .. (59.4900,40.1800) -.. controls (59.6200,42.1600) and (58.6400,43.0900) .. (58.0600,44.4500) --- cycle(52.7900,43.8800) -.. controls (52.9500,44.0900) and (53.3700,44.0700) .. (53.7900,44.0700) -arc(196.531 \@@_colon 203.841 \@@_colon 22.730) -.. controls (53.5100,40.9100) and (52.6800,42.8300) .. (52.7900,43.8400) --- cycle(61.7900,44.3600) -.. controls (60.4900,45.3600) and (57.9900,46.3600) .. (58.7900,48.5100) -.. controls (58.9000,48.5100) and (59.0600,48.5100) .. (59.0600,48.6200) -.. controls (60.7000,48.1400) and (61.1600,46.3800) .. (62.3600,45.3500) -.. controls (63.3600,44.4900) and (65.2300,43.9300) .. (65.0700,41.9900) -.. controls (63.4300,41.3400) and (62.8500,43.4400) .. (61.8000,44.3200) --- cycle(61.7900,51.0600) -.. controls (61.7900,51.1200) and (62.0900,51.3500) .. (62.0900,51.4300) -.. controls (62.6200,51.7800) and (62.9900,51.1200) .. (63.6300,51.0600) -.. controls (64.8100,50.9600) and (65.6300,51.6200) .. (66.3700,51.6200) -arc(39.196 \@@_colon -78.793 \@@_colon 1.240) -.. controls (64.7100,51.1300) and (61.3300,48.3300) .. (61.8000,51.0000) --- cycle(71.0000,49.5900) -.. controls (70.2600,49.5100) and (70.0000,50.3300) .. (70.0000,50.8600) -.. controls (70.1100,51.8600) and (71.8700,52.9400) .. (72.8800,52.8600) -.. controls (72.5200,52.2800) and (71.6800,49.6900) .. (71.0000,49.5900) --- cycle(58.4800,51.7400) -arc(245.846 \@@_colon 188.283 \@@_colon 3.670) -.. controls (57.3500,54.9600) and (57.5000,53.5600) .. (58.3500,53.4700) -.. controls (59.3500,54.0000) and (59.3500,55.5200) .. (60.3500,55.8900) -.. controls (60.6100,56.3200) and (61.8900,55.7300) .. (61.9400,56.3200) -.. controls (61.9400,57.0900) and (60.7100,57.0900) .. (59.9400,57.4900) -.. controls (59.1700,57.8900) and (57.5000,59.1600) .. (56.1900,60.0000) -.. controls (53.9100,61.3000) and (50.9300,63.0000) .. (54.3300,64.5200) -.. controls (54.7000,64.2300) and (54.3300,63.5200) .. (54.4900,63.1700) -.. controls (54.7600,62.4800) and (57.5800,60.4800) .. (57.9000,60.4300) -.. controls (58.4800,60.3200) and (59.1500,60.7500) .. (59.6500,60.6700) -.. controls (61.1400,60.4800) and (61.4900,59.0400) .. (62.7900,58.4900) -arc(103.805 \@@_colon 89.374 \@@_colon 11.100) -.. controls (66.8600,59.2600) and (66.1700,61.7300) .. (67.6800,61.9900) -.. controls (68.3800,60.9900) and (67.8400,59.7100) .. (68.6800,58.8100) -.. controls (68.5400,57.8700) and (67.6800,57.6300) .. (67.8000,56.5400) -.. controls (68.0400,55.9800) and (68.6800,55.8500) .. (69.2400,55.6400) -.. controls (70.5900,56.6400) and (70.3300,59.2300) .. (71.6600,60.2100) -.. controls (72.8300,59.5000) and (73.1200,56.8900) .. (72.4000,55.6400) -.. controls (71.7600,54.6400) and (69.8000,54.2000) .. (69.4000,53.4100) -arc(268.531 \@@_colon 250.205 \@@_colon 27.060) -.. controls (59.9200,54.1600) and (59.4900,52.6700) .. (58.4800,51.7400) --- cycle(75.0000,61.0000) -.. controls (76.0600,60.3800) and (75.4700,58.1500) .. (74.3100,58.1000) -.. controls (73.7800,58.8700) and (73.7800,60.9200) .. (75.0000,61.0000) --- cycle(61.4900,62.2000) -.. controls (61.8000,62.9700) and (63.0000,62.8100) .. (63.2200,63.6300) -.. controls (62.7900,65.2300) and (64.1200,66.0300) .. (64.3900,67.3900) -.. controls (63.5400,68.6100) and (62.2000,67.4900) .. (61.8000,66.6700) -arc(266.925 \@@_colon 175.589 \@@_colon 1.060) -.. controls (64.1000,68.0200) and (62.2900,71.8100) .. (60.2400,72.5200) -.. controls (59.6300,72.7800) and (58.7800,72.5200) .. (58.0900,72.6800) -.. controls (57.4000,72.8400) and (56.5400,73.7900) .. (55.6700,74.1100) -.. controls (54.3100,74.5900) and (53.0600,74.1900) .. (52.2300,74.8600) -.. controls (51.8100,76.5300) and (52.0200,78.6100) .. (53.2300,78.5800) -.. controls (54.4400,78.5500) and (54.3900,76.1100) .. (55.6500,75.7100) -.. controls (57.4300,76.0000) and (57.2400,74.5900) .. (58.2200,74.2700) -.. controls (58.7600,74.0600) and (59.3700,74.4300) .. (60.0700,74.2700) -.. controls (62.0700,73.7100) and (62.5900,71.1300) .. (63.8100,69.6400) -.. controls (67.0600,70.0400) and (67.8100,67.2200) .. (67.9600,64.9300) -.. controls (66.1500,65.2800) and (63.9600,65.5200) .. (63.6500,63.9300) -.. controls (63.4900,62.7900) and (64.5300,62.2800) .. (64.8300,61.1900) -.. controls (64.0000,59.7500) and (61.7000,60.8900) .. (61.4900,62.2000) --- cycle(34.8600,62.6500) -.. controls (34.2200,62.6500) and (34.3600,61.8800) .. (33.5800,62.0600) -.. controls (33.6900,63.1500) and (32.6800,63.1500) .. (32.4100,63.7600) -.. controls (32.5700,64.5400) and (33.5800,64.5400) .. (33.8500,65.2300) -.. controls (36.1100,65.1700) and (36.7200,63.5200) .. (38.6900,63.2300) -.. controls (38.3200,60.5500) and (36.3000,61.7700) .. (34.8600,62.6500) --- cycle(41.8600,61.6500) -arc(204.539 \@@_colon 118.992 \@@_colon 2.000) -arc(65.260 \@@_colon -100.797 \@@_colon 1.370) --- cycle(49.3100,67.5000) -.. controls (49.9200,66.7800) and (49.6300,64.9400) .. (48.5700,64.9400) -.. controls (48.1600,65.5200) and (48.0000,67.8100) .. (49.3300,67.4900) --- cycle(26.2400,69.0000) -.. controls (27.1400,69.5100) and (29.2400,69.6600) .. (29.9700,68.8400) -arc(153.355 \@@_colon 188.613 \@@_colon 4.530) -.. controls (28.1000,66.6700) and (26.7200,67.4100) .. (26.2400,69.0000) --- cycle(50.0000,69.6400) -.. controls (51.1800,69.8600) and (53.5100,70.1500) .. (53.7800,68.9800) -.. controls (53.2200,67.4900) and (49.8100,67.5700) .. (50.0000,69.6400) --- cycle(33.8500,72.3900) -.. controls (33.2100,72.3900) and (33.4700,71.6100) .. (32.8500,71.6700) -.. controls (32.0000,71.6700) and (32.0000,72.5700) .. (31.2500,72.6700) -arc(302.608 \@@_colon 269.737 \@@_colon 1.840) -.. controls (29.9300,72.6700) and (29.4500,72.8300) .. (29.5600,73.4900) -arc(240.355 \@@_colon 311.283 \@@_colon 1.360) -.. controls (31.3700,73.3800) and (31.2900,72.8300) .. (31.8500,72.8300) -.. controls (31.7200,75.0000) and (30.4200,77.1700) .. (28.0000,77.3800) -arc(15.504 \@@_colon 57.919 \@@_colon 4.000) -.. controls (25.6900,82.3300) and (26.4300,84.7000) .. (28.9900,84.7000) -arc(12.010 \@@_colon -3.029 \@@_colon 7.320) -arc(126.456 \@@_colon 193.043 \@@_colon 3.000) -arc(227.855 \@@_colon 274.468 \@@_colon 2.270) -arc(47.419 \@@_colon 25.182 \@@_colon 12.000) -.. controls (31.9700,73.7900) and (33.6100,72.6800) .. (34.3000,73.9800) -.. controls (34.3000,74.4000) and (33.8500,75.1500) .. (34.5700,75.1200) -.. controls (35.2900,75.0900) and (34.5700,74.5400) .. (34.5700,74.1200) -.. controls (35.2900,73.1900) and (36.8600,73.1200) .. (37.3100,71.9700) -.. controls (36.1900,70.2600) and (35.0000,71.9000) .. (33.8500,72.3900) --- cycle(26.9300,75.0000) -arc(42.902 \@@_colon -22.926 \@@_colon 3.130) -.. controls (26.0800,71.6700) and (25.8100,74.4300) .. (26.9300,75.0000) --- cycle(45.3200,75.3700) -.. controls (45.4200,75.9000) and (46.5100,75.6400) .. (46.8800,75.5300) -arc(177.188 \@@_colon 225.955 \@@_colon 0.560) -arc(321.292 \@@_colon 290.216 \@@_colon 2.300) -.. controls (46.1700,75.1200) and (45.2600,74.7800) .. (45.3200,75.3900) --- cycle(57.5000,77.1200) -.. controls (56.9400,77.3800) and (56.3500,77.5700) .. (56.0900,78.1200) -.. controls (55.8700,79.1200) and (56.4600,80.8100) .. (55.6400,81.1200) -.. controls (54.2500,80.1200) and (53.2200,80.8800) .. (52.3100,81.8600) -.. controls (51.6200,81.7300) and (51.4100,81.0600) .. (50.3100,81.2800) -.. controls (50.2100,81.7500) and (49.7800,83.5100) .. (50.5800,83.5600) -.. controls (51.3800,83.4000) and (50.1500,82.0700) .. (51.1700,82.0700) -arc(154.109 \@@_colon 138.031 \@@_colon 7.110) -.. controls (52.2300,84.7900) and (51.8500,86.9400) .. (52.4400,87.7200) -.. controls (54.1400,87.2200) and (52.5200,83.3800) .. (54.6200,83.2200) -.. controls (55.3100,83.6200) and (55.1200,84.9300) .. (55.1800,85.9600) -.. controls (55.7900,86.2300) and (56.5400,87.1600) .. (57.6000,87.2700) -.. controls (58.6600,87.3800) and (60.8700,87.0000) .. (61.3300,86.1200) -.. controls (60.5800,85.5400) and (59.3300,85.5100) .. (58.7700,84.8200) -.. controls (58.5300,84.6600) and (58.6100,84.0700) .. (58.6100,83.7000) -.. controls (57.2000,82.7500) and (56.5400,80.3500) .. (57.1800,78.2200) -.. controls (57.3900,77.5300) and (58.8200,76.5500) .. (57.6000,75.7700) -.. controls (57.4200,76.0500) and (57.5200,76.6700) .. (57.5000,77.1200) --- cycle(30.8200,85.4400) --- (30.8200,85.8400) -.. controls (32.0900,85.7100) and (32.3900,87.2600) .. (33.4300,86.8400) -arc(337.875 \@@_colon 258.543 \@@_colon 2.320) --- cycle(137.0900,25.5100) -arc(275.022 \@@_colon 328.786 \@@_colon 33.060) -.. controls (163.1600,42.4300) and (164.3100,44.2400) .. (164.2000,45.1200) -arc(4.851 \@@_colon 88.910 \@@_colon 1.770) -.. controls (161.3200,46.6900) and (161.0000,45.1200) .. (160.1500,43.7400) -.. controls (155.7700,36.0500) and (148.6600,30.7400) .. (138.5000,28.9700) -arc(164.817 \@@_colon 156.030 \@@_colon 48.700) -.. controls (141.8500,38.3900) and (142.7500,40.8600) .. (143.5800,43.2000) -.. controls (143.9800,43.6300) and (143.5300,44.2000) .. (143.5800,44.7800) -.. controls (145.4100,44.6400) and (147.4600,44.7200) .. (147.1700,46.7800) -.. controls (146.7700,49.4200) and (138.9000,47.4200) .. (135.9700,48.0800) -arc(184.054 \@@_colon 178.238 \@@_colon 69.000) -.. controls (137.4400,56.0800) and (145.0400,54.2800) .. (146.5800,55.4000) -arc(-44.418 \@@_colon 6.346 \@@_colon 2.110) -.. controls (146.7400,59.9800) and (139.0300,57.6400) .. (135.9700,58.3800) -.. controls (135.5200,60.7800) and (136.6300,64.1300) .. (134.2400,64.2900) -.. controls (131.8500,64.4500) and (132.5900,61.2900) .. (132.5400,58.5200) -.. controls (129.6600,57.5200) and (121.7900,60.0300) .. (121.2000,57.2700) -.. controls (120.4100,53.3300) and (129.6400,56.1700) .. (132.3800,55.0800) -arc(6.757 \@@_colon -6.757 \@@_colon 29.150) -.. controls (129.8200,47.2200) and (121.7400,49.5500) .. (121.2000,46.9400) -.. controls (120.7800,44.9400) and (122.8000,44.6000) .. (124.6600,44.8200) -.. controls (125.0700,44.4400) and (124.4500,43.9600) .. (124.6600,43.3800) -.. controls (126.5200,38.7500) and (128.0400,33.7800) .. (129.9900,29.1700) -.. controls (117.6900,30.8500) and (109.9300,38.3000) .. (105.9900,48.7800) -.. controls (107.3200,48.7200) and (109.3500,47.9500) .. (111.9900,47.5000) -.. controls (114.8100,47.0200) and (120.5400,45.7200) .. (118.8600,49.6600) -.. controls (116.5500,50.4000) and (113.8600,50.3200) .. (111.5200,50.8300) -arc(257.434 \@@_colon 248.061 \@@_colon 41.270) -arc(201.825 \@@_colon 182.478 \@@_colon 8.340) -.. controls (106.5700,55.2500) and (108.7500,54.3500) .. (111.4900,53.8400) -.. controls (113.4900,53.5000) and (119.4200,52.0600) .. (118.8300,55.2800) -.. controls (118.5600,56.6900) and (116.8300,56.5000) .. (115.5300,56.5800) -arc(266.381 \@@_colon 244.744 \@@_colon 30.450) -arc(185.441 \@@_colon 166.566 \@@_colon 7.000) -arc(253.780 \@@_colon 260.470 \@@_colon 61.530) -.. controls (113.4800,59.8800) and (117.9500,58.6300) .. (118.3700,60.7100) -.. controls (118.9900,63.7100) and (113.7400,62.8300) .. (111.2200,63.2800) -arc(258.008 \@@_colon 247.894 \@@_colon 35.600) -.. controls (105.8300,66.5300) and (105.8600,68.3400) .. (104.4700,68.5800) -.. controls (101.6000,69.2200) and (101.2800,62.4600) .. (101.1700,59.7200) -arc(178.206 \@@_colon 195.874 \@@_colon 35.330) -.. controls (106.2900,35.9500) and (116.3900,27.6700) .. (131.1800,25.4600) -.. controls (132.2500,23.8900) and (132.2500,20.7500) .. (134.3200,20.9600) -.. controls (136.1900,21.0700) and (136.0000,24.1300) .. (137.0900,25.5100) --- cycle(136.0900,32.2400) -.. controls (135.6100,31.0200) and (135.0900,28.3100) .. (133.7500,28.5400) -.. controls (131.3300,33.5400) and (129.7000,39.3400) .. (127.5700,44.7500) -.. controls (128.8000,44.7500) and (131.1100,44.6900) .. (132.3100,44.7500) -.. controls (131.4000,39.9300) and (136.8800,39.6400) .. (135.7600,44.7500) --- (140.6600,44.7500) -.. controls (139.2900,41.0500) and (137.5400,36.2600) .. (136.1100,32.2400) --- cycle(0.1200,0.0000) -.. controls (17.1200,9.9200) and (39.5400,16.9200) .. (66.3800,17.1600) -.. controls (93.8900,17.4800) and (117.2200,12.1000) .. (134.0600,1.4400) -.. controls (151.0600,12.0500) and (174.6200,17.5800) .. (201.8700,17.1600) -.. controls (228.2000,16.8100) and (251.4000,9.9200) .. (268.1600,0.1600) -.. controls (268.4800,39.6900) and (267.5500,77.3900) .. (267.5500,116.7300) -.. controls (267.5500,155.8100) and (269.6500,196.3800) .. (259.6500,226.2500) -.. controls (254.7800,240.9100) and (247.4400,253.2000) .. (239.1600,264.7200) -arc(35.891 \@@_colon 53.017 \@@_colon 139.530) -.. controls (198.7800,302.9700) and (185.7400,309.0600) .. (172.5000,315.7400) -.. controls (161.1400,321.4600) and (149.7300,327.3600) .. (138.6600,333.3800) -.. controls (137.1200,334.2300) and (135.3100,334.7900) .. (134.1900,336.2800) -.. controls (128.1900,332.2800) and (121.7400,329.0400) .. (115.3000,325.6600) -.. controls (108.8600,322.2800) and (102.3000,318.9300) .. (95.7800,315.6100) -.. controls (89.0700,312.1800) and (82.3700,309.2500) .. (76.0100,305.8700) -arc(118.166 \@@_colon 128.243 \@@_colon 121.110) -.. controls (35.9500,277.2200) and (18.7700,255.2200) .. (8.5800,225.8800) -.. controls (3.3600,210.7100) and (1.8700,193.4000) .. (1.0000,174.6400) -.. controls (0.1500,156.1500) and (0.6000,136.4700) .. (0.6000,117.2900) -.. controls (0.5700,78.2100) and (0.0000,39.8000) .. (0.0000,0.4300) -.. controls (0.0000,0.2100) and (0.0000,0.0000) .. (0.1200,0.0000) --- cycle(127.3300,14.0500) -.. controls (103.9200,24.3700) and (67.0500,27.3800) .. (37.1500,21.3400) -arc(100.570 \@@_colon 113.945 \@@_colon 113.610) -.. controls (10.8800,13.0100) and (9.8000,12.2100) .. (8.5800,12.3200) -.. controls (8.2300,48.6800) and (9.1600,86.4000) .. (9.1600,121.4400) -.. controls (9.1600,139.6600) and (8.2800,158.2800) .. (9.0000,175.6300) -.. controls (9.7200,192.9800) and (11.7500,209.2800) .. (16.4800,223.3700) -arc(161.626 \@@_colon 144.319 \@@_colon 136.390) -.. controls (46.7300,276.1500) and (60.7700,289.6200) .. (78.5400,299.2400) -.. controls (84.5400,302.4400) and (90.8300,305.2400) .. (97.2100,308.2400) -.. controls (109.6600,314.0700) and (122.1100,320.1600) .. (134.4900,326.2400) -.. controls (146.8200,320.1000) and (159.3600,314.2400) .. (171.6500,308.2400) -.. controls (177.9800,305.1900) and (184.3300,302.5800) .. (190.2700,299.3600) -.. controls (202.0800,293.0800) and (212.1300,284.6500) .. (221.0700,275.1800) -arc(43.508 \@@_colon 17.935 \@@_colon 136.470) -.. controls (261.1900,194.6600) and (259.2700,158.4500) .. (259.2700,121.8400) -.. controls (259.2700,84.9800) and (259.3800,48.6600) .. (259.6500,12.3300) -arc(261.913 \@@_colon 238.823 \@@_colon 8.700) -arc(65.978 \@@_colon 78.823 \@@_colon 118.260) -.. controls (209.4200,25.7300) and (182.7700,25.1000) .. (162.3100,20.6300) -arc(102.185 \@@_colon 116.968 \@@_colon 116.000) -.. controls (132.4900,11.9400) and (130.0000,12.8800) .. (127.3300,14.0500) --- cycle; -} -\def \@@_path_name_cn{ - (40.0488,-0.0176) -.. controls (39.2490,-0.0498) and (38.3880,-0.0054) .. (37.4805,0.0996) -.. controls (36.6505,1.1096) and (35.6496,1.9402) .. (35.3496,3.2402) -.. controls (34.9496,5.0802) and (36.0296,6.6395) .. (36.3496,8.5195) -.. controls (37.0696,12.3195) and (36.3703,16.0609) .. (36.0703,19.6309) -.. controls (35.6703,20.0509) and (35.4903,20.6708) .. (35.0703,21.0508) -.. controls (35.0903,24.6008) and (34.1896,28.1796) .. (34.3496,31.5996) -arc(-7.170 \@@_colon 1.963 \@@_colon 40.240) -arc(196.391 \@@_colon 189.391 \@@_colon 20.580) -.. controls (34.0801,41.8092) and (33.6508,42.6495) .. (33.8008,44.0195) -.. controls (33.3808,45.2795) and (32.0801,45.3409) .. (31.0801,45.8809) -.. controls (28.1501,47.4109) and (25.8309,50.0792) .. (22.9609,51.6992) -.. controls (21.8309,53.8992) and (19.7405,55.1293) .. (18.5605,57.2793) -.. controls (16.8705,57.4993) and (16.5293,59.0395) .. (15.2793,59.6895) -.. controls (14.9793,59.6095) and (14.8599,59.3404) .. (14.4199,59.4004) -arc(232.454 \@@_colon 200.396 \@@_colon 7.380) -arc(161.934 \@@_colon 145.879 \@@_colon 11.400) -.. controls (15.6604,65.7191) and (17.5195,64.9403) .. (19.5195,65.8203) -.. controls (20.8995,66.4203) and (21.8905,67.7699) .. (23.8105,67.6699) -.. controls (24.4205,67.6299) and (24.9304,67.0900) .. (25.6504,67.2500) -.. controls (28.2504,67.7700) and (27.4203,71.0898) .. (28.0703,73.5098) -.. controls (27.0303,76.2898) and (23.6792,75.5609) .. (21.9492,77.2109) -.. controls (21.1492,79.0609) and (22.2698,79.9805) .. (22.0898,82.0605) -arc(30.607 \@@_colon 65.358 \@@_colon 3.200) -arc(244.781 \@@_colon 232.335 \@@_colon 10.000) -.. controls (16.0403,86.5907) and (15.0194,90.1797) .. (12.1094,92.1797) -.. controls (10.2494,95.7197) and (8.7400,99.7207) .. (5.0000,101.7207) -arc(140.210 \@@_colon 177.813 \@@_colon 6.150) -.. controls (3.2201,97.1295) and (2.5607,96.3203) .. (2.7207,95.3203) -.. controls (2.2407,95.1203) and (2.2607,94.4503) .. (1.7207,94.3203) -arc(232.008 \@@_colon 183.183 \@@_colon 3.290) -.. controls (-0.2991,100.9905) and (-0.1692,106.3702) .. (1.3008,109.9902) -.. controls (1.1308,110.7202) and (1.5101,111.2602) .. (1.5801,111.9902) -.. controls (1.7901,113.7502) and (1.2891,115.5903) .. (1.8691,116.8203) -.. controls (3.5491,120.3003) and (6.7593,123.8109) .. (9.2793,126.2109) -.. controls (11.7893,127.0209) and (13.8893,127.3909) .. (16.2793,126.2109) -.. controls (17.2893,124.1509) and (18.8502,121.5293) .. (17.9902,118.5293) -.. controls (17.7102,117.3493) and (16.5109,116.1606) .. (16.7109,114.8106) -arc(317.645 \@@_colon 286.301 \@@_colon 10.910) -.. controls (12.1609,111.0695) and (10.4899,110.2695) .. (10.4199,109.2695) -.. controls (10.4199,108.6495) and (10.9000,108.5100) .. (11.0000,108.0000) -arc(184.277 \@@_colon 207.891 \@@_colon 11.370) -.. controls (13.1291,101.4993) and (14.0491,99.2891) .. (15.2891,98.1191) -.. controls (16.7591,96.6991) and (18.7892,97.3192) .. (20.6992,96.6992) -.. controls (22.1192,95.1492) and (23.2992,93.3994) .. (24.6992,91.8594) -.. controls (25.1292,92.0394) and (25.9905,91.6802) .. (26.5605,91.9902) -.. controls (27.3805,93.5602) and (29.5605,94.7505) .. (29.5605,96.5605) -.. controls (29.5605,98.3705) and (27.1605,98.8203) .. (27.5605,100.8203) -.. controls (29.5205,101.8703) and (30.6895,99.0407) .. (32.6895,99.9707) -arc(-43.471 \@@_colon 28.688 \@@_colon 6.600) -.. controls (32.4195,109.7497) and (27.4199,111.2695) .. (27.4199,112.9394) -.. controls (27.4199,113.6495) and (29.3091,115.4000) .. (30.5391,115.5000) -.. controls (31.5891,115.5900) and (32.5202,114.7604) .. (33.4102,114.6504) -arc(298.226 \@@_colon 324.305 \@@_colon 6.720) -.. controls (35.8095,119.4604) and (38.6805,121.3497) .. (38.8105,124.1797) -arc(105.759 \@@_colon 39.433 \@@_colon 3.420) -.. controls (42.1009,119.4406) and (46.3607,118.6591) .. (47.2207,115.3691) -.. controls (48.0807,112.0791) and (45.6595,107.9091) .. (47.9395,105.3691) -.. controls (50.9295,106.0091) and (52.4198,108.1799) .. (54.3398,109.9199) -.. controls (57.9098,109.6999) and (58.4091,113.7399) .. (60.0391,115.9199) -.. controls (62.9791,115.5499) and (62.9805,112.2207) .. (66.3105,112.2207) -arc(209.059 \@@_colon 221.152 \@@_colon 22.280) -.. controls (69.8198,107.4409) and (72.0491,105.9896) .. (72.2891,105.0996) -arc(4.416 \@@_colon -7.692 \@@_colon 23.000) -arc(351.553 \@@_colon 343.660 \@@_colon 33.850) -.. controls (71.0804,95.1792) and (71.1504,94.1199) .. (71.1504,93.4199) -.. controls (71.1904,91.1999) and (70.7198,88.4199) .. (71.0098,86.4199) -.. controls (71.0798,85.9799) and (71.3495,85.7409) .. (71.4395,85.1309) -.. controls (71.5295,84.5209) and (71.2091,83.5609) .. (71.2891,83.1309) -.. controls (71.3691,82.7009) and (71.7305,82.6509) .. (71.7305,82.1309) -.. controls (71.8605,79.7709) and (71.4094,78.1309) .. (71.8594,76.1309) -arc(14.323 \@@_colon 5.443 \@@_colon 32.780) -arc(180.972 \@@_colon 192.711 \@@_colon 34.470) -arc(11.438 \@@_colon 4.191 \@@_colon 25.000) -.. controls (74.2500,59.4200) and (74.9998,58.8601) .. (75.3398,57.8301) -.. controls (75.6398,56.9901) and (75.7391,55.0795) .. (76.0391,54.2695) -arc(22.950 \@@_colon 11.876 \@@_colon 20.090) -.. controls (77.3392,49.4303) and (75.9298,48.3697) .. (75.3398,47.4297) -arc(333.340 \@@_colon 325.854 \@@_colon 21.490) -.. controls (72.7899,44.0298) and (70.8991,42.8809) .. (69.7891,41.8809) -.. controls (69.0791,41.2409) and (68.1107,39.5805) .. (67.2207,39.3105) -.. controls (65.1607,38.7305) and (63.5196,40.4591) .. (61.0996,40.0391) -.. controls (58.9696,41.2791) and (58.3207,44.0902) .. (55.9707,45.1602) -.. controls (54.2707,47.2502) and (52.7195,49.5096) .. (50.2695,50.8496) -.. controls (48.5395,53.4396) and (46.4307,55.6495) .. (44.7207,58.2695) -.. controls (42.6407,59.9395) and (41.1991,62.2595) .. (38.8691,63.6895) -.. controls (37.2691,65.8695) and (35.6993,68.0905) .. (33.0293,69.2305) -.. controls (31.5293,68.6305) and (32.3594,67.2491) .. (32.6094,65.5391) -.. controls (33.0694,62.1991) and (33.0909,57.5497) .. (35.8809,56.4297) -.. controls (37.7609,53.7997) and (40.4100,51.9300) .. (42.0000,49.0000) -.. controls (46.1400,44.5300) and (51.4604,41.3205) .. (55.1504,36.4805) -arc(73.339 \@@_colon 40.588 \@@_colon 5.140) -.. controls (61.0501,34.3304) and (62.7596,29.7695) .. (60.8496,26.7695) -arc(322.039 \@@_colon 289.387 \@@_colon 3.440) -.. controls (57.5793,25.2406) and (54.4905,27.7096) .. (52.7305,25.3496) -.. controls (52.7105,21.6696) and (57.3191,17.1995) .. (53.8691,13.5195) -.. controls (50.2291,12.8995) and (49.2191,8.8595) .. (46.0391,8.2695) -.. controls (46.2391,8.2895) and (46.1804,8.6308) .. (45.9004,8.5508) -.. controls (45.2904,7.2908) and (44.4297,4.7703) .. (45.1797,2.8203) -.. controls (44.2947,0.8703) and (42.4484,0.0790) .. (40.0488,-0.0176) --- cycle(371.3906,1.9609) -.. controls (369.3906,2.7209) and (368.2101,4.2699) .. (366.8301,5.6699) -.. controls (366.5801,5.9299) and (366.6895,6.5998) .. (366.6895,7.0898) -.. controls (365.4094,9.0898) and (366.6895,12.1396) .. (366.6895,14.3496) -.. controls (366.7695,18.8996) and (364.2691,22.4504) .. (364.1191,26.9004) -.. controls (363.6091,27.7304) and (363.3598,28.7894) .. (362.8398,29.6094) -.. controls (360.7798,30.8294) and (358.8804,32.1094) .. (356.1504,32.6094) -.. controls (354.1404,32.9894) and (351.9892,32.2105) .. (350.4492,33.4805) -.. controls (350.0192,33.8205) and (349.9092,34.4800) .. (349.4492,34.7500) -.. controls (349.3492,36.0600) and (349.5306,36.7609) .. (348.8906,37.4609) -.. controls (347.0706,37.1609) and (346.1994,34.6206) .. (343.6094,35.8906) -.. controls (342.7994,37.4306) and (341.9208,38.8708) .. (341.0508,40.3008) -.. controls (342.0208,40.7708) and (342.6894,40.1692) .. (343.6094,40.4492) -.. controls (345.0794,40.9592) and (346.2294,43.3709) .. (347.6094,43.8809) -.. controls (347.6094,44.9009) and (348.2294,45.0505) .. (348.6094,45.7305) -.. controls (348.9094,46.2205) and (348.9097,46.8491) .. (349.1797,47.2891) -.. controls (349.4497,47.7291) and (349.9897,47.9997) .. (350.1797,48.4297) -.. controls (350.8097,49.8097) and (350.0500,50.4397) .. (349.7500,51.4297) -.. controls (349.4500,52.4197) and (349.5901,53.9209) .. (348.3301,54.1309) -.. controls (345.7701,52.3209) and (344.0306,48.8307) .. (340.6406,48.7207) -.. controls (340.5906,50.8107) and (338.9607,51.3207) .. (338.2207,52.7207) -arc(155.465 \@@_colon 143.237 \@@_colon 20.900) -arc(315.570 \@@_colon 354.748 \@@_colon 3.550) -.. controls (341.3902,59.5309) and (340.1302,60.0602) .. (339.9102,60.9902) -.. controls (339.6202,62.3602) and (340.5092,63.1402) .. (341.1992,64.4102) -.. controls (342.5492,64.1602) and (343.7598,64.9908) .. (344.7598,65.5508) -.. controls (345.4598,65.4008) and (346.3804,65.6104) .. (346.9004,65.4004) -.. controls (348.0004,64.9704) and (350.0599,61.4004) .. (350.1699,60.4004) -.. controls (350.3699,58.7604) and (349.0809,55.1596) .. (351.4609,54.8496) -.. controls (352.1109,54.7596) and (352.5302,55.3502) .. (353.1602,55.4102) -.. controls (355.2302,53.9302) and (356.8998,51.5693) .. (356.0098,48.2793) -.. controls (358.4698,46.1593) and (359.2298,50.8809) .. (360.0098,52.7109) -.. controls (358.3798,55.2509) and (356.8602,57.9304) .. (355.1602,60.4004) -.. controls (356.8602,62.6504) and (358.7291,59.5292) .. (360.2891,58.6992) -.. controls (361.6291,56.6992) and (361.6699,54.1097) .. (363.4199,52.4297) -.. controls (364.0199,52.7097) and (364.4406,53.2509) .. (365.1406,52.7109) -.. controls (365.4806,53.6709) and (366.8505,53.5098) .. (367.5605,53.8398) -.. controls (368.2706,54.1698) and (368.4295,54.7109) .. (369.2695,54.7109) -.. controls (370.9395,54.7109) and (372.1105,52.8209) .. (373.8105,52.7109) -.. controls (375.2206,53.9709) and (377.5592,55.3101) .. (376.9492,57.8301) -.. controls (376.6092,59.3101) and (373.6797,61.0201) .. (371.6797,61.8301) -arc(256.020 \@@_colon 245.182 \@@_colon 15.940) -.. controls (367.9298,63.4401) and (367.1999,64.7200) .. (366.4199,65.2500) -.. controls (364.9099,66.2400) and (362.7693,66.9203) .. (361.2793,67.8203) -.. controls (359.7893,68.7203) and (358.7593,69.9495) .. (357.2793,70.5195) -arc(247.090 \@@_colon 239.780 \@@_colon 14.900) -.. controls (355.1501,71.5891) and (354.6191,71.5908) .. (354.2891,71.8008) -.. controls (353.1791,72.5508) and (352.3493,73.8105) .. (351.0293,74.2305) -.. controls (347.9293,74.5005) and (345.9900,76.6900) .. (343.7500,78.5000) -.. controls (344.1900,79.8600) and (345.5898,80.2908) .. (346.5898,81.0508) -.. controls (349.7498,80.2108) and (352.6604,81.8409) .. (355.1504,80.2109) -.. controls (355.4604,79.9009) and (355.5394,79.3503) .. (355.8594,79.0703) -.. controls (359.8694,76.1503) and (363.2707,72.6209) .. (366.9707,69.3809) -.. controls (369.5207,67.8809) and (370.9707,65.2500) .. (373.9707,64.2500) -.. controls (374.2407,62.0600) and (379.4202,59.6291) .. (380.2402,62.5391) -.. controls (380.9402,65.1091) and (377.3906,69.9191) .. (376.3906,71.3691) -.. controls (374.9706,73.4091) and (373.7407,75.6605) .. (371.9707,77.0605) -.. controls (370.7407,78.0605) and (368.5898,78.5606) .. (367.8398,79.6406) -.. controls (369.7398,81.3306) and (372.7908,84.0795) .. (369.5508,86.1895) -arc(8.774 \@@_colon 48.527 \@@_colon 12.670) -.. controls (364.9999,93.8400) and (364.4809,94.2895) .. (364.1309,94.0195) -.. controls (360.8709,95.9395) and (358.1591,98.8709) .. (354.8691,100.4609) -arc(244.046 \@@_colon 230.212 \@@_colon 16.210) -.. controls (350.8898,104.0401) and (349.4403,104.7994) .. (348.3203,105.8594) -.. controls (348.0803,106.5694) and (347.5097,106.9303) .. (347.1797,107.5703) -arc(235.573 \@@_colon 227.661 \@@_colon 63.150) -.. controls (339.6296,112.9005) and (339.3109,113.4697) .. (338.6309,113.6797) -.. controls (337.0209,114.2397) and (334.6894,114.0907) .. (333.3594,114.9707) -arc(224.739 \@@_colon 199.301 \@@_colon 9.160) -.. controls (331.0307,120.3606) and (333.7509,121.5006) .. (335.6309,121.8106) -.. controls (337.7009,122.1505) and (339.7792,122.5695) .. (341.1992,122.9394) -.. controls (342.4292,122.2794) and (343.5998,123.0308) .. (344.7598,122.8008) -arc(75.983 \@@_colon 53.544 \@@_colon 13.750) -.. controls (350.5396,119.6895) and (351.2191,117.5995) .. (351.8691,116.6894) -arc(215.688 \@@_colon 239.017 \@@_colon 30.700) -arc(203.689 \@@_colon 236.904 \@@_colon 26.400) -.. controls (374.7398,99.7995) and (370.7794,105.7403) .. (372.6094,110.3203) -.. controls (372.7994,110.7403) and (372.6094,110.7003) .. (372.6094,111.3203) -.. controls (373.3594,113.2003) and (375.4202,114.4903) .. (374.7402,117.3203) -.. controls (372.7302,118.3203) and (369.9694,118.0309) .. (368.1895,119.4609) -.. controls (364.8795,119.9409) and (359.9894,118.4802) .. (357.1895,120.7402) -.. controls (357.2894,121.3502) and (357.7709,121.5892) .. (357.6309,122.4492) -.. controls (359.8909,123.9392) and (362.1206,124.2592) .. (364.8906,124.4492) -.. controls (365.1706,124.4792) and (365.6106,124.1204) .. (365.8906,124.1504) -.. controls (366.1706,124.1804) and (366.3494,124.5996) .. (366.6094,124.5996) -.. controls (368.2694,124.7896) and (369.6006,123.5996) .. (370.8906,123.5996) -.. controls (373.3006,123.6696) and (375.1108,125.3705) .. (376.3008,127.3106) -arc(107.914 \@@_colon 82.878 \@@_colon 10.540) -.. controls (383.0096,125.6802) and (386.8802,125.0002) .. (387.4102,121.7402) -.. controls (387.9402,118.4802) and (385.4202,117.0608) .. (384.4102,115.0508) -.. controls (383.4002,113.0408) and (383.5198,110.7406) .. (381.8398,109.6406) --- (381.8398,108.2109) -.. controls (381.3698,106.5909) and (379.0000,105.2109) .. (378.0000,103.2109) -.. controls (377.8100,102.8709) and (377.9109,102.4001) .. (377.7109,102.0801) -.. controls (376.8609,100.6801) and (375.4309,100.7009) .. (375.7109,98.3809) -arc(191.463 \@@_colon 217.371 \@@_colon 11.540) -.. controls (379.7796,94.3599) and (381.7805,92.7799) .. (383.9805,92.6699) -.. controls (384.1805,92.6599) and (384.5405,92.9709) .. (384.9805,92.9609) -.. controls (385.4205,92.9509) and (385.5101,92.6099) .. (385.8301,92.6699) -.. controls (386.3201,92.7799) and (386.7598,93.4004) .. (387.2598,93.4004) -arc(68.046 \@@_colon 37.930 \@@_colon 5.470) -.. controls (389.6693,91.5295) and (389.7409,90.8695) .. (389.9609,90.6895) -.. controls (392.3309,88.8495) and (393.5304,83.2001) .. (389.4004,82.5801) -.. controls (387.4804,82.2801) and (386.3398,83.0607) .. (384.2598,82.7207) -.. controls (384.6798,79.9207) and (382.9398,78.7902) .. (380.8398,78.1602) -.. controls (378.9698,77.5902) and (377.4698,77.4502) .. (376.8398,75.7402) -.. controls (378.2198,71.7402) and (381.6998,69.9102) .. (384.8398,67.7402) -.. controls (388.4198,67.3602) and (390.1999,64.0293) .. (392.6699,62.0293) -arc(206.829 \@@_colon 214.926 \@@_colon 55.200) -.. controls (397.3599,54.2798) and (398.3592,53.5000) .. (398.9492,52.5000) -.. controls (399.3092,51.8800) and (399.3808,51.1000) .. (399.8008,50.5000) -.. controls (400.3608,49.6700) and (401.4498,49.2495) .. (401.0898,47.9395) -.. controls (400.4898,46.8595) and (398.9706,46.6805) .. (397.8105,46.2305) -.. controls (397.2405,46.0105) and (396.8202,45.5098) .. (396.2402,45.5098) -.. controls (395.9002,45.4998) and (395.2399,45.9492) .. (394.6699,45.9492) -.. controls (394.0999,45.9492) and (393.5396,45.8792) .. (393.0996,45.9492) -.. controls (390.0296,46.4192) and (389.8398,50.4205) .. (387.8398,52.0605) -.. controls (386.3898,51.8805) and (385.1309,53.1992) .. (384.1309,52.1992) -.. controls (383.5409,50.4292) and (384.5392,49.0992) .. (384.6992,47.1992) -.. controls (386.2892,44.0192) and (386.9805,40.4500) .. (388.9805,37.5000) -.. controls (389.8205,36.2400) and (391.2203,35.4196) .. (391.8203,34.0996) -.. controls (392.1603,33.3096) and (392.1791,32.5305) .. (392.5391,31.8105) -.. controls (393.9791,28.8605) and (396.2396,26.4291) .. (397.0996,23.5391) -.. controls (398.7996,22.4691) and (398.5108,19.8000) .. (399.8008,18.0000) -.. controls (400.4008,17.1400) and (401.5904,16.5609) .. (401.6504,15.7109) -.. controls (401.7904,13.7609) and (399.3501,13.5295) .. (399.0801,11.4395) -.. controls (399.2001,10.8695) and (399.5904,10.5291) .. (399.6504,9.8691) -.. controls (399.0804,8.9091) and (397.8203,8.6702) .. (396.8203,8.1602) -.. controls (394.8303,10.0402) and (390.6596,9.7202) .. (390.0996,12.9902) -.. controls (390.6796,14.0902) and (391.6497,15.0795) .. (391.6797,16.2695) -.. controls (391.7097,17.4595) and (390.7606,18.7102) .. (390.3906,19.9902) -.. controls (390.2506,20.5202) and (390.3900,21.1199) .. (390.2500,21.6699) -.. controls (389.7600,23.5899) and (388.6895,25.1094) .. (388.6895,27.1094) -.. controls (386.9995,30.5994) and (386.3502,35.1291) .. (383.4102,37.3691) -.. controls (383.2302,37.0391) and (382.7103,37.0304) .. (382.5703,36.6504) -.. controls (382.5303,33.8404) and (382.1906,30.7507) .. (380.1406,28.9707) -.. controls (376.9806,29.3707) and (373.3795,28.0791) .. (372.4395,31.3691) -.. controls (373.6594,32.1491) and (375.1798,32.3895) .. (376.0098,33.5195) -.. controls (376.4698,34.1495) and (376.4802,34.9795) .. (377.1602,35.5195) -.. controls (377.2602,37.2795) and (376.9794,40.4704) .. (378.4395,41.6504) -.. controls (384.5695,41.5504) and (379.9902,46.7698) .. (379.9902,50.3398) -.. controls (379.3302,50.8498) and (378.8394,51.6500) .. (377.8594,51.7500) -.. controls (376.8794,51.8500) and (374.8795,50.8200) .. (374.0195,50.7500) -.. controls (373.4395,50.7100) and (372.7108,50.9706) .. (372.3008,50.8906) -.. controls (371.0308,50.6306) and (369.6408,48.5301) .. (369.3008,47.3301) -.. controls (368.1008,43.1001) and (369.4502,39.1304) .. (372.9902,37.6504) -.. controls (373.8402,33.6004) and (369.4505,32.7606) .. (367.7305,30.3906) -arc(191.045 \@@_colon 221.040 \@@_colon 16.280) -.. controls (371.7897,21.5303) and (372.1393,20.1092) .. (373.2793,19.6992) -.. controls (374.4193,19.2892) and (375.9599,19.8699) .. (377.4199,19.4199) -.. controls (378.2699,18.9899) and (378.5395,18.1809) .. (379.2695,17.7109) -.. controls (379.6595,17.4609) and (380.1391,17.4691) .. (380.5391,17.1191) -.. controls (382.3891,15.5991) and (381.3194,12.5800) .. (382.1094,10.0000) -arc(135.096 \@@_colon 147.145 \@@_colon 15.180) -arc(92.437 \@@_colon 150.603 \@@_colon 3.620) -.. controls (376.2694,5.6997) and (376.0506,5.1209) .. (375.3906,4.9609) -.. controls (374.3906,3.5809) and (372.7006,2.9609) .. (371.3906,1.9609) --- cycle(252.4707,15.8203) -.. controls (248.9107,15.8403) and (247.1393,18.4398) .. (245.7793,21.0898) -arc(171.657 \@@_colon 132.544 \@@_colon 4.090) -.. controls (249.1606,30.9998) and (246.7798,38.7395) .. (247.3398,47.4395) -.. controls (246.1398,51.0495) and (248.5293,55.6705) .. (245.7793,57.5605) -.. controls (242.6193,57.7305) and (240.9905,59.7594) .. (238.2305,60.1094) -.. controls (236.1705,60.3894) and (234.5195,61.7808) .. (232.5195,62.5508) -.. controls (231.3795,62.9708) and (230.2809,63.0802) .. (229.3809,63.4102) -.. controls (228.8609,63.6002) and (228.5009,64.0598) .. (227.9609,64.2598) -arc(257.275 \@@_colon 249.581 \@@_colon 18.830) -.. controls (224.9191,65.3105) and (224.5001,66.0000) .. (223.8301,66.2500) -arc(74.234 \@@_colon 105.766 \@@_colon 7.580) -.. controls (218.8109,67.5900) and (216.7106,67.7306) .. (216.1406,69.3906) -.. controls (218.6506,71.9306) and (220.7998,74.8106) .. (224.2598,76.3906) -.. controls (225.2198,77.4006) and (225.8597,78.7495) .. (227.6797,78.9395) -.. controls (230.6397,76.0595) and (233.2092,72.7897) .. (236.9492,70.6797) -.. controls (237.2292,69.8797) and (237.9205,69.4697) .. (238.2305,68.6797) -.. controls (240.9305,67.9097) and (241.8809,65.3897) .. (244.6309,64.6797) -.. controls (247.1209,66.2997) and (245.1506,70.5801) .. (245.0606,73.0801) -.. controls (242.0805,81.6701) and (236.2103,89.0098) .. (229.8203,95.0098) -.. controls (226.7803,96.7398) and (224.2695,99.2104) .. (221.2695,101.1504) -.. controls (218.9995,102.6604) and (216.3300,103.7404) .. (214.0000,105.1504) -.. controls (213.6500,105.3804) and (213.3800,105.7598) .. (213.0000,106.0098) -.. controls (212.6200,106.2598) and (211.8594,106.1991) .. (211.8594,106.8691) -.. controls (212.4094,107.6691) and (213.5302,107.1504) .. (214.4102,107.1504) -.. controls (215.4102,107.1504) and (216.4902,107.2891) .. (217.4102,107.2891) -.. controls (219.5702,107.2291) and (221.8498,105.5004) .. (224.0898,105.1504) -.. controls (224.3398,105.0204) and (224.3802,104.6898) .. (224.6602,104.5898) -.. controls (231.5602,102.3998) and (236.5092,98.0598) .. (241.1992,93.3398) -arc(101.099 \@@_colon 54.689 \@@_colon 0.910) -arc(48.432 \@@_colon 2.305 \@@_colon 29.790) -arc(28.867 \@@_colon -17.860 \@@_colon 3.800) -.. controls (253.4795,65.8196) and (253.0391,61.3708) .. (255.0391,58.5508) -.. controls (255.8191,58.4908) and (256.0998,57.8992) .. (256.7598,57.6992) -arc(264.269 \@@_colon 288.820 \@@_colon 2.700) -.. controls (261.1504,56.6401) and (264.5104,54.6497) .. (268.1504,53.4297) -.. controls (269.8604,51.8597) and (272.8793,50.8297) .. (275.2793,50.4297) -.. controls (275.9593,49.5997) and (277.4793,49.2793) .. (278.2793,48.2793) -.. controls (280.0893,46.0193) and (278.8192,44.6302) .. (276.6992,43.7402) -.. controls (275.4192,43.1602) and (274.6599,43.4102) .. (273.4199,43.1602) -.. controls (272.4699,42.9802) and (271.4199,42.1308) .. (270.4199,42.3008) -.. controls (272.8299,44.5508) and (268.8402,47.1703) .. (266.1602,48.3203) -.. controls (263.4802,49.4703) and (260.8800,50.7507) .. (259.7500,52.4707) -.. controls (258.0300,53.3407) and (255.2500,53.9004) .. (254.7500,51.9004) -.. controls (254.5300,51.0004) and (255.0499,49.6307) .. (255.1699,48.4707) -.. controls (255.3899,46.4607) and (255.2600,43.2803) .. (255.7500,41.0703) -.. controls (255.8500,40.6203) and (256.2405,40.2697) .. (256.3105,39.9297) -.. controls (256.6506,38.3997) and (256.3699,36.6391) .. (257.1699,35.7891) -.. controls (257.8899,33.2891) and (257.4906,30.9707) .. (258.8906,28.9707) -.. controls (259.7206,27.7207) and (261.2007,26.9803) .. (261.7207,25.8203) -.. controls (262.7707,23.4803) and (260.4491,22.6103) .. (259.8691,20.8203) -arc(118.253 \@@_colon 129.850 \@@_colon 44.190) --- cycle(148.1894,16.0898) -.. controls (147.1495,16.9498) and (145.0709,17.8209) .. (143.6309,17.3809) -.. controls (142.8909,18.2409) and (141.5009,18.7009) .. (141.6309,19.9609) -.. controls (141.8109,21.6609) and (145.9805,21.8902) .. (146.4805,23.6602) -arc(188.554 \@@_colon 97.591 \@@_colon 3.000) -.. controls (152.0208,25.2201) and (155.0605,28.6393) .. (157.7305,27.7793) -arc(65.937 \@@_colon 24.423 \@@_colon 3.100) -.. controls (159.8091,24.7105) and (159.0091,23.7705) .. (158.8691,22.2305) -.. controls (158.8091,21.6405) and (159.4104,20.8909) .. (159.1504,19.9609) -arc(332.060 \@@_colon 307.562 \@@_colon 6.170) -.. controls (155.6009,16.7209) and (151.4596,15.5409) .. (149.5996,16.3809) -.. controls (149.1396,15.9609) and (148.6495,16.3598) .. (148.1894,16.0898) --- cycle(170.8301,23.7695) -.. controls (170.1501,24.0995) and (169.3106,24.3795) .. (168.5606,24.7695) -arc(248.799 \@@_colon 240.431 \@@_colon 20.640) -.. controls (164.6598,26.8405) and (163.8409,28.2105) .. (162.7109,29.0605) -.. controls (162.1509,29.4805) and (161.3309,29.6505) .. (160.7109,30.0605) -.. controls (160.0909,30.4705) and (159.7698,31.0607) .. (159.0098,31.4707) -.. controls (158.2498,31.8807) and (157.5005,32.2194) .. (156.7305,32.6094) -.. controls (155.1405,33.4194) and (153.0596,33.9004) .. (151.5996,34.9004) -.. controls (151.2396,35.1804) and (151.1202,35.5500) .. (150.7402,35.7500) -arc(60.417 \@@_colon 69.509 \@@_colon 12.810) -arc(250.488 \@@_colon 229.727 \@@_colon 58.800) -arc(251.719 \@@_colon 235.151 \@@_colon 7.760) -arc(263.520 \@@_colon 249.311 \@@_colon 9.480) -.. controls (124.1200,49.6907) and (120.5191,51.4693) .. (120.1191,53.2793) -.. controls (120.8091,54.4093) and (122.3105,54.2009) .. (123.2305,54.9609) -.. controls (123.6105,55.2809) and (123.6598,55.8194) .. (124.0898,56.1094) -.. controls (127.1098,58.1094) and (130.6092,57.1094) .. (134.1992,57.1094) -.. controls (136.0392,57.1194) and (136.4891,57.1095) .. (137.6191,56.2695) -.. controls (138.5891,53.8495) and (140.5903,52.7505) .. (142.3203,50.9805) -.. controls (143.8703,49.4205) and (144.9698,47.6293) .. (146.5898,47.2793) -.. controls (149.0998,44.8193) and (151.9597,42.6793) .. (154.4297,40.2793) -arc(222.870 \@@_colon 231.325 \@@_colon 23.800) -.. controls (158.2200,37.0606) and (159.8500,36.9806) .. (161.0000,35.8906) -.. controls (163.0000,36.3206) and (164.4600,35.2908) .. (166.0000,35.0508) -arc(83.049 \@@_colon 54.600 \@@_colon 10.540) -.. controls (171.3801,32.7697) and (171.7100,31.9609) .. (172.2500,31.4609) -.. controls (173.7100,30.1809) and (175.6593,28.7691) .. (175.5293,26.6191) -.. controls (174.4193,25.2091) and (172.5001,24.6095) .. (170.8301,23.7695) --- cycle(352.5840,35.9531) -.. controls (353.3282,35.9384) and (354.1504,36.0379) .. (354.9004,36.1504) -.. controls (355.6804,37.1404) and (356.8298,36.9609) .. (357.7598,37.8809) -.. controls (358.1398,40.7309) and (355.8398,42.0109) .. (354.7598,43.8809) -.. controls (354.2698,44.1309) and (354.0705,43.8594) .. (353.4805,43.8594) -.. controls (352.8505,43.5294) and (353.0791,42.5794) .. (352.6191,41.8594) -.. controls (352.3891,41.4794) and (351.7702,41.2494) .. (351.4902,40.8594) -arc(153.393 \@@_colon 165.352 \@@_colon 17.590) -.. controls (350.3180,36.3172) and (351.3437,35.9777) .. (352.5840,35.9531) --- cycle(361.7559,36.6133) -arc(280.979 \@@_colon 286.909 \@@_colon 17.080) -.. controls (364.8307,39.4191) and (363.3604,42.0098) .. (363.9004,44.5898) -.. controls (363.3404,45.7398) and (361.8998,45.7009) .. (360.3398,45.8809) -.. controls (358.7798,46.0609) and (356.8200,47.1995) .. (356.5000,45.4395) -.. controls (356.3600,44.7595) and (357.3399,43.4395) .. (357.9199,42.4395) -.. controls (359.1589,40.3511) and (359.9589,38.1033) .. (361.7559,36.6133) --- cycle(164.9492,48.3906) -.. controls (163.6556,48.3452) and (162.3045,48.9345) .. (160.9707,49.4707) -.. controls (160.3207,51.5507) and (157.8691,51.7404) .. (156.1191,52.9004) -.. controls (155.5691,53.2504) and (155.0395,53.9492) .. (154.2695,54.4492) -.. controls (153.4995,54.9492) and (152.5492,55.3506) .. (151.6992,55.8906) -.. controls (150.2092,56.8206) and (149.1194,57.8202) .. (147.8594,58.7402) -.. controls (147.2894,59.1002) and (146.8491,59.4494) .. (146.2891,59.8594) -.. controls (144.8691,60.9694) and (142.4391,62.0105) .. (143.8691,63.7305) -.. controls (144.9091,64.2405) and (146.9304,63.8004) .. (148.1504,64.1504) -.. controls (148.3604,63.3604) and (149.3600,63.3800) .. (150.0000,63.0000) -arc(216.176 \@@_colon 222.911 \@@_colon 44.260) -.. controls (154.3005,57.9202) and (155.9904,55.7999) .. (157.1504,55.4199) -.. controls (158.7204,54.9499) and (160.0904,55.6909) .. (160.1504,57.1309) -.. controls (160.2304,58.9409) and (158.1809,60.4004) .. (157.4609,61.4004) -arc(11.563 \@@_colon 62.904 \@@_colon 5.190) -.. controls (153.6202,68.0905) and (150.2393,69.2205) .. (151.0293,73.8105) -.. controls (152.2993,75.9005) and (155.7408,74.8802) .. (158.3008,74.6602) -.. controls (159.5708,72.9502) and (162.2297,72.6992) .. (163.4297,70.9492) -arc(123.386 \@@_colon 80.188 \@@_colon 1.000) -.. controls (164.6304,70.6696) and (164.7109,69.8509) .. (165.7109,69.9609) -arc(35.397 \@@_colon -17.992 \@@_colon 6.250) -.. controls (165.1506,63.3502) and (163.4004,66.0202) .. (162.1504,64.4102) -arc(189.173 \@@_colon 255.393 \@@_colon 6.000) -.. controls (168.4306,57.2005) and (171.8398,55.3900) .. (171.8398,52.0000) -.. controls (171.3198,51.2800) and (170.2391,51.6501) .. (169.3691,51.3301) -.. controls (168.3591,50.9101) and (167.7999,49.6002) .. (166.6699,48.9102) -.. controls (166.1137,48.5633) and (165.5372,48.4113) .. (164.9492,48.3906) --- cycle(57.1719,49.9844) -.. controls (57.8589,49.8459) and (58.7156,51.1491) .. (58.8906,51.2891) -.. controls (59.4506,53.3891) and (58.5996,55.6992) .. (58.5996,57.6992) -.. controls (58.6096,58.0392) and (58.8906,58.3292) .. (58.8906,58.6992) -.. controls (58.6106,61.3592) and (57.6694,63.5894) .. (57.6094,66.1094) -.. controls (57.5694,67.1194) and (58.0293,68.1305) .. (58.0293,69.2305) -.. controls (58.0893,71.0505) and (57.4393,72.3605) .. (57.0293,74.2305) -.. controls (56.6193,76.1005) and (57.0293,77.9102) .. (57.0293,79.9102) -.. controls (57.1193,82.9102) and (56.3801,85.9102) .. (56.3301,88.9102) -.. controls (56.3101,89.8302) and (56.5192,90.8400) .. (56.4492,91.7500) -.. controls (56.3392,94.5900) and (56.4492,98.8704) .. (56.4492,102.1504) -.. controls (56.0592,102.5004) and (55.8392,102.9791) .. (55.4492,103.2891) -arc(83.248 \@@_colon 98.730 \@@_colon 29.810) -.. controls (46.9999,101.0804) and (49.4900,97.0201) .. (47.0000,95.3301) -arc(91.935 \@@_colon 123.389 \@@_colon 6.080) -.. controls (43.4594,93.0301) and (44.6600,92.3301) .. (45.0000,91.3301) -.. controls (45.0000,89.0001) and (42.8405,87.4298) .. (43.0605,85.0898) -.. controls (43.2205,83.2198) and (45.0605,81.0898) .. (46.0605,79.0898) -.. controls (47.1005,76.9198) and (47.1991,74.5103) .. (48.6191,72.8203) -.. controls (48.9691,72.4103) and (49.5506,72.1903) .. (49.8906,71.8203) -.. controls (50.7206,70.9503) and (50.9806,69.7104) .. (51.8906,69.4004) -.. controls (51.8106,67.4104) and (52.1895,66.7195) .. (51.1895,65.2695) -.. controls (50.1895,63.8195) and (47.3299,63.8195) .. (47.9199,61.2695) -arc(199.079 \@@_colon 224.335 \@@_colon 11.100) -.. controls (52.3707,54.8406) and (55.0906,51.8806) .. (56.8906,50.1406) -.. controls (56.9794,50.0544) and (57.0737,50.0042) .. (57.1719,49.9844) --- cycle(136.8418,63.2129) -.. controls (134.6117,63.2434) and (133.0770,64.7569) .. (131.9394,66.0000) -.. controls (130.9994,68.5500) and (133.0009,70.5305) .. (133.2109,72.9805) -.. controls (133.2709,73.7305) and (132.8603,74.4595) .. (133.0703,75.2695) -.. controls (133.4703,76.8095) and (137.5699,80.4095) .. (138.9199,80.6895) -.. controls (140.6399,81.0295) and (141.2794,80.0606) .. (142.1894,79.3906) -arc(61.845 \@@_colon 47.408 \@@_colon 9.760) -arc(25.076 \@@_colon -1.466 \@@_colon 9.170) -.. controls (144.8508,70.3796) and (141.9500,64.4492) .. (138.5000,63.4492) -.. controls (137.9075,63.2767) and (137.3564,63.2059) .. (136.8418,63.2129) --- cycle(258.0156,63.7500) -.. controls (257.8393,63.7536) and (257.6511,63.7737) .. (257.4492,63.8105) -.. controls (258.3292,65.7305) and (258.0099,67.9906) .. (259.1699,69.6406) -.. controls (260.3599,76.0706) and (263.9395,81.7500) .. (267.4395,86.7500) -.. controls (267.8494,88.9100) and (269.4009,89.8700) .. (270.7109,91.7500) -arc(147.297 \@@_colon 130.656 \@@_colon 30.000) -.. controls (278.5302,100.0908) and (279.8409,101.2294) .. (282.9609,100.8594) -.. controls (284.7209,99.8094) and (286.9291,100.1602) .. (288.7891,99.1602) -.. controls (290.2291,98.3702) and (291.3698,97.0992) .. (292.5098,96.4492) -.. controls (294.9498,95.0792) and (298.6498,95.4492) .. (299.3398,92.4492) -.. controls (298.6398,91.8392) and (297.5897,91.5609) .. (296.9297,90.8809) -.. controls (293.4497,90.7009) and (291.0991,88.9396) .. (287.5391,89.5996) -.. controls (285.6191,88.8996) and (284.5709,87.1699) .. (282.1309,87.1699) -.. controls (278.8709,84.6599) and (275.1909,82.6004) .. (272.1309,79.9004) -.. controls (272.1909,79.5604) and (271.8702,79.6009) .. (271.9902,79.2109) -.. controls (269.4402,77.0509) and (267.8795,73.9206) .. (265.4395,71.6406) --- (265.4395,71.0801) -arc(128.888 \@@_colon 149.376 \@@_colon 11.640) -.. controls (260.5930,67.1711) and (260.6601,63.6954) .. (258.0156,63.7500) --- cycle(39.8945,68.5820) -.. controls (40.9158,68.5211) and (42.0500,69.0355) .. (42.5000,69.8105) -.. controls (41.9000,71.7105) and (42.0200,73.9395) .. (41.5000,75.9395) -.. controls (41.3400,76.5495) and (40.8306,77.0406) .. (40.6406,77.6406) -.. controls (40.2806,78.7806) and (40.5694,80.2498) .. (40.3594,81.3398) -arc(16.262 \@@_colon 38.997 \@@_colon 8.590) -.. controls (37.7891,86.0298) and (39.1091,91.2694) .. (36.7891,91.6094) -.. controls (35.5091,91.7494) and (34.4691,90.3700) .. (33.7891,89.7500) -.. controls (33.1491,86.4200) and (35.2891,83.2708) .. (33.3691,81.0508) -arc(180.810 \@@_colon 190.420 \@@_colon 25.620) -.. controls (33.9091,76.3893) and (34.2502,76.4395) .. (34.4902,75.9395) -.. controls (34.7302,75.4395) and (34.5691,74.8098) .. (34.7891,74.5098) -arc(225.369 \@@_colon 252.287 \@@_colon 5.350) -.. controls (37.0099,71.9607) and (38.3496,71.1509) .. (38.3496,69.3809) -.. controls (38.7096,68.8634) and (39.2818,68.6186) .. (39.8945,68.5820) --- cycle(151.8809,78.5000) -.. controls (149.8009,78.8800) and (149.1001,80.6598) .. (148.3301,82.3398) -arc(-27.700 \@@_colon 27.700 \@@_colon 2.000) -.. controls (149.6401,86.7592) and (148.4701,91.6309) .. (145.3301,90.4609) -.. controls (145.1401,90.7009) and (144.7105,90.6906) .. (144.4805,90.8906) -.. controls (142.0705,90.8206) and (139.7191,92.7499) .. (137.7891,93.1699) -arc(3.044 \@@_colon 64.518 \@@_colon 1.000) -.. controls (136.1607,94.1195) and (135.5004,95.0109) .. (134.6504,95.4609) -.. controls (134.1804,95.7109) and (133.7594,95.5391) .. (133.3594,95.8691) -arc(46.744 \@@_colon 70.650 \@@_colon 13.250) -.. controls (127.2699,99.1907) and (126.1094,99.1191) .. (125.1094,100.2891) -.. controls (123.5794,101.1091) and (122.1398,100.8698) .. (120.8398,101.0098) -arc(266.296 \@@_colon 204.289 \@@_colon 6.070) -.. controls (117.1292,106.3303) and (116.9395,108.9999) .. (117.2695,111.6699) -.. controls (117.4095,112.8099) and (117.6894,115.2497) .. (118.6894,115.9297) -.. controls (119.5294,116.5097) and (120.9796,116.3797) .. (122.0996,116.9297) -.. controls (122.5996,117.1797) and (122.7509,117.7091) .. (123.3809,117.7891) -.. controls (124.6709,117.9391) and (125.5995,116.7891) .. (126.5195,116.7891) -.. controls (128.4795,113.4391) and (132.2497,110.6495) .. (133.9297,106.5195) -.. controls (134.7097,106.0295) and (135.0997,105.1197) .. (135.9297,104.6797) -.. controls (136.4997,102.2897) and (138.0400,100.9002) .. (139.5000,99.4102) -.. controls (142.7600,101.4802) and (143.9198,105.7200) .. (146.7598,108.2500) -arc(160.326 \@@_colon 153.452 \@@_colon 54.410) -.. controls (150.0403,114.2500) and (150.3803,115.1894) .. (151.3203,115.1094) -.. controls (153.5403,114.9194) and (154.9896,110.0698) .. (156.5996,108.8398) -.. controls (156.5996,104.2898) and (155.5396,99.4796) .. (155.5996,94.5996) -.. controls (155.6596,88.5996) and (156.3493,82.8107) .. (153.0293,79.2207) -arc(110.470 \@@_colon 133.750 \@@_colon 3.360) --- cycle(330.9375,80.7988) -.. controls (329.4112,80.8982) and (328.1095,82.2984) .. (327.2695,83.4609) -.. controls (327.5895,85.9409) and (329.1495,88.5302) .. (329.2695,91.1602) -.. controls (329.3695,93.5902) and (327.4291,94.9793) .. (327.1191,97.2793) -.. controls (325.5591,98.1793) and (326.0595,100.4293) .. (325.6895,102.2793) -.. controls (325.4694,102.7793) and (324.8398,102.8403) .. (324.8398,103.5703) -.. controls (326.8698,104.2303) and (328.9999,106.4109) .. (331.4199,104.7109) -.. controls (336.0299,105.1009) and (339.1102,102.3098) .. (340.2402,98.0098) -.. controls (340.0802,94.4798) and (340.2402,91.5606) .. (339.2402,87.8906) -.. controls (337.9102,86.5506) and (335.6401,83.6095) .. (333.8301,82.1895) -arc(310.536 \@@_colon 304.568 \@@_colon 15.760) -.. controls (331.9793,80.8770) and (331.4463,80.7657) .. (330.9375,80.7988) --- cycle(162.8594,82.8906) -.. controls (162.7094,82.8906) and (162.6806,83.0508) .. (162.5606,83.0508) -.. controls (160.8605,85.1008) and (162.7594,87.1808) .. (162.8594,89.3008) -.. controls (162.8794,90.0208) and (162.3993,90.4602) .. (162.2793,91.1602) -arc(189.420 \@@_colon 181.814 \@@_colon 21.510) -arc(185.134 \@@_colon 173.375 \@@_colon 56.430) -.. controls (164.0504,105.7405) and (165.0898,108.0998) .. (166.8398,108.2598) -arc(87.056 \@@_colon 51.034 \@@_colon 3.930) -.. controls (170.1094,106.6906) and (170.9494,105.4805) .. (172.1094,104.9805) -.. controls (172.7894,103.1105) and (174.2307,101.2692) .. (173.9707,98.6992) -.. controls (173.7207,96.4492) and (172.3591,94.0598) .. (171.5391,91.5898) -.. controls (169.8591,86.5698) and (167.4094,83.5406) .. (162.8594,82.8906) --- cycle(147.4570,90.8379) -.. controls (147.5999,90.8390) and (147.7473,90.8540) .. (147.9004,90.8809) -.. controls (149.3204,94.8309) and (150.0508,98.8109) .. (148.0508,102.7109) -.. controls (147.3708,102.9109) and (146.9895,103.2991) .. (146.1894,103.1191) -.. controls (145.7095,103.0191) and (145.3695,102.2294) .. (144.7695,101.8594) -.. controls (143.2695,100.9194) and (140.5105,100.9991) .. (141.0606,98.2891) -.. controls (141.1705,97.7191) and (141.9098,97.0491) .. (142.3398,96.2891) -.. controls (142.7698,95.5291) and (143.1109,93.9000) .. (143.6309,93.7500) -.. controls (144.3059,93.5344) and (145.3148,90.8217) .. (147.4570,90.8379) --- cycle; -} -\def \@@_path_name_en{ - (221.5293,0.0000) -arc(270.581 \@@_colon 250.033 \@@_colon 19.480) -arc(250.094 \@@_colon 225.668 \@@_colon 14.760) -arc(225.475 \@@_colon 200.943 \@@_colon 14.570) -arc(201.570 \@@_colon 180.068 \@@_colon 17.850) -arc(181.012 \@@_colon 157.939 \@@_colon 17.110) -arc(157.482 \@@_colon 132.803 \@@_colon 14.000) -arc(132.487 \@@_colon 108.931 \@@_colon 14.390) -arc(108.957 \@@_colon 89.519 \@@_colon 18.450) -arc(89.268 \@@_colon 73.944 \@@_colon 29.000) -arc(76.581 \@@_colon 61.649 \@@_colon 25.910) -.. controls (234.5006,27.7103) and (234.5000,27.1409) .. (234.5000,26.7109) --- (234.5000,25.0000) --- (234.5000,21.5000) -arc(179.710 \@@_colon 203.038 \@@_colon 3.380) -arc(206.464 \@@_colon 256.240 \@@_colon 1.750) -arc(251.011 \@@_colon 259.235 \@@_colon 9.230) -.. controls (237.5392,18.8404) and (237.9291,18.7900) .. (238.3691,18.7500) --- (238.3691,17.0898) --- (222.6797,17.0898) --- (222.6797,18.7500) -.. controls (223.1097,18.8100) and (223.6393,18.8993) .. (224.2793,19.0293) -arc(279.892 \@@_colon 294.146 \@@_colon 6.750) -arc(290.378 \@@_colon 328.246 \@@_colon 2.190) -arc(-26.528 \@@_colon 2.114 \@@_colon 2.670) --- (227.2598,27.8105) -arc(49.521 \@@_colon 70.544 \@@_colon 7.180) -arc(69.985 \@@_colon 90.905 \@@_colon 9.300) -arc(89.172 \@@_colon 153.594 \@@_colon 6.790) -.. controls (214.0271,23.3968) and (213.3008,19.9174) .. (213.3008,15.4707) -.. controls (213.3008,11.2907) and (214.0395,8.0027) .. (215.5195,5.6094) -arc(209.219 \@@_colon 271.647 \@@_colon 7.000) -arc(268.556 \@@_colon 317.220 \@@_colon 7.520) -arc(320.224 \@@_colon 344.486 \@@_colon 19.850) --- (233.2793,11.8301) --- (233.0898,0.8301) --- (231.2402,0.8301) --- (229.9199,2.0000) -arc(295.868 \@@_colon 285.305 \@@_colon 21.000) -arc(285.870 \@@_colon 269.424 \@@_colon 16.830) --- cycle(475.7305,0.0000) -arc(270.697 \@@_colon 251.639 \@@_colon 14.370) -arc(251.783 \@@_colon 229.971 \@@_colon 10.860) -arc(229.227 \@@_colon 205.581 \@@_colon 9.000) -arc(205.450 \@@_colon 180.053 \@@_colon 7.930) -arc(180.499 \@@_colon 146.816 \@@_colon 9.080) -arc(145.151 \@@_colon 109.774 \@@_colon 9.390) -.. controls (471.3195,17.9101) and (472.2598,18.2501) .. (473.2598,18.5801) --- (476.5508,19.6504) -arc(285.313 \@@_colon 309.637 \@@_colon 10.700) -arc(-48.514 \@@_colon 1.380 \@@_colon 3.880) -arc(-1.392 \@@_colon 48.031 \@@_colon 4.650) -arc(50.897 \@@_colon 93.859 \@@_colon 6.360) -arc(88.705 \@@_colon 117.936 \@@_colon 7.660) -arc(119.475 \@@_colon 138.118 \@@_colon 11.480) -arc(137.466 \@@_colon 151.124 \@@_colon 16.000) -arc(150.594 \@@_colon 158.234 \@@_colon 27.630) --- (463.5801,20.0801) --- (463.8496,31.0000) --- (465.6602,31.0000) --- (467.1309,29.5391) -arc(118.597 \@@_colon 105.186 \@@_colon 18.730) -arc(105.699 \@@_colon 89.522 \@@_colon 18.500) -arc(90.914 \@@_colon 73.005 \@@_colon 17.000) -arc(72.518 \@@_colon 52.080 \@@_colon 12.540) -arc(51.921 \@@_colon 26.084 \@@_colon 8.780) -arc(26.070 \@@_colon -0.869 \@@_colon 8.360) -arc(2.068 \@@_colon -36.210 \@@_colon 8.310) -arc(320.908 \@@_colon 289.261 \@@_colon 10.530) -.. controls (481.6975,13.3828) and (480.7273,13.0495) .. (479.6406,12.6895) --- (476.4199,11.6309) -arc(105.331 \@@_colon 128.501 \@@_colon 11.000) -arc(131.683 \@@_colon 182.443 \@@_colon 3.800) -arc(179.222 \@@_colon 229.519 \@@_colon 4.160) -arc(229.307 \@@_colon 272.432 \@@_colon 5.400) -arc(268.599 \@@_colon 297.124 \@@_colon 6.660) -arc(299.057 \@@_colon 320.545 \@@_colon 8.380) -arc(321.059 \@@_colon 334.542 \@@_colon 14.550) -arc(333.277 \@@_colon 339.116 \@@_colon 36.480) --- (487.1699,11.1309) --- (487.0000,0.8301) --- (485.1797,0.8301) --- (483.8809,2.1094) -arc(297.794 \@@_colon 286.656 \@@_colon 19.210) -arc(287.442 \@@_colon 269.484 \@@_colon 15.220) --- cycle(53.2891,0.4004) -.. controls (51.2957,5.2271) and (49.4705,9.6375) .. (47.8105,13.6309) --- (42.8691,25.6309) -arc(20.881 \@@_colon 38.335 \@@_colon 6.670) -arc(38.761 \@@_colon 60.374 \@@_colon 5.180) -arc(60.283 \@@_colon 80.165 \@@_colon 4.280) -arc(78.307 \@@_colon 86.213 \@@_colon 11.780) --- (37.3906,31.0000) --- (49.7500,31.0000) --- (49.7500,29.3203) -arc(92.283 \@@_colon 110.449 \@@_colon 11.080) -.. controls (45.6603,28.3109) and (45.3203,27.9207) .. (45.3203,27.4707) -arc(181.789 \@@_colon 189.064 \@@_colon 5.860) -arc(190.751 \@@_colon 200.164 \@@_colon 10.940) -.. controls (46.0791,24.3900) and (46.3291,23.6599) .. (46.6191,22.9199) -.. controls (46.9091,22.1799) and (47.1702,21.4999) .. (47.4102,20.9199) --- (57.8691,20.9199) --- (60.4492,27.1797) -arc(336.951 \@@_colon 347.717 \@@_colon 3.190) -arc(-3.889 \@@_colon 3.889 \@@_colon 2.880) -.. controls (60.6309,28.4606) and (60.0801,28.7409) .. (59.0801,28.9609) -arc(77.409 \@@_colon 85.392 \@@_colon 19.610) --- (56.3809,31.0000) --- (72.8301,31.0000) --- (72.8008,29.3809) -arc(94.575 \@@_colon 102.325 \@@_colon 10.620) -arc(100.987 \@@_colon 119.276 \@@_colon 4.660) -arc(119.410 \@@_colon 139.691 \@@_colon 4.460) -arc(141.138 \@@_colon 156.708 \@@_colon 5.000) -.. controls (66.9867,23.8867) and (65.6534,20.5925) .. (64.0801,16.6191) -.. controls (62.5067,12.6458) and (60.3308,7.2404) .. (57.5508,0.4004) --- (53.2891,0.4004) --- cycle(0.0000,0.8301) --- (0.0000,2.5293) -arc(280.247 \@@_colon 292.703 \@@_colon 10.570) -arc(292.591 \@@_colon 314.300 \@@_colon 5.730) -arc(315.191 \@@_colon 341.778 \@@_colon 4.160) -arc(-18.455 \@@_colon 0.803 \@@_colon 6.050) --- (5.3105,22.2598) -arc(-1.989 \@@_colon 10.468 \@@_colon 19.360) -arc(12.216 \@@_colon 53.370 \@@_colon 3.150) -arc(56.002 \@@_colon 78.776 \@@_colon 4.940) -arc(76.098 \@@_colon 85.152 \@@_colon 12.000) --- (0.1309,31.0000) --- (13.1094,31.0000) --- (13.1094,29.3203) -arc(100.608 \@@_colon 106.937 \@@_colon 18.650) -arc(103.343 \@@_colon 125.453 \@@_colon 5.240) -arc(131.864 \@@_colon 168.827 \@@_colon 3.630) -arc(168.374 \@@_colon 181.580 \@@_colon 17.460) --- (7.7891,7.8496) --- (26.6094,31.1992) --- (30.3906,31.1992) --- (30.3906,9.6504) -arc(178.422 \@@_colon 190.784 \@@_colon 19.100) -arc(188.975 \@@_colon 229.485 \@@_colon 3.310) -arc(233.663 \@@_colon 261.257 \@@_colon 4.540) -.. controls (34.5398,2.6107) and (35.1491,2.4902) .. (35.5391,2.4902) --- (35.5391,0.8301) --- (22.5391,0.8301) --- (22.5391,2.5195) -arc(279.906 \@@_colon 287.110 \@@_colon 16.370) -arc(283.300 \@@_colon 305.496 \@@_colon 5.220) -arc(311.563 \@@_colon 348.623 \@@_colon 3.630) -arc(-12.076 \@@_colon 1.753 \@@_colon 16.680) --- (27.8809,21.2500) --- (11.3691,0.8301) --- (0.0000,0.8301) --- cycle(74.9004,0.8301) --- (74.9004,2.5801) -arc(280.211 \@@_colon 292.601 \@@_colon 10.670) -arc(293.457 \@@_colon 313.832 \@@_colon 5.810) -arc(315.191 \@@_colon 341.778 \@@_colon 4.160) -arc(-19.016 \@@_colon 0.272 \@@_colon 6.050) --- (80.1504,22.2598) -arc(-1.989 \@@_colon 10.468 \@@_colon 19.360) -arc(10.884 \@@_colon 52.116 \@@_colon 3.100) -arc(56.070 \@@_colon 78.442 \@@_colon 5.000) -arc(76.312 \@@_colon 85.334 \@@_colon 12.300) --- (75.0000,31.0000) --- (87.9707,31.0000) --- (87.9707,29.3203) -arc(100.620 \@@_colon 106.925 \@@_colon 18.720) -arc(103.715 \@@_colon 125.081 \@@_colon 5.420) -arc(132.125 \@@_colon 168.482 \@@_colon 3.690) -arc(168.542 \@@_colon 181.745 \@@_colon 17.460) --- (82.6602,7.8496) --- (101.4902,31.1992) --- (105.2793,31.1992) --- (105.2793,9.6504) -arc(178.422 \@@_colon 190.784 \@@_colon 19.100) -arc(188.775 \@@_colon 229.343 \@@_colon 3.300) -arc(233.786 \@@_colon 261.134 \@@_colon 4.580) -.. controls (109.4207,2.6107) and (110.0199,2.4902) .. (110.4199,2.4902) --- (110.4102,0.8301) --- (97.4102,0.8301) --- (97.4102,2.5195) -arc(279.889 \@@_colon 287.128 \@@_colon 16.290) -arc(283.451 \@@_colon 305.116 \@@_colon 5.370) -arc(312.074 \@@_colon 348.533 \@@_colon 3.680) -arc(-12.448 \@@_colon 1.903 \@@_colon 16.080) --- (102.7598,21.2500) --- (86.2402,0.8301) --- (74.9004,0.8301) --- cycle(122.1602,0.8301) --- (122.1602,2.4902) -.. controls (122.5602,2.5502) and (123.0599,2.6395) .. (123.6699,2.7695) -arc(280.529 \@@_colon 293.240 \@@_colon 7.320) -arc(287.202 \@@_colon 329.339 \@@_colon 2.000) -arc(-23.165 \@@_colon 1.894 \@@_colon 3.000) --- (126.5898,22.4707) -arc(-4.214 \@@_colon 33.727 \@@_colon 8.810) -arc(38.627 \@@_colon 92.203 \@@_colon 4.880) -arc(90.163 \@@_colon 115.877 \@@_colon 3.000) -arc(110.689 \@@_colon 151.088 \@@_colon 1.590) --- (119.0000,28.5391) -arc(50.568 \@@_colon 38.375 \@@_colon 14.110) -arc(41.984 \@@_colon 1.312 \@@_colon 3.900) -arc(1.233 \@@_colon -45.826 \@@_colon 3.630) -arc(312.471 \@@_colon 265.852 \@@_colon 4.000) -arc(272.701 \@@_colon 221.378 \@@_colon 3.850) -arc(219.818 \@@_colon 177.869 \@@_colon 4.840) -arc(182.421 \@@_colon 127.815 \@@_colon 6.320) -arc(125.450 \@@_colon 86.902 \@@_colon 10.110) -arc(90.564 \@@_colon 72.402 \@@_colon 13.870) -arc(72.325 \@@_colon 52.268 \@@_colon 11.870) -arc(50.932 \@@_colon 25.604 \@@_colon 9.350) -arc(25.513 \@@_colon -0.618 \@@_colon 9.560) --- (134.1309,5.1992) -arc(178.868 \@@_colon 200.878 \@@_colon 3.640) -arc(206.362 \@@_colon 260.604 \@@_colon 1.530) -.. controls (135.9802,2.8700) and (136.4301,2.7692) .. (136.8301,2.6992) -.. controls (137.2301,2.6292) and (137.7093,2.5602) .. (138.2793,2.4902) --- (138.3008,0.8301) --- (122.1602,0.8301) --- cycle(143.3594,0.8301) --- (143.3594,2.4902) -.. controls (143.8394,2.5502) and (144.4201,2.6508) .. (145.0801,2.8008) -arc(281.485 \@@_colon 290.094 \@@_colon 10.520) -arc(289.234 \@@_colon 330.397 \@@_colon 2.000) -arc(-26.269 \@@_colon 1.286 \@@_colon 2.730) --- (147.9609,26.8301) -arc(-1.938 \@@_colon 26.622 \@@_colon 2.760) -arc(31.995 \@@_colon 71.764 \@@_colon 2.000) -arc(73.678 \@@_colon 88.688 \@@_colon 6.000) --- (143.3594,29.3691) --- (143.3594,31.0000) --- (160.1094,31.0000) --- (160.1094,29.3691) -arc(94.091 \@@_colon 100.334 \@@_colon 16.000) -arc(98.556 \@@_colon 109.587 \@@_colon 7.940) -arc(109.466 \@@_colon 148.422 \@@_colon 2.120) -arc(153.559 \@@_colon 181.402 \@@_colon 2.790) --- (155.5098,5.1895) -arc(179.441 \@@_colon 204.277 \@@_colon 3.160) -arc(208.477 \@@_colon 256.095 \@@_colon 1.740) -arc(253.315 \@@_colon 263.504 \@@_colon 9.250) --- (160.1094,2.4902) --- (160.1094,0.8301) --- (143.3594,0.8301) --- cycle(164.6992,0.8301) --- (164.6992,2.5801) -arc(280.193 \@@_colon 292.592 \@@_colon 10.670) -arc(293.496 \@@_colon 313.854 \@@_colon 5.810) -arc(315.191 \@@_colon 341.778 \@@_colon 4.160) -arc(-19.016 \@@_colon 0.272 \@@_colon 6.050) --- (169.9492,22.2598) -arc(-1.882 \@@_colon 10.041 \@@_colon 20.220) -arc(11.556 \@@_colon 51.444 \@@_colon 3.200) -arc(56.330 \@@_colon 78.404 \@@_colon 5.090) -arc(76.244 \@@_colon 85.401 \@@_colon 12.120) --- (164.8008,31.0000) --- (177.8008,31.0000) --- (177.8008,29.3203) -arc(100.510 \@@_colon 107.035 \@@_colon 18.090) -arc(103.512 \@@_colon 125.055 \@@_colon 5.400) -arc(132.012 \@@_colon 169.017 \@@_colon 3.620) -arc(168.186 \@@_colon 181.823 \@@_colon 16.910) --- (172.4805,7.8496) --- (191.2891,31.1992) --- (195.0801,31.1992) --- (195.0801,9.6504) -arc(178.422 \@@_colon 190.784 \@@_colon 19.100) -arc(188.651 \@@_colon 229.810 \@@_colon 3.260) -arc(233.506 \@@_colon 261.413 \@@_colon 4.490) -.. controls (199.2293,2.6107) and (199.8305,2.4902) .. (200.2305,2.4902) --- (200.2305,0.8301) --- (187.2305,0.8301) --- (187.2305,2.5195) -arc(280.009 \@@_colon 287.008 \@@_colon 16.850) -arc(283.165 \@@_colon 305.175 \@@_colon 5.310) -arc(312.176 \@@_colon 348.009 \@@_colon 3.750) -arc(-12.048 \@@_colon 1.781 \@@_colon 16.680) --- (192.5898,21.2500) --- (176.0703,0.8301) --- (164.6992,0.8301) --- cycle(255.9297,0.8301) --- (255.9297,2.4102) -.. controls (256.2497,2.4502) and (256.7200,2.5306) .. (257.2500,2.6406) -arc(281.017 \@@_colon 295.313 \@@_colon 5.790) -arc(294.826 \@@_colon 330.149 \@@_colon 2.440) -arc(-27.048 \@@_colon 1.394 \@@_colon 2.650) --- (260.0000,20.8203) -arc(182.970 \@@_colon 130.440 \@@_colon 10.000) -.. controls (265.8667,30.8892) and (269.2000,31.8594) .. (273.5000,31.8594) -arc(92.820 \@@_colon 49.887 \@@_colon 12.820) -arc(47.969 \@@_colon -2.292 \@@_colon 10.220) --- (285.7598,9.6191) -arc(178.154 \@@_colon 190.945 \@@_colon 18.680) -arc(188.699 \@@_colon 232.299 \@@_colon 3.000) -arc(237.034 \@@_colon 260.778 \@@_colon 5.210) -.. controls (290.0007,2.6293) and (290.5900,2.4902) .. (291.0000,2.4902) --- (291.0000,0.8301) --- (277.8906,0.8301) --- (277.8906,2.5293) -arc(280.771 \@@_colon 286.779 \@@_colon 18.860) -arc(280.852 \@@_colon 304.104 \@@_colon 5.260) -arc(311.489 \@@_colon 347.841 \@@_colon 3.620) -arc(-12.331 \@@_colon 1.967 \@@_colon 16.420) --- (283.2793,20.0703) -.. controls (283.2793,22.9903) and (282.5797,25.2109) .. (281.1797,26.7109) -arc(48.043 \@@_colon 129.881 \@@_colon 8.810) -.. controls (268.3073,25.5533) and (267.6406,23.3773) .. (267.6406,20.3906) --- (267.6406,5.1895) -arc(178.852 \@@_colon 204.698 \@@_colon 3.060) -arc(206.879 \@@_colon 256.742 \@@_colon 1.630) -arc(250.219 \@@_colon 259.017 \@@_colon 9.600) -arc(260.382 \@@_colon 266.387 \@@_colon 13.270) --- (271.8008,0.8301) --- (255.9297,0.8301) --- cycle(294.3398,0.8301) --- (294.3398,2.5801) -arc(280.357 \@@_colon 292.592 \@@_colon 10.760) -arc(293.240 \@@_colon 314.049 \@@_colon 5.690) -arc(314.649 \@@_colon 342.320 \@@_colon 4.000) -arc(-19.418 \@@_colon 0.675 \@@_colon 5.810) --- (299.5801,22.2598) -arc(-1.855 \@@_colon 10.068 \@@_colon 20.220) -arc(11.522 \@@_colon 51.391 \@@_colon 3.200) -arc(56.140 \@@_colon 78.638 \@@_colon 5.000) -arc(76.244 \@@_colon 85.401 \@@_colon 12.120) --- (294.4297,31.0000) --- (307.4297,31.0000) --- (307.4297,29.3203) -arc(100.510 \@@_colon 107.035 \@@_colon 18.090) -arc(103.343 \@@_colon 125.453 \@@_colon 5.240) -arc(131.542 \@@_colon 169.149 \@@_colon 3.570) -arc(168.158 \@@_colon 181.796 \@@_colon 16.910) --- (302.1094,7.8496) --- (320.9199,31.1992) --- (324.7109,31.1992) --- (324.7109,9.6504) -arc(178.395 \@@_colon 190.757 \@@_colon 19.100) -arc(188.684 \@@_colon 229.861 \@@_colon 3.260) -arc(233.506 \@@_colon 261.413 \@@_colon 4.490) -.. controls (328.8602,2.6107) and (329.4594,2.4902) .. (329.8594,2.4902) --- (329.8594,0.8301) --- (316.8594,0.8301) --- (316.8594,2.5195) -arc(279.906 \@@_colon 287.110 \@@_colon 16.370) -arc(283.300 \@@_colon 305.496 \@@_colon 5.220) -arc(311.875 \@@_colon 348.311 \@@_colon 3.690) -arc(-12.048 \@@_colon 1.780 \@@_colon 16.680) --- (322.1992,21.2500) --- (305.7109,0.8301) --- (294.3398,0.8301) --- cycle(334.2695,0.8301) --- (334.2695,2.4902) -.. controls (334.7595,2.5502) and (335.3300,2.6508) .. (336.0000,2.8008) -arc(281.897 \@@_colon 290.472 \@@_colon 10.310) -arc(289.234 \@@_colon 330.397 \@@_colon 2.000) -arc(-26.180 \@@_colon 1.366 \@@_colon 2.730) --- (338.8398,26.8203) -arc(-2.620 \@@_colon 27.142 \@@_colon 2.650) -arc(31.996 \@@_colon 71.764 \@@_colon 2.000) -arc(73.117 \@@_colon 88.453 \@@_colon 5.850) --- (334.2402,29.3691) --- (334.2402,31.0000) --- (351.0000,31.0000) --- (351.0000,29.3691) -arc(94.202 \@@_colon 100.207 \@@_colon 16.650) -arc(98.556 \@@_colon 109.587 \@@_colon 7.940) -arc(109.841 \@@_colon 148.047 \@@_colon 2.160) -arc(154.075 \@@_colon 181.864 \@@_colon 2.790) --- (346.4102,5.1895) -arc(179.056 \@@_colon 203.855 \@@_colon 3.160) -arc(209.295 \@@_colon 255.179 \@@_colon 1.800) -arc(253.321 \@@_colon 263.661 \@@_colon 9.180) --- (351.0000,2.4902) --- (351.0000,0.8301) --- (334.2695,0.8301) --- cycle(353.5898,0.8301) --- (353.5898,2.4902) -arc(276.711 \@@_colon 285.528 \@@_colon 9.750) -arc(286.892 \@@_colon 300.754 \@@_colon 5.750) -arc(297.637 \@@_colon 317.441 \@@_colon 5.350) -arc(321.925 \@@_colon 336.907 \@@_colon 7.170) -.. controls (359.5936,8.0236) and (361.0432,11.5124) .. (363.0898,16.5391) -.. controls (365.1365,21.5657) and (367.1602,26.5091) .. (369.1602,31.3691) --- (373.4297,31.3691) --- (376.4297,23.9902) -.. controls (377.5163,21.4236) and (378.5163,19.0604) .. (379.4297,16.9004) -.. controls (380.4497,14.5004) and (381.3571,12.3605) .. (382.1504,10.4805) -.. controls (382.9437,8.6005) and (383.5600,7.1695) .. (384.0000,6.1895) -arc(204.065 \@@_colon 217.764 \@@_colon 8.160) -arc(221.037 \@@_colon 240.340 \@@_colon 5.360) -arc(238.741 \@@_colon 252.973 \@@_colon 5.840) -arc(252.868 \@@_colon 265.187 \@@_colon 6.360) --- (389.0703,0.8301) --- (376.8301,0.8301) --- (376.8301,2.4805) -arc(271.761 \@@_colon 289.213 \@@_colon 12.130) -.. controls (381.1192,3.4604) and (381.4492,3.8391) .. (381.4492,4.2891) -arc(3.694 \@@_colon 19.119 \@@_colon 6.770) -.. controls (380.8598,6.8603) and (380.5709,7.6994) .. (380.2109,8.6094) -.. controls (379.4909,10.4794) and (378.6492,12.6403) .. (377.6992,15.0703) -.. controls (376.7525,17.5503) and (375.5591,20.5503) .. (374.1191,24.0703) -.. controls (371.8291,18.2803) and (370.0201,13.9706) .. (368.8301,11.1406) -.. controls (367.6401,8.3106) and (366.8094,6.2695) .. (366.3594,5.0195) -.. controls (366.2594,4.7295) and (366.1406,4.4905) .. (366.1406,4.3105) -arc(163.078 \@@_colon 178.725 \@@_colon 1.860) -.. controls (366.0605,3.5005) and (366.3309,3.2393) .. (366.8809,3.0293) -arc(253.739 \@@_colon 265.191 \@@_colon 15.900) --- (370.0000,0.8301) --- (353.5898,0.8301) --- cycle(392.2598,0.8301) --- (392.2598,2.4902) -.. controls (392.5998,2.5302) and (393.0995,2.6195) .. (393.7695,2.7695) -arc(280.387 \@@_colon 292.720 \@@_colon 7.530) -arc(289.072 \@@_colon 328.681 \@@_colon 2.140) -arc(-23.616 \@@_colon 2.023 \@@_colon 2.890) --- (396.6895,26.7109) -arc(-1.753 \@@_colon 25.504 \@@_colon 2.880) -arc(31.359 \@@_colon 72.001 \@@_colon 2.000) -arc(70.953 \@@_colon 85.591 \@@_colon 5.770) -.. controls (393.2009,29.2892) and (392.6598,29.3691) .. (392.2598,29.3691) --- (392.2598,31.0000) --- (420.5898,31.0000) --- (421.1602,21.6699) --- (419.6094,21.6699) -arc(23.191 \@@_colon 32.039 \@@_colon 23.490) -arc(29.542 \@@_colon 42.190 \@@_colon 17.810) -arc(46.345 \@@_colon 77.480 \@@_colon 2.450) -arc(74.906 \@@_colon 83.378 \@@_colon 11.510) -arc(83.872 \@@_colon 90.630 \@@_colon 15.890) --- (409.1406,29.0898) -arc(89.211 \@@_colon 96.199 \@@_colon 20.710) -arc(95.315 \@@_colon 125.377 \@@_colon 3.000) -arc(128.643 \@@_colon 167.478 \@@_colon 2.160) -arc(168.067 \@@_colon 181.292 \@@_colon 9.420) --- (404.1992,16.3496) --- (407.3105,16.3496) -arc(268.953 \@@_colon 285.559 \@@_colon 7.710) -arc(286.653 \@@_colon 318.394 \@@_colon 3.600) -arc(321.402 \@@_colon 342.104 \@@_colon 5.880) -arc(337.345 \@@_colon 350.250 \@@_colon 10.370) --- (414.4492,21.7891) --- (414.4492,9.1895) --- (412.8301,9.1895) -arc(10.313 \@@_colon 23.343 \@@_colon 9.900) -arc(19.029 \@@_colon 41.017 \@@_colon 5.240) -arc(43.882 \@@_colon 73.399 \@@_colon 4.000) -arc(74.263 \@@_colon 90.789 \@@_colon 7.470) --- (404.1992,14.4102) --- (404.1992,2.8008) --- (408.5898,2.8008) --- (410.4707,2.8008) -arc(270.255 \@@_colon 281.278 \@@_colon 9.310) -arc(286.161 \@@_colon 323.311 \@@_colon 5.730) -arc(317.966 \@@_colon 338.909 \@@_colon 11.200) --- (419.0000,8.5293) --- (419.0000,0.8301) --- (392.2598,0.8301) --- cycle(426.3105,0.8301) --- (426.3105,2.4902) -.. controls (426.6705,2.5502) and (427.1495,2.6395) .. (427.7695,2.7695) -arc(280.726 \@@_colon 291.201 \@@_colon 9.180) -arc(288.310 \@@_colon 329.326 \@@_colon 2.050) -arc(-23.151 \@@_colon 1.720 \@@_colon 3.000) --- (430.7402,26.7109) -arc(-2.357 \@@_colon 26.109 \@@_colon 2.760) -arc(31.225 \@@_colon 71.633 \@@_colon 2.000) -arc(71.739 \@@_colon 85.581 \@@_colon 6.100) --- (426.3105,29.3691) --- (426.3105,31.0000) --- (442.3496,31.0000) --- (442.3496,29.3398) -arc(96.226 \@@_colon 102.208 \@@_colon 14.370) -arc(100.740 \@@_colon 110.281 \@@_colon 7.860) -arc(110.287 \@@_colon 148.336 \@@_colon 2.180) -arc(153.295 \@@_colon 181.611 \@@_colon 2.720) --- (438.2207,17.3809) --- (439.3906,17.3809) -.. controls (441.3906,19.7609) and (443.0573,21.8597) .. (444.3906,23.6797) -.. controls (445.7240,25.4997) and (447.3906,27.9400) .. (449.3906,31.0000) --- (461.0000,31.0000) --- (460.9609,29.3496) -arc(93.993 \@@_colon 99.742 \@@_colon 10.750) -arc(97.045 \@@_colon 105.575 \@@_colon 8.570) -arc(113.063 \@@_colon 139.958 \@@_colon 5.350) -.. controls (455.8406,26.7202) and (455.2798,26.0402) .. (454.8398,25.4902) -.. controls (453.4598,23.7702) and (452.1198,22.0795) .. (450.8398,20.4395) -.. controls (449.5598,18.7995) and (448.4707,17.3496) .. (447.4707,16.0996) -arc(76.584 \@@_colon 46.535 \@@_colon 12.150) -arc(42.126 \@@_colon -2.838 \@@_colon 7.080) -arc(3.058 \@@_colon -60.424 \@@_colon 5.840) -.. controls (449.9209,1.4227) and (447.0433,0.8301) .. (443.2500,0.8301) --- (426.3105,0.8301) --- cycle(494.4609,0.8301) --- (494.4609,2.4902) -.. controls (494.9409,2.5502) and (495.5197,2.6508) .. (496.1797,2.8008) -arc(281.385 \@@_colon 290.388 \@@_colon 10.000) -arc(289.495 \@@_colon 329.630 \@@_colon 2.060) -arc(-25.631 \@@_colon 0.648 \@@_colon 2.860) --- (499.0605,26.8203) -arc(-1.938 \@@_colon 26.622 \@@_colon 2.760) -arc(32.131 \@@_colon 72.134 \@@_colon 2.000) -arc(73.008 \@@_colon 88.539 \@@_colon 5.770) --- (494.4609,29.3691) --- (494.4609,31.0000) --- (511.2109,31.0000) --- (511.2109,29.3691) -arc(94.080 \@@_colon 100.329 \@@_colon 16.000) -arc(98.399 \@@_colon 109.745 \@@_colon 7.720) -arc(109.466 \@@_colon 148.422 \@@_colon 2.120) -arc(153.559 \@@_colon 181.402 \@@_colon 2.790) --- (506.6094,5.1895) -arc(178.843 \@@_colon 205.035 \@@_colon 3.000) -arc(208.456 \@@_colon 256.018 \@@_colon 1.740) -arc(253.096 \@@_colon 263.723 \@@_colon 8.870) --- (511.2109,2.4902) --- (511.2109,0.8301) --- (494.4609,0.8301) --- cycle(515.4199,0.8301) --- (515.4199,9.4707) --- (517.0801,9.4707) -arc(199.917 \@@_colon 214.179 \@@_colon 18.770) -.. controls (520.1692,3.8403) and (521.0609,3.0495) .. (521.8809,2.9395) -.. controls (522.3309,2.8795) and (522.8406,2.8591) .. (523.5606,2.7891) -.. controls (524.2805,2.7191) and (524.7993,2.7207) .. (525.2793,2.7207) --- (526.2793,2.7207) --- (526.2793,26.6406) -arc(-1.763 \@@_colon 24.984 \@@_colon 3.000) -arc(28.954 \@@_colon 71.921 \@@_colon 1.930) -arc(71.684 \@@_colon 86.774 \@@_colon 5.890) --- (521.6602,29.3691) --- (521.6602,31.0000) --- (538.4902,31.0000) --- (538.4902,29.3691) -.. controls (538.0102,29.3191) and (537.4202,29.2201) .. (536.7402,29.0801) -arc(99.232 \@@_colon 109.602 \@@_colon 8.680) -arc(109.481 \@@_colon 151.451 \@@_colon 2.000) -arc(155.749 \@@_colon 180.707 \@@_colon 3.190) --- (533.8496,2.7207) --- (534.8496,2.7207) -.. controls (535.3296,2.7207) and (535.9103,2.7891) .. (536.5703,2.7891) -.. controls (537.2370,2.8291) and (537.7967,2.8795) .. (538.2500,2.9395) -.. controls (539.0700,3.0495) and (539.9297,3.8403) .. (540.9297,5.3203) -arc(325.630 \@@_colon 340.231 \@@_colon 18.340) --- (544.7109,9.4707) --- (544.6894,0.8301) --- (515.4199,0.8301) --- cycle(546.3203,0.8301) --- (546.3203,2.5293) -arc(274.352 \@@_colon 281.866 \@@_colon 11.410) -arc(281.176 \@@_colon 297.713 \@@_colon 5.120) -arc(300.636 \@@_colon 314.444 \@@_colon 7.920) -arc(315.843 \@@_colon 329.083 \@@_colon 10.330) -.. controls (553.0704,7.7793) and (554.0503,9.3894) .. (555.0703,11.1094) -.. controls (556.0903,12.8294) and (557.1502,14.6405) .. (558.2402,16.5605) --- (559.1797,18.1797) -arc(328.634 \@@_colon 337.345 \@@_colon 7.390) -arc(343.002 \@@_colon 357.829 \@@_colon 3.500) --- (559.8398,21.3008) --- (559.8398,26.6309) -arc(-1.565 \@@_colon 25.408 \@@_colon 3.000) -arc(29.461 \@@_colon 70.395 \@@_colon 2.000) -arc(72.291 \@@_colon 86.160 \@@_colon 6.620) -.. controls (556.2002,29.2892) and (555.5992,29.3691) .. (555.1992,29.3691) --- (555.1992,31.0000) --- (572.0293,31.0000) --- (572.0293,29.3691) -arc(95.978 \@@_colon 103.116 \@@_colon 14.000) -arc(99.928 \@@_colon 108.694 \@@_colon 10.340) -arc(110.266 \@@_colon 150.752 \@@_colon 2.090) -arc(154.620 \@@_colon 181.031 \@@_colon 3.000) --- (567.3906,22.1309) -arc(177.823 \@@_colon 191.373 \@@_colon 14.250) -arc(199.682 \@@_colon 214.925 \@@_colon 11.750) -.. controls (570.2798,14.0998) and (571.4004,12.3593) .. (572.4004,10.7793) -.. controls (573.4137,9.1793) and (574.3808,7.7142) .. (575.3008,6.3809) -arc(214.659 \@@_colon 221.527 \@@_colon 18.790) -arc(221.840 \@@_colon 240.673 \@@_colon 6.390) -arc(238.438 \@@_colon 254.119 \@@_colon 4.840) -arc(253.522 \@@_colon 263.919 \@@_colon 7.880) --- (580.9297,0.8301) --- (569.7402,0.8301) --- (569.7402,2.5098) -arc(270.274 \@@_colon 289.118 \@@_colon 8.890) -arc(284.208 \@@_colon 356.060 \@@_colon 1.210) -arc(16.389 \@@_colon 35.409 \@@_colon 10.460) -.. controls (570.9764,8.8992) and (569.1276,11.8806) .. (566.4609,16.1406) -.. controls (565.1109,13.9706) and (564.0394,12.0907) .. (563.1094,10.4707) -.. controls (562.1794,8.8507) and (561.5300,7.6402) .. (561.0000,6.6602) -.. controls (560.4700,5.6802) and (560.1104,4.9602) .. (559.9004,4.4902) -arc(153.033 \@@_colon 170.383 \@@_colon 3.280) -.. controls (559.5898,3.2408) and (559.8699,3.0003) .. (560.4199,2.8203) -arc(257.208 \@@_colon 271.054 \@@_colon 13.390) --- (563.6309,0.8301) --- (546.3203,0.8301) --- cycle(438.3105,2.7695) --- (440.0000,2.7695) -arc(266.417 \@@_colon 305.892 \@@_colon 7.400) -arc(-46.955 \@@_colon 5.118 \@@_colon 5.390) -.. controls (446.4902,10.9534) and (445.9193,12.6829) .. (444.7793,13.7695) -arc(49.023 \@@_colon 93.595 \@@_colon 6.750) --- (438.3105,15.4102) --- (438.3105,2.7695) --- cycle(52.5898,7.9004) --- (57.0000,18.8203) --- (48.2793,18.8203) --- (52.5898,7.9004) --- cycle; -} -\def \@@_path_motto{ - (60.0000,0.0000) -.. controls (58.8800,0.8600) and (59.4102,2.3309) .. (59.1602,3.4609) -.. controls (59.0402,4.0109) and (58.5600,4.5094) .. (58.5000,5.1094) -.. controls (58.0000,9.9994) and (62.8407,13.0006) .. (63.4707,16.6406) -.. controls (61.8407,16.6006) and (61.2598,17.5807) .. (59.8398,17.4707) -.. controls (57.9798,17.3307) and (56.3603,15.6703) .. (54.5703,15.8203) -.. controls (52.4103,16.0003) and (51.7509,17.8007) .. (49.6309,17.4707) -.. controls (48.0909,17.2307) and (46.5099,14.9000) .. (45.1699,15.0000) -.. controls (44.2599,15.0600) and (42.3999,17.2891) .. (42.1699,18.2891) -arc(187.367 \@@_colon 177.169 \@@_colon 24.160) -.. controls (42.1500,25.5101) and (43.5905,27.9998) .. (43.8105,30.8398) -.. controls (44.1405,34.6298) and (43.8804,39.9492) .. (42.6504,43.1992) -arc(21.762 \@@_colon 34.803 \@@_colon 42.850) -.. controls (35.6891,55.1995) and (33.2607,58.8898) .. (29.4707,60.0098) -.. controls (29.4107,62.6198) and (28.5307,65.5698) .. (30.4707,67.0898) -.. controls (32.2207,68.4698) and (35.2606,68.2500) .. (37.3906,68.2500) -.. controls (39.6606,66.5100) and (40.5800,63.5200) .. (42.0000,61.0000) -arc(29.236 \@@_colon 12.516 \@@_colon 44.390) -.. controls (47.4496,45.3195) and (48.6202,41.5105) .. (48.9102,38.2305) -.. controls (49.3402,33.2805) and (48.4503,29.1109) .. (49.0703,25.3809) -.. controls (54.7903,24.6609) and (61.2194,22.2299) .. (67.8594,21.9199) -.. controls (69.2694,22.5899) and (69.7400,25.0891) .. (70.0000,26.3691) -.. controls (67.3100,26.7191) and (63.3397,27.4400) .. (60.1797,28.0000) -.. controls (59.3297,26.9100) and (58.7207,26.0398) .. (56.7207,26.5098) -arc(240.342 \@@_colon 224.877 \@@_colon 13.100) -.. controls (53.2199,29.4304) and (53.3499,30.6491) .. (52.9199,31.7891) -.. controls (52.4899,32.9291) and (51.8299,33.4698) .. (51.9199,34.0898) -.. controls (52.1299,35.2298) and (54.3999,36.1105) .. (54.9199,37.2305) -.. controls (55.6199,38.7705) and (54.8701,39.4105) .. (55.0801,41.2305) -.. controls (57.6701,43.7705) and (56.8994,48.7109) .. (60.3594,50.1309) -.. controls (60.9194,50.3609) and (61.6599,50.1291) .. (62.1699,50.2891) -.. controls (62.8899,50.5291) and (63.3105,51.3691) .. (64.3105,51.1191) -.. controls (65.7605,46.9291) and (64.9102,39.4408) .. (63.4902,35.3008) -arc(226.278 \@@_colon 292.112 \@@_colon 3.240) -.. controls (68.5492,33.5006) and (71.1308,33.3399) .. (73.0508,32.1699) -.. controls (75.9808,35.7099) and (75.9093,40.5695) .. (74.5293,45.0195) -.. controls (74.0393,46.5795) and (73.7109,48.3907) .. (73.2109,49.4707) -.. controls (72.6109,50.7607) and (71.1902,51.1794) .. (70.7402,52.1094) -.. controls (72.4802,52.5394) and (73.3595,56.0605) .. (75.1895,55.7305) -.. controls (76.2295,55.5505) and (76.5101,53.3595) .. (77.3301,52.4395) -.. controls (78.1501,51.5195) and (78.9707,51.5192) .. (79.9707,50.9492) -.. controls (80.2907,50.1992) and (80.8791,49.7806) .. (81.2891,49.1406) -arc(152.633 \@@_colon 141.297 \@@_colon 79.590) -.. controls (90.6094,65.9603) and (94.2794,68.0105) .. (96.6094,70.5605) -.. controls (101.6494,71.0505) and (106.5494,71.9809) .. (111.9394,71.8809) -.. controls (112.2194,70.3809) and (113.7201,69.4698) .. (114.5801,67.7598) -.. controls (115.4401,66.0498) and (114.7301,63.7599) .. (114.5801,61.6699) -.. controls (114.5101,60.7399) and (115.0600,59.5395) .. (113.7500,59.1895) -.. controls (111.1200,61.6095) and (108.6602,58.2795) .. (106.6602,57.1895) -.. controls (105.6802,57.1695) and (104.3891,58.6300) .. (103.0391,58.5000) -.. controls (101.6891,58.3700) and (101.2604,56.3691) .. (100.4004,55.3691) -arc(316.237 \@@_colon 304.151 \@@_colon 13.310) -.. controls (97.8498,53.2805) and (97.1593,53.2204) .. (96.7793,52.9004) -.. controls (96.2393,52.4504) and (96.0309,51.5798) .. (95.4609,51.0898) -.. controls (94.4509,50.2098) and (93.0800,49.7195) .. (92.0000,48.9395) -arc(127.975 \@@_colon 136.649 \@@_colon 33.880) -.. controls (86.4309,43.7302) and (83.9398,41.7904) .. (83.7598,39.4004) -.. controls (83.5498,36.1204) and (86.1098,33.7304) .. (86.7598,31.6504) -.. controls (86.9798,30.9504) and (86.5998,30.2904) .. (87.0898,29.6504) -.. controls (86.0998,28.7304) and (86.5993,27.1294) .. (85.7793,26.3594) -.. controls (84.4293,25.0994) and (82.8402,26.7297) .. (81.1602,27.1797) -.. controls (80.9902,28.6197) and (79.8202,30.4809) .. (79.1602,31.9609) -.. controls (77.4402,30.7609) and (76.6992,28.6895) .. (75.6992,26.6895) -arc(150.585 \@@_colon 177.781 \@@_colon 10.210) -.. controls (77.8006,21.0903) and (81.7106,21.9297) .. (84.3906,19.9297) -.. controls (85.4906,19.0997) and (85.8594,17.8209) .. (86.8594,16.6309) -.. controls (86.2994,14.9709) and (87.1294,12.7794) .. (86.8594,11.3594) -.. controls (84.8294,10.2294) and (83.5996,8.3605) .. (80.5996,8.2305) -.. controls (79.7896,9.0605) and (78.7991,9.2291) .. (78.1191,10.3691) -.. controls (77.2591,11.8391) and (77.6205,13.9302) .. (76.4805,14.9902) -.. controls (75.3405,16.0502) and (73.8195,15.4702) .. (72.1895,15.9902) -.. controls (69.6095,11.7502) and (69.9391,4.6309) .. (64.1191,3.6309) -arc(329.900 \@@_colon 292.889 \@@_colon 8.650) --- cycle(353.2598,2.6992) -.. controls (350.4398,3.0792) and (348.4102,5.6309) .. (347.6602,8.6309) -.. controls (346.1602,9.8009) and (344.7209,11.2197) .. (342.8809,11.9297) -.. controls (342.1009,12.2197) and (341.1502,12.1799) .. (340.4102,12.4199) -.. controls (338.3102,13.1099) and (336.6805,14.9907) .. (334.3105,15.2207) -arc(187.700 \@@_colon 122.301 \@@_colon 4.380) -.. controls (338.5206,19.3798) and (341.0404,19.5297) .. (342.9004,18.6797) -arc(-28.568 \@@_colon 4.754 \@@_colon 5.580) -.. controls (343.5206,24.3505) and (343.5806,28.1691) .. (343.3906,31.0391) -.. controls (343.2206,33.7391) and (343.8505,35.3809) .. (343.5605,37.9609) -.. controls (343.2706,40.5409) and (344.0405,44.1791) .. (343.5605,46.3691) -.. controls (343.4305,46.9391) and (342.9904,47.3296) .. (342.9004,47.8496) -.. controls (341.1804,57.2296) and (343.2102,67.1393) .. (341.7402,76.0293) -.. controls (342.2902,75.3593) and (342.5605,76.6994) .. (343.2305,76.3594) -.. controls (343.1405,76.7694) and (342.5905,76.7194) .. (342.7305,77.3594) -.. controls (344.0305,77.0894) and (343.8505,78.2494) .. (344.7305,78.3594) -.. controls (346.3905,77.3794) and (347.2298,75.5905) .. (349.0098,74.7305) -.. controls (351.5098,69.8205) and (348.1596,63.8299) .. (349.3496,58.4199) -.. controls (355.4196,58.3099) and (362.1309,59.3802) .. (368.1309,59.2402) -.. controls (369.5009,60.5602) and (371.8003,60.9805) .. (374.0703,60.5605) -.. controls (375.6303,59.2105) and (376.6696,57.3394) .. (378.3496,56.1094) -.. controls (378.0096,54.2894) and (380.1996,51.9898) .. (378.3496,50.8398) -.. controls (373.8496,51.7098) and (368.5293,54.0704) .. (362.5293,53.1504) -.. controls (363.8593,51.4204) and (361.1094,49.4891) .. (362.8594,47.8691) -.. controls (364.7894,47.9791) and (366.9909,48.2691) .. (368.4609,48.3691) -arc(272.435 \@@_colon 304.099 \@@_colon 1.930) -arc(57.383 \@@_colon 47.369 \@@_colon 15.470) -.. controls (372.3596,46.4508) and (372.8396,45.6308) .. (373.5996,45.0508) -.. controls (374.2696,43.7508) and (374.4301,42.8300) .. (375.0801,41.7500) -.. controls (374.3601,41.9100) and (374.2199,41.0000) .. (374.4199,40.7500) -arc(60.001 \@@_colon 96.781 \@@_colon 9.060) -.. controls (366.5203,43.0804) and (364.9706,42.4807) .. (362.3906,42.7207) -.. controls (362.5906,40.6107) and (361.9906,39.1894) .. (362.3906,37.6094) -.. controls (364.2806,37.8794) and (366.2901,37.5095) .. (367.8301,37.9395) -.. controls (370.0401,36.6395) and (372.3295,35.4198) .. (372.9395,32.5098) -.. controls (369.9694,31.2198) and (365.8306,33.6699) .. (362.0605,32.6699) -.. controls (362.2505,30.7999) and (361.8206,29.7705) .. (362.3906,28.0605) -.. controls (364.6706,28.2005) and (366.9101,27.4708) .. (368.3301,28.5508) -arc(75.257 \@@_colon 26.799 \@@_colon 12.130) -arc(334.866 \@@_colon 312.874 \@@_colon 5.870) -.. controls (370.7200,21.1205) and (366.2102,23.0091) .. (361.4102,22.1191) -.. controls (360.9202,22.0391) and (360.5698,21.6809) .. (360.0898,21.6309) -.. controls (358.4698,21.4609) and (356.8307,22.1591) .. (355.4707,21.7891) -arc(222.648 \@@_colon 242.478 \@@_colon 18.100) -arc(212.246 \@@_colon 258.188 \@@_colon 8.220) -.. controls (367.2695,12.3398) and (370.2406,11.7501) .. (370.1406,8.0801) -.. controls (366.0006,7.2101) and (360.4601,9.0600) .. (357.5801,7.0000) -.. controls (357.0101,6.5600) and (356.8498,5.6300) .. (356.2598,5.0000) -.. controls (355.2598,3.9800) and (353.9998,3.6992) .. (353.2598,2.6992) --- cycle(215.9961,4.4961) -.. controls (215.1517,4.4622) and (214.3191,4.5801) .. (213.6191,4.8301) -.. controls (212.8191,5.1201) and (211.7504,4.9102) .. (211.1504,5.4902) -.. controls (211.7704,8.7002) and (212.4606,15.2402) .. (211.6406,19.4902) -arc(90.548 \@@_colon 125.986 \@@_colon 3.460) -.. controls (208.2006,14.3901) and (210.4998,8.6401) .. (207.0098,5.8301) -.. controls (203.6398,5.6501) and (199.0394,4.5004) .. (198.1094,7.6504) -arc(185.858 \@@_colon 166.172 \@@_colon 6.740) -.. controls (198.6395,12.2692) and (199.8298,14.8609) .. (199.7598,16.7109) -.. controls (198.5698,16.7109) and (198.2891,15.7109) .. (197.1191,15.7109) -.. controls (197.5491,14.2409) and (195.3408,14.6609) .. (195.8008,13.7109) -.. controls (193.0408,12.4309) and (189.5291,15.3198) .. (189.0391,16.8398) -arc(190.196 \@@_colon 155.554 \@@_colon 6.770) -.. controls (190.6391,23.1698) and (194.2806,24.2792) .. (195.6406,25.9492) -.. controls (191.9906,26.7192) and (187.4996,25.8693) .. (184.0996,25.7793) -.. controls (182.5896,26.7293) and (180.7107,28.5805) .. (181.4707,30.7305) -.. controls (183.5307,32.1705) and (187.4494,30.5304) .. (190.8594,30.4004) -arc(86.581 \@@_colon 70.642 \@@_colon 15.160) -arc(260.612 \@@_colon 269.674 \@@_colon 36.650) -.. controls (200.4300,31.7201) and (197.3700,33.2902) .. (197.7500,36.6602) -.. controls (198.6400,36.9802) and (198.9807,38.1507) .. (200.2207,38.4707) -.. controls (201.6807,38.8607) and (204.1297,37.8291) .. (203.6797,40.2891) -.. controls (201.8697,41.1291) and (198.6798,40.2191) .. (196.7598,40.6191) -.. controls (194.2998,41.1191) and (193.9096,43.7402) .. (196.0996,44.4102) -.. controls (198.2896,45.0802) and (202.5098,43.7601) .. (204.5098,44.0801) -.. controls (205.0698,44.6001) and (204.8699,46.4309) .. (204.6699,47.2109) -.. controls (202.8999,46.4709) and (200.5204,47.4591) .. (198.9004,47.3691) -.. controls (198.2104,47.3391) and (197.7898,46.7509) .. (197.0898,46.8809) -.. controls (195.2798,47.2109) and (195.0091,49.4902) .. (194.6191,51.4902) -.. controls (195.5991,52.9902) and (197.0802,52.1102) .. (198.4102,51.9902) -arc(265.152 \@@_colon 274.848 \@@_colon 40.940) -arc(197.514 \@@_colon 183.150 \@@_colon 7.360) -.. controls (201.5500,54.8208) and (198.6094,53.9591) .. (195.6094,55.1191) -.. controls (192.8094,54.4791) and (187.7691,52.6695) .. (187.3691,56.7695) -arc(188.243 \@@_colon 96.786 \@@_colon 2.640) -.. controls (191.8599,59.8395) and (194.5897,59.0592) .. (196.9297,58.9492) -arc(265.042 \@@_colon 272.144 \@@_colon 55.880) -.. controls (202.0296,63.3593) and (198.4805,68.6604) .. (192.4805,70.1504) -.. controls (190.4805,70.1204) and (188.5305,70.6600) .. (187.4805,69.5000) -.. controls (187.2105,64.0400) and (183.5008,68.6602) .. (181.5508,69.6602) -.. controls (181.5408,71.2402) and (182.3209,72.0102) .. (182.2109,73.6602) -.. controls (183.1209,74.2802) and (184.6198,74.3206) .. (185.3398,75.1406) -.. controls (188.7498,75.2006) and (191.7403,75.6906) .. (194.5703,75.1406) -.. controls (202.1603,73.6506) and (206.5402,66.7306) .. (208.9102,60.1406) -.. controls (210.9902,61.4806) and (213.6602,62.6906) .. (215.6602,64.1406) -.. controls (217.1602,65.2606) and (218.3293,66.9298) .. (219.7793,68.2598) -.. controls (223.2993,71.5098) and (228.2993,73.8798) .. (232.7793,75.5098) -.. controls (233.9193,75.9098) and (234.8693,76.7601) .. (235.7793,76.8301) -.. controls (236.6893,76.9001) and (237.9902,76.1200) .. (238.9102,76.0000) -.. controls (239.2802,75.9500) and (239.6606,76.1699) .. (240.0606,76.1699) -.. controls (241.8305,76.0099) and (244.0001,74.6796) .. (245.8301,74.3496) -arc(81.007 \@@_colon 69.274 \@@_colon 25.000) -.. controls (249.1195,71.0191) and (245.3793,72.4908) .. (243.0293,71.5508) -.. controls (244.2393,70.5508) and (247.4406,71.5508) .. (247.6406,69.5508) -.. controls (246.9106,68.8708) and (246.1898,69.5508) .. (245.3398,69.5508) -.. controls (243.1198,69.5508) and (240.7002,68.5707) .. (238.4102,68.7207) -.. controls (236.7402,68.8307) and (235.5791,69.2707) .. (234.2891,68.7207) -.. controls (232.9991,68.1707) and (232.5600,66.8102) .. (231.0000,66.4102) -.. controls (230.5200,65.9402) and (230.4796,66.7301) .. (229.8496,66.5801) -arc(304.871 \@@_colon 292.929 \@@_colon 34.420) -.. controls (222.5001,63.4691) and (222.0592,62.9492) .. (220.9492,62.9492) -.. controls (217.9592,60.4492) and (213.2005,59.6895) .. (210.7305,56.6895) -.. controls (214.3105,56.9195) and (218.1796,56.3593) .. (222.0996,56.5293) -.. controls (224.3296,56.6193) and (226.5495,57.4296) .. (228.6894,57.3496) -.. controls (231.6795,57.2496) and (236.8896,54.6501) .. (236.5996,51.5801) -.. controls (236.3796,51.4201) and (235.9394,51.4298) .. (235.9394,51.0898) -.. controls (231.9694,52.2898) and (228.0801,51.9902) .. (224.0801,52.4102) -.. controls (219.6101,53.9002) and (215.0804,53.4405) .. (210.4004,53.2305) -.. controls (210.2204,52.5605) and (210.4604,52.3299) .. (210.4004,51.4199) -.. controls (212.1904,51.5299) and (214.3301,50.8598) .. (216.3301,50.7598) -arc(98.462 \@@_colon 90.694 \@@_colon 14.810) -.. controls (220.8001,50.5199) and (221.7192,48.1505) .. (222.4492,45.8105) -.. controls (218.0892,43.2605) and (214.7592,46.0806) .. (210.4492,46.6406) -.. controls (209.6392,45.7006) and (210.5391,45.0199) .. (209.7891,44.1699) -.. controls (212.6091,42.7199) and (217.8300,43.6594) .. (221.0000,41.8594) -.. controls (220.4900,40.7894) and (220.7399,39.6405) .. (220.6699,38.5605) -.. controls (216.7999,37.8405) and (213.9492,40.5207) .. (210.4492,39.7207) -.. controls (210.0892,33.5607) and (223.6792,40.7592) .. (221.6992,32.6992) -.. controls (220.7592,31.0592) and (218.2492,30.2000) .. (218.6992,27.7500) -.. controls (225.1392,26.5800) and (228.8392,28.6401) .. (233.6992,28.0801) -.. controls (236.0792,27.8001) and (239.1109,26.4208) .. (239.9609,23.8008) -.. controls (238.5909,22.8008) and (237.4098,23.6308) .. (235.8398,23.8008) -.. controls (232.9298,24.1408) and (229.9596,22.9506) .. (227.0996,23.1406) -.. controls (224.7996,23.3006) and (222.6797,23.2308) .. (220.6797,23.3008) -.. controls (219.3597,22.0408) and (219.7696,20.3595) .. (219.8496,18.6895) -arc(277.958 \@@_colon 287.822 \@@_colon 34.420) -.. controls (226.1391,18.8798) and (228.4391,18.1992) .. (228.6191,17.1992) -.. controls (228.9391,15.3892) and (229.6495,13.1094) .. (229.9394,11.1094) -.. controls (228.9895,9.6094) and (227.7704,10.4894) .. (225.6504,10.6094) -.. controls (224.8504,10.6594) and (224.0598,10.3192) .. (223.5098,10.4492) -.. controls (222.3898,10.6992) and (221.5891,11.8296) .. (220.8691,12.0996) -.. controls (220.4891,13.9996) and (220.7608,15.5391) .. (219.5508,16.5391) -.. controls (220.5808,15.2191) and (220.0009,12.6192) .. (220.2109,10.4492) -.. controls (220.2509,10.0792) and (220.7109,9.7292) .. (220.7109,9.4492) -.. controls (221.1759,6.0667) and (218.5292,4.5978) .. (215.9961,4.4961) --- cycle(15.6348,4.9082) -.. controls (12.3158,4.8842) and (10.6020,6.8199) .. (8.0801,7.4199) -.. controls (7.3301,9.2099) and (5.4795,9.6791) .. (4.9395,11.3691) -arc(194.003 \@@_colon 165.997 \@@_colon 9.880) -.. controls (5.6595,18.5004) and (8.2905,19.4199) .. (9.0605,21.4199) -.. controls (7.0005,23.7099) and (4.5800,26.4309) .. (0.0000,25.7109) -.. controls (0.2600,28.4309) and (0.8809,30.3305) .. (3.1309,31.3105) -.. controls (6.1609,31.3405) and (9.1294,30.3802) .. (12.3594,29.9902) -.. controls (19.1294,29.1902) and (24.6403,26.7895) .. (30.8203,27.5195) -.. controls (31.1703,25.9695) and (34.5295,25.5404) .. (34.9395,23.9004) -.. controls (35.0095,23.5804) and (34.6794,23.0001) .. (34.6094,22.5801) -.. controls (34.3994,21.3601) and (34.5593,20.3195) .. (33.7793,19.9395) -.. controls (32.9993,19.5595) and (30.6701,20.7498) .. (29.3301,21.0898) -.. controls (27.1001,21.6598) and (25.1303,21.4600) .. (23.5703,21.7500) -.. controls (20.7003,22.2900) and (17.8301,23.3704) .. (14.8301,23.9004) --- (6.2598,25.3809) -.. controls (7.7598,22.3009) and (11.1299,22.8701) .. (14.1699,22.5801) -.. controls (16.9999,22.3101) and (18.9999,20.8692) .. (21.4199,19.4492) -.. controls (24.2299,17.8392) and (27.6203,18.2209) .. (30.3203,17.6309) -.. controls (32.4603,16.1509) and (32.8894,12.8309) .. (34.1094,10.8809) -.. controls (33.6794,9.9109) and (33.4607,7.7400) .. (31.9707,7.2500) -.. controls (30.0807,6.5800) and (25.9801,8.1301) .. (22.5801,7.5801) -.. controls (20.1501,7.1901) and (18.5403,5.1295) .. (16.3203,4.9395) -.. controls (16.0841,4.9195) and (15.8560,4.9098) .. (15.6348,4.9082) --- cycle(314.4922,6.1895) -.. controls (313.3317,6.1663) and (312.2541,6.3661) .. (311.3203,7.0898) -.. controls (310.7403,10.8998) and (309.6504,14.9609) .. (311.6504,17.9609) -.. controls (314.7404,19.7909) and (315.5002,15.0202) .. (318.2402,15.4902) -.. controls (317.9202,17.2202) and (317.3499,18.6695) .. (316.9199,20.2695) -.. controls (312.6099,21.8895) and (307.8005,19.7309) .. (304.2305,17.9609) -arc(62.687 \@@_colon 98.679 \@@_colon 3.280) -.. controls (300.2605,20.4891) and (298.4694,22.8792) .. (298.1094,26.6992) -.. controls (298.3594,29.5192) and (300.2003,30.7607) .. (301.5703,32.4707) -.. controls (303.1503,32.9407) and (306.1800,32.1807) .. (308.0000,32.4707) -arc(37.346 \@@_colon 55.513 \@@_colon 66.440) -arc(63.880 \@@_colon 76.856 \@@_colon 39.510) -.. controls (282.4506,50.3097) and (281.3693,50.8698) .. (279.7793,50.7598) -.. controls (279.2193,51.9298) and (277.8506,52.0305) .. (277.6406,53.2305) -.. controls (277.3306,54.9705) and (279.1998,57.3497) .. (281.2598,57.6797) -.. controls (283.6398,58.0497) and (286.1797,57.0894) .. (288.1797,56.8594) -.. controls (296.1397,52.0694) and (303.1495,45.0703) .. (309.4395,38.0703) -.. controls (310.9495,41.1703) and (308.8394,44.9692) .. (309.1094,48.4492) -.. controls (309.4194,52.3192) and (310.7402,56.6101) .. (312.7402,58.8301) -.. controls (313.8302,58.4401) and (313.9509,57.0693) .. (314.8809,56.5293) -.. controls (320.6109,57.6993) and (324.3709,54.6094) .. (329.8809,56.3594) -.. controls (331.4509,55.0594) and (331.0609,52.7998) .. (331.8809,50.5898) -.. controls (332.1209,49.9398) and (332.6492,49.4995) .. (332.6992,48.9395) -arc(354.150 \@@_colon 343.073 \@@_colon 8.660) -.. controls (332.0691,44.2708) and (333.2791,41.7807) .. (333.3691,39.2207) -.. controls (333.9491,38.6507) and (334.1992,36.7499) .. (333.1992,36.4199) -.. controls (332.1992,36.7999) and (331.5003,37.4704) .. (330.5703,37.9004) -arc(291.672 \@@_colon 268.993 \@@_colon 4.680) -.. controls (325.1098,38.8103) and (320.3004,36.8603) .. (315.9004,37.5703) -.. controls (315.3704,36.3003) and (313.9196,35.9395) .. (313.0996,34.9395) -.. controls (314.4896,33.7995) and (315.0407,31.8205) .. (316.7207,31.3105) -.. controls (319.4807,30.4805) and (323.1106,31.6705) .. (324.6406,31.8105) -arc(92.820 \@@_colon 78.273 \@@_colon 25.430) -.. controls (331.6805,31.7605) and (332.4606,32.0207) .. (333.0605,32.4707) -.. controls (336.2905,30.1807) and (339.0502,26.4998) .. (338.6602,21.5898) -.. controls (337.4602,21.9198) and (337.3797,21.1095) .. (337.1797,20.4395) -arc(80.701 \@@_colon 96.443 \@@_colon 46.930) -.. controls (325.3401,17.2198) and (327.9295,13.9407) .. (329.2695,10.2207) -.. controls (328.8595,7.1207) and (326.3496,6.3998) .. (323.3496,6.2598) -arc(263.417 \@@_colon 255.124 \@@_colon 18.570) -.. controls (318.5922,6.8848) and (316.4264,6.2280) .. (314.4922,6.1895) --- cycle(462.2559,6.9688) -.. controls (461.6466,6.9612) and (461.0269,7.0455) .. (460.4395,7.2305) -.. controls (459.8295,7.7405) and (460.6292,8.7305) .. (459.9492,9.2305) -.. controls (454.2592,9.6205) and (450.3592,10.1409) .. (444.9492,10.3809) -.. controls (443.1292,13.2909) and (445.6105,15.0102) .. (449.2305,15.1602) -.. controls (453.0705,15.3202) and (458.1895,13.7001) .. (460.4395,14.8301) -arc(6.668 \@@_colon 13.188 \@@_colon 25.000) -arc(77.430 \@@_colon 97.447 \@@_colon 10.940) -.. controls (454.7204,17.7908) and (452.8708,18.2891) .. (451.0508,18.2891) -arc(276.115 \@@_colon 270.328 \@@_colon 27.880) -.. controls (446.8202,18.3409) and (443.4707,19.5709) .. (443.4707,21.1309) -.. controls (443.4907,22.9209) and (446.7903,23.6995) .. (448.5703,23.7695) -.. controls (450.9303,23.8595) and (452.5098,23.4395) .. (454.5098,23.4395) -.. controls (455.9898,23.4295) and (457.8994,23.1493) .. (460.1094,23.2793) -.. controls (460.5894,24.5993) and (460.9493,25.6202) .. (460.2793,26.7402) -.. controls (458.1393,26.4902) and (455.4994,27.2304) .. (452.8594,26.9004) -.. controls (451.5494,26.7504) and (450.4004,25.7500) .. (449.4004,25.7500) -.. controls (445.8904,25.6900) and (444.2098,30.4198) .. (446.7598,32.8398) -.. controls (446.6598,35.0898) and (447.2497,37.6298) .. (446.9297,40.0898) -arc(140.022 \@@_colon 111.776 \@@_colon 4.580) -.. controls (450.1302,41.8004) and (450.8993,40.6300) .. (452.5293,40.2500) -.. controls (454.1593,39.8700) and (455.3193,40.4401) .. (456.5293,40.5801) -.. controls (458.2393,40.7801) and (460.0908,40.2202) .. (461.3008,40.9102) -arc(186.620 \@@_colon 180.322 \@@_colon 24.080) -.. controls (456.7506,45.3708) and (450.4805,43.3708) .. (445.4805,42.5508) -.. controls (445.0805,43.4308) and (443.7005,43.6594) .. (443.4805,44.8594) -.. controls (443.3305,45.6394) and (443.9707,46.6502) .. (443.9707,47.4902) -.. controls (443.9807,50.2402) and (442.8202,52.8402) .. (442.1602,54.9102) -.. controls (440.0402,55.6302) and (437.9491,56.4094) .. (438.0391,59.3594) -.. controls (445.1291,63.2194) and (453.3895,56.8693) .. (461.2695,58.5293) -.. controls (461.8395,60.8893) and (461.4694,63.1591) .. (460.9395,65.7891) -.. controls (461.6895,67.3491) and (461.7398,69.5605) .. (463.0898,70.5605) -.. controls (464.2798,70.5505) and (465.3709,71.5509) .. (466.7109,71.8809) -arc(233.547 \@@_colon 242.672 \@@_colon 9.760) -.. controls (469.4393,67.3805) and (469.0195,62.6193) .. (468.6895,58.5293) -.. controls (476.5795,57.5493) and (484.0101,58.6792) .. (492.5801,58.1992) -.. controls (493.3401,58.1592) and (493.9605,57.8809) .. (494.7305,57.8809) -.. controls (497.0505,57.9609) and (499.2905,58.8991) .. (501.9805,58.0391) -.. controls (503.4705,57.5691) and (504.4696,56.3803) .. (505.5996,55.5703) -arc(60.347 \@@_colon 54.074 \@@_colon 30.550) -.. controls (509.1202,53.0898) and (510.7908,51.0391) .. (510.5508,50.2891) -.. controls (510.2408,49.2891) and (508.6502,49.6191) .. (507.9102,49.2891) -.. controls (504.5302,50.7091) and (500.7995,51.9198) .. (498.0195,53.0898) -.. controls (495.6595,51.7698) and (493.6096,52.7099) .. (491.0996,52.9199) -.. controls (487.7496,53.1999) and (484.6791,52.7500) .. (481.5391,52.7500) -.. controls (478.7191,54.5800) and (472.1091,53.2401) .. (467.5391,53.5801) -.. controls (468.0291,51.8301) and (466.3093,48.5404) .. (468.0293,47.1504) -.. controls (468.8293,46.4904) and (470.9806,46.6602) .. (473.1406,46.4902) -arc(262.762 \@@_colon 269.591 \@@_colon 41.560) -.. controls (482.3201,46.4702) and (485.5703,44.7207) .. (486.8203,41.2207) -.. controls (485.0703,38.8807) and (482.7909,40.8809) .. (481.2109,41.7109) -.. controls (477.3609,43.7609) and (471.6609,43.7392) .. (467.2109,43.1992) -.. controls (466.5909,42.4792) and (466.5009,40.7903) .. (466.3809,40.0703) -.. controls (470.8109,38.3703) and (476.2807,39.3098) .. (480.7207,37.5898) -.. controls (485.0907,35.7398) and (484.7404,29.0902) .. (486.6504,24.7402) -.. controls (484.0104,23.6602) and (480.6698,25.5002) .. (477.5898,25.7402) -.. controls (476.7698,25.8002) and (475.9591,25.5703) .. (475.1191,25.5703) -.. controls (471.9591,25.7003) and (468.6606,26.5303) .. (465.3906,26.0703) -arc(10.501 \@@_colon -10.501 \@@_colon 8.230) -.. controls (468.5306,21.7703) and (473.4495,22.6400) .. (476.7695,22.2500) -arc(226.083 \@@_colon 246.432 \@@_colon 8.410) -arc(41.225 \@@_colon 29.163 \@@_colon 32.610) -.. controls (484.2794,13.0000) and (486.0501,10.8005) .. (485.8301,8.7305) -arc(293.995 \@@_colon 275.369 \@@_colon 10.000) -.. controls (480.9992,8.0002) and (479.2800,9.2606) .. (477.7500,9.3906) -arc(94.860 \@@_colon 105.804 \@@_colon 9.650) -.. controls (472.7095,8.7805) and (469.3809,9.4805) .. (466.3809,9.2305) -.. controls (465.8259,7.8355) and (464.0835,6.9912) .. (462.2559,6.9688) --- cycle(439.7324,8.3223) -.. controls (436.7322,8.2771) and (434.2297,9.5246) .. (432.4297,10.3496) -arc(66.310 \@@_colon 84.377 \@@_colon 35.250) -.. controls (421.2407,13.2204) and (420.4502,13.3505) .. (419.9102,13.4805) -.. controls (417.0202,14.2305) and (413.9100,14.6505) .. (411.5000,16.4805) -.. controls (410.6700,18.4205) and (409.0809,19.5399) .. (408.2109,21.4199) -arc(-34.177 \@@_colon 19.106 \@@_colon 2.790) -.. controls (408.9291,24.2704) and (409.4595,24.5108) .. (409.6895,25.0508) -.. controls (411.4094,25.6708) and (413.1192,25.2207) .. (415.9492,25.2207) -.. controls (419.3892,23.2707) and (423.7602,22.7297) .. (427.6602,20.9297) -.. controls (429.0302,20.2997) and (430.3495,19.3791) .. (431.7695,18.6191) -.. controls (436.2495,16.2391) and (440.8402,14.4607) .. (442.4902,9.7207) -.. controls (442.0002,9.0907) and (440.9998,8.9196) .. (440.3398,8.3496) -.. controls (440.1355,8.3346) and (439.9324,8.3253) .. (439.7324,8.3223) --- cycle(171.4688,10.9844) -.. controls (167.2336,11.1331) and (164.3772,15.7382) .. (162.4609,19.4395) -.. controls (161.4109,19.2295) and (159.4797,17.9994) .. (158.1797,19.1094) -.. controls (156.8797,20.2194) and (157.5800,23.3991) .. (159.0000,24.8691) -.. controls (160.0800,25.9691) and (160.6600,25.8794) .. (162.0000,26.3594) -.. controls (163.3400,26.8394) and (163.9391,27.6594) .. (165.6191,27.3594) -arc(185.638 \@@_colon 161.267 \@@_colon 3.530) -arc(81.047 \@@_colon 90.388 \@@_colon 13.170) -arc(232.010 \@@_colon 185.494 \@@_colon 4.000) -.. controls (158.7709,34.4495) and (154.4994,36.2192) .. (149.9394,37.6992) -arc(50.084 \@@_colon 70.856 \@@_colon 31.520) -.. controls (139.9008,43.0108) and (139.6508,42.8205) .. (139.5508,42.4805) -arc(41.189 \@@_colon 33.092 \@@_colon 11.730) -.. controls (138.1408,42.0102) and (135.6592,42.0708) .. (133.9492,43.8008) -.. controls (133.7092,43.0708) and (133.5208,44.0508) .. (132.8008,43.8008) -.. controls (132.8308,44.8108) and (132.1108,45.0996) .. (132.3008,46.0996) -.. controls (132.6608,47.9896) and (135.7398,48.0096) .. (136.0898,50.0996) -.. controls (137.9598,51.2996) and (138.5291,50.6598) .. (141.0391,50.7598) -.. controls (141.0191,50.1998) and (141.6495,50.2598) .. (142.1894,50.2598) -arc(224.025 \@@_colon 253.752 \@@_colon 6.830) -arc(224.523 \@@_colon 243.396 \@@_colon 41.000) -.. controls (156.4006,40.0891) and (156.8908,39.5409) .. (157.5508,39.8809) -.. controls (157.6108,39.6009) and (157.3008,39.4606) .. (157.5508,39.3906) -.. controls (158.4208,39.3606) and (159.6798,38.2505) .. (160.8398,38.5605) -.. controls (161.8898,37.3705) and (164.0592,35.6899) .. (165.9492,36.4199) -.. controls (166.5092,44.9099) and (165.8693,55.1895) .. (166.2793,64.7695) -arc(210.068 \@@_colon 189.998 \@@_colon 5.530) -.. controls (166.7291,68.6001) and (165.6191,70.3498) .. (166.1191,73.0098) -.. controls (166.8991,72.9398) and (167.1596,73.3899) .. (167.5996,73.6699) -.. controls (168.2796,73.5099) and (168.3201,72.6198) .. (169.0801,72.5098) -.. controls (169.9601,72.9598) and (171.2306,72.9999) .. (171.8906,73.6699) -.. controls (172.5306,73.5999) and (172.5892,72.9398) .. (173.1992,72.8398) -.. controls (173.3092,72.1298) and (172.3791,72.4595) .. (172.5391,71.6895) -arc(83.397 \@@_colon 68.531 \@@_colon 5.260) -.. controls (174.3694,65.0194) and (172.3691,59.5105) .. (173.3691,53.2305) -.. controls (173.7291,50.8905) and (172.9493,48.4305) .. (173.5293,45.9805) -.. controls (172.7993,44.5205) and (173.3291,42.6591) .. (173.0391,40.8691) -.. controls (172.9491,40.3891) and (172.5209,39.9606) .. (172.3809,39.3906) -.. controls (171.8709,37.4506) and (172.6391,35.5892) .. (172.8691,33.9492) -.. controls (175.0191,34.4692) and (175.6504,37.1002) .. (177.6504,37.7402) -.. controls (178.4904,38.0102) and (179.2891,37.4703) .. (180.2891,38.0703) -.. controls (181.6791,37.4803) and (182.9899,36.8095) .. (183.4199,35.2695) -arc(342.311 \@@_colon 331.346 \@@_colon 19.690) -.. controls (179.1495,30.6705) and (175.8691,30.6899) .. (172.8691,29.1699) -arc(181.455 \@@_colon 196.077 \@@_colon 8.510) -arc(259.171 \@@_colon 271.077 \@@_colon 47.080) -.. controls (184.6797,24.7692) and (187.8109,24.7197) .. (187.2109,20.9297) -.. controls (185.9909,19.7897) and (185.2898,17.7107) .. (183.5898,17.4707) -.. controls (182.4298,17.3107) and (181.0908,18.5791) .. (179.8008,18.7891) -.. controls (177.3408,19.1891) and (175.0191,18.6491) .. (172.8691,18.7891) -.. controls (174.5391,16.4891) and (174.5891,14.0109) .. (173.3691,11.2109) -.. controls (172.7066,11.0347) and (172.0738,10.9631) .. (171.4688,10.9844) --- cycle(353.5000,12.0000) -.. controls (354.9200,12.3100) and (356.8298,11.5903) .. (357.7598,12.8203) -arc(36.936 \@@_colon 58.710 \@@_colon 24.720) -.. controls (349.5998,17.9598) and (347.6506,17.5492) .. (346.3906,16.4492) -.. controls (347.5006,15.8492) and (349.6100,13.9204) .. (351.5000,13.1504) -.. controls (352.4000,12.7904) and (353.3000,13.1000) .. (353.5000,12.0000) --- cycle(466.3809,13.6797) -.. controls (468.6809,14.4997) and (471.3809,13.4000) .. (474.1309,14.0000) -arc(21.939 \@@_colon 52.591 \@@_colon 8.250) -.. controls (469.7502,17.0307) and (468.0906,17.9808) .. (465.8906,17.3008) -arc(169.981 \@@_colon 205.439 \@@_colon 6.000) --- cycle(198.1797,17.1133) -.. controls (198.7972,17.1345) and (199.5505,17.3307) .. (200.2305,17.4707) -.. controls (200.3105,17.8407) and (200.5605,18.3091) .. (200.2305,18.6191) -.. controls (198.7905,18.3591) and (198.2594,17.9408) .. (196.9394,17.8008) -.. controls (197.0795,17.2458) and (197.5622,17.0920) .. (198.1797,17.1133) --- cycle(210.0000,19.7793) -arc(-58.166 \@@_colon 21.489 \@@_colon 3.150) -.. controls (210.6195,23.7594) and (209.7891,23.6595) .. (209.6191,24.2695) -.. controls (208.6391,23.0095) and (209.8309,21.6895) .. (209.4609,20.2695) -.. controls (209.8909,20.3695) and (210.0500,20.1993) .. (210.0000,19.7793) --- cycle(430.7891,22.4102) -.. controls (428.5991,22.4002) and (427.3799,24.7007) .. (425.1699,25.2207) -.. controls (423.8099,29.6007) and (422.3192,36.0091) .. (422.6992,40.5391) -.. controls (422.6392,41.0291) and (422.2009,41.1394) .. (421.8809,41.3594) -.. controls (422.2409,43.4194) and (421.9509,46.9595) .. (422.8809,49.2695) -.. controls (421.9109,51.7695) and (423.0303,56.3496) .. (420.5703,57.3496) -.. controls (419.9103,59.5196) and (420.6405,61.1193) .. (420.7305,63.2793) -.. controls (420.8905,66.1993) and (419.9406,68.6409) .. (421.8906,69.7109) -.. controls (423.5206,68.7409) and (424.2398,67.4203) .. (426.3398,67.0703) -.. controls (429.1698,66.6003) and (432.0298,67.1296) .. (432.7598,64.5996) -.. controls (432.0998,63.3596) and (432.9297,62.0304) .. (432.9297,60.6504) -.. controls (432.9097,58.0704) and (431.9798,55.1303) .. (432.7598,53.0703) -.. controls (431.5498,49.5703) and (432.3794,45.7692) .. (431.6094,41.1992) -arc(6.092 \@@_colon -2.392 \@@_colon 69.110) -.. controls (431.7894,28.0605) and (431.7891,25.0502) .. (430.7891,22.4102) --- cycle(352.1797,27.9805) -arc(271.098 \@@_colon 279.625 \@@_colon 24.460) -.. controls (355.5608,29.9803) and (355.9707,30.7695) .. (355.9707,32.7695) -arc(277.583 \@@_colon 267.776 \@@_colon 21.260) -.. controls (352.5598,30.1596) and (349.6006,31.6095) .. (348.3906,32.2695) -.. controls (348.0006,31.1495) and (348.4508,29.3704) .. (348.5508,28.1504) --- (348.5508,28.1797) -arc(262.597 \@@_colon 271.118 \@@_colon 24.460) --- cycle(212.2500,28.3496) -arc(316.596 \@@_colon 340.681 \@@_colon 10.640) -.. controls (212.4805,31.9206) and (211.3391,32.1406) .. (208.7891,32.1406) -.. controls (208.6991,30.6006) and (209.3891,30.0299) .. (209.7891,28.6699) -arc(254.875 \@@_colon 270.293 \@@_colon 9.250) --- cycle(31.8691,29.0000) -.. controls (28.5091,30.2600) and (24.2091,30.5304) .. (20.8691,31.1504) -.. controls (18.7491,32.6604) and (15.3206,33.0592) .. (12.1406,33.4492) -arc(83.352 \@@_colon 98.317 \@@_colon 42.240) -.. controls (-0.1194,35.4791) and (1.1406,37.5307) .. (2.1406,39.2207) -.. controls (6.4006,40.9007) and (11.4593,38.5504) .. (17.5293,37.9004) -.. controls (22.2193,37.4104) and (26.7507,37.3798) .. (30.2207,36.2598) -.. controls (32.3707,34.9998) and (35.5191,30.4200) .. (31.8691,29.0000) --- cycle(472.5000,30.2656) -.. controls (474.0051,30.3117) and (475.3883,30.5388) .. (476.2695,31.0000) -arc(-0.536 \@@_colon 35.892 \@@_colon 6.060) -.. controls (471.9091,35.0894) and (469.2807,34.7695) .. (466.2207,34.9395) -.. controls (465.9407,33.8495) and (465.9407,32.4705) .. (465.7207,31.3105) -.. controls (467.1457,30.6168) and (469.9915,30.1889) .. (472.5000,30.2656) --- cycle(460.7793,31.1797) -.. controls (461.2593,32.2297) and (461.1094,33.9609) .. (461.1094,35.4609) -.. controls (458.9294,34.8209) and (457.2698,35.9808) .. (455.0098,35.3008) -.. controls (455.3398,34.0008) and (455.1698,32.9300) .. (455.3398,32.0000) -.. controls (456.8298,31.0000) and (458.6593,31.4097) .. (460.7793,31.1797) --- cycle(352.3418,37.6523) -arc(268.645 \@@_colon 273.051 \@@_colon 51.510) -.. controls (356.3708,39.0309) and (356.4507,41.8504) .. (355.9707,42.6504) -.. controls (353.1607,42.7904) and (351.2406,42.1702) .. (348.3906,41.9902) -arc(172.280 \@@_colon 187.720 \@@_colon 15.340) --- (348.3906,37.9004) -arc(264.205 \@@_colon 268.610 \@@_colon 51.510) --- cycle(29.9434,41.9902) -.. controls (26.2187,41.9512) and (22.6203,43.5586) .. (19.3203,43.8398) -.. controls (16.8603,44.0398) and (13.8202,44.8500) .. (11.4102,44.5000) -.. controls (10.2502,44.3200) and (9.2091,43.4397) .. (8.1191,43.1797) -.. controls (6.7591,42.8497) and (5.3791,43.0996) .. (4.1191,42.8496) -.. controls (3.1091,42.6496) and (2.3703,41.7395) .. (1.3203,42.1895) -.. controls (-0.8497,44.9995) and (2.4095,48.9995) .. (4.9395,49.4395) -arc(87.165 \@@_colon 79.438 \@@_colon 21.000) -.. controls (13.8200,48.5694) and (22.2199,47.9106) .. (28.6699,46.6406) -.. controls (29.8399,45.6206) and (32.3995,43.9395) .. (30.6895,42.0195) -.. controls (30.4401,42.0014) and (30.1917,41.9928) .. (29.9434,41.9902) --- cycle(325.6309,43.0098) -.. controls (326.9509,44.1198) and (324.5709,48.0795) .. (326.6309,48.9395) -.. controls (326.3109,49.9695) and (325.3806,50.4400) .. (325.3105,51.7500) -.. controls (322.1506,52.1000) and (318.4898,50.9199) .. (316.0898,50.9199) -.. controls (316.1598,48.6199) and (315.9899,46.5898) .. (315.9199,43.8398) -.. controls (318.2399,42.5098) and (323.1909,43.5598) .. (325.6309,43.0098) --- cycle(349.5352,47.0586) -.. controls (352.1130,46.9939) and (354.0706,47.5634) .. (356.3105,47.0996) -.. controls (356.0206,49.5396) and (355.3605,50.0391) .. (355.3105,52.5391) -arc(278.316 \@@_colon 267.674 \@@_colon 33.860) -.. controls (348.2639,51.1078) and (348.9882,48.7113) .. (348.3984,47.1309) -.. controls (348.7918,47.0914) and (349.1694,47.0678) .. (349.5352,47.0586) --- cycle(461.1895,47.3398) -arc(-8.403 \@@_colon 8.403 \@@_colon 22.000) -arc(82.265 \@@_colon 97.735 \@@_colon 37.150) -arc(170.092 \@@_colon 212.461 \@@_colon 8.140) --- (452.3691,48.0000) -.. controls (455.2991,47.9400) and (458.2294,47.3798) .. (461.1895,47.3398) --- cycle(29.0078,50.5996) -.. controls (27.4377,50.5487) and (25.0001,52.3522) .. (23.9004,52.5391) -.. controls (21.9804,52.8591) and (19.5805,52.5992) .. (16.9805,52.6992) -.. controls (15.0905,52.7892) and (13.2191,53.3194) .. (11.3691,53.3594) -.. controls (9.5191,53.3994) and (7.8398,53.0592) .. (6.5898,53.6992) -.. controls (5.8698,54.7992) and (6.4297,56.2192) .. (6.4297,57.6992) -.. controls (6.4197,58.7792) and (6.0996,59.8800) .. (6.0996,61.0000) -arc(182.103 \@@_colon 143.175 \@@_colon 11.570) -arc(285.115 \@@_colon 291.968 \@@_colon 30.520) -.. controls (15.1994,66.7095) and (23.9692,68.5602) .. (25.1992,64.2402) -.. controls (22.0792,63.7302) and (17.3200,64.7204) .. (14.0000,64.9004) -.. controls (12.9100,63.5304) and (12.8898,60.3105) .. (13.3398,58.3105) -arc(249.608 \@@_colon 269.745 \@@_colon 26.340) -.. controls (22.9704,56.6702) and (23.1304,56.2800) .. (23.4004,56.0000) -.. controls (24.3904,57.6700) and (23.9991,61.8107) .. (25.8691,61.9707) -.. controls (27.1391,62.0707) and (27.1298,60.7605) .. (28.3398,60.4805) -.. controls (29.1198,58.7505) and (29.1202,56.7407) .. (29.6602,54.7207) -.. controls (29.9602,53.6207) and (30.5103,52.4007) .. (30.3203,51.7207) -.. controls (30.1038,50.9248) and (29.6222,50.6195) .. (29.0078,50.5996) --- cycle(197.9688,137.0410) -.. controls (196.2280,137.1680) and (194.6641,137.9297) .. (194.0391,139.1797) -.. controls (194.5791,140.5497) and (194.5592,142.6591) .. (195.1992,144.2891) -.. controls (195.5492,145.1791) and (196.6495,145.7396) .. (196.0195,146.5996) -.. controls (193.0395,145.8596) and (188.8699,147.5809) .. (190.4199,151.3809) -.. controls (192.6399,152.7009) and (195.2301,151.4693) .. (198.3301,152.0293) -.. controls (196.5601,153.4493) and (196.2691,155.7102) .. (194.0391,155.6602) -.. controls (193.1591,155.6602) and (192.3202,154.6102) .. (191.2402,154.6602) -.. controls (190.3302,154.7102) and (189.6295,155.7802) .. (188.7695,155.6602) -.. controls (189.0195,156.6902) and (188.0594,156.7807) .. (188.4394,157.4707) -.. controls (188.6695,158.1707) and (189.8798,157.9009) .. (189.7598,158.9609) -.. controls (190.7298,158.7809) and (190.9702,159.2893) .. (191.2402,159.7793) -.. controls (190.1002,162.2093) and (187.7607,163.4405) .. (185.4707,164.7305) -.. controls (176.3707,165.4705) and (165.3907,165.3891) .. (157.4707,166.8691) -.. controls (156.0107,172.1691) and (157.4506,178.3898) .. (156.6406,184.0098) -.. controls (157.9906,184.2998) and (157.9493,182.9498) .. (159.7793,183.5098) -.. controls (160.4493,183.1098) and (161.0893,182.7094) .. (161.7793,182.3594) -.. controls (162.1293,181.4194) and (163.1795,179.9004) .. (162.4394,178.9004) -.. controls (163.0394,178.9704) and (162.8895,178.4902) .. (162.9394,178.2402) -.. controls (163.5294,175.3202) and (162.3702,172.1504) .. (165.2402,171.1504) -.. controls (165.9602,170.9404) and (165.9805,171.1003) .. (166.5606,171.3203) -.. controls (166.9606,171.1103) and (167.0507,170.5902) .. (167.7207,170.6602) -.. controls (178.4007,169.8902) and (189.7207,168.4300) .. (200.7207,169.5000) -.. controls (201.1807,169.4800) and (201.3991,169.1699) .. (201.8691,169.1699) -.. controls (210.0491,170.3299) and (219.4905,168.8600) .. (228.7305,170.0000) -.. controls (229.0105,174.3800) and (228.3902,178.5400) .. (228.2402,182.0000) -arc(263.004 \@@_colon 294.805 \@@_colon 5.780) -arc(238.746 \@@_colon 256.412 \@@_colon 14.090) -.. controls (236.6691,181.7098) and (237.4499,180.5399) .. (238.6699,181.1699) -.. controls (241.3999,176.9199) and (239.0900,171.8999) .. (239.0000,166.1699) -.. controls (237.1800,164.2999) and (232.4794,164.2898) .. (229.6094,165.0098) -.. controls (225.7694,163.7398) and (221.1401,163.8198) .. (217.0801,164.0098) -.. controls (209.6901,164.3398) and (200.6894,164.7998) .. (192.6894,164.3398) -.. controls (193.6995,163.6998) and (194.7003,161.5298) .. (196.3203,161.3398) -.. controls (196.7403,161.2898) and (198.6191,161.3602) .. (198.6191,162.4902) -.. controls (200.1391,161.9902) and (200.8000,163.2502) .. (202.2500,162.9902) -.. controls (203.0200,162.5002) and (203.1005,161.3200) .. (204.5606,161.5000) -.. controls (204.4706,158.5400) and (202.9306,157.2207) .. (200.5606,157.2207) -.. controls (203.8005,153.9907) and (207.9194,151.7302) .. (210.6094,147.9902) -.. controls (209.5394,145.9502) and (208.3800,146.7398) .. (206.0000,146.8398) -.. controls (203.6200,146.9398) and (200.1100,147.3398) .. (198.7500,146.3398) -.. controls (199.9400,144.5098) and (201.9195,143.4804) .. (202.9394,141.6504) -.. controls (202.2295,140.6304) and (202.4609,138.3493) .. (201.1309,137.5293) -.. controls (200.1221,137.1168) and (199.0132,136.9648) .. (197.9688,137.0410) --- cycle(302.1934,137.2812) -arc(266.857 \@@_colon 255.373 \@@_colon 12.260) -.. controls (297.8595,138.3102) and (297.2995,140.7096) .. (296.7695,142.5996) -.. controls (299.0395,143.2996) and (299.7606,145.5509) .. (300.5605,147.7109) -.. controls (294.4305,148.2009) and (287.3591,149.1192) .. (280.6191,148.1992) -.. controls (279.4691,149.1392) and (279.8407,150.6802) .. (279.4707,152.4902) -.. controls (280.1707,153.0402) and (281.4495,152.8806) .. (282.2695,153.6406) -.. controls (283.2695,153.1206) and (285.7395,153.0508) .. (286.2695,154.3008) -.. controls (286.3495,155.2008) and (286.2294,157.0498) .. (285.6094,157.7598) -.. controls (287.3494,159.7398) and (288.6291,165.8099) .. (284.1191,165.6699) -.. controls (283.1891,167.5299) and (280.0595,167.2104) .. (278.1895,168.1504) -.. controls (278.7794,170.6104) and (281.5208,170.6094) .. (283.3008,171.6094) -.. controls (284.3008,172.1294) and (284.4908,173.1701) .. (285.3008,174.0801) -.. controls (286.3608,175.2201) and (287.8108,175.9109) .. (288.3008,176.7109) -.. controls (289.0508,177.9709) and (289.0192,179.4309) .. (289.9492,180.7109) -.. controls (284.4692,182.1309) and (279.6292,181.6491) .. (273.9492,181.3691) -.. controls (272.1892,183.8891) and (272.9691,185.6191) .. (273.2891,188.6191) -.. controls (277.3191,188.9691) and (284.1997,187.3907) .. (290.4297,186.9707) -.. controls (293.2197,186.8007) and (293.9708,186.5907) .. (294.0508,188.9707) -.. controls (294.2508,194.1207) and (293.4900,196.4097) .. (291.2500,199.6797) -.. controls (290.3700,199.8397) and (290.0896,200.4398) .. (289.5996,200.8398) -.. controls (287.0896,202.8798) and (282.3905,203.3105) .. (278.2305,202.9805) -.. controls (277.4105,202.2905) and (275.7594,202.4005) .. (274.6094,202.4805) -.. controls (274.6894,206.8105) and (278.4294,208.8706) .. (281.6895,210.5606) -.. controls (295.2495,210.0306) and (300.0604,200.6906) .. (300.1504,188.3106) -arc(172.076 \@@_colon 177.813 \@@_colon 18.160) -.. controls (304.7602,185.0100) and (309.4198,185.6100) .. (312.8398,182.5000) -arc(183.920 \@@_colon 196.744 \@@_colon 8.240) -.. controls (312.2099,179.3695) and (311.3609,178.2307) .. (309.7109,178.2207) -.. controls (308.0609,178.2107) and (306.5209,179.8893) .. (304.7109,180.0293) -.. controls (302.1809,180.2293) and (298.6708,180.2709) .. (297.3008,178.8809) -arc(226.205 \@@_colon 235.718 \@@_colon 53.720) -.. controls (307.4507,171.0795) and (311.9491,169.7992) .. (312.7891,165.1992) -.. controls (311.7791,163.6092) and (309.4798,164.8309) .. (308.0098,164.3809) -.. controls (307.2798,162.0909) and (310.0204,161.2098) .. (310.1504,159.7598) -.. controls (310.2704,158.4298) and (309.0498,157.8798) .. (308.3398,156.7598) -.. controls (308.3198,154.4898) and (310.8203,152.8500) .. (309.8203,150.0000) -.. controls (314.0003,150.3400) and (319.9998,151.5995) .. (322.5098,148.7695) -.. controls (323.1098,150.0995) and (324.1098,150.1502) .. (324.5098,151.4102) -arc(-9.417 \@@_colon 9.417 \@@_colon 10.570) -arc(5.722 \@@_colon 50.622 \@@_colon 8.320) -.. controls (319.3098,161.9807) and (316.5099,162.4895) .. (314.9199,164.2695) --- (314.9199,165.7500) -.. controls (312.8999,166.8000) and (314.2694,169.1992) .. (313.1094,170.1992) -arc(132.907 \@@_colon 78.984 \@@_colon 2.650) -.. controls (316.8999,171.7494) and (318.4293,171.7298) .. (320.0293,172.5098) -.. controls (321.4293,173.2198) and (322.2902,174.6198) .. (323.4902,175.5098) -.. controls (323.6302,175.6198) and (323.9904,175.4198) .. (324.1504,175.5098) -.. controls (325.0404,176.0298) and (326.0291,177.3203) .. (326.7891,177.8203) -.. controls (327.5491,178.3203) and (328.5996,178.3807) .. (328.5996,179.4707) -arc(59.950 \@@_colon 102.152 \@@_colon 13.200) -.. controls (318.0709,180.6792) and (317.2109,179.5709) .. (316.2109,179.6309) -.. controls (313.4509,179.7909) and (312.3906,185.1006) .. (315.3906,185.8906) -.. controls (321.3606,187.6906) and (328.0401,185.6601) .. (334.8301,184.5801) -.. controls (338.8601,186.6401) and (340.7408,191.5603) .. (345.0508,192.8203) -.. controls (346.0708,194.5503) and (348.2298,195.1298) .. (348.8398,197.2598) -.. controls (350.8398,197.6898) and (351.8398,199.1506) .. (352.8398,200.5606) -.. controls (352.5698,201.0505) and (352.3297,201.7409) .. (351.6797,201.3809) -.. controls (351.6597,201.9009) and (352.1998,201.8491) .. (352.0098,202.5391) -.. controls (353.2698,203.5891) and (354.8309,203.1693) .. (356.6309,203.0293) -.. controls (359.1509,202.8393) and (363.1094,202.5409) .. (365.3594,201.7109) -.. controls (368.3094,201.3609) and (370.1894,199.9501) .. (372.6094,199.0801) -.. controls (373.8894,198.4901) and (376.7908,198.2298) .. (378.0508,197.5898) -arc(91.611 \@@_colon 53.246 \@@_colon 10.790) -.. controls (383.8206,195.0692) and (382.6198,195.6191) .. (381.5098,195.6191) -.. controls (381.5098,195.2891) and (381.9598,195.4109) .. (381.8398,194.9609) -.. controls (381.4198,195.1109) and (380.9094,195.2291) .. (380.6895,194.7891) -.. controls (381.8095,194.3791) and (381.2596,193.7104) .. (381.3496,192.6504) -.. controls (381.6596,192.7204) and (381.6399,193.1205) .. (382.1699,192.9805) -arc(155.632 \@@_colon 204.368 \@@_colon 1.600) -.. controls (381.7299,191.5502) and (381.1396,191.5901) .. (380.8496,191.3301) -.. controls (381.1396,191.2501) and (381.8409,190.4206) .. (381.2109,190.8906) -arc(63.434 \@@_colon 111.500 \@@_colon 4.450) -.. controls (377.8398,190.7208) and (379.2498,190.7208) .. (378.5898,190.0508) -.. controls (376.7998,190.4508) and (373.9902,190.1409) .. (372.9902,190.8809) -arc(103.185 \@@_colon 122.903 \@@_colon 13.580) -.. controls (365.2509,188.4205) and (362.3805,190.0805) .. (358.9805,189.2305) -.. controls (358.8905,188.8905) and (358.6402,188.7002) .. (358.4902,188.4102) -arc(104.658 \@@_colon 112.212 \@@_colon 24.000) -.. controls (348.8702,187.8702) and (346.0301,182.8205) .. (340.3301,181.3106) -.. controls (337.9901,179.4906) and (340.4104,176.9491) .. (341.6504,175.8691) -.. controls (341.7704,175.1091) and (341.8107,174.2705) .. (342.4707,174.0606) -.. controls (342.3007,172.8406) and (342.8908,171.9996) .. (343.3008,170.5996) -.. controls (343.5508,169.7096) and (345.0595,169.1492) .. (345.4395,168.4492) -.. controls (346.4694,166.5892) and (345.2693,165.0897) .. (344.7793,163.1797) -.. controls (349.4793,161.4997) and (356.9093,162.6797) .. (361.7793,161.1797) -arc(232.747 \@@_colon 239.978 \@@_colon 37.630) -arc(160.223 \@@_colon 191.847 \@@_colon 4.250) -.. controls (364.6703,155.7902) and (364.3099,155.8299) .. (363.4199,155.4199) -.. controls (360.2099,156.1699) and (356.0706,156.1699) .. (351.5605,156.4199) -.. controls (348.2006,156.6199) and (344.6801,155.5098) .. (341.8301,155.7598) -.. controls (340.7301,155.8598) and (339.7801,156.3698) .. (338.8301,156.2598) -.. controls (337.6901,156.1298) and (334.8491,154.7792) .. (334.5391,153.9492) -.. controls (334.3691,153.4892) and (334.6391,152.7208) .. (334.5391,152.3008) -.. controls (333.6291,151.4608) and (333.8308,149.1796) .. (334.0508,147.8496) -.. controls (333.0008,146.6896) and (333.0602,145.1906) .. (331.9102,144.3906) -.. controls (329.5502,142.7606) and (325.7699,143.7607) .. (323.1699,145.2207) -arc(16.176 \@@_colon 43.639 \@@_colon 4.860) -.. controls (318.0795,146.3407) and (314.7295,145.3406) .. (311.0195,146.0606) -.. controls (308.2295,144.6705) and (308.7295,140.6402) .. (307.0195,137.9902) -arc(289.832 \@@_colon 266.882 \@@_colon 12.260) --- cycle(447.0840,137.7344) -.. controls (442.2657,137.8374) and (439.2316,141.3791) .. (435.9004,143.7109) -.. controls (433.1504,145.6509) and (430.2904,146.7704) .. (429.1504,149.6504) -.. controls (427.2204,151.4004) and (423.9509,152.9403) .. (423.7109,156.0703) -.. controls (423.5009,158.6803) and (425.9500,160.0197) .. (427.5000,161.6797) -.. controls (430.5500,161.6097) and (431.3299,159.5597) .. (434.9199,160.6797) -.. controls (434.7799,161.1397) and (435.1501,161.1100) .. (435.0801,161.5000) -arc(25.472 \@@_colon 87.666 \@@_colon 1.160) -arc(-5.430 \@@_colon 19.263 \@@_colon 3.110) -.. controls (431.4899,166.0005) and (428.0098,167.4904) .. (426.0098,170.4004) -.. controls (425.7798,170.3504) and (425.6896,170.1702) .. (425.3496,170.2402) -arc(36.154 \@@_colon 53.846 \@@_colon 18.940) -.. controls (421.5705,174.4494) and (421.5806,174.6096) .. (421.3906,174.8496) -.. controls (415.9106,179.6096) and (409.2398,183.3608) .. (403.5898,187.0508) -arc(284.521 \@@_colon 267.305 \@@_colon 5.510) -.. controls (399.9792,188.5709) and (400.6796,192.5103) .. (403.0996,192.8203) -.. controls (405.7296,193.1903) and (409.1496,190.2395) .. (410.8496,189.1894) -.. controls (411.8696,188.5594) and (413.0406,188.0409) .. (414.1406,187.3809) -.. controls (416.6906,185.8409) and (418.7706,183.7097) .. (421.0605,182.9297) -arc(219.410 \@@_colon 230.590 \@@_colon 49.070) -arc(229.708 \@@_colon 259.649 \@@_colon 6.700) -.. controls (431.2692,176.4895) and (431.3291,180.8398) .. (430.6191,182.7598) -.. controls (431.3091,188.1898) and (430.1209,192.2897) .. (429.9609,196.9297) -.. controls (429.3509,196.7597) and (429.4306,197.2797) .. (429.1406,197.4297) -.. controls (428.8606,199.8097) and (431.3998,200.0801) .. (432.7598,199.0801) -arc(100.399 \@@_colon 82.609 \@@_colon 19.730) -.. controls (440.9994,191.9402) and (440.3100,184.6004) .. (441.0000,177.6504) -.. controls (440.8400,177.4304) and (440.5598,177.3302) .. (440.5098,176.9902) -.. controls (441.0698,173.9402) and (439.2394,170.0594) .. (439.3594,166.9394) -.. controls (440.7194,166.4595) and (442.3008,165.4609) .. (444.3008,165.4609) -.. controls (444.9208,165.4609) and (445.4994,165.8691) .. (446.1094,165.7891) -.. controls (446.4594,165.7391) and (447.2797,165.0509) .. (447.9297,164.9609) -.. controls (448.7497,164.8509) and (448.2500,164.9506) .. (448.7500,164.6406) -.. controls (448.9000,164.5406) and (449.2602,164.7406) .. (449.4102,164.6406) -arc(56.405 \@@_colon -12.224 \@@_colon 4.270) -arc(308.398 \@@_colon 263.828 \@@_colon 10.170) -.. controls (443.1005,157.0991) and (441.5700,156.9804) .. (441.0000,155.9004) -.. controls (445.5700,152.4704) and (451.6796,150.6895) .. (454.3496,145.0195) -.. controls (453.9496,143.8495) and (454.2109,141.3702) .. (452.2109,140.7402) -.. controls (452.1909,140.2702) and (451.5891,140.0398) .. (452.0391,139.5898) -.. controls (451.1591,139.5898) and (450.6705,139.1995) .. (450.7305,138.2695) -.. controls (449.4030,137.8702) and (448.1959,137.7106) .. (447.0840,137.7344) --- cycle(92.7109,140.2695) -arc(58.466 \@@_colon 68.306 \@@_colon 30.070) -.. controls (84.9796,146.4901) and (82.6396,151.1797) .. (80.3496,155.9297) -arc(71.528 \@@_colon 127.215 \@@_colon 2.170) -.. controls (78.1496,154.8496) and (79.0395,154.6891) .. (78.5195,154.1191) -.. controls (74.8195,152.7291) and (71.6696,154.9705) .. (71.5996,158.7305) -arc(303.185 \@@_colon 321.516 \@@_colon 7.690) -arc(107.050 \@@_colon 95.423 \@@_colon 20.730) -.. controls (78.5393,163.9792) and (76.7506,166.5996) .. (75.3906,170.0996) -.. controls (74.5106,172.3596) and (74.5003,175.0495) .. (74.0703,177.1894) -.. controls (73.7503,178.7794) and (72.3298,180.3805) .. (72.5898,181.3106) -.. controls (72.8498,182.2406) and (74.2907,183.0509) .. (75.7207,182.9609) -.. controls (76.7607,182.8909) and (77.5195,181.4806) .. (78.5195,181.1406) -.. controls (80.2695,175.7106) and (82.4193,169.5706) .. (84.7793,164.1406) -.. controls (85.4493,162.6706) and (86.5993,159.7694) .. (87.7793,159.3594) -arc(262.578 \@@_colon 271.310 \@@_colon 19.730) -arc(261.319 \@@_colon 272.805 \@@_colon 32.180) -arc(276.363 \@@_colon 290.921 \@@_colon 27.450) -.. controls (105.3907,162.2398) and (107.4707,163.9494) .. (107.9707,166.6094) -.. controls (108.5707,169.7794) and (106.8199,172.3196) .. (105.6699,174.8496) -.. controls (102.6799,177.0296) and (101.5602,181.0799) .. (98.7402,183.4199) -.. controls (97.8802,187.2799) and (95.0008,189.1304) .. (93.8008,192.6504) -.. controls (92.4908,193.0004) and (92.2208,194.4408) .. (90.8008,194.3008) -.. controls (87.6308,193.9908) and (88.2709,185.2203) .. (84.3809,185.0703) -.. controls (83.8509,185.9103) and (82.3401,185.7806) .. (81.5801,186.3906) -.. controls (82.0501,189.5406) and (82.4702,193.1397) .. (84.1602,194.1797) -.. controls (83.8502,196.0797) and (84.8402,196.4606) .. (86.1602,197.6406) -arc(134.002 \@@_colon 118.042 \@@_colon 16.160) -.. controls (90.4291,200.6293) and (91.0797,201.1593) .. (91.4297,201.2793) -.. controls (92.4397,201.6193) and (93.2102,201.2893) .. (94.2402,201.2793) -.. controls (95.2702,201.2693) and (96.3591,201.6794) .. (96.8691,201.6094) -.. controls (98.3391,201.3794) and (99.1999,199.6294) .. (100.1699,198.6094) -.. controls (101.1399,197.5894) and (102.6007,196.3905) .. (102.9707,195.4805) -arc(203.473 \@@_colon 222.813 \@@_colon 28.690) -.. controls (109.2802,184.0002) and (111.7895,182.0498) .. (112.6894,178.5098) -.. controls (116.3594,175.8598) and (116.6903,169.0196) .. (115.8203,163.3496) -.. controls (115.4503,162.9496) and (116.1802,162.7393) .. (115.9902,162.0293) -.. controls (114.8902,159.6493) and (113.6502,156.6593) .. (111.9902,154.7793) -.. controls (111.2502,153.9293) and (109.5991,152.4707) .. (108.3691,152.4707) -.. controls (107.6591,152.4607) and (106.9905,153.1191) .. (106.2305,153.2891) -.. controls (104.1005,153.7691) and (101.4305,153.0691) .. (98.8105,153.6191) -.. controls (97.9605,153.7991) and (97.1998,154.2992) .. (96.3398,154.4492) -.. controls (93.7398,154.9092) and (90.4599,155.0195) .. (88.9199,155.2695) -.. controls (89.0199,155.2595) and (89.0898,155.2494) .. (89.0898,155.1094) -.. controls (89.7198,153.1594) and (90.8405,151.7001) .. (91.5605,149.8301) -.. controls (93.9505,147.4801) and (97.4902,145.0996) .. (97.4902,141.0996) -.. controls (96.3002,139.9096) and (94.2709,140.5995) .. (92.7109,140.2695) --- cycle(224.8848,140.6680) -.. controls (222.9887,140.6961) and (220.9961,141.0626) .. (219.4492,141.2207) -.. controls (217.9992,141.3807) and (216.4900,140.8906) .. (215.0000,140.8906) -.. controls (211.8900,140.9106) and (209.4406,141.9797) .. (209.5606,144.6797) -.. controls (210.1405,145.1497) and (210.0508,146.2401) .. (211.0508,146.3301) -.. controls (214.8708,145.3101) and (219.4802,145.9198) .. (223.2402,145.5098) -.. controls (222.6002,146.6598) and (222.1796,147.9609) .. (221.5996,149.1309) -arc(81.961 \@@_colon 99.991 \@@_colon 30.000) -.. controls (211.9192,150.1507) and (210.7708,151.0498) .. (210.5508,152.7598) -arc(123.606 \@@_colon 77.846 \@@_colon 6.910) -.. controls (217.1701,156.9198) and (213.3009,156.7506) .. (210.8809,156.5606) -.. controls (210.0709,157.8406) and (208.9503,159.0198) .. (209.0703,160.8398) -.. controls (210.7703,161.7298) and (213.8902,159.7898) .. (215.6602,160.8398) -.. controls (215.7202,160.4098) and (216.6606,160.5996) .. (217.3106,160.3496) -arc(150.851 \@@_colon 82.313 \@@_colon 2.620) -.. controls (223.0492,161.3799) and (224.6992,158.3209) .. (226.6992,157.3809) -.. controls (226.6992,155.7609) and (227.8592,153.9396) .. (228.6992,152.5996) -.. controls (228.7592,149.3296) and (232.2792,145.1607) .. (232.6992,142.7207) -arc(315.388 \@@_colon 308.841 \@@_colon 19.460) -arc(81.965 \@@_colon 108.555 \@@_colon 8.060) -.. controls (226.5875,140.7125) and (225.7466,140.6552) .. (224.8848,140.6680) --- cycle(167.7754,141.0254) -.. controls (166.3307,141.0691) and (164.8676,141.3000) .. (163.8301,141.2500) -.. controls (163.2501,141.7400) and (163.2595,142.8802) .. (162.0195,142.7402) -.. controls (162.2695,143.5002) and (161.8496,144.2709) .. (161.8496,144.8809) -.. controls (164.3096,149.6109) and (161.5898,157.1009) .. (163.0098,161.8809) -.. controls (163.1898,162.5309) and (163.9199,162.7693) .. (163.6699,163.5293) -.. controls (167.0999,165.2493) and (170.5409,163.0909) .. (174.2109,162.7109) -.. controls (177.5009,162.3709) and (180.9198,162.2508) .. (184.7598,162.0508) -.. controls (185.6098,160.9808) and (186.9204,160.3599) .. (187.4004,158.9199) -.. controls (186.7404,158.5499) and (186.0204,158.2799) .. (185.4004,157.9199) -.. controls (183.8004,158.3999) and (182.4192,157.4298) .. (180.9492,157.2598) -.. controls (178.7992,158.5198) and (174.6108,157.3602) .. (172.0508,158.4102) -.. controls (170.7608,152.8702) and (178.5498,154.8409) .. (182.7598,153.6309) -.. controls (182.7698,153.3809) and (182.9098,152.9707) .. (183.5898,152.9707) -.. controls (183.4798,151.9707) and (184.0000,151.6007) .. (184.2500,150.9707) -.. controls (183.2300,146.8707) and (176.3209,150.2002) .. (172.3809,148.4902) -.. controls (172.6409,148.4502) and (172.4909,148.1300) .. (172.3809,148.0000) -.. controls (176.0409,147.1700) and (179.0299,147.4200) .. (183.9199,147.0000) -.. controls (185.0499,146.1100) and (185.7108,144.7000) .. (187.0508,144.0000) -.. controls (186.8608,143.2300) and (185.8297,143.2800) .. (185.4297,142.7500) -.. controls (181.6597,142.5600) and (178.2308,143.3100) .. (174.5508,142.7500) -.. controls (174.0408,142.6700) and (173.8804,142.2398) .. (173.4004,142.0898) -.. controls (173.1304,142.0098) and (172.6504,142.3000) .. (172.4004,142.2500) -.. controls (171.6504,142.1000) and (170.9298,141.4400) .. (170.2598,141.2500) -.. controls (169.5023,141.0400) and (168.6422,140.9991) .. (167.7754,141.0254) --- cycle(36.4883,143.1113) -.. controls (34.8682,143.0714) and (33.4766,143.7445) .. (32.7891,145.5195) -.. controls (34.4091,149.1295) and (32.7106,151.2500) .. (32.1406,154.2500) -.. controls (32.1106,154.4100) and (31.4805,154.8202) .. (31.4805,154.9102) -.. controls (31.4005,155.1602) and (31.6806,155.4703) .. (31.6406,155.5703) -.. controls (31.6006,155.6703) and (31.1504,155.6605) .. (31.1504,155.7305) -.. controls (30.9804,156.0605) and (31.1305,156.5506) .. (30.9805,156.8906) -.. controls (30.0305,159.1106) and (27.8294,161.0205) .. (27.3594,163.4805) -.. controls (26.2594,164.4405) and (24.9107,165.9295) .. (24.7207,167.2695) -arc(223.375 \@@_colon 213.893 \@@_colon 44.680) -.. controls (19.1194,173.2091) and (18.9609,174.1894) .. (17.9609,174.3594) -.. controls (14.5709,178.7894) and (9.9395,182.2103) .. (5.4395,185.0703) -.. controls (4.3695,184.2203) and (3.9908,183.3997) .. (2.8008,182.9297) -.. controls (0.9608,185.2897) and (0.5902,188.1900) .. (0.4902,191.0000) -.. controls (2.0002,191.3500) and (2.0798,193.1608) .. (3.2598,193.8008) -.. controls (4.1598,193.8308) and (7.6797,195.4609) .. (9.6797,194.4609) -.. controls (10.4897,194.6809) and (12.1402,194.5408) .. (12.4902,193.8008) -arc(87.293 \@@_colon 113.742 \@@_colon 5.870) -.. controls (11.3696,192.8005) and (11.4106,190.8098) .. (13.1406,190.5098) -arc(282.071 \@@_colon 358.538 \@@_colon 1.050) -.. controls (13.6507,192.3398) and (12.9804,192.8304) .. (12.6504,193.6504) -.. controls (14.4904,193.6304) and (14.9904,192.3199) .. (16.6504,192.1699) -.. controls (16.8704,191.4399) and (16.0104,191.8099) .. (16.1504,191.1699) -arc(53.204 \@@_colon 36.797 \@@_colon 11.450) -.. controls (19.0709,188.6794) and (18.7193,189.4796) .. (19.2793,189.3496) -.. controls (20.9993,186.4296) and (23.3591,184.2104) .. (23.8691,180.1504) -.. controls (25.6391,177.8804) and (26.8906,175.0405) .. (28.6406,172.7305) -.. controls (29.0006,170.5305) and (30.3306,169.3291) .. (31.6406,168.1191) -.. controls (33.3506,163.9391) and (34.8599,161.1502) .. (36.4199,157.2402) -.. controls (36.8499,157.2002) and (36.1999,156.9501) .. (36.4199,156.5801) -.. controls (38.1699,154.9701) and (38.1309,151.5906) .. (40.7109,150.8106) -.. controls (40.8009,151.1405) and (41.5293,150.8006) .. (41.5293,151.1406) -.. controls (49.7893,149.8106) and (56.2891,150.8106) .. (62.7891,150.8106) -.. controls (64.4891,149.7705) and (66.7302,148.3594) .. (66.9102,146.3594) -.. controls (66.2502,147.0594) and (66.5700,145.3909) .. (66.2500,145.2109) -.. controls (58.9300,144.3009) and (50.9596,148.1593) .. (42.3496,146.5293) -.. controls (42.2996,146.2993) and (42.1195,146.2091) .. (42.1895,145.8691) -.. controls (41.1695,145.8691) and (40.3608,144.5491) .. (39.5508,143.8691) -.. controls (38.5158,143.4154) and (37.4604,143.1353) .. (36.4883,143.1113) --- cycle(493.7402,144.0000) -arc(83.429 \@@_colon 90.370 \@@_colon 152.700) -arc(269.886 \@@_colon 262.835 \@@_colon 84.570) -.. controls (464.2604,146.4502) and (463.3198,146.9409) .. (463.0898,148.1309) -.. controls (465.0598,150.9909) and (468.2504,151.4409) .. (472.1504,152.1309) -arc(100.739 \@@_colon 84.733 \@@_colon 36.740) -.. controls (484.0091,152.4391) and (485.5605,151.7891) .. (487.3105,151.6191) -.. controls (491.1506,151.2291) and (494.5492,151.4707) .. (497.1992,149.4707) -.. controls (496.8992,149.1207) and (496.3208,148.9991) .. (496.0508,148.6191) -.. controls (496.3008,146.7591) and (494.7402,144.6300) .. (493.7402,144.0000) --- cycle(52.6699,151.2207) -.. controls (52.3299,152.6807) and (52.4798,153.7397) .. (51.8398,154.6797) -.. controls (48.9598,154.6097) and (47.2598,154.9098) .. (44.2598,154.8398) -arc(173.794 \@@_colon 192.423 \@@_colon 9.680) -arc(272.839 \@@_colon 234.912 \@@_colon 5.540) -.. controls (41.5407,152.7909) and (41.2091,153.7894) .. (41.2891,154.3594) -arc(304.365 \@@_colon 180.295 \@@_colon 2.000) -.. controls (39.2002,157.2400) and (40.4891,157.2104) .. (41.7891,158.1504) -arc(189.333 \@@_colon 176.884 \@@_colon 14.450) -.. controls (40.1391,162.1793) and (37.7894,163.3293) .. (35.8594,164.2793) -.. controls (32.1894,169.3193) and (37.7798,175.6402) .. (37.0098,181.9102) -.. controls (38.2198,182.5702) and (37.9696,184.9102) .. (36.3496,184.9102) -.. controls (35.6596,183.6702) and (34.0808,184.3302) .. (33.5508,182.9102) -.. controls (31.8308,182.7302) and (30.1897,182.5805) .. (28.9297,183.7305) -.. controls (27.5197,187.9105) and (29.1600,191.8895) .. (30.2500,195.2695) -.. controls (31.3400,198.6495) and (30.6503,203.0905) .. (31.5703,205.9805) -.. controls (32.0003,206.7305) and (33.2109,206.3908) .. (34.2109,206.8008) -.. controls (34.5909,206.9608) and (34.8609,207.6609) .. (35.2109,207.6309) -.. controls (35.5609,207.6009) and (36.5295,206.5306) .. (36.6895,206.1406) -.. controls (37.5395,204.0706) and (36.1195,199.7703) .. (37.0195,198.0703) -.. controls (35.9595,195.7503) and (36.1994,192.2100) .. (36.3594,189.5000) -.. controls (38.0294,188.4300) and (41.5593,189.2401) .. (43.7793,189.3301) -.. controls (43.2693,192.7901) and (42.1501,199.0809) .. (46.0801,200.7109) -.. controls (48.9301,199.1209) and (51.4304,197.0098) .. (54.6504,196.2598) -.. controls (55.6204,197.0598) and (55.8291,198.7805) .. (57.2891,198.7305) -.. controls (59.8691,198.6405) and (60.2497,193.3803) .. (59.4297,190.8203) -.. controls (58.2097,189.4903) and (56.9805,189.5803) .. (54.9805,189.8203) -arc(217.878 \@@_colon 178.992 \@@_colon 4.750) -arc(63.909 \@@_colon 78.166 \@@_colon 22.450) -.. controls (48.0409,193.3309) and (48.7109,190.2295) .. (48.7109,189.0195) -.. controls (55.6409,189.8495) and (60.9700,186.5495) .. (67.5000,188.0195) -.. controls (68.0500,189.0195) and (70.3100,189.5195) .. (70.5000,191.0195) -arc(9.621 \@@_colon 24.658 \@@_colon 8.560) -.. controls (68.6098,195.9202) and (67.0605,201.6209) .. (64.5605,203.7109) -.. controls (62.6505,205.3209) and (58.8604,203.9209) .. (56.6504,204.7109) -.. controls (57.3904,205.7309) and (57.5009,207.3800) .. (58.1309,208.5000) -arc(120.981 \@@_colon 101.826 \@@_colon 14.910) -arc(142.394 \@@_colon 108.822 \@@_colon 7.370) -.. controls (67.9309,211.6691) and (70.9105,210.5000) .. (72.3105,208.5000) -.. controls (73.1005,207.3900) and (73.5492,205.3906) .. (74.4492,203.3906) -.. controls (75.6592,200.7806) and (76.6602,198.6005) .. (77.7402,195.9805) -.. controls (78.1102,195.1005) and (78.7204,194.2699) .. (78.9004,193.6699) -.. controls (78.9904,193.3799) and (78.7804,192.7998) .. (78.9004,192.5098) -.. controls (79.1504,191.8798) and (79.5605,192.0898) .. (79.5605,191.5098) -.. controls (79.7305,188.8598) and (77.9199,187.1002) .. (76.9199,185.4102) -.. controls (74.9199,185.5002) and (74.2306,184.1496) .. (72.6406,183.5996) -.. controls (69.4806,182.4996) and (66.4302,184.2296) .. (63.7402,183.5996) -.. controls (59.7902,185.4296) and (54.4004,185.4502) .. (49.4004,185.7402) -arc(165.144 \@@_colon 191.579 \@@_colon 12.250) -.. controls (50.8202,180.1306) and (51.4695,179.1806) .. (53.1895,179.3106) -.. controls (53.2995,179.6705) and (53.6294,180.0505) .. (53.3594,180.3106) -arc(258.664 \@@_colon 274.791 \@@_colon 10.000) -.. controls (58.8302,179.3204) and (59.2294,175.8206) .. (60.6094,173.3906) -.. controls (61.2994,172.1706) and (62.5502,171.3097) .. (62.9102,169.9297) -.. controls (63.2002,168.8397) and (62.8102,167.8197) .. (63.4102,166.9297) -arc(154.215 \@@_colon 175.843 \@@_colon 6.810) -.. controls (59.1300,162.6809) and (54.2405,164.2807) .. (50.0605,163.9707) -arc(200.903 \@@_colon 254.483 \@@_colon 3.000) -.. controls (52.3305,160.4604) and (53.3991,158.9491) .. (53.8691,157.5391) -.. controls (59.3591,157.3191) and (65.8795,158.2504) .. (69.5195,155.4004) -.. controls (67.4495,153.0804) and (62.2008,153.9301) .. (59.8008,154.0801) -.. controls (59.3508,155.5201) and (56.2696,155.0801) .. (55.3496,155.0801) -.. controls (55.4196,153.3801) and (56.4300,152.6292) .. (57.0000,151.4492) -arc(278.809 \@@_colon 267.233 \@@_colon 21.500) --- cycle(303.5605,151.2891) -.. controls (304.3806,153.7091) and (303.3305,155.4809) .. (303.2305,157.7109) -.. controls (299.4805,158.3809) and (295.2097,157.8905) .. (292.6797,156.0606) -arc(178.682 \@@_colon 195.154 \@@_colon 14.490) -.. controls (296.2497,151.3194) and (299.7706,151.7591) .. (303.5605,151.2891) --- cycle(462.2598,156.7305) -.. controls (460.8798,158.3005) and (459.4291,159.8204) .. (459.7891,163.1504) -.. controls (461.3291,165.1304) and (463.5107,165.3609) .. (466.2207,165.4609) -.. controls (469.5607,165.6109) and (473.0093,166.4994) .. (475.2793,166.6094) -.. controls (473.6993,171.2594) and (475.6806,178.2596) .. (476.1406,183.0996) -.. controls (476.1306,182.9996) and (476.1107,182.9394) .. (475.9707,182.9394) -.. controls (475.8507,183.5594) and (476.6309,183.2998) .. (476.6309,183.7598) -.. controls (477.0609,186.3598) and (476.2409,189.0899) .. (476.6309,191.6699) -.. controls (476.7309,192.3499) and (477.2891,192.9699) .. (477.2891,193.6699) -.. controls (477.4291,196.3299) and (476.6291,199.2303) .. (477.2891,202.0703) -.. controls (479.8491,203.0703) and (482.4493,200.9601) .. (485.0293,201.5801) -arc(227.988 \@@_colon 254.350 \@@_colon 3.730) -.. controls (485.9895,195.7998) and (486.7192,190.1199) .. (485.1992,185.9199) -.. controls (485.9692,185.0399) and (485.3493,182.7906) .. (485.0293,181.1406) -.. controls (485.7193,179.7406) and (484.9409,177.9594) .. (484.3809,176.8594) -.. controls (485.3609,175.4294) and (483.8809,172.5297) .. (484.2109,170.4297) -.. controls (483.4609,169.6497) and (483.3906,168.4508) .. (482.8906,167.8008) -.. controls (483.6806,167.3708) and (482.6506,167.0104) .. (482.8906,166.1504) -arc(258.844 \@@_colon 269.338 \@@_colon 61.610) -.. controls (498.2696,164.9702) and (502.6309,165.6400) .. (505.9609,164.5000) -arc(69.290 \@@_colon 60.684 \@@_colon 47.280) -.. controls (512.7706,160.0200) and (513.0491,159.1108) .. (513.5391,157.5508) -arc(107.215 \@@_colon 186.236 \@@_colon 0.470) -.. controls (509.0209,157.3208) and (504.8695,157.1409) .. (501.0195,157.8809) -.. controls (499.1595,158.2309) and (498.0702,158.8092) .. (496.4102,158.6992) -.. controls (489.3502,158.2592) and (481.3702,159.7193) .. (473.9902,159.0293) -.. controls (473.1602,158.9493) and (472.4996,158.4893) .. (471.8496,159.0293) -.. controls (470.5296,158.2093) and (466.8798,158.6109) .. (465.2598,158.2109) -.. controls (464.2598,157.7309) and (463.3098,157.1605) .. (462.2598,156.7305) --- cycle(47.1523,157.6641) -.. controls (48.0648,157.6441) and (49.0544,157.8041) .. (50.1094,157.8691) -.. controls (49.9994,159.8991) and (47.3600,160.7000) .. (45.0000,161.0000) -arc(155.120 \@@_colon 188.263 \@@_colon 4.360) --- (44.6602,158.5391) -.. controls (45.4052,157.8841) and (46.2398,157.6841) .. (47.1523,157.6641) --- cycle(295.1875,161.5391) -.. controls (296.3514,161.4819) and (297.4566,162.0301) .. (298.6191,162.3301) -.. controls (299.8391,161.7401) and (301.3002,162.1193) .. (302.7402,162.5293) -.. controls (302.4002,163.4393) and (301.5201,164.2999) .. (302.0801,165.1699) -.. controls (300.1201,165.8299) and (297.2801,165.6401) .. (294.8301,165.8301) -.. controls (293.9101,164.9301) and (294.1400,162.5901) .. (294.0000,161.8301) -.. controls (294.4050,161.6451) and (294.7995,161.5581) .. (295.1875,161.5391) --- cycle(332.4004,161.6699) -.. controls (333.3004,162.3899) and (334.2392,161.8102) .. (335.1992,162.1602) -.. controls (336.1592,162.5102) and (336.3698,163.6606) .. (337.5098,163.8106) -.. controls (337.5598,165.3205) and (336.2994,165.8595) .. (335.8594,166.9394) -.. controls (335.6394,167.5094) and (335.7393,168.5402) .. (335.5293,169.4102) -.. controls (335.3193,170.2802) and (334.7109,171.1307) .. (334.7109,171.7207) -arc(-3.831 \@@_colon 43.818 \@@_colon 4.780) -arc(95.863 \@@_colon 146.988 \@@_colon 13.200) -arc(225.101 \@@_colon 239.055 \@@_colon 43.000) --- (331.9102,163.0000) -arc(180.507 \@@_colon 219.958 \@@_colon 2.100) --- cycle(54.5215,166.4219) -.. controls (55.3716,166.4699) and (56.1374,166.7269) .. (56.6699,167.4394) -.. controls (56.3399,170.4595) and (52.7500,170.2203) .. (49.7500,170.5703) -.. controls (49.3000,169.4403) and (50.1102,168.2293) .. (50.2402,166.7793) --- (50.2598,166.7793) -.. controls (51.4535,166.8418) and (53.1046,166.3418) .. (54.5215,166.4219) --- cycle(41.6875,167.1152) -.. controls (42.8542,167.1007) and (43.9731,167.1316) .. (44.6406,167.6191) -.. controls (44.4406,168.7691) and (44.9605,169.8900) .. (44.3105,171.2500) -.. controls (43.3805,171.0700) and (41.6695,171.7402) .. (40.5195,171.4102) -.. controls (40.9495,170.5102) and (40.8693,169.7602) .. (40.0293,169.4102) --- (40.0508,169.4102) -arc(186.206 \@@_colon 197.036 \@@_colon 12.330) -.. controls (40.9045,167.1309) and (41.2986,167.1201) .. (41.6875,167.1152) --- cycle(296.6426,170.7754) -.. controls (297.1531,170.7676) and (297.6609,170.8530) .. (298.1309,171.0606) -.. controls (297.5509,172.3605) and (295.6496,173.7394) .. (293.8496,174.3594) -.. controls (293.2496,174.0094) and (293.1596,173.1708) .. (292.8496,172.5508) -.. controls (293.5471,171.6583) and (295.1112,170.7988) .. (296.6426,170.7754) --- cycle(185.6992,171.2031) -.. controls (183.9053,171.0845) and (182.2256,171.9098) .. (180.1406,172.5098) -.. controls (176.7406,173.4798) and (173.8908,173.8591) .. (173.0508,176.6191) -.. controls (175.0508,179.1891) and (178.5094,179.5297) .. (182.6094,178.9297) -.. controls (183.8594,181.1397) and (186.8191,181.6509) .. (188.5391,183.3809) -.. controls (183.1791,182.7909) and (177.9509,181.3591) .. (173.3809,184.0391) -.. controls (173.4909,184.8691) and (172.7808,185.2497) .. (173.0508,186.1797) -.. controls (174.0708,186.9297) and (174.8396,188.3302) .. (176.3496,188.4902) -.. controls (178.4296,188.6702) and (180.8597,187.7599) .. (183.4297,187.6699) -.. controls (187.5397,187.5199) and (190.7305,188.4399) .. (193.9805,187.6699) -arc(-54.242 \@@_colon 30.421 \@@_colon 4.750) -.. controls (195.0308,194.4297) and (194.5206,194.3000) .. (194.1406,194.7500) -.. controls (193.6106,195.3900) and (193.4902,196.5407) .. (192.9902,197.2207) -.. controls (192.2002,198.3007) and (191.0796,198.6791) .. (190.8496,199.3691) -.. controls (189.6096,199.1391) and (189.7608,201.0696) .. (188.0508,200.8496) -.. controls (187.8008,201.9296) and (186.9004,202.3102) .. (185.9004,202.6602) -.. controls (183.7204,205.3702) and (179.6196,206.1595) .. (176.3496,207.7695) -arc(75.711 \@@_colon 82.672 \@@_colon 123.000) -.. controls (158.3197,210.1903) and (153.6705,209.7598) .. (149.8106,209.2598) -.. controls (148.6705,210.9598) and (146.4793,210.8306) .. (145.0293,212.3906) -.. controls (145.6793,212.5706) and (145.7992,212.9109) .. (145.1992,213.2109) -arc(127.221 \@@_colon 94.925 \@@_colon 20.000) -.. controls (156.0601,217.4809) and (156.5606,217.7693) .. (157.0606,218.0293) -.. controls (161.0505,217.7593) and (164.0392,217.8907) .. (166.9492,216.2207) -.. controls (166.6892,216.0507) and (166.2891,216.0607) .. (166.6191,215.7207) -.. controls (181.7091,211.8007) and (200.0609,206.2196) .. (202.7109,189.3496) -.. controls (202.0209,189.1296) and (202.1007,188.2991) .. (202.2207,187.5391) -.. controls (209.8307,187.6991) and (214.6101,190.9192) .. (221.8301,188.6992) -arc(237.247 \@@_colon 259.209 \@@_colon 9.330) -.. controls (225.4009,186.0009) and (226.7095,185.6601) .. (227.2695,184.5801) -.. controls (226.8995,183.4501) and (225.9109,184.0399) .. (225.1309,183.9199) -.. controls (222.6509,183.5299) and (219.6508,182.7598) .. (217.0508,182.7598) -.. controls (213.8308,182.7998) and (210.6902,182.8296) .. (207.9902,182.5996) -arc(232.794 \@@_colon 253.110 \@@_colon 26.740) -.. controls (218.0006,176.8805) and (221.2500,176.4695) .. (222.0000,174.5195) -.. controls (213.9300,170.4495) and (204.0507,173.4902) .. (194.9707,173.9902) -arc(86.419 \@@_colon 93.581 \@@_colon 21.140) -arc(101.132 \@@_colon 121.258 \@@_colon 6.570) -.. controls (188.7894,172.6802) and (187.8008,172.9597) .. (187.5508,171.6797) -.. controls (186.9083,171.3872) and (186.2972,171.2427) .. (185.6992,171.2031) --- cycle(54.5391,173.3496) -.. controls (55.0591,174.2896) and (54.0791,174.9596) .. (53.5391,175.3496) -.. controls (52.9991,175.2796) and (52.8106,174.8595) .. (52.3906,174.6894) -.. controls (52.8806,176.1095) and (51.3401,176.8602) .. (50.0801,176.9902) -.. controls (50.0201,177.0002) and (49.6700,177.3203) .. (49.7500,177.3203) -.. controls (48.5100,176.7703) and (49.3998,175.3592) .. (49.0898,173.6992) --- (49.1094,173.6992) -arc(94.286 \@@_colon 78.346 \@@_colon 19.620) --- cycle(43.6914,174.0527) -.. controls (43.9703,174.0543) and (44.2355,174.0894) .. (44.4805,174.1894) -.. controls (44.2905,175.6894) and (44.2204,176.3003) .. (44.1504,177.8203) -arc(76.497 \@@_colon 82.468 \@@_colon 25.780) -.. controls (39.8498,177.3505) and (40.7496,175.5495) .. (40.8496,174.1894) --- (40.8691,174.1894) -.. controls (41.8816,174.3545) and (42.8547,174.0480) .. (43.6914,174.0527) --- cycle(201.2305,177.8203) -.. controls (199.8005,180.6203) and (195.7207,182.3106) .. (194.4707,178.3106) --- (194.4609,178.3106) -.. controls (196.0009,177.6206) and (199.0805,177.9103) .. (201.2305,177.8203) --- cycle(43.2402,181.0859) -.. controls (43.4895,181.0878) and (43.7355,181.1393) .. (43.9805,181.2793) -.. controls (43.5605,182.5293) and (44.0302,184.2705) .. (43.4902,186.0606) -arc(78.891 \@@_colon 112.005 \@@_colon 6.100) -.. controls (40.9093,184.6105) and (39.9796,182.8995) .. (40.8496,181.4394) --- (40.8691,181.4394) -.. controls (41.7166,181.5294) and (42.4926,181.0803) .. (43.2402,181.0859) --- cycle(21.0801,184.2344) -arc(260.867 \@@_colon 282.643 \@@_colon 1.350) -.. controls (21.5598,184.7100) and (21.2995,184.9004) .. (20.7695,184.9004) -arc(139.764 \@@_colon 182.002 \@@_colon 0.720) -arc(238.982 \@@_colon 260.828 \@@_colon 1.350) --- cycle(19.9395,185.5606) -.. controls (21.2795,185.7806) and (20.2793,187.9308) .. (19.2793,187.0508) -.. controls (19.4393,186.5008) and (19.5195,185.8605) .. (19.9395,185.5606) --- cycle(18.3418,186.0957) -.. controls (18.4260,186.1173) and (18.5166,186.1662) .. (18.6191,186.2500) -.. controls (18.4591,187.0200) and (18.3008,187.7402) .. (17.3008,187.7402) -.. controls (17.2508,188.6202) and (16.8702,189.8809) .. (15.4902,189.8809) -.. controls (15.4202,189.7309) and (15.3502,189.5508) .. (15.1602,189.5508) -.. controls (15.2002,188.0208) and (16.5105,187.7908) .. (16.8105,186.5508) -.. controls (17.5455,187.1020) and (17.7523,185.9445) .. (18.3418,186.0957) --- cycle; -} -\def \@@_path_spirit{ - (459.6172,0.1621) -.. controls (458.7334,0.1971) and (458.0702,0.4750) .. (458.2402,1.2500) -.. controls (458.3202,0.8900) and (459.2492,0.2195) .. (459.4492,0.7695) -arc(57.235 \@@_colon 73.280 \@@_colon 8.560) -.. controls (456.5693,5.5895) and (459.0293,7.9304) .. (458.2793,10.6504) -.. controls (457.5293,13.3704) and (453.3808,12.9309) .. (451.8008,15.2109) -.. controls (453.8008,17.5909) and (460.4497,15.9208) .. (460.6797,19.0508) -.. controls (460.8497,21.1908) and (457.6796,21.1806) .. (456.8496,22.8906) -.. controls (448.5396,24.4806) and (443.3209,28.8805) .. (435.9609,30.8105) -.. controls (434.7309,28.6805) and (435.7309,23.4902) .. (434.9609,20.4902) -arc(18.572 \@@_colon 47.728 \@@_colon 1.710) -.. controls (435.6002,18.1609) and (436.5996,17.2093) .. (437.5996,13.5293) -.. controls (438.4696,14.0293) and (438.7000,12.1501) .. (440.0000,12.3301) -arc(331.155 \@@_colon 287.623 \@@_colon 4.590) -.. controls (435.4891,11.5699) and (435.7305,15.0991) .. (434.7305,17.3691) -.. controls (434.3905,16.2891) and (435.1602,15.5209) .. (434.2402,15.2109) -.. controls (433.9502,15.6709) and (433.6500,16.7509) .. (434.0000,17.1309) -.. controls (433.9973,17.1458) and (433.9911,17.1627) .. (433.9883,17.1777) -.. controls (434.4165,17.2118) and (433.8357,18.2411) .. (434.6504,17.8906) -.. controls (434.6704,19.1106) and (434.1602,19.7898) .. (434.1602,21.0098) -.. controls (432.8902,20.9098) and (434.7692,19.1398) .. (433.4492,19.0898) -.. controls (433.5256,18.9217) and (433.5666,18.7191) .. (433.5996,18.5078) -.. controls (432.6698,21.0967) and (430.7792,24.1382) .. (432.0801,26.2500) -.. controls (432.5201,25.2600) and (431.6506,24.2696) .. (432.8105,23.8496) -.. controls (435.0806,27.1996) and (431.3196,29.8097) .. (431.5996,33.9297) -.. controls (433.5896,33.9597) and (436.8808,32.8099) .. (439.0508,34.1699) -.. controls (440.2308,33.8299) and (441.0402,33.1305) .. (442.1602,32.7305) -.. controls (445.3702,34.6305) and (446.0902,38.3405) .. (446.2402,42.8105) -.. controls (439.8702,45.7105) and (430.9901,46.1202) .. (426.0801,50.4902) -.. controls (427.0801,51.0402) and (426.4901,53.3394) .. (427.0801,53.6094) -.. controls (428.7601,53.4494) and (430.4098,48.9009) .. (432.5898,51.2109) -.. controls (430.6598,53.7509) and (427.9996,55.5802) .. (426.3496,58.4102) -.. controls (426.6996,58.8902) and (427.9195,58.4406) .. (428.2695,58.8906) -.. controls (428.6195,57.7806) and (430.3504,56.1991) .. (431.4004,55.2891) -.. controls (431.9104,54.8491) and (432.2196,53.9396) .. (432.3496,53.8496) -.. controls (432.4796,53.7596) and (433.2505,53.9896) .. (433.5605,53.8496) -.. controls (436.4905,52.5096) and (443.3498,49.2091) .. (446.7598,49.2891) -.. controls (447.7798,51.8491) and (447.1392,54.9802) .. (447.9492,56.4902) -.. controls (447.9892,56.2502) and (448.3399,56.2500) .. (448.6699,56.2500) -.. controls (447.0699,58.5900) and (443.1406,60.7991) .. (439.3105,59.3691) -.. controls (440.1705,58.4691) and (439.4601,57.0098) .. (439.0801,56.0098) -.. controls (436.9801,56.6098) and (434.5795,55.6199) .. (434.2695,58.1699) -.. controls (437.6695,58.6199) and (437.9198,62.1991) .. (438.5898,65.3691) -.. controls (439.9098,66.4391) and (441.9298,65.4291) .. (443.5898,65.3691) -.. controls (446.1598,65.2791) and (447.7008,66.9905) .. (450.8008,66.8105) -.. controls (451.8108,65.9905) and (452.7399,65.0799) .. (453.6699,64.1699) -.. controls (456.1799,66.1899) and (451.8694,70.2102) .. (453.4395,70.4102) -.. controls (451.0595,74.5702) and (454.1504,78.7509) .. (454.1504,83.1309) -.. controls (454.1604,84.6709) and (453.2695,86.3797) .. (453.4395,87.9297) -.. controls (453.7194,90.6397) and (455.8407,93.6399) .. (458.7207,94.1699) -.. controls (465.0907,95.3299) and (471.9194,91.6106) .. (479.3594,94.8906) -.. controls (479.3994,95.5706) and (479.8301,95.8903) .. (479.8301,96.5703) -.. controls (479.4601,97.5603) and (478.5404,97.9909) .. (478.4004,99.2109) -.. controls (479.4004,100.8409) and (482.0704,101.6893) .. (484.4004,103.5293) -.. controls (486.1004,104.8793) and (487.5599,107.3691) .. (489.6699,107.3691) -.. controls (491.7799,107.3691) and (495.4805,104.9691) .. (494.4805,101.3691) -.. controls (491.0905,99.5391) and (486.7998,97.5491) .. (485.5898,94.3691) -.. controls (488.5098,91.0791) and (487.5098,82.4391) .. (487.5098,76.3691) -.. controls (488.7098,72.0491) and (488.6194,65.5797) .. (485.3594,62.9297) -.. controls (485.0994,63.1497) and (485.2809,63.8104) .. (484.6309,63.6504) -arc(296.054 \@@_colon 247.425 \@@_colon 9.610) -.. controls (477.3307,63.6502) and (477.9102,62.5904) .. (477.9102,63.6504) -arc(269.499 \@@_colon 251.561 \@@_colon 46.790) -.. controls (463.5195,66.4508) and (464.1805,66.1793) .. (464.2305,66.5293) -.. controls (463.1105,66.8593) and (463.7105,67.5895) .. (463.2305,68.6895) -.. controls (472.0105,70.0195) and (482.0805,65.2396) .. (480.2305,76.8496) -.. controls (480.0405,78.0296) and (479.0991,78.9995) .. (479.0391,80.6895) -.. controls (478.9391,83.2695) and (480.9391,87.0403) .. (479.0391,89.5703) -.. controls (472.4391,89.6403) and (466.6091,89.6508) .. (460.7891,90.0508) -.. controls (460.4391,89.6108) and (459.5891,89.6094) .. (459.7891,88.6094) -.. controls (460.1091,88.9794) and (462.4894,89.4296) .. (462.1895,88.8496) -arc(85.176 \@@_colon 209.340 \@@_colon 2.260) -.. controls (462.9593,85.4402) and (468.5794,86.0508) .. (470.3594,84.0508) -.. controls (469.2694,83.5108) and (472.1601,80.5107) .. (471.0801,79.9707) -.. controls (470.0601,79.8707) and (469.0107,80.4099) .. (467.4707,81.1699) -.. controls (464.7207,80.9999) and (461.3091,81.5399) .. (459.7891,80.1699) -.. controls (460.6291,79.5699) and (459.7793,78.4408) .. (460.0293,77.0508) -.. controls (462.6393,76.4008) and (465.1902,77.7203) .. (467.2402,76.5703) -.. controls (468.7502,75.7103) and (468.9904,73.7602) .. (469.4004,72.4902) -.. controls (467.9604,71.4402) and (463.9294,73.0295) .. (462.1895,71.7695) -.. controls (462.0394,70.2395) and (460.7891,69.8109) .. (459.7891,69.1309) -.. controls (459.1991,66.5209) and (458.1794,64.3409) .. (458.1094,61.2109) -arc(244.825 \@@_colon 257.009 \@@_colon 14.410) -.. controls (463.8300,64.4709) and (468.4392,60.7305) .. (473.9492,59.7305) -.. controls (478.7992,58.8305) and (483.0504,59.5705) .. (487.1504,58.7305) -.. controls (488.0504,58.1605) and (487.7391,57.5505) .. (487.8691,56.8105) -.. controls (488.1691,55.2505) and (489.7608,53.3500) .. (489.5508,52.2500) -.. controls (489.3008,50.6500) and (485.7108,47.7597) .. (484.5508,47.9297) -arc(332.851 \@@_colon 340.254 \@@_colon 14.180) -.. controls (482.2493,53.2794) and (474.0994,53.9399) .. (469.1895,54.1699) -.. controls (469.8694,53.4399) and (469.5394,52.6293) .. (469.4395,51.5293) -.. controls (472.1194,51.3893) and (476.0703,50.5006) .. (478.0703,48.8906) -.. controls (478.3203,47.8406) and (478.1303,47.8207) .. (478.3203,46.9707) -.. controls (486.2603,42.0007) and (495.2202,49.4206) .. (503.9902,48.8906) -.. controls (507.9002,45.2906) and (501.1306,43.2809) .. (500.6406,41.2109) -.. controls (494.6706,43.0409) and (490.3903,40.7609) .. (484.0703,40.2109) -.. controls (484.2503,39.4709) and (483.4198,39.7498) .. (483.5898,39.0098) -.. controls (484.2898,39.0098) and (484.1198,39.4098) .. (484.5898,39.0098) -.. controls (486.2498,33.8498) and (485.6904,29.8496) .. (483.4004,24.8496) -arc(66.548 \@@_colon 85.453 \@@_colon 9.070) -.. controls (480.0198,26.8403) and (479.2601,27.8399) .. (478.8301,29.1699) -arc(297.885 \@@_colon 339.751 \@@_colon 3.570) -.. controls (479.8998,34.0798) and (477.5494,35.3305) .. (476.4395,37.8105) -.. controls (475.9495,37.7605) and (475.8795,38.0508) .. (475.4395,38.0508) -.. controls (475.3694,39.3508) and (476.1895,37.3391) .. (476.4395,38.2891) -.. controls (475.9995,40.5291) and (471.7302,40.3293) .. (470.9102,38.5293) -.. controls (472.1402,39.3693) and (471.4609,37.2891) .. (471.6309,36.3691) -.. controls (474.5309,35.4291) and (474.1895,31.8303) .. (476.1895,31.5703) -.. controls (472.9694,31.3303) and (471.2495,36.1796) .. (469.1895,36.8496) -.. controls (469.8995,36.6196) and (467.3998,36.9091) .. (467.5098,36.3691) -.. controls (467.6198,35.8291) and (468.8307,36.4004) .. (468.7207,35.6504) -.. controls (467.5407,33.3504) and (463.6704,32.5799) .. (464.4004,29.1699) -.. controls (463.1604,28.9799) and (464.1507,27.8705) .. (462.7207,27.7305) -.. controls (462.7207,27.1305) and (463.1607,26.9893) .. (462.7207,26.5293) -.. controls (461.9207,26.5193) and (461.5508,26.1191) .. (460.5508,26.2891) -.. controls (459.8508,26.5391) and (461.1091,26.6891) .. (460.7891,27.2891) -.. controls (456.9991,27.0991) and (455.5098,30.4791) .. (455.5098,33.2891) -.. controls (455.7398,33.0491) and (456.0894,31.2394) .. (457.1895,31.6094) -.. controls (456.9094,32.3594) and (456.3007,32.7998) .. (456.4707,34.0098) -.. controls (460.2807,33.3398) and (461.6201,38.2500) .. (459.8301,40.2500) -arc(83.448 \@@_colon 91.051 \@@_colon 37.750) -.. controls (455.0301,40.4602) and (455.5601,39.6995) .. (455.0801,39.7695) -.. controls (455.0001,40.1195) and (454.4701,40.0098) .. (454.0801,40.0098) -.. controls (453.4601,38.2598) and (452.4296,35.3202) .. (453.5996,34.4902) -.. controls (453.3996,34.7302) and (452.3702,35.2905) .. (452.1602,34.7305) -arc(78.062 \@@_colon 55.492 \@@_colon 4.670) -.. controls (452.1298,34.0798) and (452.4192,32.2991) .. (451.4492,31.3691) -.. controls (450.4792,30.4391) and (449.4708,30.8695) .. (448.8008,29.6895) -.. controls (451.0908,25.7295) and (456.7091,25.1192) .. (461.2891,23.4492) -.. controls (461.2891,23.7192) and (460.9391,23.8197) .. (461.2891,23.9297) -arc(238.188 \@@_colon 292.246 \@@_colon 3.170) -.. controls (470.9202,21.3195) and (480.8502,22.3198) .. (488.1602,22.0098) -.. controls (488.7602,21.9798) and (489.2398,21.5293) .. (489.8398,21.5293) -.. controls (492.9198,21.4293) and (494.7901,23.8496) .. (496.3301,25.8496) -arc(21.334 \@@_colon 32.003 \@@_colon 26.000) -arc(209.514 \@@_colon 251.295 \@@_colon 2.200) -.. controls (493.3991,31.9299) and (489.3593,32.6002) .. (487.2793,35.4102) -.. controls (490.2793,36.8702) and (491.8192,37.6694) .. (495.4492,36.6094) -.. controls (499.3592,32.9994) and (506.8605,32.9801) .. (506.7305,25.3301) -.. controls (503.9605,23.8601) and (501.3406,22.2295) .. (498.5605,20.7695) -.. controls (498.1205,20.2695) and (498.1303,20.5395) .. (498.3203,19.7695) -.. controls (496.5203,17.6495) and (493.8096,16.9297) .. (491.5996,15.9297) -.. controls (490.9096,15.6297) and (490.5209,14.8509) .. (489.2109,15.2109) -.. controls (484.9809,16.3609) and (479.9498,18.4794) .. (475.7598,17.6094) -.. controls (475.1098,16.2394) and (472.8002,14.5101) .. (472.1602,12.3301) -.. controls (472.1002,12.7001) and (471.6392,12.5001) .. (471.4492,12.3301) -.. controls (469.8192,9.3301) and (466.7305,7.8801) .. (464.7305,5.3301) -.. controls (464.5805,3.0701) and (462.9303,2.3293) .. (462.3203,0.5293) -.. controls (461.6053,0.3343) and (460.5009,0.1271) .. (459.6172,0.1621) --- cycle(433.5996,18.5078) -.. controls (433.7647,18.0482) and (433.9079,17.6007) .. (433.9883,17.1777) -.. controls (433.9645,17.1758) and (433.9505,17.1652) .. (433.9199,17.1699) -.. controls (433.6977,17.4962) and (433.6746,18.0280) .. (433.5996,18.5078) --- cycle(185.0000,0.6094) -.. controls (182.3700,5.5394) and (185.1496,15.9294) .. (188.5996,18.6094) -arc(122.981 \@@_colon 98.998 \@@_colon 8.070) -.. controls (192.0505,19.5705) and (192.1997,19.1598) .. (192.6797,19.0898) -.. controls (192.6797,19.3598) and (192.3397,19.4603) .. (192.6797,19.5703) -.. controls (195.2797,16.5703) and (200.6493,15.0806) .. (202.2793,11.8906) -.. controls (202.2193,12.2906) and (203.2193,11.8704) .. (203.2793,11.6504) -.. controls (203.2693,10.1204) and (203.0505,10.6700) .. (203.7305,9.2500) -.. controls (198.9105,10.2300) and (191.3594,10.1906) .. (188.3594,5.8906) -.. controls (187.2694,4.1106) and (186.6500,1.8494) .. (185.0000,0.6094) --- cycle(55.4492,0.8496) -.. controls (55.5892,2.0596) and (55.9995,2.9400) .. (55.6895,4.0000) -.. controls (54.5195,4.8100) and (53.0008,5.2598) .. (52.8008,7.0898) -.. controls (53.8408,6.6098) and (53.7092,6.3494) .. (55.1992,6.6094) -.. controls (55.6892,10.6794) and (56.9195,14.0205) .. (61.6895,13.8105) -arc(211.730 \@@_colon 235.728 \@@_colon 19.170) -.. controls (67.0892,7.0508) and (66.2895,6.7209) .. (65.7695,6.1309) -arc(66.583 \@@_colon 85.472 \@@_colon 9.070) -.. controls (62.0409,4.4096) and (58.5605,4.6001) .. (58.5605,1.3301) -.. controls (57.7605,0.9301) and (56.2492,1.2496) .. (55.4492,0.8496) --- cycle(85.3320,0.8848) -.. controls (84.1044,0.7263) and (82.0681,2.2306) .. (81.6406,2.8906) -.. controls (81.3906,3.1906) and (81.6806,3.7398) .. (81.3906,4.0898) -.. controls (80.1606,5.5698) and (76.3006,7.4602) .. (74.3906,8.4102) -.. controls (73.9306,10.5002) and (72.0108,11.1500) .. (70.5508,12.2500) -.. controls (70.2608,13.0700) and (71.3293,12.4700) .. (71.0293,13.2500) -.. controls (69.4993,14.6900) and (67.5302,13.3795) .. (66.2402,14.6895) -.. controls (66.5302,14.7195) and (66.8009,14.7599) .. (66.7109,15.1699) -.. controls (66.0609,15.0199) and (65.5895,16.2504) .. (65.2695,15.6504) -.. controls (65.2295,15.3204) and (66.6598,15.3397) .. (65.7598,14.9297) -.. controls (65.0098,15.4097) and (64.4096,14.8099) .. (63.3496,15.1699) -.. controls (59.4296,18.8999) and (51.2509,18.3691) .. (48.7109,22.3691) -.. controls (47.4809,22.0991) and (46.7098,23.5496) .. (45.8398,22.8496) -.. controls (45.9798,22.1996) and (46.8391,22.2502) .. (46.7891,21.4102) -.. controls (46.1191,19.3202) and (48.1306,12.9809) .. (50.3906,10.1309) -.. controls (49.2206,9.9709) and (48.9307,8.8807) .. (48.4707,7.9707) -.. controls (48.7307,7.5707) and (49.6795,6.6391) .. (49.1895,6.2891) -.. controls (48.8495,7.3791) and (48.0195,6.5491) .. (47.2695,7.2891) -.. controls (47.0595,8.0991) and (48.0700,7.6591) .. (48.0000,8.2891) -arc(281.443 \@@_colon 235.902 \@@_colon 1.580) -.. controls (46.4508,11.2893) and (42.9001,10.8702) .. (40.3301,11.4102) -.. controls (39.8901,9.0402) and (36.2708,9.0501) .. (34.8008,7.3301) -.. controls (34.6508,5.2101) and (31.3198,4.4995) .. (30.0098,2.7695) -.. controls (28.1398,3.3395) and (26.6207,2.1708) .. (24.7207,2.0508) -.. controls (25.6807,5.1808) and (25.9291,9.0007) .. (28.2891,10.7207) -arc(282.873 \@@_colon 290.594 \@@_colon 18.540) -.. controls (32.1097,14.7395) and (35.2109,16.4001) .. (36.2109,20.0801) -arc(150.038 \@@_colon 93.327 \@@_colon 8.660) -arc(11.526 \@@_colon 43.500 \@@_colon 3.930) -.. controls (40.8609,26.5603) and (38.3397,25.6905) .. (36.6797,26.5605) -.. controls (37.3497,26.7805) and (38.3698,26.6291) .. (38.8398,27.0391) -.. controls (33.5198,27.2791) and (28.3495,26.2793) .. (22.5195,27.2793) -.. controls (22.1795,28.2193) and (23.5995,27.3600) .. (23.5195,28.0000) -.. controls (19.8095,28.0000) and (15.8102,26.7499) .. (13.2402,29.1699) -arc(169.514 \@@_colon 137.356 \@@_colon 8.720) -.. controls (22.8204,32.4602) and (22.3102,38.2594) .. (21.1602,42.6094) -.. controls (21.4502,42.6494) and (21.8906,42.5696) .. (21.8906,42.8496) -.. controls (20.7906,44.0496) and (21.1309,45.2292) .. (20.2109,46.4492) -.. controls (20.4909,46.4892) and (20.9199,46.4095) .. (20.9199,46.6895) -.. controls (19.0599,47.2195) and (19.5392,49.4593) .. (20.4492,50.5293) -.. controls (19.9192,50.3993) and (19.9392,49.8091) .. (19.4492,50.2891) -arc(203.465 \@@_colon 184.918 \@@_colon 9.220) -arc(66.059 \@@_colon 113.941 \@@_colon 1.480) -.. controls (17.3495,56.4899) and (15.8291,58.8105) .. (15.1191,61.8105) -.. controls (15.1491,62.2605) and (15.9196,61.9793) .. (15.8496,62.5293) -.. controls (10.4621,65.9038) and (13.7892,76.3868) .. (12.2207,82.6641) -.. controls (12.3681,82.4811) and (12.5605,82.4101) .. (12.5605,82.7207) -.. controls (11.9805,83.5107) and (11.5601,85.3301) .. (12.3301,86.0801) -.. controls (11.4301,86.1401) and (11.5309,87.2095) .. (10.8809,87.5195) -.. controls (11.1709,87.5595) and (11.5996,87.4798) .. (11.5996,87.7598) -.. controls (10.9896,88.0598) and (11.0796,89.0395) .. (10.5996,89.4395) -.. controls (8.1196,88.9795) and (7.0296,88.2402) .. (3.5996,88.2402) -.. controls (3.5396,87.7502) and (3.8398,87.6702) .. (3.8398,87.2402) -.. controls (2.4998,87.2002) and (1.0000,86.6300) .. (0.0000,87.0000) -.. controls (-0.1500,91.0000) and (2.8607,92.6695) .. (4.7207,94.7695) -.. controls (6.5807,96.8695) and (6.8391,99.4991) .. (9.0391,100.2891) -.. controls (10.3691,100.3791) and (10.6895,100.0291) .. (11.6895,100.2891) -.. controls (12.2395,100.3591) and (11.8904,99.5703) .. (12.4004,99.5703) -.. controls (12.9104,99.5703) and (12.7404,100.2208) .. (13.4004,100.0508) -.. controls (13.9104,99.2708) and (13.9203,100.3405) .. (15.0703,99.8105) -.. controls (16.1203,96.9805) and (18.5692,94.3797) .. (18.1992,90.9297) -.. controls (20.4792,88.2897) and (21.2908,84.7194) .. (21.8008,80.6094) -.. controls (22.2008,77.2094) and (22.2492,71.6105) .. (24.1992,69.8105) -.. controls (29.5692,74.4605) and (27.4801,83.6295) .. (26.8301,90.6895) -.. controls (25.5001,90.4795) and (25.8904,91.9791) .. (25.1504,92.3691) -arc(60.290 \@@_colon 119.710 \@@_colon 1.200) -.. controls (20.6409,97.9791) and (27.9206,102.6598) .. (31.6406,99.0898) -.. controls (30.6906,98.7998) and (29.4902,98.7898) .. (28.9902,98.0898) -.. controls (30.4702,98.0398) and (30.8791,96.9304) .. (32.1191,96.6504) -.. controls (32.5791,96.7504) and (32.3103,97.5791) .. (33.0703,97.3691) -.. controls (33.0103,96.6991) and (33.1608,96.2991) .. (33.8008,96.3691) -.. controls (33.9508,96.7791) and (34.5200,96.7598) .. (34.7500,97.0898) -.. controls (34.1500,97.0498) and (34.0008,97.4605) .. (33.8008,97.8105) -.. controls (35.0508,97.0605) and (36.6104,96.6299) .. (37.1504,95.1699) -.. controls (36.7804,95.1499) and (36.3197,95.1995) .. (36.4297,94.6895) -.. controls (37.1897,94.8095) and (37.3709,94.1695) .. (37.8809,94.6895) -.. controls (37.3509,93.7795) and (38.4403,93.8602) .. (39.0703,93.4902) -arc(297.240 \@@_colon 314.321 \@@_colon 4.150) -.. controls (40.0003,95.3009) and (38.2803,93.9297) .. (39.0703,94.9297) -.. controls (39.0203,95.3497) and (41.2709,94.1505) .. (41.9609,93.7305) -.. controls (40.9909,93.7805) and (40.8807,93.6700) .. (41.4707,93.2500) -.. controls (40.6707,93.2800) and (40.2108,93.7298) .. (39.8008,93.0098) -.. controls (42.2908,91.6498) and (43.0703,90.8304) .. (45.0703,89.6504) -.. controls (45.5603,90.0004) and (46.1703,90.1898) .. (46.0703,91.0898) -arc(239.673 \@@_colon 350.008 \@@_colon 1.450) -.. controls (47.4405,97.7598) and (45.5196,105.9002) .. (51.0996,108.4102) -.. controls (51.5896,108.1002) and (51.7105,107.4209) .. (52.3105,107.2109) -.. controls (51.5205,101.6509) and (54.2395,96.1004) .. (53.0195,90.6504) -.. controls (52.7395,90.6104) and (52.3105,90.6902) .. (52.3105,90.4102) -.. controls (52.7005,84.8202) and (57.3602,83.5906) .. (59.9902,78.8906) -.. controls (59.2502,78.5106) and (58.3703,78.2692) .. (58.0703,77.4492) -.. controls (58.3103,77.3892) and (58.6405,77.0507) .. (58.3105,76.9707) -.. controls (57.5705,78.4707) and (55.2900,78.4409) .. (53.7500,79.1309) -.. controls (53.7500,77.2209) and (53.2600,76.4703) .. (53.7500,74.5703) -arc(67.641 \@@_colon 39.146 \@@_colon 21.260) -.. controls (61.4104,69.5001) and (61.6291,69.2501) .. (62.6191,68.3301) -.. controls (63.6091,67.4101) and (65.7302,65.6409) .. (65.9902,65.2109) -.. controls (65.5302,64.4809) and (65.2102,65.8709) .. (64.9902,65.2109) -.. controls (65.3102,64.1509) and (66.0497,65.0005) .. (66.4297,64.7305) -.. controls (65.9097,64.6605) and (66.7002,64.0798) .. (66.9102,64.0098) -.. controls (66.9202,64.2498) and (66.6699,64.2902) .. (66.6699,64.4902) -.. controls (69.0499,62.5602) and (76.3102,62.6897) .. (76.9902,65.9297) -.. controls (77.4902,68.2897) and (75.9400,71.6391) .. (76.7500,75.2891) -.. controls (76.3300,75.4191) and (75.7605,75.4095) .. (75.5605,75.7695) -.. controls (75.9905,75.9095) and (76.9902,75.4798) .. (76.9902,76.0098) -.. controls (76.9002,76.8698) and (75.5605,76.5292) .. (75.5605,77.4492) -.. controls (76.0505,77.6792) and (76.4105,76.7292) .. (76.5605,77.4492) -.. controls (76.0405,78.0392) and (74.1492,77.6605) .. (73.4492,76.7305) -arc(269.148 \@@_colon 307.722 \@@_colon 1.150) -.. controls (73.8499,75.8807) and (73.1398,76.1100) .. (72.0098,76.2500) -.. controls (68.8898,74.1500) and (64.4695,71.2606) .. (59.7695,72.8906) -.. controls (62.6695,76.6606) and (68.4709,78.6999) .. (68.8809,84.1699) -.. controls (64.4509,85.3099) and (60.3292,88.8398) .. (55.4492,88.0098) -.. controls (54.9992,90.2398) and (55.1204,92.8398) .. (56.4004,94.0098) -.. controls (57.4604,93.8798) and (57.4494,93.6700) .. (57.6094,94.2500) -.. controls (61.8194,92.2200) and (68.1893,91.0905) .. (71.2793,88.7305) -.. controls (72.2593,89.4905) and (73.1095,88.1205) .. (73.6895,87.7305) -.. controls (74.2195,88.5405) and (75.9108,87.2802) .. (76.8008,87.4902) -.. controls (80.7608,88.4402) and (87.0005,95.6705) .. (88.5605,98.8105) -arc(59.356 \@@_colon 94.628 \@@_colon 5.270) -.. controls (85.3492,100.8193) and (87.0591,100.3092) .. (87.1191,101.4492) -.. controls (86.1591,101.5192) and (84.9207,101.3299) .. (84.7207,102.1699) -arc(278.294 \@@_colon 296.556 \@@_colon 42.930) -.. controls (99.9607,105.4500) and (102.9007,104.5792) .. (102.7207,101.4492) -.. controls (102.6207,99.6492) and (100.8496,98.1304) .. (99.8496,96.6504) -arc(177.436 \@@_colon 219.433 \@@_colon 1.060) -.. controls (99.4798,95.6197) and (98.7204,95.4897) .. (98.4004,94.9297) -.. controls (98.4304,94.5497) and (99.0209,94.7409) .. (98.8809,94.2109) -arc(112.332 \@@_colon 132.841 \@@_colon 8.770) -.. controls (97.0000,91.6293) and (95.0898,90.2591) .. (94.0898,90.3691) -.. controls (95.6498,90.3691) and (93.8905,89.2397) .. (94.5605,88.9297) -.. controls (95.1605,88.8397) and (95.2695,90.4304) .. (95.7695,89.6504) -arc(330.951 \@@_colon 306.519 \@@_colon 37.220) -arc(185.764 \@@_colon 193.919 \@@_colon 78.510) -.. controls (87.7791,63.8105) and (88.2004,61.4201) .. (90.6504,60.3301) -.. controls (92.8604,59.3501) and (96.4895,59.7502) .. (95.9395,56.4902) -.. controls (95.1895,56.7002) and (92.5608,55.8905) .. (93.0508,54.8105) -.. controls (92.1308,54.6005) and (92.6191,55.8593) .. (91.6191,55.5293) -.. controls (91.6191,55.0093) and (92.2696,55.1793) .. (92.0996,54.5293) -.. controls (85.8396,54.0293) and (82.1896,54.5605) .. (75.0996,55.7305) -arc(341.549 \@@_colon 304.724 \@@_colon 5.700) -.. controls (73.2595,52.5996) and (73.8304,52.6091) .. (74.1504,52.3691) -.. controls (73.6804,48.5391) and (75.6898,44.5198) .. (75.5898,41.0898) -.. controls (75.6398,41.2798) and (75.5901,41.5703) .. (75.8301,41.5703) -.. controls (76.3401,40.3503) and (76.4301,38.7602) .. (76.8301,37.4902) -.. controls (75.6701,37.2202) and (75.1392,36.3005) .. (74.1992,35.8105) -.. controls (74.1992,36.5305) and (75.1392,36.4505) .. (74.1992,36.8105) -.. controls (72.3092,34.9605) and (70.7602,37.5005) .. (68.9102,37.8105) -.. controls (69.6302,42.9705) and (65.7408,46.0991) .. (65.5508,50.2891) -.. controls (65.0208,49.8091) and (65.0408,50.3993) .. (64.5508,50.5293) -.. controls (64.1308,53.7893) and (61.5195,56.1295) .. (61.1895,58.6895) -.. controls (61.2595,58.4795) and (61.8499,57.6409) .. (61.9199,58.2109) -.. controls (61.9799,59.8009) and (60.4707,59.7901) .. (60.4707,61.3301) -.. controls (60.8007,61.9101) and (60.9495,61.4805) .. (61.1895,61.8105) -.. controls (61.1695,62.9105) and (59.8198,62.7402) .. (59.5098,63.4902) -.. controls (59.1998,64.2402) and (59.5798,64.1699) .. (59.5098,65.1699) -.. controls (58.0198,65.8699) and (56.7392,66.8294) .. (54.9492,66.6094) -.. controls (54.8792,66.0594) and (55.6797,66.3406) .. (55.6797,65.8906) -.. controls (54.2497,65.0806) and (54.0801,62.9795) .. (52.0801,62.7695) -arc(242.740 \@@_colon 223.719 \@@_colon 10.920) -.. controls (50.3895,70.2097) and (49.5407,77.7409) .. (48.4707,82.2109) -.. controls (48.9507,82.4109) and (49.1095,82.8502) .. (49.1895,83.4102) -.. controls (48.5095,83.7802) and (48.4098,84.6996) .. (47.5098,84.8496) -.. controls (47.4398,85.3196) and (47.8400,85.3303) .. (48.0000,85.5703) -arc(43.441 \@@_colon 58.403 \@@_colon 26.320) -.. controls (42.7397,89.5906) and (43.0595,89.4102) .. (42.4395,89.4102) -.. controls (41.8095,90.9402) and (37.0505,93.2493) .. (35.7305,92.5293) -.. controls (35.6805,92.7693) and (35.3500,92.7695) .. (35.0000,92.7695) -.. controls (35.6300,93.4695) and (35.2891,93.9609) .. (34.2891,94.2109) -.. controls (34.3391,93.8709) and (34.6798,93.8102) .. (34.7598,93.4902) -.. controls (32.3798,94.1702) and (31.6195,95.1099) .. (28.5195,95.1699) -.. controls (26.9695,93.6499) and (28.7507,92.1601) .. (29.9707,91.3301) -.. controls (30.6607,91.8101) and (31.3806,91.5905) .. (31.8906,91.8105) -.. controls (32.8906,88.4105) and (33.2709,84.3997) .. (36.2109,82.9297) -.. controls (37.8109,83.4497) and (39.6505,82.4492) .. (41.4805,82.4492) -.. controls (42.2105,82.0092) and (41.3209,81.3398) .. (42.2109,81.0098) -.. controls (43.5609,81.5698) and (44.0194,80.6303) .. (44.3594,79.5703) -.. controls (42.9194,79.8703) and (42.6705,78.6101) .. (41.4805,79.3301) -.. controls (41.4105,78.7701) and (41.0105,78.3406) .. (41.4805,77.8906) -.. controls (39.6705,77.7006) and (38.8902,78.9091) .. (37.4102,78.3691) -.. controls (37.6602,79.6191) and (35.2000,79.0898) .. (35.0000,79.0898) -arc(19.875 \@@_colon -3.283 \@@_colon 14.500) -.. controls (38.7198,71.8501) and (45.1500,71.5103) .. (44.0000,67.5703) -.. controls (43.1900,67.3603) and (43.4700,68.1891) .. (43.0000,68.2891) -.. controls (39.7900,67.5791) and (35.9997,68.4302) .. (32.9297,69.4902) -.. controls (30.2197,68.6402) and (25.5905,69.0191) .. (24.0605,66.3691) -.. controls (24.8105,65.2891) and (25.0902,63.7193) .. (25.7402,62.5293) -.. controls (29.9802,62.5693) and (34.1605,62.8108) .. (37.9805,62.0508) -.. controls (41.1405,61.4208) and (44.8601,60.7009) .. (47.3301,60.1309) -.. controls (49.8001,59.5609) and (56.5501,59.3302) .. (58.3301,57.4902) -.. controls (58.6501,57.1502) and (57.8008,56.6195) .. (58.8008,56.7695) --- (58.8008,54.6094) -.. controls (58.2208,53.5294) and (55.6406,54.2998) .. (56.6406,55.0898) -.. controls (55.8906,54.4298) and (54.8400,55.4896) .. (54.2500,54.8496) -.. controls (54.2300,53.6996) and (57.3006,54.4102) .. (56.6406,53.4102) -.. controls (54.9406,53.8302) and (53.4998,51.9200) .. (52.0898,51.2500) -.. controls (52.5898,50.3800) and (52.3998,50.0898) .. (52.0898,49.0898) -.. controls (54.1298,45.9998) and (58.1791,44.9097) .. (59.0391,41.9297) -.. controls (57.8791,40.4497) and (57.0009,40.3301) .. (56.8809,38.3301) -.. controls (55.4009,37.6601) and (53.1998,39.5703) .. (52.0898,38.5703) -.. controls (51.5098,39.0003) and (51.6406,40.0102) .. (50.6406,40.4902) -.. controls (47.8306,39.9402) and (44.6605,41.6309) .. (42.4805,43.1309) -arc(273.685 \@@_colon 255.960 \@@_colon 17.210) -arc(302.317 \@@_colon 269.485 \@@_colon 3.090) -.. controls (32.2695,43.7709) and (26.1294,44.6295) .. (27.6094,39.7695) -arc(151.965 \@@_colon 186.985 \@@_colon 4.460) -.. controls (27.8791,35.6709) and (29.2205,36.1309) .. (30.4805,36.1309) -.. controls (36.1305,36.0009) and (41.6295,34.5898) .. (48.0195,33.0898) -.. controls (50.5695,32.5498) and (53.2495,32.8494) .. (55.9395,32.6094) -.. controls (58.6295,32.3694) and (63.5595,31.6094) .. (66.9395,32.6094) -.. controls (67.6595,32.8494) and (68.2896,33.4794) .. (69.0996,33.6094) -.. controls (72.0596,34.0694) and (75.9395,33.5294) .. (78.9395,33.6094) -.. controls (83.9395,33.7294) and (98.1195,32.5091) .. (90.9395,27.3691) -.. controls (89.1595,27.5291) and (85.3493,28.5291) .. (82.7793,27.3691) -.. controls (79.6193,28.0891) and (76.6609,27.4391) .. (72.4609,27.3691) -.. controls (72.1109,26.7491) and (71.5802,26.4795) .. (71.9902,25.6895) -.. controls (71.3002,25.0895) and (70.0501,25.0598) .. (69.8301,24.0098) -.. controls (69.7701,23.3498) and (70.7701,23.7791) .. (70.8301,23.2891) -.. controls (69.8101,22.5391) and (70.5898,22.4309) .. (70.5898,21.1309) -.. controls (76.6298,19.0309) and (82.2792,14.4903) .. (86.1992,10.5703) -.. controls (88.1992,8.5603) and (89.0792,4.3697) .. (87.1992,1.9297) -.. controls (86.7892,1.4497) and (86.3192,2.1295) .. (86.1992,1.6895) -.. controls (86.0592,1.1745) and (85.7412,0.9376) .. (85.3320,0.8848) --- cycle(12.2207,82.6641) -.. controls (12.1023,82.8110) and (12.0097,83.0255) .. (12.0898,83.1992) -.. controls (12.1424,83.0285) and (12.1763,82.8418) .. (12.2207,82.6641) --- cycle(218.5644,3.7051) -.. controls (215.3721,3.6870) and (211.7815,5.4855) .. (211.7402,8.7305) -.. controls (210.9402,9.3605) and (209.2503,10.1309) .. (209.5703,11.1309) -.. controls (211.4203,11.4109) and (211.8799,10.4102) .. (213.4199,10.4102) -.. controls (213.3399,10.9702) and (213.0397,11.3098) .. (213.1797,12.0898) -.. controls (209.7097,14.8598) and (206.6696,18.0705) .. (203.0996,20.7305) -.. controls (203.0396,21.2205) and (203.3301,21.3005) .. (203.3301,21.7305) -.. controls (198.5101,26.6605) and (192.3809,29.1606) .. (184.3809,29.8906) -.. controls (184.4409,31.1006) and (185.1496,31.6800) .. (184.8496,33.2500) -.. controls (188.4496,34.8900) and (190.3492,39.2098) .. (194.4492,39.0098) -.. controls (195.9992,38.9298) and (197.1092,37.0805) .. (199.4492,37.8105) -.. controls (200.6492,39.7005) and (200.0704,41.9793) .. (200.6504,44.5293) -.. controls (194.7304,47.8293) and (191.1400,42.9894) .. (186.2500,42.6094) -.. controls (185.9900,44.1394) and (184.5896,43.3408) .. (183.8496,44.0508) -.. controls (183.9996,46.0208) and (181.8494,46.6891) .. (181.6894,48.3691) -.. controls (181.4795,50.4791) and (184.4908,52.8993) .. (184.8008,56.5293) -.. controls (185.1308,59.8893) and (185.6708,61.6895) .. (185.8008,64.6895) -.. controls (186.6808,65.0095) and (186.9609,65.9109) .. (187.9609,66.1309) -.. controls (192.7609,64.8109) and (193.6699,60.1503) .. (194.6699,55.5703) -arc(236.208 \@@_colon 246.657 \@@_colon 33.080) -.. controls (199.8309,50.4395) and (200.7801,51.8202) .. (202.8301,51.4902) -.. controls (204.1101,54.6302) and (201.2694,57.3795) .. (202.1094,58.6895) -.. controls (200.5294,58.8895) and (200.0508,60.9705) .. (197.8008,61.8105) -.. controls (196.8608,62.1505) and (195.3899,61.7891) .. (194.6699,62.2891) -.. controls (192.1599,64.0091) and (194.1598,70.5798) .. (198.7598,69.0098) -.. controls (199.2998,71.0698) and (205.8691,74.9297) .. (201.8691,76.9297) -.. controls (200.9391,77.3997) and (199.4693,76.9599) .. (198.2793,77.1699) -.. controls (195.7593,77.6099) and (193.3793,78.8496) .. (191.2793,78.8496) -.. controls (190.2493,80.2996) and (190.9601,80.7809) .. (190.3301,82.2109) -.. controls (192.6201,83.6709) and (196.5705,83.4901) .. (198.4805,85.3301) -.. controls (198.6205,86.4301) and (198.0600,86.8307) .. (198.2500,87.9707) -.. controls (196.7500,88.1507) and (196.6998,89.7896) .. (196.0898,90.8496) -.. controls (196.6198,92.0696) and (200.1897,92.0696) .. (199.9297,90.8496) -.. controls (199.7497,91.1796) and (198.5494,91.6902) .. (198.6094,91.4102) -.. controls (199.8894,91.0102) and (199.4598,89.7100) .. (201.0098,89.2500) -.. controls (201.5798,90.1700) and (202.1202,89.7905) .. (203.4102,89.7305) -.. controls (204.5302,91.6205) and (203.5604,94.6997) .. (203.9004,96.9297) -.. controls (201.6104,100.1397) and (196.8894,99.8105) .. (192.6094,99.8105) -.. controls (191.4094,101.1906) and (188.6508,99.5801) .. (188.3008,99.3301) -.. controls (188.9508,98.9701) and (189.3302,97.0292) .. (189.4902,96.4492) -.. controls (189.1902,97.0692) and (189.0008,97.1997) .. (188.3008,96.9297) -.. controls (188.3708,96.7397) and (188.8908,95.9297) .. (188.3008,95.9297) -.. controls (187.3708,97.5697) and (186.3197,97.6903) .. (184.9297,98.5703) -.. controls (185.4697,99.8803) and (184.3997,99.8905) .. (183.9297,100.7305) -.. controls (184.5997,103.7805) and (185.5707,108.4109) .. (188.7207,109.1309) -.. controls (189.3207,109.2709) and (189.4697,108.7104) .. (189.9297,108.6504) -.. controls (190.3897,108.5904) and (191.0996,108.8906) .. (191.5996,108.8906) -.. controls (195.5896,108.5306) and (199.9706,106.6400) .. (204.8106,106.2500) -.. controls (212.5906,105.6200) and (219.5094,106.0300) .. (227.3594,106.2500) -arc(40.581 \@@_colon -9.906 \@@_colon 8.510) -.. controls (225.5393,96.2400) and (220.3796,99.6993) .. (215.8496,98.5293) -.. controls (214.4096,95.7093) and (213.7002,90.2891) .. (214.1602,86.2891) -.. controls (214.1102,86.6591) and (213.7695,86.3308) .. (213.6894,86.0508) -.. controls (214.5694,85.4208) and (214.7801,84.1106) .. (216.0801,83.8906) -.. controls (216.0301,84.1906) and (215.7101,84.3691) .. (216.3301,84.3691) -.. controls (220.0501,83.7191) and (221.3801,80.6509) .. (221.3301,76.2109) -.. controls (220.2701,75.7009) and (220.1697,74.8293) .. (218.9297,74.5293) -.. controls (217.6897,74.2293) and (215.4201,75.5605) .. (215.3301,73.8105) -.. controls (215.6501,73.8105) and (215.5503,74.2291) .. (215.8203,74.2891) -.. controls (215.3303,73.5291) and (214.5703,70.1593) .. (215.5703,68.5293) -.. controls (215.5503,68.1493) and (214.9596,68.3405) .. (215.0996,67.8105) -.. controls (216.6009,67.9153) and (218.9227,67.6823) .. (219.9883,66.9570) -.. controls (219.9432,66.9887) and (219.9073,67.0279) .. (219.8906,67.0898) -.. controls (221.8806,66.8298) and (222.2893,65.7609) .. (222.5293,64.2109) -.. controls (220.6193,63.0409) and (220.6191,58.8295) .. (220.3691,56.7695) -.. controls (220.1191,56.9895) and (220.3002,57.6502) .. (219.6602,57.4902) -.. controls (220.2802,56.4802) and (219.2697,56.4803) .. (219.1797,55.5703) -.. controls (220.6997,55.0103) and (220.9408,53.2899) .. (222.3008,53.1699) -.. controls (222.3708,52.6999) and (221.9703,52.6892) .. (221.8203,52.4492) -.. controls (222.6603,51.6092) and (223.1297,50.4093) .. (224.9297,50.5293) -.. controls (223.8197,52.2693) and (221.7403,52.8496) .. (221.8203,54.8496) -.. controls (222.6503,53.6596) and (225.2992,53.1707) .. (224.6992,51.9707) -.. controls (226.8192,51.2907) and (230.0300,47.2891) .. (229.2500,44.2891) -.. controls (228.5300,41.4691) and (223.8596,40.7002) .. (221.0996,41.4102) -.. controls (217.7596,42.2602) and (214.0600,43.5801) .. (211.2500,43.3301) -.. controls (211.8600,40.1301) and (208.6291,38.8001) .. (208.3691,36.3301) -arc(191.435 \@@_colon 242.732 \@@_colon 2.780) -.. controls (213.8603,33.1002) and (218.3008,32.1605) .. (222.3008,30.8105) -arc(29.303 \@@_colon 9.563 \@@_colon 12.620) -.. controls (222.6802,26.2805) and (222.0703,25.1605) .. (221.5703,24.8105) -.. controls (217.7803,24.5705) and (214.2500,25.2103) .. (211.2500,24.5703) -.. controls (211.5100,24.0303) and (212.7599,24.4801) .. (213.4199,24.3301) -.. controls (213.2799,23.4301) and (211.7500,23.9209) .. (211.5000,23.1309) -.. controls (211.9600,19.6809) and (216.0700,19.8609) .. (217.2500,17.1309) -.. controls (215.8500,16.4409) and (218.6309,13.7307) .. (218.4609,14.9707) -.. controls (219.2809,13.2107) and (221.1796,11.3309) .. (220.8496,9.2109) -.. controls (221.5596,9.0909) and (222.5608,6.6106) .. (222.3008,4.8906) -.. controls (221.3852,4.0969) and (220.0155,3.7133) .. (218.5644,3.7051) --- cycle(345.4863,7.8203) -.. controls (345.3420,7.8137) and (345.1977,7.8198) .. (345.0508,7.8398) -.. controls (343.1108,8.0998) and (343.5609,10.4707) .. (341.2109,10.7207) -.. controls (341.0309,12.7407) and (342.8396,12.7598) .. (343.5996,13.8398) -.. controls (342.9296,16.7298) and (340.2498,18.2901) .. (337.8398,20.0801) -.. controls (338.4998,20.2301) and (338.9691,18.9896) .. (339.2891,19.5996) -.. controls (339.1591,20.5996) and (335.2304,22.0696) .. (336.4004,20.5996) -.. controls (335.0804,20.1296) and (335.6905,22.7896) .. (334.4805,21.5996) -.. controls (334.5105,21.2196) and (335.1007,21.4109) .. (334.9707,20.8809) -.. controls (334.4007,13.5609) and (328.1907,8.5809) .. (321.9707,9.8809) -.. controls (321.5207,9.7809) and (321.5395,9.1904) .. (320.7695,9.4004) -arc(240.714 \@@_colon 219.591 \@@_colon 20.430) -.. controls (314.7595,15.0992) and (315.6102,14.8806) .. (315.4902,15.6406) -.. controls (313.2002,18.2706) and (312.0602,22.0805) .. (310.4902,25.4805) -.. controls (310.9002,26.0405) and (311.9004,25.9609) .. (312.9004,25.9609) -arc(20.120 \@@_colon 2.518 \@@_colon 8.000) -.. controls (313.8909,23.9605) and (313.7209,23.5605) .. (314.3809,23.5605) -.. controls (316.6409,20.9705) and (319.9205,15.1599) .. (323.7305,14.9199) -.. controls (327.9005,14.6599) and (324.8504,24.3599) .. (325.6504,26.9199) -.. controls (325.2004,27.0199) and (324.6192,27.0106) .. (324.6992,27.6406) -.. controls (324.7192,28.4906) and (325.4899,27.1309) .. (325.4199,27.8809) -.. controls (323.2199,30.9309) and (319.2102,33.4705) .. (317.4902,35.5605) -.. controls (317.4402,35.3705) and (317.4898,35.0801) .. (317.2598,35.0801) -.. controls (317.1998,35.5701) and (317.4902,35.6501) .. (317.4902,36.0801) -.. controls (316.8502,35.7601) and (316.7002,37.0303) .. (316.4902,36.3203) -.. controls (316.7302,36.2903) and (317.2205,35.5296) .. (316.7305,35.5996) -.. controls (316.0505,36.5996) and (315.7098,37.9302) .. (314.3398,38.2402) -.. controls (314.2198,37.4902) and (314.9805,37.6091) .. (315.0605,37.0391) -.. controls (313.8505,37.2191) and (313.2094,36.9198) .. (313.6094,35.8398) -.. controls (310.5994,34.5998) and (312.1493,30.2698) .. (309.5293,28.8398) -.. controls (309.3093,30.9098) and (305.9995,31.8196) .. (305.6895,34.5996) -.. controls (305.0195,34.6396) and (305.1402,33.8809) .. (304.4902,33.8809) -.. controls (304.3602,37.6909) and (306.3497,39.3905) .. (305.9297,43.4805) -arc(152.875 \@@_colon 143.117 \@@_colon 39.930) -.. controls (312.3093,50.6802) and (316.0709,50.2700) .. (319.1309,49.0000) -.. controls (320.8309,48.3000) and (321.7607,46.8998) .. (323.2207,46.8398) -.. controls (329.1707,46.5698) and (328.4393,55.3693) .. (327.5293,60.2793) -.. controls (327.5893,60.0393) and (327.9298,59.6991) .. (328.0098,60.0391) -.. controls (322.8298,67.2491) and (318.3708,76.4395) .. (309.3008,80.4395) -.. controls (308.9908,81.0795) and (309.4205,81.2295) .. (309.0605,81.4395) -.. controls (308.1905,80.4395) and (307.5209,82.6995) .. (307.1309,81.4395) -.. controls (308.2309,81.5095) and (307.4198,80.6402) .. (308.3398,80.2402) -.. controls (307.6598,80.1002) and (307.1102,81.2305) .. (306.6602,80.4805) -.. controls (306.7502,79.6705) and (307.5909,81.1200) .. (307.3809,80.0000) -.. controls (306.0609,79.4500) and (308.4106,75.2506) .. (309.0605,76.6406) -.. controls (308.4305,73.3406) and (311.8105,69.1693) .. (314.8105,67.2793) -.. controls (314.8306,67.7193) and (313.5898,68.0905) .. (314.3398,68.4805) -.. controls (315.5798,66.4505) and (318.6497,65.1992) .. (317.9297,63.1992) -.. controls (318.2897,63.8292) and (318.7709,63.1992) .. (319.3809,63.1992) -.. controls (319.3209,62.6392) and (321.1401,61.5103) .. (320.5801,60.3203) -.. controls (320.3901,59.8303) and (319.5001,60.4901) .. (319.5801,60.0801) -.. controls (319.8101,58.9701) and (319.5709,60.0801) .. (318.6309,59.0801) -.. controls (318.4709,58.8701) and (318.7409,58.2901) .. (318.6309,58.0801) -.. controls (318.0909,57.0901) and (316.9909,56.6797) .. (316.4609,55.6797) -.. controls (313.0609,56.2497) and (310.7606,54.9997) .. (308.0605,54.6797) -.. controls (308.0605,56.3997) and (303.8906,55.4991) .. (302.0605,56.1191) -.. controls (302.9506,61.3491) and (311.0992,59.2505) .. (310.9492,65.4805) -arc(209.743 \@@_colon 178.538 \@@_colon 9.200) -arc(227.795 \@@_colon 181.427 \@@_colon 4.360) -.. controls (308.2505,73.2104) and (308.3005,72.9199) .. (308.0605,72.9199) -.. controls (307.8105,74.8699) and (306.5996,76.0493) .. (307.3496,76.2793) -.. controls (306.8196,76.8193) and (305.9099,76.9397) .. (305.4199,78.6797) -arc(21.579 \@@_colon 35.612 \@@_colon 12.310) -arc(204.090 \@@_colon 155.910 \@@_colon 7.350) -.. controls (307.0905,88.4103) and (306.9805,92.7198) .. (310.9805,92.8398) -.. controls (311.5905,91.9298) and (311.8204,91.9998) .. (312.9004,91.8398) -.. controls (314.0522,89.1030) and (317.2825,87.2279) .. (318.1270,84.9473) -.. controls (318.0679,85.0132) and (317.9642,85.0260) .. (317.9297,84.8398) -.. controls (319.4397,84.1098) and (319.6005,82.0000) .. (320.8105,81.0000) -.. controls (320.8705,80.5100) and (320.5801,80.4300) .. (320.5801,80.0000) -arc(53.110 \@@_colon -4.613 \@@_colon 3.000) -.. controls (323.1795,75.2594) and (327.2006,74.7198) .. (327.0605,71.8398) -arc(62.512 \@@_colon 53.508 \@@_colon 14.420) -.. controls (329.8205,71.2006) and (329.4102,71.4709) .. (330.6602,70.8809) -arc(340.716 \@@_colon 359.997 \@@_colon 21.200) -.. controls (331.6996,80.1509) and (328.9198,84.7409) .. (328.2598,87.9609) -.. controls (327.7098,90.5709) and (326.7792,93.3898) .. (323.4492,92.7598) -.. controls (323.5092,97.4098) and (326.5692,100.1992) .. (330.4492,100.1992) -arc(189.536 \@@_colon 208.773 \@@_colon 9.120) -.. controls (333.7392,96.4203) and (337.0295,92.6197) .. (335.5195,88.6797) -.. controls (337.7495,86.4597) and (336.5909,82.1505) .. (339.1309,79.5605) -arc(162.460 \@@_colon 225.191 \@@_colon 2.850) -.. controls (339.6098,69.7297) and (338.2909,63.2800) .. (339.1309,57.0000) -.. controls (339.6609,53.0000) and (344.4895,49.0009) .. (341.0195,47.2109) -.. controls (339.8995,47.7009) and (339.7309,49.1291) .. (338.3809,49.3691) -.. controls (338.1609,48.5591) and (338.9996,48.8291) .. (339.0996,48.3691) -.. controls (337.0096,44.2391) and (336.3999,36.2508) .. (337.1699,32.0508) -.. controls (338.1399,32.6508) and (338.7903,31.1996) .. (339.5703,30.8496) -.. controls (343.5503,28.2596) and (349.2008,27.3504) .. (352.0508,23.6504) -.. controls (352.3008,24.3004) and (352.9708,23.4499) .. (353.0508,23.1699) -.. controls (352.6308,23.0799) and (352.4301,23.5299) .. (352.3301,23.1699) -.. controls (352.9101,22.3299) and (353.0599,21.6100) .. (353.9199,22.0000) -.. controls (353.6699,21.4700) and (353.4702,19.6508) .. (354.1602,20.8008) -.. controls (354.3111,18.5099) and (353.9211,17.5723) .. (354.0762,16.4395) -.. controls (354.0590,16.8983) and (354.8379,15.1416) .. (354.6504,14.8008) -.. controls (353.3004,13.9008) and (353.2500,11.7005) .. (352.2500,10.4805) -.. controls (349.5688,10.8180) and (347.6518,7.9201) .. (345.4863,7.8203) --- cycle(318.1270,84.9473) -.. controls (318.1536,84.9175) and (318.1730,84.8802) .. (318.1699,84.8398) -.. controls (318.1578,84.8761) and (318.1403,84.9113) .. (318.1270,84.9473) --- cycle(319.1992,9.0000) -.. controls (318.8192,9.6800) and (317.1695,10.3199) .. (317.5195,10.9199) -.. controls (318.0195,10.3699) and (319.4892,9.5300) .. (319.1992,9.0000) --- cycle(166.2676,16.6445) -.. controls (163.9299,16.5956) and (161.9392,17.8587) .. (160.0898,19.5293) -.. controls (158.9798,26.4993) and (165.5296,27.8199) .. (165.8496,34.1699) -arc(41.122 \@@_colon 122.599 \@@_colon 1.300) -.. controls (164.1199,34.8102) and (164.2497,35.3302) .. (163.9297,35.4102) -.. controls (165.1597,38.7502) and (170.4998,36.4694) .. (174.0098,36.6094) -.. controls (174.7198,34.6094) and (178.3194,34.2594) .. (177.6094,29.6094) -arc(122.193 \@@_colon 185.575 \@@_colon 1.060) -.. controls (172.6391,26.6094) and (172.4195,20.9294) .. (169.6894,17.6094) -.. controls (168.4644,16.9594) and (167.3302,16.6668) .. (166.2676,16.6445) --- cycle(354.0391,37.0508) -arc(238.189 \@@_colon 231.823 \@@_colon 52.750) -.. controls (350.0002,40.8102) and (350.2292,39.5199) .. (350.4492,40.1699) -.. controls (350.0092,40.4699) and (349.8198,40.9806) .. (349.0098,40.8906) -.. controls (348.8098,41.8106) and (350.1609,41.1698) .. (349.9609,42.0898) -.. controls (349.3909,42.9598) and (347.4708,42.4198) .. (347.8008,43.0898) -arc(184.500 \@@_colon 355.500 \@@_colon 0.240) -.. controls (348.0493,43.4798) and (347.6401,43.6401) .. (347.3301,43.3301) -.. controls (347.4401,44.3901) and (346.9901,44.5200) .. (347.3301,45.2500) -.. controls (346.8601,45.3000) and (346.0801,45.0105) .. (346.3301,45.7305) -.. controls (347.9501,47.0605) and (350.3906,43.2903) .. (352.5605,43.5703) -.. controls (352.3306,47.1903) and (352.7801,50.5609) .. (352.0801,54.1309) -.. controls (351.0001,59.7309) and (347.1795,64.7305) .. (347.5195,69.7305) -.. controls (347.6995,72.2105) and (350.0801,74.6505) .. (352.0801,75.7305) -.. controls (354.9601,77.2405) and (359.8791,74.4198) .. (363.3691,75.0098) -.. controls (365.8791,75.4398) and (367.4502,77.5293) .. (368.1602,80.5293) -.. controls (366.9302,83.4493) and (363.3005,83.9901) .. (360.4805,85.3301) -.. controls (354.9405,87.7001) and (348.7596,89.4509) .. (345.5996,94.2109) -.. controls (347.2896,95.6909) and (350.4591,94.3995) .. (353.2891,94.6895) -.. controls (354.6691,94.8295) and (356.5001,94.6295) .. (358.0801,94.6895) -.. controls (361.8601,90.8895) and (367.3005,89.5903) .. (374.2305,87.5703) -.. controls (374.0305,86.5703) and (375.7202,86.4597) .. (375.9102,84.9297) -.. controls (375.9202,84.8597) and (375.4399,84.3697) .. (375.6699,83.9297) -.. controls (375.8999,83.4897) and (376.9594,83.2402) .. (377.3594,82.4902) -.. controls (377.3294,82.5302) and (376.9291,82.1998) .. (377.1191,82.0098) -.. controls (377.5491,81.5698) and (378.2208,81.6991) .. (378.5508,81.2891) -.. controls (379.6308,79.9591) and (378.4808,78.1205) .. (378.8008,76.7305) -.. controls (376.1708,75.4105) and (374.4506,73.3304) .. (372.3105,72.6504) --- (372.3105,71.6504) -.. controls (369.8906,71.7004) and (370.0592,70.1198) .. (369.1992,69.0098) -.. controls (365.3592,68.7298) and (363.0703,70.6000) .. (360.0703,69.2500) -.. controls (359.2903,67.4200) and (357.1905,67.5804) .. (356.4805,65.6504) -.. controls (356.0805,64.5304) and (356.8902,63.5293) .. (355.9902,62.5293) -.. controls (357.7002,60.2293) and (358.2495,57.0099) .. (357.4395,53.1699) -.. controls (358.3394,53.8199) and (357.8499,51.4600) .. (357.6699,51.2500) -.. controls (357.8099,51.4000) and (357.4395,51.9402) .. (357.4395,51.4902) -.. controls (357.3095,50.2302) and (358.2904,51.4902) .. (358.1504,50.4902) -.. controls (357.6904,47.1302) and (359.4091,43.0201) .. (361.0391,42.3301) -.. controls (361.0391,38.1701) and (356.6991,38.4808) .. (354.0391,37.0508) --- cycle(166.8301,44.1309) -.. controls (164.1501,44.8009) and (162.1199,47.9995) .. (158.6699,48.6895) -.. controls (158.7399,49.2795) and (158.6192,49.6295) .. (158.1992,49.6895) -.. controls (155.6392,48.2795) and (152.9902,50.8694) .. (150.9902,51.6094) -.. controls (151.2602,50.1094) and (148.9891,51.7596) .. (148.1191,51.8496) -.. controls (147.0691,51.9596) and (144.6903,51.3691) .. (143.0703,51.3691) -.. controls (139.4503,56.4791) and (145.5508,60.0009) .. (149.5508,61.2109) -.. controls (151.6708,60.7509) and (154.0391,58.2891) .. (156.0391,59.2891) -.. controls (155.6791,61.1791) and (154.9691,62.8603) .. (155.0391,64.5703) -.. controls (155.2191,68.5303) and (157.2891,71.1397) .. (159.1191,73.9297) -.. controls (160.9491,76.7197) and (157.0392,80.7998) .. (157.1992,84.0098) -.. controls (155.8492,84.8798) and (155.0991,87.5798) .. (155.0391,89.0098) -arc(233.865 \@@_colon 156.193 \@@_colon 2.180) -.. controls (151.2401,95.0904) and (150.7206,103.6198) .. (154.5606,107.0098) -.. controls (155.6405,106.6898) and (157.9104,107.4198) .. (158.4004,106.0098) -.. controls (157.1204,105.5998) and (159.6891,105.3398) .. (159.1191,104.0898) -.. controls (159.8591,104.7398) and (160.7993,102.6298) .. (161.2793,103.0898) -.. controls (160.9993,103.3398) and (159.9996,104.0001) .. (160.5996,104.3301) -.. controls (162.0496,102.6501) and (164.2604,101.7398) .. (165.6504,100.0098) -.. controls (163.5504,100.7198) and (162.8998,102.2997) .. (160.8398,101.9297) -.. controls (163.3398,100.3697) and (165.0508,98.2004) .. (168.0508,96.6504) -arc(-11.062 \@@_colon 30.012 \@@_colon 2.080) -.. controls (169.2705,97.2298) and (170.1795,94.5491) .. (170.4394,93.2891) -.. controls (170.0394,94.6391) and (168.5505,94.9297) .. (167.8106,95.9297) -.. controls (167.4706,95.2097) and (167.9401,95.0605) .. (167.0801,94.7305) -.. controls (167.9001,94.5805) and (168.2000,93.1005) .. (169.0000,93.7305) -.. controls (169.6200,90.8305) and (172.2098,89.8898) .. (172.8398,87.0098) -.. controls (172.4998,86.8798) and (171.6004,87.2895) .. (171.6504,86.7695) -.. controls (174.2704,84.8895) and (175.8906,80.7695) .. (177.8906,79.7695) -.. controls (177.7606,80.0795) and (177.2804,81.2109) .. (177.6504,81.2109) -arc(30.904 \@@_colon 4.733 \@@_colon 15.590) -arc(9.886 \@@_colon 31.774 \@@_colon 5.410) -.. controls (179.0901,75.7702) and (179.5196,74.5495) .. (178.5996,73.7695) -.. controls (179.4896,73.6195) and (179.8491,73.2500) .. (180.2891,74.2500) -.. controls (180.8591,70.1600) and (184.5597,66.0802) .. (182.6797,62.4902) -.. controls (181.4397,62.7802) and (180.3401,62.6407) .. (179.0801,62.9707) -.. controls (178.6501,66.4407) and (176.1607,69.0791) .. (175.9707,71.3691) -.. controls (175.6207,71.2791) and (175.5602,71.0791) .. (175.2402,71.3691) -arc(188.233 \@@_colon 143.694 \@@_colon 1.360) -.. controls (174.7102,71.6491) and (174.0191,73.9991) .. (174.2891,74.2891) -.. controls (174.2391,73.7691) and (174.4800,73.5703) .. (175.0000,73.5703) -arc(212.989 \@@_colon 198.281 \@@_colon 12.820) -.. controls (173.3901,76.8693) and (172.6306,76.9400) .. (172.3906,77.2500) -.. controls (171.7906,78.0100) and (171.9599,79.6991) .. (171.6699,80.3691) -.. controls (171.4499,80.7891) and (170.7299,80.9398) .. (170.6699,81.0898) -.. controls (170.4299,81.7398) and (170.8807,83.9098) .. (169.7207,83.0098) -.. controls (169.4707,86.2698) and (166.8504,89.0604) .. (165.1504,91.6504) -.. controls (164.7204,91.6104) and (163.1007,92.0296) .. (163.7207,92.8496) -.. controls (163.6407,92.6096) and (164.4297,92.0194) .. (164.4297,92.6094) -arc(40.455 \@@_colon 56.026 \@@_colon 10.640) -.. controls (162.2993,96.2493) and (158.9600,99.9506) .. (156.7500,97.8906) -.. controls (157.4300,97.6906) and (157.3809,98.2309) .. (157.9609,98.1309) -.. controls (156.9609,96.0609) and (158.8197,93.7991) .. (158.4297,92.3691) -arc(13.877 \@@_colon 97.873 \@@_colon 0.640) -.. controls (157.7907,92.3796) and (157.3905,92.3709) .. (157.2305,92.1309) -arc(212.396 \@@_colon 258.028 \@@_colon 2.260) -arc(159.978 \@@_colon 132.498 \@@_colon 1.820) -.. controls (159.0104,91.1996) and (160.2406,90.7302) .. (159.6406,90.4102) -.. controls (159.6106,91.0002) and (158.8402,90.4599) .. (158.9102,90.1699) -.. controls (159.1902,89.2399) and (159.5899,88.9602) .. (158.6699,88.4902) -arc(208.733 \@@_colon 241.267 \@@_colon 14.540) -.. controls (163.4597,82.8205) and (164.2802,81.3393) .. (164.9102,81.5293) -arc(-35.239 \@@_colon 12.620 \@@_colon 1.510) -arc(52.462 \@@_colon 11.559 \@@_colon 6.480) -.. controls (166.9608,79.5806) and (166.7009,80.6008) .. (165.8809,81.0508) -.. controls (166.5709,80.3708) and (165.5106,80.3896) .. (165.3906,79.8496) -arc(246.100 \@@_colon 293.900 \@@_colon 1.480) -.. controls (166.6598,79.1496) and (166.0491,79.1102) .. (166.1191,78.4102) -.. controls (167.5091,77.7102) and (167.5397,73.8303) .. (170.4297,74.5703) -arc(15.228 \@@_colon -48.481 \@@_colon 7.120) -.. controls (168.2793,67.0491) and (168.7000,67.1506) .. (168.7500,66.8906) -arc(113.864 \@@_colon 197.037 \@@_colon 4.770) -.. controls (165.9091,61.9909) and (165.0202,61.4306) .. (164.9102,60.8906) -.. controls (165.1902,59.4206) and (166.4508,58.3107) .. (167.5508,58.9707) -.. controls (167.3708,59.1707) and (166.4003,59.8599) .. (167.0703,60.1699) -.. controls (168.2903,58.4199) and (168.4805,56.9899) .. (169.4805,55.1699) -.. controls (171.5005,54.4599) and (174.0709,52.2594) .. (175.9609,50.6094) -.. controls (176.1009,48.6694) and (177.1802,47.6701) .. (176.9102,45.3301) -arc(295.080 \@@_colon 240.334 \@@_colon 6.530) -.. controls (170.0202,44.6203) and (167.9201,44.8809) .. (166.8301,44.1309) --- cycle(463.1992,44.2891) -.. controls (463.4692,44.5991) and (463.2999,46.5705) .. (463.9199,45.7305) -arc(13.267 \@@_colon 107.881 \@@_colon 7.310) -.. controls (455.0005,49.9198) and (454.6608,48.5795) .. (454.8008,46.6895) -.. controls (457.1808,45.5595) and (460.3192,44.1391) .. (463.1992,44.2891) --- cycle(220.5606,46.2109) -.. controls (220.8805,46.7609) and (221.6598,47.1404) .. (220.8398,47.6504) -.. controls (220.9298,47.9904) and (221.2703,47.6702) .. (221.3203,47.4102) -.. controls (221.4203,48.5702) and (219.4192,50.8995) .. (218.1992,50.7695) -.. controls (218.1492,52.7895) and (216.1402,54.7396) .. (213.4102,54.8496) -.. controls (213.2702,53.3296) and (213.4102,51.5909) .. (212.4102,52.2109) -.. controls (213.2902,51.5609) and (212.4304,50.6501) .. (212.6504,49.3301) -arc(71.532 \@@_colon 65.427 \@@_colon 79.840) --- cycle(34.6152,47.5312) -.. controls (35.4123,47.5667) and (36.2652,47.6856) .. (37.1602,47.8906) -.. controls (40.4402,48.6406) and (42.2499,49.9707) .. (42.9199,51.9707) -.. controls (42.8999,51.9107) and (43.6504,53.6102) .. (43.6504,53.4102) --- (43.6895,53.4102) -.. controls (43.4395,54.5602) and (41.2295,55.0596) .. (40.5195,54.8496) -.. controls (39.7095,56.1196) and (37.5395,56.4007) .. (36.4395,57.9707) -.. controls (33.8495,58.1207) and (29.9601,58.4000) .. (27.0801,57.2500) -.. controls (27.7201,54.5200) and (28.9902,52.4301) .. (29.2402,49.3301) -.. controls (30.3277,48.0626) and (32.2241,47.4248) .. (34.6152,47.5312) --- cycle(228.4805,47.6504) -.. controls (227.7405,48.3404) and (227.3403,49.3905) .. (226.3203,49.8105) -.. controls (227.0703,49.1105) and (227.4805,48.0704) .. (228.4805,47.6504) --- cycle(63.0801,56.0508) -arc(25.523 \@@_colon 33.425 \@@_colon 13.740) -.. controls (61.7324,57.2678) and (62.5223,56.1682) .. (63.0801,56.0508) --- cycle(316.7793,64.9004) -.. controls (316.8590,64.8999) and (316.9495,64.9084) .. (317.0508,64.9297) -arc(-5.990 \@@_colon 95.990 \@@_colon 0.910) -.. controls (316.1558,65.4047) and (316.2216,64.9038) .. (316.7793,64.9004) --- cycle(220.3691,66.6094) -.. controls (220.3691,66.8436) and (220.1511,66.8553) .. (220.0059,66.9453) -.. controls (220.1531,66.8429) and (220.2774,66.7316) .. (220.3691,66.6094) --- cycle(42.3750,69.2754) -.. controls (42.5528,69.2577) and (42.7484,69.2593) .. (42.9609,69.2793) -.. controls (42.4509,69.5693) and (41.7793,70.4300) .. (41.2793,70.0000) -.. controls (41.4668,69.5575) and (41.8416,69.3284) .. (42.3750,69.2754) --- cycle(178.5606,75.4902) -.. controls (178.8406,76.0002) and (178.6591,76.1897) .. (179.0391,76.9297) -.. controls (178.8491,77.1397) and (178.3901,77.0702) .. (178.3301,77.4102) -.. controls (177.6501,76.9502) and (178.6506,76.1602) .. (178.5606,75.4902) --- cycle(41.7695,80.0508) -arc(-73.942 \@@_colon 6.418 \@@_colon 0.670) -arc(51.534 \@@_colon 128.466 \@@_colon 1.190) -.. controls (40.8695,80.2795) and (41.6995,80.5408) .. (41.7695,80.0508) --- cycle(176.4004,82.9297) -.. controls (175.3404,84.8997) and (173.7093,87.6002) .. (173.2793,89.4102) -.. controls (174.4893,87.5802) and (176.3004,85.0597) .. (176.4004,82.9297) --- cycle(163.4492,84.3691) -.. controls (163.3692,84.7991) and (162.1809,85.3105) .. (162.9609,85.8105) -.. controls (163.0409,85.3705) and (164.2292,84.8691) .. (163.4492,84.3691) --- cycle(352.5605,88.0000) -.. controls (351.7505,88.2900) and (349.8002,88.7095) .. (350.1602,89.4395) -.. controls (350.5602,88.5595) and (352.1606,88.8800) .. (352.5605,88.0000) --- cycle(160.3301,88.9297) -.. controls (160.0001,89.4297) and (159.3791,89.5909) .. (159.1191,90.1309) -.. controls (160.0691,90.4209) and (160.8001,89.2697) .. (160.3301,88.9297) --- cycle(450.1328,93.1133) -.. controls (449.0783,93.1380) and (448.0180,93.5000) .. (447.8398,94.2500) -.. controls (448.0498,98.7300) and (444.8908,102.5500) .. (449.0508,105.2500) -.. controls (451.5708,104.6900) and (451.6098,102.4894) .. (453.8398,102.6094) -.. controls (453.5598,101.3294) and (454.3505,102.5506) .. (454.5605,101.8906) -.. controls (453.7305,101.6006) and (455.1102,99.8505) .. (454.1602,100.7305) -.. controls (455.5602,99.5405) and (452.6002,96.9297) .. (454.4102,95.9297) -.. controls (453.9902,95.2597) and (454.0802,94.1295) .. (453.4102,93.7695) -arc(32.782 \@@_colon 95.892 \@@_colon 1.060) -.. controls (452.5164,93.4903) and (451.3280,93.0853) .. (450.1328,93.1133) --- cycle(191.0000,94.0000) -.. controls (190.6700,94.5500) and (189.7503,94.5995) .. (189.5703,95.4395) -.. controls (190.2703,95.3295) and (191.2900,94.3000) .. (191.0000,94.0000) --- cycle(191.9531,94.2109) -.. controls (191.0027,94.2470) and (191.1038,95.4003) .. (190.0801,95.4102) -.. controls (190.2101,96.2902) and (191.6500,94.6809) .. (192.0000,94.2109) -.. controls (191.9844,94.2109) and (191.9682,94.2104) .. (191.9531,94.2109) --- cycle(37.7246,94.8965) -arc(268.326 \@@_colon 257.924 \@@_colon 1.530) -arc(-6.827 \@@_colon 35.993 \@@_colon 1.360) -.. controls (38.0192,95.9806) and (38.2306,95.4699) .. (38.6406,95.1699) -arc(304.825 \@@_colon 268.417 \@@_colon 1.530) --- cycle(36.4395,95.1699) -arc(-39.433 \@@_colon 2.563 \@@_colon 1.060) -.. controls (36.0097,96.0906) and (36.0605,95.5504) .. (35.4805,95.6504) --- (35.5195,95.6504) -arc(213.111 \@@_colon 271.733 \@@_colon 1.060) --- cycle(101.0000,104.0508) -.. controls (101.5500,104.5008) and (100.0803,105.0000) .. (99.5703,105.2500) -.. controls (99.4403,104.2500) and (100.6700,104.5908) .. (101.0000,104.0508) --- cycle(181.7402,149.1894) -.. controls (181.3715,149.2218) and (180.9966,149.2967) .. (180.6191,149.4492) -arc(335.759 \@@_colon 347.371 \@@_colon 7.510) -.. controls (179.9096,151.5406) and (179.8899,153.3605) .. (179.4199,154.7305) -.. controls (177.6699,155.7305) and (177.3908,158.4300) .. (176.3008,160.2500) -.. controls (174.1008,163.9600) and (170.7204,164.5104) .. (174.1504,168.6504) -.. controls (178.2304,169.7504) and (182.9204,168.9104) .. (186.1504,168.6504) -.. controls (185.5404,169.3304) and (184.8305,169.8903) .. (184.2305,170.5703) -.. controls (185.5505,169.7703) and (187.4393,168.5898) .. (188.7793,170.0898) -.. controls (188.1893,170.8098) and (187.5898,171.2698) .. (187.5898,172.0098) -.. controls (189.6498,172.1698) and (188.8009,170.8603) .. (190.4609,170.5703) -.. controls (191.7509,173.3703) and (190.4298,177.3009) .. (189.2598,179.2109) -.. controls (190.7498,182.6909) and (185.7895,184.2794) .. (183.0195,185.6894) -.. controls (183.0495,185.0294) and (183.4793,184.8709) .. (182.7793,185.2109) -.. controls (181.9093,185.6309) and (183.3395,185.6109) .. (183.0195,186.2109) -.. controls (180.4295,186.5209) and (178.1598,187.6094) .. (177.5098,188.6094) -.. controls (177.0198,188.6594) and (176.9498,188.3691) .. (176.5098,188.3691) -.. controls (174.0398,190.4591) and (168.6792,192.8695) .. (166.1992,190.7695) -.. controls (166.5992,189.8395) and (166.1407,190.2595) .. (165.7207,189.7695) -.. controls (165.9607,189.0395) and (166.9097,187.7809) .. (166.4297,187.1309) -.. controls (166.2397,188.2809) and (164.3203,189.2609) .. (163.3203,188.1309) -.. controls (163.3603,187.8209) and (164.0105,186.9297) .. (163.5606,186.9297) -arc(38.969 \@@_colon 54.986 \@@_colon 17.670) -.. controls (160.7409,192.2391) and (163.8305,193.7005) .. (165.4805,195.8106) -.. controls (167.2705,198.1105) and (169.1992,199.6707) .. (172.1992,197.9707) -arc(183.916 \@@_colon 229.245 \@@_colon 4.180) -.. controls (176.0406,195.4498) and (177.3496,191.9897) .. (180.3496,192.9297) -.. controls (181.3096,190.9297) and (184.9306,191.5801) .. (185.6406,189.3301) -.. controls (186.2106,189.2301) and (186.1601,189.7703) .. (186.8301,189.5703) -.. controls (186.7401,190.0503) and (186.9801,191.9309) .. (187.8301,192.2109) -.. controls (184.1101,196.7709) and (178.2509,198.8795) .. (174.3809,202.7695) -arc(346.147 \@@_colon 261.956 \@@_colon 0.640) -.. controls (173.1399,202.5291) and (173.1309,203.2891) .. (172.4609,203.2891) -arc(350.622 \@@_colon 356.738 \@@_colon 40.740) -.. controls (175.5394,209.9394) and (179.4691,210.8794) .. (180.6191,214.6094) -.. controls (178.9991,216.6594) and (176.7296,218.0709) .. (175.0996,220.1309) -.. controls (175.0996,222.5309) and (179.2602,222.5295) .. (179.9102,222.7695) -arc(29.861 \@@_colon 74.404 \@@_colon 3.610) -arc(-56.890 \@@_colon 5.564 \@@_colon 1.070) -.. controls (179.1305,224.5092) and (181.0698,224.6191) .. (181.5898,223.2891) -.. controls (182.5898,223.5691) and (183.9302,223.5005) .. (183.9902,224.7305) -.. controls (183.7702,225.8305) and (182.6902,226.0294) .. (182.9902,227.6094) -.. controls (177.4702,228.7894) and (173.6406,234.4606) .. (167.6406,232.8906) -.. controls (169.7906,229.3006) and (168.1609,223.9404) .. (167.8809,220.6504) -.. controls (169.2309,220.8904) and (169.8305,221.8998) .. (171.2305,222.0898) -.. controls (171.4505,220.1998) and (169.7991,219.9892) .. (168.1191,219.4492) -.. controls (167.9591,217.5892) and (166.1295,216.7191) .. (164.2695,217.2891) -.. controls (165.1595,219.2791) and (163.4401,220.3494) .. (162.8301,221.6094) -.. controls (165.2501,226.8894) and (162.8109,235.0898) .. (165.9609,240.0898) -arc(271.505 \@@_colon 232.085 \@@_colon 1.140) -.. controls (165.8105,242.3801) and (165.4509,244.7003) .. (165.9609,246.5703) -.. controls (167.0209,250.5603) and (170.2695,253.5801) .. (170.2695,258.3301) -.. controls (171.3895,259.8501) and (174.5898,259.1196) .. (174.5898,257.8496) -.. controls (174.5298,258.0896) and (173.5306,258.4898) .. (173.6406,258.0898) -.. controls (174.4406,258.0298) and (174.8303,256.6094) .. (175.3203,257.6094) -.. controls (175.8103,256.4694) and (175.6798,254.1095) .. (174.5898,253.7695) -.. controls (174.5698,254.1495) and (174.6291,254.6002) .. (174.1191,254.4902) -arc(189.702 \@@_colon 206.514 \@@_colon 5.180) -.. controls (174.1298,252.7308) and (173.6302,253.2305) .. (172.9102,252.8106) --- (172.9102,251.8106) -.. controls (172.2402,251.6105) and (172.2907,252.1508) .. (171.7207,252.0508) -.. controls (172.4607,250.9808) and (171.2302,251.7701) .. (170.9902,251.3301) -.. controls (172.5902,250.4901) and (173.5706,248.9801) .. (173.3906,246.3301) -.. controls (172.1006,245.8501) and (173.0504,244.4102) .. (173.1504,244.4102) -.. controls (171.3304,242.8102) and (174.6692,237.6507) .. (172.1992,236.9707) -.. controls (172.5610,235.8401) and (173.0144,234.8653) .. (173.2871,234.1133) -.. controls (172.9275,234.4907) and (171.6645,234.4579) .. (171.4805,234.0898) -.. controls (172.3105,233.8898) and (173.2509,231.5406) .. (173.8809,232.8906) -.. controls (174.3209,232.4606) and (174.5103,231.7695) .. (175.3203,231.6894) -.. controls (175.2603,232.0294) and (174.9201,232.0902) .. (174.8301,232.4102) -.. controls (175.4501,232.5202) and (176.1998,231.5599) .. (176.5098,232.1699) -.. controls (176.4098,232.7399) and (175.2695,232.8099) .. (176.2695,233.1699) -.. controls (176.5895,232.0299) and (178.1399,232.9705) .. (178.6699,231.7305) -.. controls (183.7099,232.2605) and (188.3009,229.7096) .. (191.8809,228.8496) -.. controls (192.3609,228.1996) and (192.9395,227.2004) .. (194.2695,227.6504) -.. controls (195.6095,225.6204) and (199.7505,225.6795) .. (201.4805,224.7695) -.. controls (203.0005,225.3695) and (204.0006,224.0995) .. (205.5606,223.7695) -.. controls (215.0105,221.7695) and (222.2396,223.7291) .. (222.3496,233.3691) -.. controls (222.6696,233.7691) and (223.3496,233.6891) .. (223.3496,234.3691) -arc(213.466 \@@_colon 185.062 \@@_colon 11.920) -.. controls (219.4775,241.5035) and (218.9843,243.6309) .. (217.5840,244.8926) -.. controls (217.6512,244.8764) and (217.7347,244.8780) .. (217.8691,244.9297) -.. controls (217.6791,245.7797) and (217.1894,247.6496) .. (216.1894,246.8496) -.. controls (216.0094,247.5396) and (216.6699,247.3696) .. (216.6699,247.8496) -.. controls (215.8899,248.3196) and (214.8794,249.9095) .. (216.1894,249.7695) -.. controls (215.8295,250.6695) and (215.6294,250.6492) .. (216.1894,251.4492) -arc(32.853 \@@_colon 40.872 \@@_colon 42.910) -.. controls (213.2298,256.2200) and (213.3798,255.7902) .. (213.5898,256.4902) -.. controls (210.6598,257.9802) and (207.8500,261.3306) .. (203.7500,260.8105) -.. controls (200.7000,260.4205) and (196.3908,257.5108) .. (196.3008,255.0508) -arc(185.628 \@@_colon 123.227 \@@_colon 1.070) -.. controls (196.3493,255.1908) and (196.8293,255.3394) .. (197.0293,254.6094) -.. controls (195.2593,254.5994) and (196.6591,253.6894) .. (196.5391,252.6894) -.. controls (194.8291,251.2395) and (195.7101,249.9702) .. (195.8301,247.4102) -.. controls (195.4701,246.8202) and (194.8398,246.8707) .. (195.3398,245.9707) -.. controls (194.3398,245.7407) and (195.2098,247.3099) .. (194.3398,247.1699) -.. controls (195.1098,246.3399) and (193.7094,245.5900) .. (194.1094,245.2500) -.. controls (194.6594,245.7200) and (194.8294,244.6600) .. (195.1094,244.2500) -.. controls (195.1094,243.8500) and (194.4506,244.1195) .. (194.3906,243.7695) -arc(221.518 \@@_colon 257.959 \@@_colon 5.330) -.. controls (200.0395,241.9898) and (203.0195,246.1699) .. (205.4394,246.1699) -.. controls (207.5394,246.1499) and (208.5698,243.8998) .. (209.7598,242.0898) -.. controls (206.7598,241.8998) and (204.6291,241.4492) .. (203.0391,239.4492) -.. controls (203.5791,239.1192) and (203.9402,240.0692) .. (203.9902,239.4492) -.. controls (203.5402,238.6692) and (202.6003,239.6305) .. (202.0703,238.7305) -.. controls (203.4003,238.3305) and (202.7508,237.5601) .. (202.5508,236.3301) -.. controls (204.5508,233.4701) and (208.3008,233.2509) .. (208.5508,229.1309) -.. controls (207.0008,228.4409) and (205.8002,227.4105) .. (204.2402,226.7305) -.. controls (203.5902,227.2905) and (202.6603,227.5499) .. (202.0703,228.1699) -.. controls (201.9803,228.7499) and (202.5105,228.6891) .. (202.3106,229.3691) -.. controls (199.7406,230.1691) and (198.0108,233.0699) .. (196.5508,234.1699) -.. controls (196.4308,232.9099) and (197.3995,234.1699) .. (197.2695,233.1699) -.. controls (196.1295,233.2299) and (195.5394,235.9106) .. (193.4394,235.8106) -.. controls (193.7494,235.8106) and (193.7395,236.4793) .. (193.4394,236.5293) -.. controls (189.7695,236.3593) and (184.6797,234.2998) .. (181.6797,235.0898) -.. controls (182.4697,235.8198) and (183.7891,235.9993) .. (184.7891,236.5293) -.. controls (182.2091,237.4093) and (179.4902,239.1097) .. (176.1602,238.9297) -.. controls (176.1102,242.5497) and (178.5698,244.0098) .. (179.5098,247.0898) -.. controls (180.1898,249.2598) and (180.9506,251.8091) .. (182.3906,252.3691) -.. controls (185.1806,253.4491) and (187.5996,249.3195) .. (189.5996,248.7695) -.. controls (191.6496,250.5595) and (191.0000,254.9302) .. (192.0000,257.4102) -.. controls (193.3400,260.6602) and (199.7598,264.1394) .. (203.7598,264.6094) -.. controls (204.8798,264.7394) and (206.1894,264.5094) .. (207.3594,264.6094) -.. controls (209.4094,263.7694) and (211.2391,263.3494) .. (212.8691,262.6895) -.. controls (215.1491,260.9094) and (216.6004,258.6295) .. (218.1504,256.6895) -.. controls (219.0604,255.5694) and (218.9094,255.0003) .. (219.3594,253.5703) -.. controls (220.4894,249.9003) and (222.7699,246.1405) .. (223.9199,241.8106) -.. controls (225.4099,242.1506) and (225.3391,238.1892) .. (226.7891,238.4492) -arc(22.546 \@@_colon -8.281 \@@_colon 7.280) -arc(69.433 \@@_colon 28.347 \@@_colon 7.280) -.. controls (230.5091,229.7300) and (228.7198,229.4794) .. (227.5098,228.6094) -.. controls (227.1898,227.6394) and (227.9402,227.7602) .. (228.2402,227.4102) -.. controls (227.4302,226.1102) and (225.4491,223.5103) .. (224.8691,223.5703) -.. controls (225.1791,223.7703) and (226.2396,224.4095) .. (225.5996,224.7695) -.. controls (223.1696,223.1895) and (222.1191,221.1095) .. (219.1191,219.7695) -.. controls (219.2991,219.7195) and (219.5996,219.7593) .. (219.5996,219.5293) -.. controls (215.8996,217.4693) and (213.7298,219.6998) .. (209.5098,220.0098) -.. controls (209.2798,220.2598) and (209.0391,220.4905) .. (208.7891,220.7305) -.. controls (204.4991,221.6905) and (200.0705,222.0691) .. (196.3106,223.3691) -.. controls (192.0606,224.8391) and (188.0996,228.5394) .. (183.5996,227.6894) -.. controls (184.6796,227.6495) and (184.5098,226.3300) .. (185.5098,226.2500) -.. controls (184.6398,222.6800) and (188.7598,220.9297) .. (191.7598,221.9297) -.. controls (193.9698,221.1297) and (195.2095,218.7209) .. (197.2695,217.1309) -.. controls (199.4595,217.6209) and (200.2291,215.8597) .. (202.7891,215.9297) -.. controls (204.8591,214.5697) and (209.6707,210.1699) .. (204.4707,210.1699) -.. controls (204.7207,210.2299) and (205.0507,210.5704) .. (204.7207,210.6504) -.. controls (204.2907,210.5204) and (203.7198,210.5299) .. (203.5098,210.1699) -.. controls (203.7798,210.1199) and (203.8902,209.8995) .. (203.9902,209.6894) -arc(86.644 \@@_colon 93.356 \@@_colon 28.610) -.. controls (200.6906,209.1995) and (200.2104,209.2194) .. (200.4004,208.6894) -.. controls (200.5904,208.1594) and (201.6504,208.5795) .. (201.4004,207.6894) -.. controls (200.6804,206.6495) and (200.8009,204.7596) .. (199.9609,203.8496) -.. controls (201.7409,200.5096) and (206.2804,199.9297) .. (207.4004,195.9297) -.. controls (205.8804,194.7297) and (205.0296,192.8106) .. (202.3496,192.8106) -.. controls (202.1096,192.3406) and (201.5694,191.4706) .. (202.1094,190.8906) -.. controls (202.5494,190.9906) and (203.1908,192.0191) .. (203.5508,191.3691) -.. controls (201.0808,189.4491) and (200.8995,186.1092) .. (200.1894,183.4492) -arc(80.931 \@@_colon 69.251 \@@_colon 36.670) -.. controls (208.4104,181.1193) and (210.2305,181.4408) .. (211.2305,181.0508) -arc(66.003 \@@_colon 56.705 \@@_colon 18.550) -.. controls (214.7591,179.3594) and (215.3498,179.7506) .. (216.7598,178.8906) -.. controls (218.4598,177.8506) and (221.7101,175.2509) .. (220.8301,173.1309) -.. controls (216.1701,171.8809) and (212.6406,167.6009) .. (207.6406,168.1309) -.. controls (207.5806,168.3209) and (207.6304,168.6094) .. (207.4004,168.6094) -.. controls (208.6804,169.8394) and (210.8298,171.0899) .. (210.5098,173.1699) -.. controls (209.2298,175.2499) and (205.9093,176.3100) .. (204.2793,177.2500) -.. controls (203.9793,177.2000) and (204.1293,176.9795) .. (204.2793,176.7695) -.. controls (202.9593,177.4495) and (201.4109,178.7707) .. (199.9609,177.9707) -.. controls (199.4609,176.2507) and (200.3801,174.3691) .. (202.8301,174.3691) -.. controls (202.5101,172.1291) and (202.2097,170.7708) .. (200.6797,170.0508) -.. controls (199.8297,169.6508) and (199.2398,170.2903) .. (198.7598,169.5703) -.. controls (198.8498,169.7103) and (198.7598,168.8496) .. (198.7598,168.8496) -.. controls (198.8098,168.5696) and (200.0000,168.3604) .. (199.0000,167.6504) -.. controls (200.1600,167.6704) and (200.1602,166.5492) .. (201.1602,166.4492) -.. controls (201.5502,166.4492) and (201.2906,167.1699) .. (201.6406,167.1699) -arc(47.423 \@@_colon 40.795 \@@_colon 98.290) -.. controls (209.5808,156.6598) and (208.2791,155.4809) .. (207.8691,154.2109) -.. controls (207.4091,155.1409) and (205.9805,153.1293) .. (205.4805,152.5293) -.. controls (199.9505,154.4693) and (196.8905,154.6693) .. (192.4805,157.5293) --- (191.2793,157.5293) -.. controls (190.9593,158.0793) and (190.2996,158.3005) .. (189.8496,158.7305) -.. controls (187.6196,158.7305) and (184.9491,161.7305) .. (183.1191,159.7305) -.. controls (183.8691,158.0005) and (182.9991,154.3095) .. (186.6191,153.7695) -.. controls (187.0391,151.3995) and (184.7395,150.5809) .. (184.9394,149.2109) -.. controls (183.9119,149.3909) and (182.8465,149.0924) .. (181.7402,149.1894) --- cycle(217.5840,244.8926) -.. controls (217.5272,244.9062) and (217.4943,244.9448) .. (217.4668,244.9883) -.. controls (217.5052,244.9561) and (217.5469,244.9260) .. (217.5840,244.8926) --- cycle(217.4668,244.9883) -.. controls (217.2831,245.1422) and (217.0889,245.2882) .. (216.8691,245.4102) -.. controls (217.4215,245.6147) and (217.3381,245.1919) .. (217.4668,244.9883) --- cycle(173.2871,234.1133) -.. controls (173.3574,234.0395) and (173.4053,233.9559) .. (173.3906,233.8496) -.. controls (173.3667,233.9232) and (173.3159,234.0338) .. (173.2871,234.1133) --- cycle(454.9668,157.9277) -.. controls (452.7688,157.8865) and (451.6320,159.7626) .. (451.5195,161.3301) -.. controls (451.0995,166.8701) and (458.2302,172.2109) .. (453.9102,176.2109) -.. controls (453.5602,177.1609) and (454.9909,176.3009) .. (454.6309,177.2109) -.. controls (451.4409,182.1909) and (444.9794,183.8802) .. (441.4395,188.4902) -.. controls (440.0195,188.2702) and (439.8008,189.0302) .. (438.8008,189.4902) -.. controls (436.9908,190.2702) and (434.3295,189.4507) .. (433.2695,189.9707) -.. controls (430.7995,191.1807) and (431.1900,196.2304) .. (433.7500,197.6504) -arc(260.556 \@@_colon 272.063 \@@_colon 37.230) -.. controls (445.7192,198.3399) and (442.9807,206.7494) .. (446.7207,208.6894) -.. controls (452.0607,207.4394) and (456.7505,201.9707) .. (456.3105,195.9707) -.. controls (454.9506,197.9807) and (452.9401,201.0405) .. (449.8301,199.8106) -.. controls (450.1001,196.0205) and (448.9400,193.4102) .. (451.7500,191.4102) -.. controls (453.7700,189.9702) and (457.9398,188.6801) .. (461.5898,187.3301) -.. controls (466.5598,185.5301) and (470.3508,183.7093) .. (474.8008,182.5293) -.. controls (475.0608,181.5193) and (476.1802,181.3606) .. (475.9902,179.8906) -arc(84.565 \@@_colon 130.176 \@@_colon 5.190) -.. controls (469.7504,180.1495) and (466.0595,180.9408) .. (463.5195,182.0508) -.. controls (458.0595,184.4208) and (450.2495,188.2503) .. (444.5195,187.5703) -.. controls (446.3095,184.5603) and (450.3002,183.7508) .. (453.4102,182.0508) -.. controls (455.1702,179.9108) and (455.9999,176.8108) .. (459.1699,176.0508) -.. controls (460.0599,177.4408) and (459.0294,178.5006) .. (458.6895,179.8906) -arc(75.612 \@@_colon 66.633 \@@_colon 66.360) -.. controls (468.4395,173.4593) and (467.0095,172.4901) .. (467.5195,169.3301) -.. controls (465.9995,166.0501) and (461.2692,166.0000) .. (459.1992,163.2500) -.. controls (459.5692,161.6200) and (457.6295,160.5894) .. (457.5195,158.6894) -.. controls (456.5495,158.1670) and (455.6995,157.9415) .. (454.9668,157.9277) --- cycle(318.7363,158.0391) -arc(274.726 \@@_colon 264.346 \@@_colon 8.000) -.. controls (314.0191,160.9508) and (313.5791,166.6094) .. (309.3691,168.6094) -.. controls (309.6291,168.6594) and (309.7398,168.8798) .. (309.8398,169.0898) -.. controls (307.5498,170.4698) and (306.4501,171.9297) .. (304.0801,172.9297) -.. controls (304.0801,173.4897) and (304.5003,173.6391) .. (304.3203,174.3691) -.. controls (303.0603,178.0891) and (302.6902,182.6498) .. (302.1602,187.0898) -.. controls (300.9302,188.8198) and (299.4501,190.3006) .. (298.0801,191.8906) -.. controls (299.2301,192.8306) and (300.9804,193.1503) .. (302.6504,193.5703) -.. controls (304.5804,192.3903) and (306.6504,191.3609) .. (308.6504,190.2109) -.. controls (308.2804,189.6809) and (309.2609,188.4398) .. (308.8809,187.0898) -.. controls (309.2009,187.0898) and (309.0991,187.5103) .. (309.3691,187.5703) -.. controls (309.7591,186.6303) and (309.6509,185.3706) .. (309.1309,185.8906) -.. controls (310.4709,183.9206) and (309.7394,179.3799) .. (312.4395,178.1699) -.. controls (314.0994,178.2299) and (315.5894,178.8104) .. (317.4395,178.6504) -arc(203.247 \@@_colon 213.807 \@@_colon 35.620) -.. controls (327.0603,171.7306) and (332.5703,175.4291) .. (339.5703,175.2891) -arc(200.825 \@@_colon 249.508 \@@_colon 2.890) -.. controls (341.2398,172.4294) and (341.2893,171.1705) .. (340.5293,170.7305) -arc(61.151 \@@_colon 73.583 \@@_colon 12.000) -.. controls (338.1409,171.0105) and (338.7596,170.9091) .. (338.8496,170.2891) -.. controls (334.3196,169.7791) and (329.1304,169.9391) .. (325.6504,168.3691) -.. controls (326.0004,168.1291) and (326.5804,168.1404) .. (326.6504,167.6504) -arc(161.755 \@@_colon 190.609 \@@_colon 7.240) -.. controls (326.2202,164.0008) and (326.1602,163.8503) .. (326.1602,163.5703) -.. controls (324.3802,161.6003) and (321.4302,160.7791) .. (320.1602,158.2891) -arc(285.142 \@@_colon 274.775 \@@_colon 8.000) --- cycle(50.1992,160.8926) -.. controls (49.2905,160.9101) and (48.0148,161.0659) .. (46.8398,160.9609) -.. controls (45.9698,162.6109) and (48.4002,162.4491) .. (49.2402,163.1191) -.. controls (49.3702,164.2391) and (48.5000,165.2600) .. (49.0000,166.0000) -.. controls (46.0000,167.5200) and (44.6998,170.8292) .. (41.5098,172.1992) -.. controls (41.4198,172.6092) and (41.8698,172.8199) .. (41.5098,172.9199) -arc(237.299 \@@_colon 227.404 \@@_colon 61.510) -.. controls (33.7294,179.6604) and (33.9503,178.3702) .. (34.3203,179.1602) -.. controls (32.0603,180.5902) and (28.8704,181.3800) .. (26.4004,183.0000) -.. controls (25.6504,183.4900) and (25.2607,184.3897) .. (24.4707,184.6797) -.. controls (23.3207,185.1097) and (21.7809,184.7099) .. (20.6309,184.9199) -.. controls (17.3009,185.5299) and (14.3698,187.0391) .. (11.5098,188.0391) -.. controls (11.6998,188.0891) and (12.0000,188.0493) .. (12.0000,188.2793) --- (10.3105,188.2793) -.. controls (9.1505,193.4593) and (13.2700,195.3709) .. (17.5000,195.9609) -arc(316.332 \@@_colon 340.975 \@@_colon 3.290) -.. controls (18.2905,196.5902) and (19.2897,197.0104) .. (19.1797,197.4004) -.. controls (18.9797,198.6304) and (17.8798,198.9708) .. (17.2598,199.8008) -.. controls (16.9498,199.8008) and (17.0493,199.3803) .. (16.7793,199.3203) -.. controls (15.0393,201.6603) and (11.2291,203.1908) .. (10.5391,205.8008) -.. controls (9.2691,206.3608) and (9.2299,208.1695) .. (7.6699,208.4394) -.. controls (8.4299,209.0894) and (6.6699,209.2009) .. (6.6699,209.8809) -.. controls (12.1199,212.6709) and (13.5103,219.5292) .. (15.0703,226.1992) -arc(84.750 \@@_colon 24.836 \@@_colon 5.000) -.. controls (18.4004,223.2003) and (18.1709,223.8901) .. (17.9609,223.0801) -.. controls (19.0509,222.7801) and (17.5292,222.3204) .. (18.1992,221.4004) -.. controls (16.1692,220.2604) and (16.2105,216.3404) .. (15.3105,215.4004) -.. controls (15.6805,212.2504) and (15.3400,206.8996) .. (16.7500,204.5996) -.. controls (16.7600,204.7296) and (16.5598,204.8696) .. (16.5098,204.5996) -.. controls (17.0598,203.3096) and (17.7104,202.1207) .. (19.1504,201.7207) -.. controls (19.7404,202.0807) and (18.8904,202.6507) .. (19.4004,202.7207) -.. controls (22.6304,201.5207) and (22.6107,205.5895) .. (23.4707,207.5195) -.. controls (22.9907,208.0695) and (22.6808,208.8009) .. (21.8008,208.9609) -.. controls (21.7208,208.4909) and (22.1193,208.4802) .. (22.2793,208.2402) -.. controls (20.1293,208.6802) and (18.0093,209.1991) .. (17.2793,211.1191) -.. controls (18.6193,212.3491) and (21.3508,212.1793) .. (22.8008,213.2793) -.. controls (23.5508,212.9893) and (23.8507,212.2401) .. (24.7207,212.0801) -.. controls (26.4007,213.3201) and (25.5192,215.7303) .. (25.4492,218.3203) -.. controls (29.1192,220.0503) and (23.1801,220.0795) .. (22.3301,221.4394) -arc(177.902 \@@_colon 217.655 \@@_colon 1.110) -.. controls (21.9705,220.6807) and (21.8194,221.0992) .. (21.3594,221.1992) -.. controls (22.1794,222.8192) and (19.6409,224.7500) .. (20.8809,226.0000) -arc(236.501 \@@_colon 173.516 \@@_colon 3.940) -arc(119.189 \@@_colon 60.811 \@@_colon 4.930) -.. controls (23.8092,230.2605) and (23.2209,230.2405) .. (23.7109,230.7305) -.. controls (24.8009,231.1005) and (24.7191,230.5402) .. (25.8691,230.4902) -.. controls (25.9791,232.7302) and (27.6393,232.1801) .. (28.0293,234.3301) -.. controls (27.6593,235.2501) and (26.6491,235.5098) .. (25.8691,236.0098) -.. controls (26.1491,236.0498) and (26.5801,235.9700) .. (26.5801,236.2500) -.. controls (26.6001,236.8500) and (24.9004,236.9205) .. (24.9004,236.7305) -.. controls (24.8304,236.1805) and (25.6309,236.4598) .. (25.6309,236.0098) -.. controls (24.5009,235.7698) and (24.5495,236.6909) .. (24.1895,237.2109) -arc(254.609 \@@_colon 237.728 \@@_colon 38.430) -.. controls (15.2091,244.3495) and (17.3996,247.3493) .. (20.3496,247.5293) -.. controls (19.8096,247.4293) and (20.1201,246.2101) .. (20.5801,246.3301) -.. controls (20.7601,246.6601) and (21.5801,246.3706) .. (21.5801,246.8106) -.. controls (21.3101,246.8605) and (21.1998,247.0791) .. (21.0898,247.2891) -.. controls (22.5298,246.5291) and (22.2302,248.1093) .. (23.7402,247.5293) -.. controls (23.6102,248.4593) and (24.3492,248.5209) .. (24.4492,249.2109) -arc(37.944 \@@_colon 58.486 \@@_colon 8.080) -.. controls (22.6808,251.4609) and (23.5302,251.3296) .. (23.7402,251.8496) -.. controls (21.4202,251.5696) and (19.8606,258.1699) .. (20.1406,256.1699) -.. controls (19.1406,256.3699) and (18.7402,257.1591) .. (17.7402,257.3691) -arc(299.541 \@@_colon 281.507 \@@_colon 6.540) -.. controls (15.3103,258.9104) and (17.0302,263.2704) .. (19.6602,261.6504) -.. controls (21.0602,262.0404) and (23.0007,261.0292) .. (24.2207,260.4492) -.. controls (23.6907,260.3792) and (24.4795,259.8005) .. (24.6895,259.7305) -.. controls (26.0295,259.3205) and (26.2596,260.7305) .. (26.8496,259.7305) -.. controls (26.6696,259.6805) and (26.3809,259.7202) .. (26.3809,259.4902) -arc(74.012 \@@_colon 51.100 \@@_colon 18.350) -.. controls (32.7796,256.2009) and (32.2891,256.0306) .. (32.3691,255.8906) -.. controls (34.6891,256.8106) and (34.3895,253.5805) .. (36.6895,253.7305) -.. controls (38.2595,250.9405) and (43.0596,253.0898) .. (44.8496,251.0898) -arc(164.064 \@@_colon 82.606 \@@_colon 0.670) -.. controls (45.8301,250.6603) and (46.7101,250.4099) .. (46.5801,249.1699) -.. controls (43.9301,246.7799) and (40.4509,248.5606) .. (37.7109,249.8906) -.. controls (37.8609,249.1606) and (38.7906,249.2194) .. (39.1406,248.6894) -.. controls (37.8906,248.5594) and (37.3695,249.1699) .. (36.2695,249.1699) -.. controls (36.4695,247.9299) and (35.1305,248.2500) .. (35.0605,247.2500) -.. controls (35.4405,247.2300) and (35.8991,247.2795) .. (35.7891,246.7695) -.. controls (35.2191,245.2595) and (38.3207,245.2299) .. (37.2207,243.1699) -.. controls (37.6607,242.5499) and (38.2702,242.1302) .. (38.6602,241.4902) -.. controls (37.8102,241.3602) and (38.0707,242.3409) .. (37.2207,242.2109) -.. controls (37.3907,241.4109) and (36.7300,241.8207) .. (36.5000,241.9707) -.. controls (37.5000,239.9607) and (41.2200,239.3691) .. (42.5000,238.3691) -.. controls (42.5000,238.6491) and (42.0800,238.9098) .. (42.5000,239.0898) -.. controls (43.2600,237.4398) and (45.3304,236.2098) .. (44.9004,234.0898) -.. controls (43.4804,233.5798) and (42.6703,234.3505) .. (40.8203,234.8106) --- (40.8203,233.8106) -arc(283.823 \@@_colon 228.187 \@@_colon 2.120) -.. controls (38.7304,233.3191) and (38.2704,234.0203) .. (37.9004,233.5703) -.. controls (38.5204,232.9003) and (37.5102,233.3403) .. (37.6602,232.5703) -.. controls (37.9402,232.5303) and (38.3691,232.6101) .. (38.3691,232.3301) -.. controls (37.5491,232.1201) and (38.4304,231.3704) .. (37.9004,230.6504) -arc(132.518 \@@_colon 47.482 \@@_colon 0.880) -arc(179.111 \@@_colon 205.410 \@@_colon 7.560) -.. controls (39.4303,227.2491) and (38.9003,227.3708) .. (38.8203,227.0508) -.. controls (39.0103,226.5208) and (38.9608,225.7494) .. (39.5508,225.6094) -.. controls (40.5208,225.9694) and (40.9809,225.3398) .. (41.4609,226.0898) -.. controls (43.1409,223.7198) and (44.1102,224.5697) .. (46.7402,223.9297) -.. controls (46.7502,224.1697) and (46.5000,224.2102) .. (46.5000,224.4102) -arc(258.580 \@@_colon 272.394 \@@_colon 38.080) -arc(317.917 \@@_colon 324.968 \@@_colon 37.430) -.. controls (58.5000,232.1191) and (53.4094,234.8496) .. (50.1094,237.8496) -.. controls (49.7894,238.4896) and (51.0498,238.6396) .. (50.3398,238.8496) -.. controls (48.1998,238.7296) and (46.5893,241.1502) .. (46.0293,243.4102) -arc(298.374 \@@_colon 306.739 \@@_colon 21.400) -arc(61.212 \@@_colon 11.699 \@@_colon 6.770) -.. controls (55.9293,239.5493) and (57.6199,236.3591) .. (60.4199,234.2891) -.. controls (60.4499,234.5791) and (60.5004,234.8595) .. (60.9004,234.7695) -.. controls (61.1404,233.8595) and (60.9206,233.6398) .. (61.1406,233.0898) -.. controls (62.8906,232.5198) and (64.5307,231.8309) .. (65.2207,230.2109) -.. controls (68.6007,229.7509) and (69.0609,226.5909) .. (71.4609,225.2109) -.. controls (71.9009,224.9609) and (73.0409,225.0402) .. (73.6309,224.4902) -.. controls (73.8209,224.8202) and (74.6309,224.5307) .. (74.6309,224.9707) -.. controls (77.9709,223.0907) and (81.8609,225.9707) .. (81.6309,229.9707) -.. controls (81.6809,229.7307) and (82.0194,229.3905) .. (82.1094,229.7305) -.. controls (82.2094,232.8405) and (80.4894,233.7305) .. (81.1094,236.7305) -arc(235.824 \@@_colon 208.145 \@@_colon 6.750) -.. controls (80.0792,239.1409) and (79.4395,239.8103) .. (79.4395,240.5703) -.. controls (78.6495,240.5803) and (78.5098,241.2508) .. (77.5098,241.0508) -.. controls (75.2798,243.5708) and (75.4300,245.6503) .. (72.0000,246.5703) -.. controls (71.6700,247.3203) and (70.8500,247.5305) .. (71.0000,248.7305) -.. controls (70.0900,249.1005) and (69.5996,249.8399) .. (68.5996,250.1699) -.. controls (69.0096,251.0099) and (67.3406,251.5401) .. (67.8906,252.3301) -.. controls (68.0506,251.9101) and (69.4903,251.5596) .. (69.5703,251.8496) -arc(30.092 \@@_colon 41.410 \@@_colon 31.240) --- (65.9707,255.6504) -.. controls (64.2607,255.4904) and (65.1608,256.7296) .. (64.0508,256.8496) -arc(301.169 \@@_colon 294.628 \@@_colon 40.460) -.. controls (59.7307,253.9394) and (60.0305,254.0602) .. (59.7305,253.4902) -.. controls (60.2005,253.8902) and (60.0297,253.4902) .. (60.6797,253.4902) -.. controls (60.0497,252.6802) and (58.8108,251.2101) .. (58.0508,251.3301) -.. controls (58.6108,251.4401) and (58.0205,252.2601) .. (57.8105,252.3301) -.. controls (57.4605,252.2001) and (56.5996,252.6098) .. (56.5996,252.0898) -.. controls (57.7796,250.3798) and (54.0602,250.8909) .. (55.1602,249.2109) -arc(264.890 \@@_colon 220.084 \@@_colon 2.840) -.. controls (54.7602,252.9609) and (56.1198,258.7509) .. (58.7598,262.2109) -.. controls (59.5398,263.2209) and (61.4694,265.2603) .. (62.3594,265.5703) -.. controls (66.3794,267.0203) and (67.7591,262.2703) .. (70.2891,260.5703) -.. controls (70.5991,260.5703) and (70.4998,260.9908) .. (70.7598,261.0508) -.. controls (72.6098,256.5608) and (73.7294,255.2497) .. (74.3594,251.9297) -.. controls (75.3694,251.9697) and (74.9396,251.8092) .. (74.5996,251.4492) -.. controls (77.0396,248.7392) and (77.4702,248.5992) .. (79.1602,244.4492) -.. controls (81.4402,244.0692) and (81.5907,240.3396) .. (83.9707,240.8496) -.. controls (84.8907,239.8496) and (85.0806,238.6894) .. (85.8906,238.6894) -.. controls (86.2306,235.4694) and (89.2600,234.2506) .. (89.0000,229.8106) -.. controls (86.0000,226.6405) and (83.7701,222.9993) .. (80.5801,219.5293) -.. controls (80.5901,219.2093) and (81.0105,219.3108) .. (81.0605,219.0508) -arc(123.425 \@@_colon 175.019 \@@_colon 3.210) -.. controls (80.2209,216.3204) and (80.6309,217.2704) .. (80.6309,216.6504) -.. controls (80.5709,214.9704) and (80.0491,213.4501) .. (80.8691,212.3301) -.. controls (80.2991,212.1401) and (79.7597,211.9701) .. (79.6797,211.3301) -.. controls (80.6997,208.8901) and (83.2595,210.8206) .. (85.4395,209.8906) -arc(28.057 \@@_colon -5.419 \@@_colon 4.250) -.. controls (83.4799,206.1302) and (80.1100,203.5291) .. (78.0000,206.2891) -.. controls (78.0000,206.6891) and (78.7109,206.4195) .. (78.7109,206.7695) -.. controls (77.9809,206.9395) and (78.0095,206.3593) .. (77.2695,206.5293) -arc(191.347 \@@_colon 146.033 \@@_colon 1.590) -arc(236.654 \@@_colon 196.394 \@@_colon 13.450) -arc(238.835 \@@_colon 221.577 \@@_colon 29.320) -.. controls (63.8102,220.5708) and (63.4109,221.3593) .. (62.1309,221.2793) -.. controls (62.0509,221.1693) and (62.4094,220.8008) .. (62.3594,220.8008) -.. controls (59.6794,219.3208) and (54.2901,219.2203) .. (51.0801,220.3203) -.. controls (51.9001,220.5603) and (51.4595,220.8005) .. (52.5195,220.5606) -.. controls (52.9295,221.2005) and (53.0005,222.1605) .. (53.7305,222.4805) -.. controls (52.1405,223.3505) and (48.2505,223.9805) .. (47.4805,223.4805) -.. controls (47.6705,223.1505) and (48.4805,223.4400) .. (48.4805,223.0000) -.. controls (47.5105,222.3900) and (48.4300,221.1506) .. (48.2500,219.6406) -.. controls (47.4000,220.9206) and (45.4604,219.1195) .. (44.4004,218.4394) -.. controls (44.7004,217.9394) and (45.3494,217.7802) .. (45.6094,217.2402) -.. controls (44.1294,216.9102) and (46.2294,216.6691) .. (44.6094,216.0391) -.. controls (46.0394,215.3991) and (47.0697,212.0704) .. (48.9297,213.4004) -.. controls (49.1297,212.8004) and (49.5902,212.4607) .. (49.6602,211.7207) -.. controls (49.3702,211.6807) and (48.9297,211.7605) .. (48.9297,211.4805) -.. controls (51.0097,207.3105) and (54.6598,204.7198) .. (59.0098,202.8398) -.. controls (59.9098,201.3698) and (59.9493,198.5606) .. (58.5293,197.5606) -.. controls (58.4393,197.9706) and (58.8893,198.1793) .. (58.5293,198.2793) -.. controls (55.0393,196.1393) and (47.8304,197.8605) .. (43.9004,199.4805) -arc(246.523 \@@_colon 307.741 \@@_colon 1.900) -.. controls (40.4603,199.8807) and (36.7006,202.9809) .. (32.1406,201.8809) -arc(0.509 \@@_colon -37.379 \@@_colon 1.170) -arc(243.988 \@@_colon 296.012 \@@_colon 1.630) -arc(332.421 \@@_colon 303.610 \@@_colon 6.490) -.. controls (30.8699,197.6598) and (29.7792,194.7802) .. (30.4492,193.2402) -.. controls (30.0092,193.7402) and (29.3998,192.5202) .. (29.0098,192.2402) -.. controls (29.8198,191.6002) and (31.4804,191.8008) .. (31.9004,190.8008) -.. controls (32.0904,191.2508) and (32.2094,191.7700) .. (32.6094,192.0000) -.. controls (33.9394,192.2400) and (33.7695,191.0000) .. (34.7695,191.0000) -.. controls (33.7795,191.8400) and (35.1305,191.1802) .. (35.9805,191.2402) -.. controls (36.4505,190.7802) and (35.6492,190.4602) .. (36.4492,190.2402) -.. controls (36.8292,190.2602) and (36.6399,190.8507) .. (37.1699,190.7207) -.. controls (41.3499,189.3207) and (45.6602,187.8209) .. (49.6602,186.8809) -.. controls (49.6002,187.1809) and (49.2804,187.3594) .. (49.9004,187.3594) -.. controls (52.3304,186.2994) and (56.5501,186.9798) .. (57.3301,183.7598) -.. controls (55.6701,181.9598) and (53.8401,180.3609) .. (52.3301,178.9609) -.. controls (51.0201,179.5809) and (47.5099,179.5297) .. (44.1699,179.6797) -.. controls (44.8999,178.1797) and (44.8905,175.8097) .. (46.5605,174.6797) -.. controls (44.9305,174.6897) and (45.3006,175.7694) .. (44.6406,176.3594) -.. controls (44.7206,175.8894) and (44.3199,175.8806) .. (44.1699,175.6406) -.. controls (45.2699,174.8906) and (45.5098,173.8600) .. (46.0898,173.0000) -.. controls (46.6698,172.1400) and (47.2500,172.7200) .. (48.2500,172.0000) -.. controls (49.7100,170.9900) and (49.8706,169.4906) .. (50.6406,168.6406) -.. controls (51.2306,167.9906) and (52.3008,167.8692) .. (52.8008,167.1992) -.. controls (53.0208,166.9192) and (52.6608,166.3200) .. (52.8008,166.0000) -arc(213.614 \@@_colon 241.168 \@@_colon 5.700) -.. controls (54.7285,164.2908) and (54.7584,164.4888) .. (54.9609,164.5293) -.. controls (56.1209,162.7993) and (52.5694,161.7604) .. (51.3594,161.6504) -.. controls (51.6494,160.9954) and (51.1080,160.8751) .. (50.1992,160.8926) --- cycle(21.4238,161.4043) -arc(272.020 \@@_colon 243.702 \@@_colon 8.600) -.. controls (15.1505,164.1791) and (15.1808,169.3097) .. (17.5508,170.9297) -.. controls (22.6208,172.0297) and (24.9808,175.8302) .. (29.5508,177.4102) -.. controls (28.9708,178.0102) and (29.8191,177.9902) .. (30.0391,178.4102) -.. controls (30.9591,178.5802) and (31.6309,177.2995) .. (31.9609,177.6894) -.. controls (31.8509,178.2894) and (31.1809,178.2695) .. (30.9609,178.6894) -.. controls (34.1109,177.2894) and (33.0295,172.9491) .. (31.6895,170.2891) -.. controls (32.1595,169.9491) and (33.3096,169.0503) .. (33.8496,169.5703) -.. controls (33.5796,169.6303) and (33.2706,170.0007) .. (33.6406,169.9707) -.. controls (33.7306,169.6107) and (34.2706,169.7305) .. (34.6406,169.7305) -.. controls (33.9006,167.0405) and (37.7906,167.0609) .. (39.6406,166.1309) -.. controls (39.7006,165.0409) and (39.9906,164.6907) .. (39.3906,163.9707) -.. controls (34.6906,164.7907) and (30.6209,168.4106) .. (25.9609,165.8906) -.. controls (25.6509,163.8506) and (23.1701,162.7903) .. (22.8301,161.5703) -arc(281.455 \@@_colon 272.010 \@@_colon 8.600) --- cycle(360.6895,167.4902) -.. controls (357.8795,169.5702) and (356.3506,174.1903) .. (355.6406,177.5703) -.. controls (357.0706,176.4503) and (355.8008,174.8300) .. (357.8008,173.2500) --- (358.8008,173.2500) -.. controls (358.6108,184.8100) and (358.3402,198.4805) .. (356.4102,207.8106) -.. controls (356.4302,208.1906) and (357.0209,207.9993) .. (356.8809,208.5293) -.. controls (356.0309,214.5293) and (358.7491,219.4109) .. (359.2891,224.1309) -.. controls (359.8591,229.1709) and (359.1998,234.9995) .. (359.7598,238.7695) -.. controls (360.1198,241.4295) and (360.0605,246.3095) .. (360.4805,249.7695) -.. controls (361.2705,250.0195) and (362.0399,250.2992) .. (361.9199,251.4492) -.. controls (361.1099,252.0992) and (358.6991,251.6992) .. (357.3691,251.4492) -arc(155.035 \@@_colon 143.016 \@@_colon 33.420) -.. controls (361.4907,258.1492) and (363.4901,260.6606) .. (364.0801,260.8105) -.. controls (368.0501,261.8306) and (368.5992,255.0592) .. (367.1992,251.4492) -.. controls (366.9792,251.8692) and (367.2105,252.7404) .. (366.4805,252.6504) -.. controls (366.4105,252.1204) and (365.8398,252.1404) .. (365.7598,251.6504) -arc(79.773 \@@_colon 63.311 \@@_colon 5.300) -.. controls (366.5492,248.6499) and (368.0600,240.2391) .. (366.0000,240.3691) -.. controls (366.7800,239.1791) and (365.6705,238.6500) .. (366.4805,237.2500) -.. controls (365.8905,236.9400) and (365.2891,237.7900) .. (365.2891,237.2500) -.. controls (366.5891,234.3000) and (365.5598,230.6098) .. (365.2598,227.0098) -.. controls (364.6298,218.6798) and (363.9798,210.9400) .. (365.2598,203.2500) -.. controls (365.6398,200.9400) and (366.6592,198.9093) .. (366.4492,196.5293) -.. controls (366.2492,194.6293) and (365.7492,192.5695) .. (365.4492,190.7695) -.. controls (364.1992,183.1495) and (365.2194,177.1102) .. (365.6895,169.4102) -.. controls (364.4495,167.2602) and (362.1995,168.3402) .. (360.6895,167.4902) --- cycle(324.0059,177.6777) -.. controls (323.9213,177.6748) and (323.8270,177.6782) .. (323.7207,177.6894) -.. controls (322.9807,178.1095) and (324.6507,178.3906) .. (323.7207,178.8906) -.. controls (323.1707,178.9606) and (323.4598,178.1699) .. (323.0098,178.1699) -.. controls (321.0798,179.6899) and (318.9392,180.9895) .. (318.1992,183.6894) -.. controls (320.4292,185.1395) and (324.9792,182.0496) .. (325.1992,185.8496) -.. controls (323.5092,188.2696) and (322.0399,190.8496) .. (319.9199,192.8496) -.. controls (322.1599,192.5196) and (323.2305,191.0305) .. (324.4805,189.7305) -arc(76.265 \@@_colon 52.600 \@@_colon 14.920) -arc(95.659 \@@_colon 75.566 \@@_colon 9.000) -.. controls (332.9909,184.8796) and (334.3908,184.4298) .. (334.8008,183.0098) -.. controls (334.5808,181.7298) and (331.7709,182.6703) .. (333.1309,181.5703) -.. controls (332.1209,181.2803) and (332.0692,181.9608) .. (331.4492,182.0508) -.. controls (331.5792,181.5608) and (332.1706,181.5808) .. (331.6406,181.0508) -.. controls (329.6606,180.5808) and (326.1992,180.5091) .. (324.1992,179.3691) -.. controls (324.2180,179.2566) and (325.2747,177.7210) .. (324.0059,177.6777) --- cycle(355.2402,177.7305) -.. controls (355.1502,179.2805) and (353.7502,180.7508) .. (354.2402,182.0508) -.. controls (354.2302,181.6008) and (354.4305,181.5405) .. (354.7305,181.8106) -.. controls (354.2405,180.6005) and (355.1892,179.6894) .. (355.4492,178.6894) -.. controls (355.3423,178.8451) and (355.2948,178.9096) .. (355.2832,178.9121) -.. controls (355.2821,178.8391) and (355.8340,177.7617) .. (355.2402,177.7305) --- cycle(490.0801,184.0000) -arc(0.517 \@@_colon 38.415 \@@_colon 1.110) -.. controls (486.7798,185.3297) and (485.6996,188.4394) .. (483.5996,190.4394) -.. controls (481.9396,192.0694) and (479.3498,192.7598) .. (477.8398,194.7598) -arc(209.536 \@@_colon 203.594 \@@_colon 36.230) -.. controls (474.9702,200.3391) and (473.5298,202.1598) .. (473.7598,204.8398) -.. controls (479.1898,206.3998) and (478.4805,197.8102) .. (480.4805,195.2402) -.. controls (482.2305,192.9602) and (485.6005,192.7209) .. (485.4805,195.9609) -.. controls (485.4305,197.5109) and (483.2094,199.1909) .. (482.6094,200.9609) -.. controls (481.7694,203.4109) and (479.9305,208.0302) .. (479.4805,212.2402) -.. controls (479.0205,216.6802) and (480.4797,220.5002) .. (480.9297,224.2402) -.. controls (481.2297,226.8502) and (480.7698,229.3409) .. (482.8398,230.9609) -.. controls (484.6198,231.0209) and (485.8902,231.2805) .. (487.1602,230.4805) -.. controls (488.1502,225.5605) and (484.0795,220.8406) .. (486.6895,216.5606) -.. controls (487.3795,215.4205) and (490.2005,214.3309) .. (491.4805,214.8809) -.. controls (492.7605,215.4309) and (493.9591,219.2894) .. (494.3691,221.3594) -.. controls (495.4391,226.8794) and (494.6798,233.0697) .. (495.0898,237.6797) -.. controls (495.3298,240.1197) and (496.3301,243.1191) .. (495.3301,245.1191) -.. controls (495.4101,248.5291) and (496.5195,254.5893) .. (496.5195,259.2793) -.. controls (496.5195,261.2193) and (495.7391,263.2806) .. (496.2891,264.5605) -.. controls (498.8991,270.6805) and (502.7905,258.9197) .. (501.5605,255.6797) -.. controls (499.8806,253.6897) and (501.4006,248.4906) .. (499.6406,246.5606) -.. controls (501.3906,244.7506) and (499.8809,241.2709) .. (499.8809,238.8809) -.. controls (499.9409,234.6809) and (502.0009,229.5997) .. (499.8809,225.6797) -arc(14.720 \@@_colon -23.201 \@@_colon 10.000) -.. controls (500.1004,214.0992) and (500.5509,208.6992) .. (505.8809,208.1992) -.. controls (506.3409,206.8792) and (507.3109,206.0709) .. (506.8809,203.8809) -.. controls (505.1909,202.5309) and (504.8105,203.3594) .. (502.5605,204.3594) -.. controls (501.3306,204.9194) and (499.7305,205.0805) .. (498.7305,205.5606) -.. controls (497.9505,205.9406) and (497.4508,206.6800) .. (496.8008,207.0000) -arc(64.693 \@@_colon 90.018 \@@_colon 17.930) -.. controls (488.2409,207.2507) and (488.9909,206.6596) .. (489.1309,205.5996) -.. controls (489.2909,204.3296) and (488.8209,202.1491) .. (489.1309,201.0391) -.. controls (489.6009,199.2991) and (490.3608,197.0391) .. (491.0508,195.0391) -.. controls (492.1608,191.8291) and (494.4102,189.8203) .. (494.1602,188.3203) -.. controls (493.8302,186.3003) and (491.2801,185.9100) .. (490.0801,184.0000) --- cycle(470.1602,191.3691) -.. controls (468.1302,191.7491) and (466.2204,190.9991) .. (464.6504,192.3691) -.. controls (462.6404,198.3191) and (458.8400,201.6893) .. (456.0000,206.5293) -.. controls (452.7000,207.8693) and (451.9601,211.7695) .. (448.3301,212.7695) -.. controls (448.3301,212.6395) and (448.1301,212.4995) .. (448.0801,212.7695) -.. controls (446.8801,215.8495) and (442.0003,216.0707) .. (440.0703,218.9707) -arc(74.879 \@@_colon 105.121 \@@_colon 3.680) -.. controls (440.2704,224.2107) and (442.9491,220.3394) .. (447.0391,219.6894) -.. controls (449.5691,219.2494) and (450.9891,219.4200) .. (452.0391,218.2500) -.. controls (453.4791,220.0700) and (452.6007,224.1795) .. (453.7207,225.6894) -.. controls (452.6007,227.0894) and (450.6107,227.5798) .. (448.7207,228.0898) -.. controls (446.8307,228.5998) and (445.4899,230.3600) .. (443.9199,230.2500) -.. controls (443.8299,230.6600) and (444.2799,230.8607) .. (443.9199,230.9707) -.. controls (442.5199,230.8807) and (442.3295,232.0904) .. (441.5195,232.6504) -.. controls (441.4595,232.3104) and (441.0008,232.3799) .. (440.8008,232.1699) -.. controls (437.9308,234.6199) and (433.0608,233.0801) .. (429.8008,234.3301) -.. controls (430.0408,235.0601) and (430.4791,234.8995) .. (430.0391,235.7695) -arc(124.972 \@@_colon 81.507 \@@_colon 11.320) -.. controls (439.1592,237.5594) and (439.9698,236.7707) .. (440.8398,236.9707) -.. controls (442.2598,237.3007) and (443.9609,240.9007) .. (443.9609,242.9707) -.. controls (443.9909,244.4907) and (442.7707,245.4391) .. (443.7207,247.2891) -.. controls (445.0807,247.9491) and (447.3695,248.6193) .. (448.5195,247.5293) -.. controls (448.1695,244.5393) and (448.2291,241.1402) .. (448.0391,238.4102) --- (446.1191,238.4102) -.. controls (446.3091,237.5902) and (445.9002,237.1695) .. (445.4102,237.6894) -.. controls (445.5402,237.1894) and (446.0009,237.0000) .. (445.8809,236.2500) -.. controls (445.6909,236.0200) and (444.6094,236.9593) .. (444.6895,235.5293) -.. controls (445.5494,235.3293) and (445.8491,236.0693) .. (446.3691,235.5293) -.. controls (446.0091,234.2193) and (447.0498,234.4109) .. (446.8398,233.1309) -.. controls (449.1498,232.6309) and (450.8701,231.5509) .. (453.3301,231.2109) -.. controls (455.9101,233.0109) and (457.2394,237.9191) .. (456.4395,241.2891) -.. controls (456.1094,242.6991) and (454.8198,243.2304) .. (455.0098,244.6504) -.. controls (455.1398,245.6704) and (456.3394,246.2908) .. (456.6895,247.0508) -.. controls (467.3195,248.8108) and (462.5906,233.3092) .. (463.6406,225.4492) -arc(237.476 \@@_colon 248.012 \@@_colon 48.520) -.. controls (473.7106,220.4391) and (476.4502,220.1506) .. (475.1602,216.8106) -.. controls (473.8002,216.8106) and (472.2808,217.6803) .. (471.8008,216.5703) -.. controls (472.0408,218.2003) and (468.4100,216.6991) .. (467.2500,217.2891) -.. controls (467.0800,219.1991) and (464.4102,218.5795) .. (463.4102,219.6894) -.. controls (462.9302,218.5994) and (461.4300,219.9402) .. (461.2500,218.4902) -arc(18.887 \@@_colon -47.343 \@@_colon 2.720) -.. controls (460.7395,215.2294) and (461.7395,215.6606) .. (461.5195,214.8906) -.. controls (461.5595,214.2106) and (460.8008,214.3295) .. (460.8008,213.6894) -.. controls (462.2308,209.8494) and (474.2402,207.9796) .. (470.4102,203.8496) -.. controls (467.7502,204.1396) and (465.3804,204.1797) .. (464.6504,201.9297) -.. controls (465.4804,201.7397) and (465.5701,202.2899) .. (466.3301,202.1699) -.. controls (466.2301,199.5399) and (468.9707,197.6307) .. (468.9707,194.9707) -.. controls (469.3907,194.7507) and (469.6602,194.3900) .. (470.1602,194.2500) -arc(18.045 \@@_colon -18.045 \@@_colon 4.650) --- cycle(331.8027,191.8164) -.. controls (331.3077,191.8003) and (330.8382,191.8146) .. (330.4707,191.8496) -.. controls (327.5407,192.1196) and (321.9503,193.1891) .. (322.3203,193.2891) -.. controls (322.0103,192.9591) and (321.2706,193.0508) .. (320.6406,193.0508) -.. controls (313.3606,194.4708) and (308.7194,198.5697) .. (303.3594,201.9297) -arc(10.655 \@@_colon 21.887 \@@_colon 8.940) -.. controls (304.2591,209.4094) and (310.1102,204.0302) .. (311.9902,202.4102) -.. controls (313.4702,201.1702) and (318.2407,199.5398) .. (318.4707,198.0898) -.. controls (321.3507,196.7298) and (327.8504,196.6191) .. (332.4004,197.3691) -.. controls (332.6604,198.1791) and (333.2704,198.4691) .. (333.4004,199.2891) -.. controls (334.4004,206.1491) and (325.4604,201.8496) .. (321.4004,203.8496) -.. controls (320.7304,204.1696) and (319.3905,205.5105) .. (319.4805,206.7305) -.. controls (319.7505,211.0105) and (327.3605,207.4594) .. (330.4805,209.6094) -.. controls (330.0805,210.4094) and (329.6291,211.1598) .. (329.2891,212.0098) -.. controls (326.7091,212.7498) and (323.8008,214.3098) .. (323.0508,216.0898) -.. controls (321.5608,215.6498) and (320.0000,218.9891) .. (318.0000,217.2891) -.. controls (318.3500,216.4391) and (319.3292,216.2106) .. (319.1992,214.8906) -arc(111.825 \@@_colon 130.111 \@@_colon 13.210) -arc(232.926 \@@_colon 245.147 \@@_colon 6.580) -.. controls (316.6008,211.0898) and (315.8691,210.7098) .. (315.3691,210.0898) -.. controls (314.6891,211.2598) and (312.9098,211.3098) .. (311.7598,212.0098) -.. controls (312.8698,213.4598) and (313.0508,217.0295) .. (311.0508,217.7695) -.. controls (310.6508,220.1695) and (309.5404,222.2595) .. (308.6504,224.7695) -.. controls (309.0604,224.8595) and (309.2591,224.4095) .. (309.3691,224.7695) -.. controls (307.6091,228.7695) and (305.2191,231.7809) .. (305.2891,238.2109) -.. controls (305.2891,238.6109) and (305.9500,238.3394) .. (306.0000,238.6894) -.. controls (303.9600,243.3494) and (301.5202,248.6702) .. (296.4102,249.4902) -.. controls (294.4102,251.9102) and (295.5003,255.3102) .. (298.3203,255.4902) -.. controls (302.3503,255.7402) and (303.5500,250.1402) .. (306.0000,249.4902) -.. controls (305.9800,245.3802) and (310.6598,245.2498) .. (309.8398,241.0898) -.. controls (310.5798,240.4698) and (310.7598,239.3197) .. (311.7598,238.9297) -arc(169.279 \@@_colon 224.145 \@@_colon 2.720) -.. controls (316.0505,237.9293) and (317.0091,241.9194) .. (317.2891,246.6094) -.. controls (316.2391,248.6694) and (316.1502,252.0509) .. (318.2402,252.1309) -.. controls (320.0802,252.2009) and (320.2201,249.2495) .. (322.0801,248.7695) -.. controls (321.3601,245.9495) and (323.9809,241.3102) .. (321.1309,239.4102) -.. controls (320.9209,240.2902) and (320.3999,239.3106) .. (319.9199,239.8906) -arc(46.728 \@@_colon 27.027 \@@_colon 8.770) -.. controls (320.8607,237.3502) and (321.2807,238.4102) .. (320.7207,238.4902) -.. controls (319.7607,238.4802) and (317.8408,236.8496) .. (318.5508,235.8496) -.. controls (318.7308,236.3696) and (319.6305,237.4708) .. (320.4805,237.0508) -.. controls (320.0105,236.5708) and (319.6905,236.8403) .. (319.4805,236.5703) -.. controls (319.5005,236.1203) and (320.2695,236.3996) .. (320.1895,235.8496) -.. controls (318.2194,235.7196) and (319.5798,233.3209) .. (318.7598,233.2109) -.. controls (319.2798,232.2309) and (319.9805,230.1891) .. (319.2305,229.3691) -.. controls (324.5705,226.3691) and (328.9591,223.4591) .. (335.7891,222.3691) -.. controls (336.4691,219.9291) and (338.1509,218.4796) .. (339.6309,216.8496) -.. controls (339.5609,216.2896) and (339.2604,215.9499) .. (339.4004,215.1699) --- (338.4004,215.1699) -.. controls (339.3404,214.4399) and (338.4504,213.1591) .. (338.1504,212.2891) -.. controls (339.8504,209.9491) and (339.5991,207.1291) .. (340.7891,204.3691) -.. controls (343.7191,204.7791) and (345.0194,206.5491) .. (345.3594,209.3691) -.. controls (345.8494,213.5991) and (347.1494,214.9209) .. (351.3594,215.1309) -.. controls (352.2894,214.3109) and (352.6702,212.9302) .. (353.9902,212.4902) -.. controls (354.7202,206.4602) and (353.7791,199.2297) .. (350.8691,195.9297) -.. controls (351.5691,197.1297) and (349.9404,197.1506) .. (350.4004,198.8106) -.. controls (348.1604,201.2206) and (343.8793,199.0103) .. (341.2793,198.5703) -arc(72.235 \@@_colon 28.154 \@@_colon 2.500) -.. controls (340.5307,196.5291) and (339.7207,192.0493) .. (336.7207,193.5293) -.. controls (336.1107,193.1293) and (335.6391,192.5908) .. (334.7891,193.0508) -.. controls (334.9916,192.1883) and (333.2877,191.8647) .. (331.8027,191.8164) --- cycle(479.7598,194.8008) -.. controls (480.2498,195.3808) and (479.4506,197.1805) .. (478.5605,196.4805) --- (478.5605,196.4492) -.. controls (478.7505,195.6792) and (479.4398,195.4008) .. (479.7598,194.8008) --- cycle(187.8906,199.0508) -.. controls (187.8206,199.6408) and (187.9394,199.9908) .. (188.3594,200.0508) -.. controls (187.0094,202.8608) and (183.0302,204.8907) .. (181.1602,207.9707) -.. controls (180.0502,208.0407) and (179.4708,208.6692) .. (178.0508,208.4492) -.. controls (177.6608,206.9392) and (178.8700,206.0806) .. (179.0000,203.8906) -.. controls (181.7300,202.0006) and (184.3606,200.0908) .. (187.8906,199.0508) --- cycle(187.6504,203.2500) -.. controls (189.4004,204.0900) and (189.0508,205.7198) .. (190.0508,207.0898) -.. controls (188.6208,209.3098) and (185.3508,209.7098) .. (184.0508,212.0898) -arc(99.256 \@@_colon 130.426 \@@_colon 4.430) --- (181.9297,211.0898) -.. controls (181.9997,208.4898) and (184.4304,204.6800) .. (187.6504,203.2500) --- cycle(36.7207,205.0898) -.. controls (37.2807,205.2398) and (38.1707,205.5708) .. (37.7207,206.0508) -.. controls (40.0507,205.5808) and (44.3792,203.4805) .. (44.1992,207.7305) -.. controls (41.5692,208.8705) and (41.0507,212.1093) .. (37.7207,212.5293) -.. controls (36.5907,210.5193) and (35.0307,207.6898) .. (36.7207,205.0898) --- cycle(166.4707,217.9102) -.. controls (166.9043,217.9125) and (167.4127,218.3323) .. (167.2402,219.0898) -.. controls (166.7902,218.7798) and (166.1408,218.7098) .. (166.0508,218.0898) --- (166.0898,218.0508) -.. controls (166.1898,217.9558) and (166.3262,217.9094) .. (166.4707,217.9102) --- cycle(477.1309,221.4102) -.. controls (476.7609,222.1102) and (476.1804,223.5291) .. (476.6504,224.2891) -.. controls (477.6004,224.3491) and (478.1309,221.7002) .. (477.1309,221.4102) --- cycle(346.2207,221.9844) -arc(271.945 \@@_colon 212.020 \@@_colon 3.380) -.. controls (341.1002,223.6303) and (340.6699,225.4300) .. (338.9199,225.2500) -.. controls (339.3199,226.4900) and (333.3398,226.5804) .. (335.0898,227.6504) -.. controls (334.2198,228.0204) and (333.4899,228.1404) .. (332.9199,227.6504) -.. controls (331.9199,227.9604) and (332.6699,228.8098) .. (331.9199,229.0898) -.. controls (330.9499,228.6698) and (329.6200,230.5596) .. (330.0000,228.8496) -.. controls (329.5600,229.8596) and (328.6908,229.4008) .. (327.8008,229.0508) -.. controls (327.2308,229.7508) and (326.8791,230.0508) .. (326.1191,230.0508) -.. controls (325.9291,231.2608) and (325.9994,231.2607) .. (326.6094,231.9707) -.. controls (325.6994,232.0307) and (325.6702,232.9504) .. (325.4102,233.6504) -.. controls (326.3102,237.2304) and (330.4506,234.9596) .. (333.5605,234.8496) -.. controls (333.6705,233.9296) and (333.8806,233.1997) .. (334.5605,232.9297) -.. controls (337.0806,232.6197) and (341.4102,235.6894) .. (338.4102,238.6894) -.. controls (339.1602,238.8094) and (339.3398,238.1695) .. (339.8398,238.6894) -.. controls (338.9198,239.3895) and (339.2499,241.3003) .. (337.9199,241.5703) -arc(43.573 \@@_colon 17.962 \@@_colon 4.410) -.. controls (337.4399,240.3606) and (337.6795,241.3108) .. (336.7695,242.0508) -.. controls (332.7495,241.1408) and (329.0292,244.3893) .. (326.1992,242.5293) -.. controls (324.8892,244.1793) and (322.8398,245.0508) .. (322.8398,248.0508) -.. controls (324.4298,249.2708) and (327.2995,248.9195) .. (330.5195,248.7695) -.. controls (337.8695,248.4295) and (345.8596,248.4691) .. (346.5996,242.2891) -.. controls (345.2496,241.9591) and (343.4707,242.0709) .. (343.7207,240.1309) -.. controls (343.8207,239.6309) and (344.6592,239.9009) .. (344.4492,239.1309) -.. controls (343.7892,236.3209) and (347.3496,234.8197) .. (346.5996,231.9297) -.. controls (347.9296,229.9997) and (348.5994,228.4097) .. (350.6895,226.9297) -.. controls (349.5494,225.4097) and (349.0291,222.6001) .. (346.3691,223.3301) -.. controls (346.4391,222.7601) and (347.1998,222.8809) .. (347.0898,222.1309) -arc(287.058 \@@_colon 272.075 \@@_colon 3.380) --- cycle(476.6504,225.2500) -.. controls (475.9104,227.2700) and (476.0805,229.3008) .. (474.7305,231.0508) -arc(0.806 \@@_colon -14.509 \@@_colon 15.420) -.. controls (473.2302,227.8707) and (471.0997,227.1107) .. (469.6797,226.9707) -.. controls (472.2897,229.5807) and (471.6091,234.6302) .. (473.2891,238.4902) -.. controls (477.5291,238.6002) and (475.7099,234.8200) .. (475.9199,232.2500) -.. controls (476.1299,229.6800) and (478.0504,227.1000) .. (476.6504,225.2500) --- cycle(317.3750,231.9297) -.. controls (317.7505,231.8739) and (318.2580,232.3609) .. (318.7305,232.2109) -.. controls (318.3405,233.0009) and (317.5708,232.5509) .. (317.0508,232.2109) -.. controls (317.1408,232.0284) and (317.2498,231.9483) .. (317.3750,231.9297) --- cycle(361.1992,246.8106) -arc(128.077 \@@_colon 88.793 \@@_colon 1.130) -.. controls (361.9899,247.7208) and (361.8392,248.1208) .. (361.1992,248.0508) -.. controls (361.2892,247.6408) and (361.0205,247.5703) .. (360.7305,247.5703) -.. controls (360.8105,247.2503) and (361.1492,247.1906) .. (361.1992,246.8106) --- cycle(173.3652,251.4043) -arc(268.811 \@@_colon 263.386 \@@_colon 0.910) -.. controls (173.4193,251.8402) and (173.4108,252.4104) .. (173.8008,252.6504) -.. controls (173.8508,252.4104) and (173.9993,252.4102) .. (174.2793,252.4102) -arc(6.050 \@@_colon -90.575 \@@_colon 0.910) --- cycle(59.0000,252.6094) -.. controls (59.4800,252.5794) and (59.5498,252.9006) .. (60.0098,252.8906) -.. controls (59.6898,253.2306) and (58.9405,253.5209) .. (58.5605,253.1309) -.. controls (58.6205,252.8709) and (59.0391,252.9704) .. (59.0391,252.6504) --- (59.0000,252.6094) --- cycle(173.7344,253.5137) -.. controls (173.8235,253.5051) and (173.9125,253.5093) .. (174.0000,253.5293) -.. controls (173.8900,254.1293) and (173.2200,254.1093) .. (173.0000,254.5293) -.. controls (172.5188,254.2580) and (173.1103,253.5734) .. (173.7344,253.5137) --- cycle; -} -%</visual> -% \end{macrocode} -% \end{implementation} -% |