From b2ac2c01f553a854d600bfcab9757c2ba3dd77c2 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 15 Sep 2026 18:24:03 +0200 Subject: [PATCH 1/5] Update LIPIcs template to v2021.1.3 --- NEWS.md | 2 + R/article.R | 31 +- inst/rmarkdown/templates/lipics/CHANGELOG.md | 55 +- .../{skeleton => legacy}/lipics-v2019.cls | 0 .../templates/lipics/resources/template.tex | 70 +- .../templates/lipics/skeleton/cc-by.pdf | Bin 59879 -> 58331 bytes .../lipics/skeleton/lipics-logo-bw.pdf | Bin 13746 -> 83561 bytes .../lipics/skeleton/lipics-v2021.cls | 1260 +++++++++++++++++ .../templates/lipics/skeleton/orcid.pdf | Bin 20017 -> 88694 bytes .../templates/lipics/skeleton/skeleton.Rmd | 80 +- man/article.Rd | 29 +- tests/testit/test-formats.R | 83 +- tests/testthat/test-lipics_article.R | 97 ++ 13 files changed, 1659 insertions(+), 48 deletions(-) rename inst/rmarkdown/templates/lipics/{skeleton => legacy}/lipics-v2019.cls (100%) create mode 100644 inst/rmarkdown/templates/lipics/skeleton/lipics-v2021.cls create mode 100644 tests/testthat/test-lipics_article.R diff --git a/NEWS.md b/NEWS.md index 47e9884af..03f65f17c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -48,6 +48,8 @@ supported by the `copernicus.cls`, and fix an issue where the section headers we - Added `\setlength{\emergencystretch}{3em}` to prevent overfull lines. - Updated CSL citation helper commands (`\CSLBlock`, `\CSLLeftMargin`, `\CSLRightInline`) to match current Pandoc defaults, improving bibliography spacing and baseline alignment. +- Update `lipics_article()` to the tagged LIPIcs v2021.1.3 author kit and `lipics-v2021.cls` v3.1.3, including current runtime assets, subtitle and structured related-material metadata, compact-author and PDF/A options, and new theorem/proof interfaces. The default engine is now pdfLaTeX after testing both pdfLaTeX and XeLaTeX; XeLaTeX remains selectable. Citation processing remains user-selectable, with guidance for the official BibTeX/`plainurl` workflow. Existing drafts that carry `lipics-v2019.cls` continue to render through a compatibility fallback that normalizes their legacy thin-space metadata and degrades v2021-only metadata to supported v2019 forms (#608). + - The `lipics_article()` skeleton now makes theorem restatement support opt-in to avoid an incompatibility between `thmtools` and LaTeX 2026. Existing documents that enable it use a temporary compatibility workaround while the upstream fix remains unreleased (#607). - Fix `oup_article(oup_version = 1)` rendering with `oup-authoring-template` v1.5 on CTAN by supplying the empty society logo default expected by OUP's sample article (#610). diff --git a/R/article.R b/R/article.R index 644f79972..4195f36c5 100644 --- a/R/article.R +++ b/R/article.R @@ -300,16 +300,31 @@ jasa_article <- function(..., keep_tex = TRUE, latex_engine = "xelatex", } #' @section `lipics_article`: Format for creating submissions to -#' LIPIcs - Leibniz International Proceedings Informatics - articles. -#' Adapted from the official Instructions for Authors at -#' and the -#' template from the archive `authors-lipics-v2019.zip` downloaded -#' with version tag v2019.2. The template is provided under The LaTeX -#' Project Public License (LPPL), Version 1.3c. +#' LIPIcs - Leibniz International Proceedings in Informatics - articles. +#' Adapted from the official [Instructions for +#' Authors](https://submission.dagstuhl.de/documentation/authors) and the +#' tagged LIPIcs author kit v2021.1.3, which contains `lipics-v2021.cls` +#' v3.1.3. The kit is provided under The LaTeX Project Public License +#' (LPPL), Version 1.3c. +#' +#' Dagstuhl's official bibliography workflow uses BibTeX, raw LaTeX +#' citations such as `\cite{key}`, and the fixed `plainurl` bibliography +#' style. The `citation_package` argument remains user-selectable: `"natbib"` +#' makes Pandoc translate Markdown citations to natbib commands, but this +#' custom template does not load the unsupported natbib package; `"default"` +#' uses Pandoc citeproc and is not the official BibTeX workflow. With citeproc, +#' keys used only by structured related-version or supplement metadata must +#' also be listed in the YAML `nocite` field. Other rmarkdown citation settings +#' may require user-supplied LaTeX configuration. The template keeps `plainurl` +#' fixed regardless of this argument. +#' +#' pdfLaTeX is the default and XeLaTeX remains selectable. With the tagged +#' class, the `pdfa` class option works with pdfLaTeX but not XeLaTeX. Existing +#' drafts retain their local v2019 class and legacy thin-space metadata is +#' normalized when rendering with pdfLaTeX. #' @export #' @rdname article -lipics_article <- function(..., latex_engine = "xelatex", # xelatex used for 'thin space' Unicode - # character, see YAML field 'authorrunning' +lipics_article <- function(..., latex_engine = "pdflatex", keep_tex = TRUE, citation_package = "natbib", md_extensions = c( "-autolink_bare_uris", # disables automatic links diff --git a/inst/rmarkdown/templates/lipics/CHANGELOG.md b/inst/rmarkdown/templates/lipics/CHANGELOG.md index 2b67c7f14..3a499154c 100644 --- a/inst/rmarkdown/templates/lipics/CHANGELOG.md +++ b/inst/rmarkdown/templates/lipics/CHANGELOG.md @@ -1,10 +1,59 @@ LIPICS Style - CHANGELOG +* 11/05/2023 lipics-v2021 v3.1.3 + * Bugfix + * changed order of loading hyperxmp and hyperref to avoid minor bug when using lastest version of hyperxmp + +* 04/05/2021 lipics-v2021 v3.1.2 + * New feature + * added optional \subtitle + * revised displaying of swhids (hid contextual information) + * Bugfix + * fixed problem with numberwithinsect in combination with thm-restate,cleveref, autoref (This fixes #15) + * Fixing "supplemenatary" typo #14 + +* 25/02/2021 lipics-v2021 v3.1.1 + * Bugfix + * corrected typo + +* 04/01/2021 lipics-v2021 v3.1.0 + * New feature + * added documentclass option pdfa to explicitly enable generation of PDF according PDF/A standard + * Bugfix + * fixed problems when using old versions of hyperxmp package (This fixes #11) + +* 09/12/2020 LIPIcs-v2021 v3.0.1 + * Bugfix + * fixed bug related to unavailable sRGB.icc (This fixes #10) + +* 01/12/2020 LIPIcs-v2021 v3.0 + * New Feature + * more compact presentation of author information (email address and homepage URL only as logo) + * adjustment of document licence to CC-BY 4.0 + * added anonymization (documentclass option "anonymous") also for \relatedversion and \supplement macros; resolves #9 + * added \claimqedhere to be used in claimproof environments (similar to qedhere in proof environments); resolves #4 + * added new macro \flag to display a flag or logo near the funding information as requested by some funding agencies (e.g. ERC grant) + * added \proofsubparagraph to allow structuring of proofs + * added new macros \relatedversiondetails and \supplementdetails to collect information regarding related version/supplementary material in a more structured way + * added new theorem-like environments 'conjecture' and 'observation' + * added support to produce PDFs according PDF/A-3B standard + * Minor changes + * revised style of procedure environment provided by algorithm2e package + * Bugfix + * fixed bug related to loaded but unused algorithm package (This fixes #2) + * fixed bug related to outdated algorithm2e package (This fixes #3) + * minor issues related to cleveref package (n-dash, oxford comma) + +* 29/04/2020 LIPIcs-v2019 v2.2.1 + * Minor changes + * export of several page numbers (end top matter, start/end bibliography, start appendix) into aux-file + * renamed heading of \supplement macro to "Supplementary Material" + * 19/07/2019 LIPIcs-v2019 v2.2 * New Feature * explicitly defined/named colors used in style to ease reusing them (requires load of package xcolor instead of color) * added document option "authorcolumns" to activate displaying author details in two columns (only allowed for more than 6 authors) - * revised style of algorithm environments provided by algorithm or algorithm2e packages + * revised style of algorithm environments provided by algorithm or algorithm2e packages * added qed-like symbol to mark end of e.g. definitions (command \lipicsEnd) * Bugfix * fixed problem caused by "\\" in title macro @@ -22,7 +71,7 @@ LIPICS Style - CHANGELOG * 10/12/2018 LIPIcs-v2019 v2.0 * New Features - * support of metadata in PDF file (e.g. author, title, keywords) + * support of metadata in PDF file (e.g. author, title, keywords) * revised displaying of author-related funding acknowledgements (now displayed as part of the funding block instead of footnotes) * added support for cleveref package (new document option 'cleveref') * added support for using autoref for theorem-like environments (new document option 'autoref') @@ -58,7 +107,7 @@ LIPICS Style - CHANGELOG * 06/02/2018 LIPIcs-v2018 v1.2 * Release of LIPIcs-v2018 - * revised author macro \author{name}{affil}{email}{orcid}{funding} + * revised author macro \author{name}{affil}{email}{orcid}{funding} * added support for ORCIDs * switched to ACM 2012 classification system * added new macros for extended metadata \category, \relatedversion, \supplement, \funding, \acknowledgements diff --git a/inst/rmarkdown/templates/lipics/skeleton/lipics-v2019.cls b/inst/rmarkdown/templates/lipics/legacy/lipics-v2019.cls similarity index 100% rename from inst/rmarkdown/templates/lipics/skeleton/lipics-v2019.cls rename to inst/rmarkdown/templates/lipics/legacy/lipics-v2019.cls diff --git a/inst/rmarkdown/templates/lipics/resources/template.tex b/inst/rmarkdown/templates/lipics/resources/template.tex index 6c3b3e5df..3e13ca4e9 100644 --- a/inst/rmarkdown/templates/lipics/resources/template.tex +++ b/inst/rmarkdown/templates/lipics/resources/template.tex @@ -11,16 +11,33 @@ } \makeatother $endif$ +% Existing rticles drafts carry lipics-v2019.cls in their article directory. +\newif\iflipicsvTwentyOne +\IfFileExists{lipics-v2021.cls}{% +\lipicsvTwentyOnetrue +\documentclass[$format$ ,$hyphenation$ $if(authorcolumns)$ ,authorcolumns $endif$ $if(cleveref)$,cleveref$endif$ $if(autoref)$,autoref$endif$ $if(thm-restate)$,thm-restate$endif$ $if(anonymous)$,anonymous$endif$ $if(numberwithinsect)$,numberwithinsect$endif$ $if(pdfa)$,pdfa$endif$ $if(oldauthorstyle)$,oldauthorstyle$endif$ ]{lipics-v2021} +}{% +\lipicsvTwentyOnefalse \documentclass[$format$ ,$hyphenation$ $if(authorcolumns)$ ,authorcolumns $endif$ $if(cleveref)$,cleveref$endif$ $if(autoref)$,autoref$endif$ $if(thm-restate)$,thm-restate$endif$ $if(anonymous)$,anonymous$endif$ $if(numberwithinsect)$,numberwithinsect$endif$ ]{lipics-v2019} +} + +% Older skeletons used an HTML thin-space entity in authorrunning. +\ifdefined\XeTeXrevision\else + \ifdefined\directlua\else + \DeclareUnicodeCharacter{2009}{\,} + \fi +\fi %This is a template for producing LIPIcs articles. -%See lipics-manual.pdf for further information. +%See lipics-v2021-authors-guidelines.pdf for further information. %for A4 paper format use option "a4paper", for US-letter use option "letterpaper" %for british hyphenation rules use option "UKenglish", for american hyphenation rules use option "USenglish" %for section-numbered lemmas etc., use "numberwithinsect" %for enabling cleveref support, use "cleveref" %for enabling autoref support, use "autoref" -%for anonymousing the authors (e.g. for double-blind review), add "anonymous" +%for anonymizing the authors (e.g. for double-blind review), add "anonymous" %for enabling thm-restate support, use "thm-restate" +%for producing a PDF according to the PDF/A standard, add "pdfa" +%for using the pre-v2021 author presentation, add "oldauthorstyle" $if(graphicspath)$ \graphicspath{{$graphicspath$}} @@ -28,7 +45,14 @@ \bibliographystyle{plainurl}% the mandatory bibstyle +\iflipicsvTwentyOne \title{$title$} +$if(subtitle)$ +\subtitle{$subtitle$} +$endif$ +\else +\title{$title$$if(subtitle)$: $subtitle$$endif$} +\fi \titlerunning{$titlerunning$} @@ -52,14 +76,40 @@ $endif$ %optional +\iflipicsvTwentyOne +$if(relatedversion)$ +\relatedversion{$relatedversion$} +$endif$ +$for(relatedversiondetails)$ +\relatedversiondetails[$if(relatedversiondetails.linktext)$linktext={$relatedversiondetails.linktext$}$endif$$if(relatedversiondetails.cite)$$if(relatedversiondetails.linktext)$, $endif$cite={$relatedversiondetails.cite$}$endif$]{$relatedversiondetails.classification$}{$relatedversiondetails.url$} +$endfor$ +\else +$if(relatedversiondetails)$ +\relatedversion{$if(relatedversion)$$relatedversion$; $endif$$for(relatedversiondetails)$\textit{$relatedversiondetails.classification$}: $if(relatedversiondetails.linktext)$\href{$relatedversiondetails.url$}{$relatedversiondetails.linktext$}$else$\url{$relatedversiondetails.url$}$endif$$if(relatedversiondetails.cite)$ \cite{$relatedversiondetails.cite$}$endif$$sep$; $endfor$} +$else$ $if(relatedversion)$ \relatedversion{$relatedversion$} $endif$ +$endif$ +\fi %optional +\iflipicsvTwentyOne $if(supplement)$ \supplement{$supplement$} $endif$ +$for(supplementdetails)$ +\supplementdetails[$if(supplementdetails.linktext)$linktext={$supplementdetails.linktext$}$endif$$if(supplementdetails.cite)$$if(supplementdetails.linktext)$, $endif$cite={$supplementdetails.cite$}$endif$$if(supplementdetails.subcategory)$$if(supplementdetails.linktext)$, $else$$if(supplementdetails.cite)$, $endif$$endif$subcategory={$supplementdetails.subcategory$}$endif$$if(supplementdetails.swhlinktext)$$if(supplementdetails.linktext)$, $else$$if(supplementdetails.cite)$, $else$$if(supplementdetails.subcategory)$, $endif$$endif$$endif$swhlinktext={$supplementdetails.swhlinktext$}$endif$$if(supplementdetails.swhid)$$if(supplementdetails.linktext)$, $else$$if(supplementdetails.cite)$, $else$$if(supplementdetails.subcategory)$, $else$$if(supplementdetails.swhlinktext)$, $endif$$endif$$endif$$endif$swhid={$supplementdetails.swhid$}$endif$$if(supplementdetails.swhdelimiter)$$if(supplementdetails.linktext)$, $else$$if(supplementdetails.cite)$, $else$$if(supplementdetails.subcategory)$, $else$$if(supplementdetails.swhlinktext)$, $else$$if(supplementdetails.swhid)$, $endif$$endif$$endif$$endif$$endif$swhdelimiter={$supplementdetails.swhdelimiter$}$endif$]{$supplementdetails.classification$}{$supplementdetails.url$} +$endfor$ +\else +$if(supplementdetails)$ +\supplement{$if(supplement)$$supplement$; $endif$$for(supplementdetails)$\textit{$supplementdetails.classification$$if(supplementdetails.subcategory)$ ($supplementdetails.subcategory$)$endif$}: $if(supplementdetails.linktext)$\href{$supplementdetails.url$}{$supplementdetails.linktext$}$else$\url{$supplementdetails.url$}$endif$$if(supplementdetails.cite)$ \cite{$supplementdetails.cite$}$endif$$sep$; $endfor$} +$else$ +$if(supplement)$ +\supplement{$supplement$} +$endif$ +$endif$ +\fi %optional $if(funding)$ @@ -174,13 +224,15 @@ \setlength{\csllabelwidth}{3em} \newlength{\cslentryspacing} \setlength{\cslentryspacing}{0em} -\usepackage{enumitem} -\newlist{CSLReferences}{itemize}{1} -\setlist[CSLReferences]{label={}, - leftmargin=\cslhangindent, - itemindent=-1\cslhangindent, - parsep=\parskip, - itemsep=\cslentryspacing} +\newenvironment{CSLReferences} + {\begin{list}{}{% + \setlength{\labelwidth}{0pt} + \setlength{\labelsep}{0pt} + \setlength{\leftmargin}{\cslhangindent} + \setlength{\itemindent}{-1\cslhangindent} + \setlength{\parsep}{\parskip} + \setlength{\itemsep}{\cslentryspacing}}} + {\end{list}} $else$ \newlength{\cslhangindent} \setlength{\cslhangindent}{1.5em} diff --git a/inst/rmarkdown/templates/lipics/skeleton/cc-by.pdf b/inst/rmarkdown/templates/lipics/skeleton/cc-by.pdf index 1edf9f0b81d423cd2358e08247c31d5e8f0e1e12..3b7aba19995d1f831e17df9f3ab6b66732ac0c7b 100644 GIT binary patch delta 12946 zcmdUW2UL{HvM!*4B*6eEK?cbZCX$2XAc6=;6k&h?28qLv!7(995OI*4K|myk=T5n&KiMATSXni^$qL1+e#gq_AwyJJw62W>+U)D)1PFQ_o+;2X&P zZ<>e@;vY0oxX_<8C{$GRPZ}I1D)tW=0s;eQIG~$foxp`)|Ewqsf&YV9lpqVj>lZHq z0VOo}8%-D?@@GA$7y@x<(98!Ma0Ej15b=Npfe7I>XPN0>2(Xre0~Q2@0@Bw4tJ+&S zfW+{3XZhq1P&t^85=0R$27@Ey6ri#S!g6vj7#u1jD<&qSAS-PQ*2JJ(2|9oX0b+N? zA~DzlaYLv%ITf!e5j1e-2sI3jzbeUsQw6jq0=|N>x58S3#1LR@5L_70peVrVjK!dk zcGMKsqh_Y2_Sigc_1xmX+WF~jwlQkjdBJ|KwTaJf*y=b8h8Op!XmLK z5Cp7a?P6yJg5#Ma;UrLkXt{83=r0+nJjUvkWm^=TY?v?%q|;WSC5NaS^7lcrY~ucHxN8Gm4^Gin`81_RC;e)j0Ly*am{IWFYL*) zVCWNx+uye*H*+Scim;_yNA{=3_n**IjY{uLOk=<8aJznH$9)8|x`tWo@#vdnwGIR~ zgfm_8DG9<@u1&5IMid-wP5q7#X*>V)^PmeCGp2clESZE`v!Y^H{{& zuRfLIR3CjWo$gY_1rOouFO8T5N=Ul2rRinfyK)QNYG8uRvARlEOEde7N}fuRdd{TF zT^9a9)1ZGfG6RQZi>^4m?Rh65_C_?Jxk78K%HIYV7ta#;XEIeQ1)l&6EACYxe^iCok#^PggHW z7x!M&&SL7Lk2dTPyIzud^}EABPHx}RGuBs(A76XW{z)~6IQ4XKMi_D3aIzHj#Dx-7 z3DGc0=Z#~RgmD(%_UmO-Zk~0mczDj1|L9%EP~_C3@i$$Vm_bLH+#?&2frEqDiABXS z2}|0S%|&m_7r2Gd@7#~1h~d3&nytd3-^4NzWAA+qJvXT-sfm$KE`-7DO|jPqFBKfH}xpluRHpAwu;7HeFEQ` zDT(au;_98_AtbF?+gf6_8dp2FK#zv=(^Z%2X*8DTSnAG_W*VMO_)s$vt0Z`zDFdJP zK~4*O;q*I-;28h6$P?+>OT5o?{VVg&e8T8;dZorsKh=J&{F(7v{_()x0<~G)8}UjX z#jpDl(a_U2SFSYFf7J7gwOFY+nUMZq`Gf=;IrzzOKbV8*%BKtkUy{b<5KX#{ z`Q%{Mc$V)kDlI|M?)pxzH3go}jg1anOnP!I=q~SZ@|xMMO_Baf)J~uK@075L7>kOB z7SO~sFB#3qWi;RxC;5`gFPrAFxR|y)7Ylk$tKr*m$^KfkX><$gjb~;V>sHjLfHNu- zJ+8IgNR&Sx2FbG&Ri?abqoDDm#M8%!UQbj=nYWedD>QXiJi*bF|20O6lL zxcI*60g`bb#WU0^AU88)N3J;DCd68yIDk>p{DuYRGFzGsPGYj+geS|8{LI7pE{`Kc z!<7mg;j=>?#Br@g?qc9gyDgQeE;knR{(9{F?ZHhJO%z{#tY3V7w9G5dmIi<2CeHxmhn|SUDV?7g#=A)IM418@^k7z2N5e=IYq+BWX>G z7|wV9GVacqK2ApYisWlw+M_8}(s+30U{TH6cw}C}Y6?Gz4Ifhg)l$8GU$k5T z!?ROO0zTb3S7bDsDIa}3R#-`F5N?n}Iq#&0S~lPp*2Rrm$)q#Pn#lNB@7x-=Osd&Z zKq;5^WQnY7wR8uib+Iun`&IKUrZ$<};EA_y)>G-nbnzh!6MP)>4}6hzq$RN;8Xbxc zrn40G#ory3)DEX6RVbSBpHO{fq&XYziM#E0w=BG0qsSsm$m9L6E*iS7emqUpP(Cq3 zb=}fO`Xe0o)SP6GT-(7;snor~!jG+(p4h%Yhr51UF%X$yIBEk<8O<)D9+>McSnSCk z!<_>mY{k9A%Ujx0H;VMw)dPvo`hq1Clwz5%1Dj4pkUY4heu%MSQ8jn1&?(9)Z#L!J zE1AYj_K{2tceh?BmM>Lm%M8gd1lo^u2S|JQvX|lv=-W$K1^KO91VKH|0FRXNaxsUW z;nPua15>($7s$>v5|6mbyGU(jrmJn=>4sl*Id5M#A|*>CW;bT*l(=`ae7}=ItTZCU zRd1t!ZtPBwQE(w_+&V+n){FnVt5-tz?XQlwA?N)|cejeVmW=$;yhaPa?+3;s;r7km z%K`(q%c&a|6F54$TRJ&jj%+k?t#B(oNOlKJ3bQ{AFbn`9bJ#5C$ho*i-x!69W;)Yh^JWkskra-&Dfy zpOLq$syYgbR6t^pAgCz*q{>-hG2orf;mA%jkQ6bw%z24-R;X_c+Zdok(~@u} zH7?#00qSnEwncO0WTLlO)dXue6!`VBGK(dr=iHQP+-2`^fI7@HN~;R?&ze8LEw(k&G2DsmZK1tv zH`Xjf-BdoAtu~4U8B0M0u-b6v6ez)>0lD&xt(B=v5d~M6C)*hX7U<}0_vxqZRjow0W5j9j?L)3r|wk|2z9OPPp43zDcR+#9;O;rcE~-= z93g$bdRiw*$bRS<+mREyWV<9jYF{wK9-0o>^#=I~9OUeXWT-vq#&j`PKx_QN2N#4s zrxf)Y7_r}iZx2Zgf5KN--=2cazY1tp{_tuDUQeuAI?njzS(*4HmhahGwu5J%`b-u} zznijW@pi~-2pmIQPao8%Jhw+@N_4@FocUiw;bK4(%YlQ6iHaV^Pq*ItCqqiKdn9}J z1(0dD z+Wb&>b6-4bu)+27+TrKd-iTUGFFfUlzlrntD*WQB=FyCA@(H(Yzr4M_*v5+6U)jWc z+v#hV5OZl5W-+dMJ2}}rZ?yGouLS3H(JT8Z_)>5tUnwQ7+U`rKIX3Cga(+G<$^7ztFI!57O({ zQMMMo3okqtw6#6wV{mWC%X=$Mau^5QYTnblP<2nc%BrFea*rZ{@PCH4iuj~bJJCs{ zab5MN3=xn|<8n+e3?8&?vJh+JFa`+_`5 zx5u=detOmHD0Mr_sSVp87MmxhW=7^}=lJIA`o*MtD-)a&g7T zcGG-`&DOYmd-`2095(wQUkv9`OILnl-6X(umHAYVZUBD|{;PC_(cb7cn&ByV##u{L z&zk{a2`%+|L-~nbJ$o59vejDGzH%^FTE25G?hG}toq9g)T^QNN#!FF|8>x4FWx(=g z>&iJes?1S{x~jir9`iBpL-`5SzLlU4<#BP_w(y)TM`(Pl>shp(^!#bu^m&u0B99JH za8>>wY%6S_@nqZhXv0_OH(ePaINw*L7b@IXpKb4H@o0{~_N!J@IonX&I#=5^=~n2H_|~9Ts{jVJkfTCL7Elqez&x51=Qv*v zUf@_{SGHeh#8z(Itfe-=Emjmr&^;Q;ugUIn&cWM_CU^!VFtlw8ioHdBYQ1&0ejvIeUus2tzE!9Z7jtn2vnSXnRT(_C z@3xt$c-JUpa#TKS&!lkEb3j|I;abvmN?88zyWzg6lX*h*#i^f;h>WR>MvWUA25jDZ zCfsxH(rK~5zWO(*3NI~92pi6@6!Bi$|mEQ;`(N|mL^M`=PE8(^yO8N z@)a3g#@zKoJnsK~X%aU)ee+z}Z2#@`wc~pB#ri1LW`CrBY_<4k`@I()b8%8z;a8I zwch>m4$?5IU~6&4cflz&#kX#rc@knIIW;Z+)u>_8EYGc)VnnoSxv;|5Wj zGe5jztu}gi!Lo4F9=i6mTB9>9W8~4sN*vnoV|@>&yA+n+Af9mP*DXmwIk(un@z}O(6=2Gx)?pVey>N!l81(wo?l8CURXc; z?(dPMvbD}aKPInO;=iLCHs;{abUyh6OK2}~KpKh+uOgRI6vD(?(5dHQ)1z zlg;!=O?I3Jmrwc=CeD$-ptDd<_C zbJeiK$xwY`ce@<7rqcExHV<;>AqE!>a2 zZheTeB6~00{&HPW@#4re_ezG@A&aYRx#PP06J2$qF`kR0j4x?xXP2%yJT7T?J|Iad zeI|b6)8O_DZ|{XLV}1wE#!d==V;;IE*`z#D^7@JAOZ;FQE@b+vw@H!fRo56__E-K} z>|HVNmv2|gL$_Ghy0<3jS)J$u{3T+Jm97~~1dAr3v&O=*3R?gV@z|-#*23Ylj+n`m zp`LtIdu&_{FR18BvWN0){;7dz0XS;e75SQFo`_t7s$HC2dVI-sa5=c`TEoEX ztPUS#IjS)NCuT10epN3u6&&t|A5Fj6H~{iLS+1rw#nm`oqAg*(x^X5BgQz_6j9V+P zHzShOMY~2xpKAqq3#v->y}>!-WsW4Eb6{&*fyPULE5%O{9N)$5+3Y z{xvP7{#!YIQ)0>i3rX93&s6obh{*0%(}(aVr?L@)7L0D*61(diVlu|!ykWM7%r-OG zHp*w6QbO({Mxpi0w-!hk#PtnY^S#o1jhAftq@qvgJ0|)zUkI*yrY3+h){3Oly@8%| zY?))cm0jS?=7d^1_@R- z@AX}t^^Wn{PCvgkPFDVSbo_VMvXSMjhKUt#>704bikr(@yK7&)tH#Ebr*W^Uh>2*O zUYX<3;w*Tq0xOOndax4O7K_4wm281bqyoy^!2$(VL7}azu^{+giCq{3tcSJ$GQ7~= za*}4IGQ>e3GwL_TWq^gs$z@`}e}aLK1^u}Qk#}&h2U5~tHME7Z5h3r54-;pn`k6b1 zia|uhLd+vLg$2wZP!W(AR1hkRKnNrFfh7viKSUS|6%v3#fYhrvkmLptPvfO8M&Mb% zoWLhN{sx5OECuM$%iYe_-dWrktLTcw--Mh$?X2VBhyrV&oE=;+<|sv1AR&yezDS3! zhF-vDL+Lq?XbY(e)>y2gI2i2a<|c?lqwNG8Fjink3ri%}-WiOx0OPZu3^1gkJCIFw zMmyO5*Y#0Okjy?WsCdVK7We;{dDM`v17z7ZK z08Cg1iVzoqiT_AWSCYW~WkKH2BS*RMNBD&Bt$dw$4R8(q5#$XA5(yW9!G$dZASeqF z0WlE-LI8;pwiG~EnnNw1!oYTis2Khxl<^WEZb^4LM|E{^T@;2O5mg0gs3iDL(l5RI ztgV7}#yVg;@VWeg_z3|)&I2upBh9fu6Vm1m_O3v>9AzO1{*8`5DRNpv@&^fR4{S@= zo1=jKTwKr=;s}_TFbpLM7eFF_=Qo2PAOc8p3#fpoxu`Hw7$ppYpv3-a?hr4bN%5ae zIwCPhI}~6D&c8+g!a9I}?JTgY0L<(!_Cxgu?1-Q2&JLDXHzWonYXtyH8rVUxv?Z9( zUtGTz6BwaC8QrW=_R<7||5I(^5XfKrgj#rSK^Y1_)_+NF0;-53Xn=qeKnB3Tu+lKe z1HAtA^N{3!)&it!>432#2v1t>@5+a%fAIW`cJUwJbe8^A0fevMCp#jCw8F=L&*47{ z2%IJK@&oAN_JBB@9g*g!>sqSPcvHxk3qT==NV$0|ayN;DLUYIs$@3yGsL{ zzcKwJ6XYmzxcZMFO3MN}g(!mNKtG!KjrV6A0x#WR-oMO98YrR1*9x4&JHp8ES>WTq zgYgr-|LEy2n-n((+@%$OVrew6yM(bv+WzR}pXES%%(#P|{w}jXIh$k9jt6*`1ra1g z@R2BUEC_9Hfd*Pe+gpJEonx(07!dFVvT!hWu>+6=vPL?C%upzMkloMCC;~>&_U5)O z7AO!FgLHHxu%dq`nb7`^QPKU&t_dR({C#AEu}JF>+94PqL7jhd9uyH+gnnmnMcTTc z2;Nm%2k?1+F#Re7IM3mO1nKeTMac2Vf@kndBII;GYX7b5gN-r|0O;KK3^3(?LKG|G zZ|uJV4p1-u@9I53(t&UKjqMPY#7PM zGo&-H*N(OTkVDwH#DDU%zHNDS1^;-Ke~J>%AVM$pyD$!fbQOcPLIYk!;iu)RD*VyZ z|ClKM8`gO3-}(3d5IFr9`cE?_4E)!`0NAO(VYB2-k0k)*$CwGRj0F<&r@uYSKybT!zqfawf5N2y?{Fddd;MQ#L^uv% zg~I&7_pAK>gqdmnKA6MLCJVS!ivzd%-<8OZP~rCp3TgMJ9RD_y|Lu9}f6VFV|9ff3 z{|eARwkTJW?SC65u-_X$c>F^F-XCiJpOemi_9FtEK&*Hue*7_%e?*vhAehl{9O1AI zVc}?Wu&woXg5c1mmIBHd`{RHQ00B$1EeZr2;sO@5gwswu&RWWHAXP;`v z=xDpqH{cxJ$31=iy4IZ9=+0}>r$V;K5SF9Yj;kIgJ|(Bpe@s^4*cnBI2N};{y>?io ztBSFL+2&a%dVS_Pk8D8ZW<>Mp`<}!y;6#;UHLOy*mRXm##J1d)mq*4bwqntAu@Ai^IVL_i|1SqubrM>IqFo1$hC>9nD)j^ zi4E3K1nJ(*1 zOqLhiFhFBfD$T8SZ;gbg5!)kiW9I}@C^c!<3yz*rr3%CA_HTzL&qweebOJef=U;`A z-iOF@<%G`CMWh%ew`;1bIx6CBI- znuog;Z*!>U3;N*3+O#WK*FP@yUhF1yDWKQBwXb~|hw8tIxYSo%Y@S1$(@*wVaFuAa zh>~cslSnI{dhG7#y1?^iWUwznV;@Jq4Y!f+Y-xX#?n>6piVDD6OqybnEA4N$ts9V# zB#>~86Z4tU#N3sjCBe~>)W{+pk-f)(SU%q&d3~l)R;-;!DxFLqfdzZ_{Oj|!B(?cXgi9!{h|oDbmU2{2nH(Q=R-pdK=acOe(-eGs9* z57MQLeq2$PRd=LrqE4-@tj^%nV++OA3yM!WRbkKWb}J6b4Jz*hVj~gio*JnkEREkk zAH}d4s4anLo^3t7#A(7c#$J{5nkPFHa#>ta7M-$wt)8cWhk>^%R8L3vx=c{QlqQZZ zeX*Nu?)KcdIlH;jj6qWhlrK=7-T9OGY=g_z@m;Cb;2GvpZeuxc64UJb3~Og_S5?v_ zB;>4pptTZP?OXkZ{tu$>wxd>t18+^4a|vlj6hsC^un3pgZbqmgOJU{_YLV(KvQunR zic{?LzLWLOURz}9_8y<-nJ2v!_5pl^LgSEFaN37>5~|R2KV%lR^C=) z!5WvT%f*-_ilwt#RBlnqpUK^|ZXV0=+cFwG>QEnJe%?CHYSdKP?EB-d9IPM9R$hF& zc$;+}v@gE@!Z%hi(6`ep=-usrX8JaMJN{&W=V2pZWc)b>mH9Q9pRz7y3F`+Ljo@;X zvZS)$S@T&%2JyMKEo$?~i$aF5L(KUlXv!haLCXQ*q1&cj)vmp*qkfYLPyxW zDt+>OeE06`rEStM7oP|@VdF>a*T($aKhhkkPbd5!w%(H2js?#g^hAQ0o7qH+JO&dh z9&kp*vOEya>OM*SCZ&u&5$;rAIUQRxm zIBK|jZJ9}~6r!ZhJq-^l+v6(7ttmxMeX&c>OMp2VjmO_FmPO0Hx~D<9$1cjD&su(ITlSHf zifW@5n@F9c)5BuDZyr2s2;qEz^@(-{WHs{P>-$I?4Z}mdhs)$uRWh$-N=$95M~i8^=)DU68;;ez#`gda4Z5wnaUvb99sV=19b0CSW*5yi-$_2%2UGYaoG1Jysx%xgYjQ5AN2pR=w$+e~Q&73AI`|YTZ^Qju%}vefnf$YG z&UlT)G>bHgSRl-vpu2kXK8q?oz%X8tNaCT>o zHLyWaW>{w4!0^JS1*w6n&SuU#82ic6X-4O(Q_wa4Ro7{$=HTY#w)h*L%d7{I){gZa zo4d#En^IF=6YHB7Fu~wpC~15~r~5kA=dr13?K5Y!tZ-d{y_5(8em-d(IiC060qxcM z{Kmo;qX8UN>WQ<5H;Oc~UQEK#9q}h?I*zJZy=kCefE)0+{=g=APS!)`tLazv0tKne z?}Zm$nt8p;Yg%uj;lpJ%<%lP+-MWlWE?~BMv5774agpEPj1A9L6EQfgoA=UEDL!e; zfU-yMrIgwD$4lA_flKwz>tB{OmWGs0Z+L9@G4@jrKBNqa3%bR)EX0Y}!=;|H3loXA zb+Sb}L>kiP*(&pO8xDHD`B0LTXXokhY1MeKd$VctlFPQsx|?^^1>Cz_jk4CsST{Yc z?BO9)?~CQq+>72ln>{l&8*`6^h;J2UdW>Yvd{1h~v3fo2chh5;;g;epzuxb~*|sAJ zCXQo;8+99l8+{@QcKtnVOAffXsxqkE#7AP=1h4U3^>@*&)TAfu$F7Xn4oixK?p!5G zAvXFRQ5?w;`84udlyy{3v|Myf40Fumn5|fg*v>eaxa@eA_<;DG1av}wqHGg$O2Z4$7cWy8Qv*`>((Kd5)3ws;UW&YYnZcY9{EFn2%d6Q;+>OlkEQPG% zY=P{=9QvGq*F>*fUeD#4=Jvi(dsCAqnwOo=nIBVdy1>7XxX`2UOObWac(FloN6F=q zno^0d!f9p5fgTUAfgnA8l_>eqJHU8`$-r}nO~ zUa7veLAIf)QL3^0z4-f*CQ)2dQL}J!VT({p!3Uua1+BuZg>52j#qDD4r5%zTm7SM5 ztGg7s>bq6Dn|m~RI(o17_V?ZB8}GO1pBb%rPCUQdAqkC?tj^XC!t&}n5d3gCD-gqi|BK79^% zaHZmp+XVnk?9bZ@aG`(RR)7O>>z`LA0GimJS1g1OV#0skU;t=@iwSas8wr13br1sX wcl_C)kccS!5Hpaz1cG=B;iiZ-a7hGs5WMd!x7dHavGCh91t?Vb=S7A81xgn#@c;k- delta 16042 zcmb_D30zdw`njc|lll_LeOyLagxNP_5oQ%CPqr(i$3~rfM&0TY8%B<8h zEX}gTB}L67EmO;~6nnWmGnW=KdoF2|{lD*=Iox3Y#s2T|yZ3D0zMSRG<@BKzSH5mh zAW1cvLgisfk>tYnUwkd{lZ$0yd;SDbM1(YnbD0axF0)txeQDBEb1~->D@i?LYAGi* zz?juu92F(vY=ww}a30*@oUPb3UMyGXAc8;_-E%{b1!(p~LOU(|>RxmZnWVSlF2q}PPq!x!a0^}!V zS42I)lu4YU)M2r?8YM*_S|W&ByX#UX4~0~#*~KNBOE{-nv?r`(lwqpby}mNQ9ev2J zO;i$?(dII{haBnZzWzb$)={H5tJOZ4wI7X&wVDeiLbHqe+TO0AD7ru|s=m1Clg+Mz z@k1T<@=|0sMv3MLFUB^C5S8vS+X~H&!cddhkzd4F3yU4)rKQv^49;D4Fu?ugidIih zJoIjqj9AVC;og7HpNZ4~Me^e69(k-c_(tg-xK!fqSb410SNTi(yQ?dAYxL#ZJc+?PE^e*2sqX3YR27~&pvzhS(~+Wz^?iIetYlCnl-r}+`Y7nKga+3 zKYO3-e!KUK>3i(2?0k3QuHW}XU%zqbuiG{EPIXzDeR}EN6*u?;i#wct`4zrh&HN8{ ze(~g)7WeoIwxNF2x90?nJaX^P?Z4gKxMgF%?6bYUTTuC{H0O)?x85(64&6HYsi!Zs z>NV+NuivjcYF#<5-Pnywc1(HP^!Fz%dYt=2G}OBGj`F(hhhHoIs{CvB-6sNewO=;$ z^Hp;rw;X)=?A`Hw3hwkBJlnh=MzrSrD_`2j&-w1MUrt1<=B;hhZ-!svJ6zqgH&5R@ zc}dTakH25h{c8NsYU})Oehs`e=Vtb;*Up~5n);4=?aS8qonYFXzbw76_mK*H&uwo{ z+a59LY+gm>gyDDARm9Kgc%=E2vjOjy-K^f_iW;|RcWl+FsMlX;w&mpGMS+=YXh@0gO-r^?m5_|l14t0v#vXkNYD{-xhi|BqJvJV)B@ z*}r=y%t_@Rx18F#r|J*mHyvjwBL2N*%%rTF>Fuud8NDv@>9;<=)T8=BKIf*sXiUVI= zs~z)OWmV0(_}SkS?LFLM<&k*B?T!nwRBwEG?W2I_Uk%Y;m-kquJ`~e+;hWvptPT&j znE0ON#+tMhs}_VrI2O!mv8eaP_OrCHp=BEf6%ap>s?mLbp$S0cpgKE@aXLmZD zD-Hf6@kpTG`+@RVeQdio9B~cl<;SOdWefT-sqMa8YvLc>x?VZ%pK+r*ywj$PP2 z^*@p872o7td2VUM6!FaCVGDL2A06`J$(#Ph?3;gzo=)wa-=hu3-QJtFWymkmj_Z$| zbyPIxzdoJ%P1%wa1FpUrb@}59DL3%WkRr%hYvg6D4ABePm z@bneK3*on0t-3Yi(83R-FaF$dTh`Cty832ba6CC|Msdk1>u(}HTkm}R-ADVbF8%%J z$Sa)c3+<~r{)d6gduZY zHa0u?TH@=SBMaS|Uw`$K_^qen+B}uYe>nS8*-`&trMhQ!&%Scr@7zJ zm-0iw5C58*VISXV^Xa6g@3@VNBG!z&^k>Ys!#71Fq)$8Y*(d$yk1E(QF|PCYg^oF~ zN1yP2zEk|yOPcGVtG1r%6QWq`%$L|U{}`J1;UE2Hw45__?Y*|K3nuZ=8@UZF%HCex zai#iZWS0MxlPNEJHDr=A>94aJMXw}&>bMv(eeTV+Z`~?fyDTMfc$*Ff7PhL}z@Bf0@>y_0E^3>ks^E^p~9_Z)z4VT3^t7 z&7+)165RUm%R9=d7Jqv0ku`18?O~?fC-~{tepz~cOvf{~*Y{d-vDKmLfjMJ}QZ~H( z_Vca&eeq)D)ob7W%0E7{o96tLPp-X{=Rg10$B$%x^p3u?@3K}e?fv7-fF)PwB?SKD zXFGZK#nPo4KHRCz7}#Y&<%FsoS3a6?z99Rz4`12+TE&gH`L>^;-?=yL_s3SgrhI3a zf0wNh1D0E=zMUiGx1OlZ>EidsEX|AKR<5;}zZ}>~5iz~Rf%UrTXzl4yrJp}`>iU}_ z+pk~vT##(<+?vn7?4e4InVFd}Y;(JJQzo8^3%?pScYf~DyOYm!3w*^c?e$J|#Jz3b zeSgxjj62}};;DH9FWV&PH$GTc_{9@NHD5$-NbGlH-nxD7Py26tSmoHw?UVVMT|vWi z6XQ<=P0Xq)3g5cdp-q`$oAy)hts!xLjGq&@bZ;e`R&@iIIMEol?&x(>|Z?nX6UJil?TooU3SZobEopi zrX80T94z_lUYE=hC%bNYMwar%w;3lwEN4IH#G7`WODTORT;6hnuDDY6-zUefu1VXR zxO!oUA^GLVxR(}=4Xm*JGCO64?whtRe$#8wyx0+$Z|rbB`|gQrudS6-RCL?C==$KY z=G}%LUfb~n`DshomO$~KN!zF2oq6xaucHUOqWNpmjZNF`Y@BSL{O6w``yV;i`S@kr zsCpKBt~K4W>fN0e2k|npt2J4yF3yo7jY&5oBAJZC8$?-DDe zo(---D;;Gi#GS5O*h}aJXL94zBSu)bA;WVshpF=hOw?L!LaC9PWGUd%hQ^8&YBi8X>2ldFn>0P!>?TO;5mcqnc?+18n-UdQmOMl< za9~Q_5MII!iB23W3DE`Wxu~qjq%=)>v}Nq*;uvLQZdklA%M_N@-F`3q4ec^axa9@idXK-+&a-2O? zp3^6NY*4g3C?Q)_SYA5LFHY|0BOMeh%L&%=VP;c8nqokHsG*-TBFm~a#Sh7ei0so( zGcu^$7@K8FaD}lCrqg9eLeDs*G=)$NZo1aE9LSY|Wl$>Vj-#;WJIU*!CEizQ2&$2kP2d9tD%#mvQMGR1C9R=1A!^*fsuHT?clQyk5U+y;Hp+kpdT1Nzrh*qh?4G9BOi39T#6CyZQVuE3Umebl&lky`|H0j#R zl=uk0)D*2_OhQhEauB zu6B=oETFrbY^kNb<0`RS>t6m?I*$jyx`#ZyN-2bvq)%#kXbc<&xlm=8Oe~T}46wm= z*&X3x(ko7|TFW5=uq!Yv2)KsH04OFwm*)W-$vK=ByDgjykwFt;2PT;v1>$&~bL0cM z#pMbT2L=IVhQ(#&VAx;?jUAn5DX`nZoRf-igwO*@pdJ9o^#<*%M`&g`;WP2XI0E`l|5=l);sh;;cx_q*BNbOs|EfSDli}0F?-o z9EasPu}+52YAtvGDG7#xDUX{RE>5=FV7*3b#5i2()Hy1ZOa`wK;3<*-e|273xs`Kd z+AJ=RQjXAiYK|nBudSXgLICD&Vg;fwPNP5vpOiy}*-^~7(m1ExTJ9nt2h!0Yu=jBD zREWe{1}UYSEyF&NCsKy0G;*;{2}uEI0pTH+sUcP{bAW+d38{uzM%f`l0K+Gxjg&?L z8O8vE5nryPI4s2$TewF&ZQf9arBLvsRw34jwTeu55*5O9Vp;92hdQ~bF>uLpahO8b zh8Qv=3537_N$J2c&Q@r!mtd4SMealGd-3d@jZ7!kdL?udlAh<_E7+9|oF0A9IQi-EV zB^@=H5SwCYGzg`E3!ez3(IAvYV=^(CkXZ<%*CUV~E=1Ss5lpW~Fs$Jdp$rCuG8mAQ z0WN$ZjLC$fCX+^k*d`N>n@kjkicAHj0#S~1)WicSBI8pDvkg8G47I{1f+>~A09ms! z)CubdgF4|8HD|V5X- z^D?yy#YF|NA6uv%jRB2@NBxjFcHtAjP(yrDPhupXhKx0h6BY+3I*Nn6s38*#Ygk9d z)N*Jaq>dxV3!i!(%#IZ*A2LKX6cwKc#x8_G{aARSeuz!=rlY7K_8=6Ea#WC7h2r89 zVNgAoSy_D3kU&3S4`qSGgh)nqs1FM{j2LVo6paeh5QV`$)Q|~=HLO#{)N&{~h{1bw zM}~M)$*@E)MxGL&WxndgF4b6M#Y#tkg`aESTY&$KT1zih?JVB*JP`nsptW!T3401W9 znoNczogd|%O98Jm@e)b}xp3vgODI+35=qo*I)WvSRki2RYUzMb!aIAobg)9=g(YRK z^IS18bVMj)$Q2t)`-L)=Tq23lNJl&+FEe_sxHvi>lyT&uz4%0*3NtoV%MkHCsq$x>;+C(dm>iU=1vJS`kTvE;iKk5=HkW+H_1U4~V|ZO-32` ztf?fM&RnO`8Zk7rMy*k&q&JVug(j<0_9%jIBRU&rWy9EP^g$(H^FGXxA);aMsdX5y zRDl06bCp^_6BXj$TgSTf7#+5WC<;g*a-&EXE7a`w!@l2GEjI6E;JVC_u|f+mYm})m ze-&C_tfDZr==Z_)r6#n!u|a%#WD)`G8M-fQ)7psb1&Q%5bi{zi z3A0#aCKyma_@~T)GDJT5T%d}aJ^7EF9@ZukfYt>R~3nU?s#R?1G99jF=l}bsnodc5OAK18nF+F)YKq%WWT>v)X84Nf)viDP`!c77W1gkjGd)Mq$j zp|17srbauBDsSf?2RO=tGHM>CipE(q#FqBeT@&lCeN=dG2$_7*S~Lb|8%3u*F#kgr zS)FJ^vN*V(2kS<=HzbREsx9h?n^)#YOh5(x20)xgTyy{R&kK-b2DTBM1s`)A3p}bF zVMq4N_&$Ir2s<5sfeU9U9sdSLy3 z5K9_9OmifRMx;)oEo@VNLmRfQ6oU4UWeF7r%^3_m)*!`N{b{4IWWj!xYC0tqs9_Hy z3znST)EIU>KHl@c_aF--FdZB_1=)!zwH`#D(zNv~CxkgOKe&cmY(b`ip}mD0{4X>b zt_wa#?ZCuj0b!;G5j>koI_gV<`MeP>)c@XtOcQE8jCSfb8oz9kg+6jo9jP!3f`la5 znBWYDA~(Kv*6#njjnC>VQ&9l88_}DxU^qhAsLx5@d7{JH{~$j|i#d%%n9rG3R7YZd zToXu?6HVbwHpLYDOT!hdij?kG68#wf9udhz!DeTYY_x~W)}+k@WLWh}rg{AlkJjWc zigd~O&)36QtVx5TY4E#eGz!s8xn34(uzki|rj68WG<6*_TB&=rjSuoA(k2EX{)t?IQc>&2& zAG6pd+a>C0A^>T#*rySJx*~~&Qq4Q`;T40~>KD!}8OmnJB zLl8n=UB6??E7N##M!|TeT9XU_U!y3buQoje<260c(J{U^#U@8GusYG->kSyZn`?M- zVPqbTIkPCU24b@;gENy3=06(KLYUppq)qj?=T)X2gPXB#IAR)n{~@4w3nMTWJW9uz zMi@ul=RkBILZIy^Hr7}VDI0tL;|oa5jwt9kv>Cl=l++>V%c61SFj8mzXH4mQP1a{% z$o9U}QDmAn${}oNIx4h{Z>~@*hE4URJzjP1{f{u{O_HXXcaIl3VQ{~8Km5BSfS<3x_rD|x2?CnuJgWdC54#gX}yxR}m3pg)^{ zSUl6&nI;(avAAzqNtrWR4=i#0^Jei7%#AX@#7M!Q0^vX_#KuX8zUQW)%$73j*U0JK z3LUB-??%Y_Pof?&8bbzWY)TBpLO>)BsIWt1le7+gJ_O=q5)#%9@=RUOXTK zPE+U#bOW^`#WV3nII@Y$Nj$V^n`G*+Vc z2nil1bP(U8q7Hul_G~YWN?=1h#iV1IPZk`b0$hS(P-D^=gM=#zW>lh{uvtOVQoBK` z_Q1k;Xvu3SW<$W{J-LWzG2|y!l#b~4z>+XWOFR&=A&T^T4e{SJX1;L$3+6y`NTc$b zj9TJx`q3(WtuFHZPY%!jQK+}Ycip0J9~QNDr*-YQt=I4u!kfc4>+xL&Y&$!zygB?s z=#Ss!xG#$W+&LGbTfx`3dXanmg{~{+b>U_3r8j;+Boo_2exxE->9z2gZJj>aqR%1* zr-rYseBk72l@dPAt%ECv&7LnkxlW;kk9NtIR{~?L8onR)LDp)t^$2RU_`R_Y6O{tK zJND_*DC;rSYwEy}&#jd3f4RPlRZ5k{moa>bA*z83~KPF-egcIO|c54+^CE-MdiZ(FTnr)I$Tp6 ST#-nvSE}IyGf7;EN%Vg%CvbxR diff --git a/inst/rmarkdown/templates/lipics/skeleton/lipics-logo-bw.pdf b/inst/rmarkdown/templates/lipics/skeleton/lipics-logo-bw.pdf index 95d0644f17bb9d652fac6dc1bf9f9b41ec19a33b..26b83d627ac94e4d9aeaacdea480fefde08bc2c3 100644 GIT binary patch delta 71752 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 a#|0q=x1*}og6~`Kbta!vP~fYo$oU^3i0%pi delta 2353 zcmb_edsGuw9_E(tNHkReK|y3hQ3!^4X7Vtk#v~90Yzh>&J_&h{s3hc3L`pYMw^*&< zBkJAyz@EB#R4Nv9MXT<{Ra{YVDS{Lgq@jo?sOtiDwZ#oqyFIQwyL(RWnLlQ}xp%(r z+~4nh^YyIrsb02$L*gW#qR}@I8dV?!Mo{Qn1V_^moaFHcREaD=D4a%cf?gz%uyrP_ zIcq5!s!0&cV&_|RdNzg7?2V4FG#*7D*ziD1Y}T_I45LZGe_%pP_%enIaq49Z^RU8u z3K04ljyV+|o=XzATtLrCAcc4WB~vJ*a!f|flFJDyL9W21lw=XAvg-1NbyJk{5SY$D z5Vp|S4kD6h9-6E(W!nu1B}CH@l9otpcB@XE!)6)UvobR?^_iJjUf}9<-(=TcT*YTK zC0V{DV&AyZhodlQXWPteV?Ju}W{mTCTf%Vu=CwK&AHk4RRAx2jI#ayEol5T+V-)%J z#5B9wt`m#V#54>MI9=Xzon0W<@tj#m^8d}MTyrBMsWOT;a%T&tx;V@&SkpHaGvS$F zp38ZxwCM}S{`F2l&EmqEtNS<&?kXL>zI#A+K3rNhQF?jx1WFg#vHtF(yBFhs z*rQ*%b$-$DkjavjVTASiCQESZ@3tKF`DgZM!J6xp_>K2Z&bG+9LdKqwDQ0_T z?co$+e`O}$di=G2Py-_BTyjf&Frwpq>FuH~FWw>>^4i=duO!^=8?0RDI-jphl$H&y z#dmz~wVvAc=k_}x-?%DO$)3Dhe9^LD9I%YPie5YHI1Km-* z`AZ6KeQ;>MvbVIfHbtXdwPoWUqgGhF`Z2WNo+#fLcDj(^I`SZB;pkXUakH7#yL-N2 zbj|+w(b{jmXnm3ar=sl!?327;bJKOSzSGOnzv1DIS@RG4_T%Pe`tMO|~-oZ@c&?TZ78ih$RKckf*o z_OItBf7r`g1BPUcF}VHO2uFrOc4P- zOo{=ozd{D}E6PBAl98jctF>yo`u~>0dr8iipKm`w{7PHGh0#3lI_%xz`HkQYPz<6@EAtdTt{jLiJ5 z$u7ag=&N5mU-|RK_W7x^1(50IX~=#K5d4BxDD?x8a7rvN!R=xYH(LBgey&=xOlLo+EYvH2cn*e8?B^L{IC0QC9?3)WFLK9lig`It5E!5L5{8o`Ega4m OvylH5E}$v_jQ\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\advance\partopsep\topsep + \topsep\z@\@plus\p@ + \ifnum\@listdepth=\@ne + \labelsep0.72em + \else + \ifnum\@listdepth=\tw@ + \labelsep0.3em + \else + \labelsep0.5em + \fi + \fi + \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% + \fi} +\def\endenumerate{\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\advance\partopsep\topsep + \topsep\z@\@plus\p@ + \ifnum\@listdepth=\@ne + \labelsep0.83em + \else + \ifnum\@listdepth=\tw@ + \labelsep0.75em + \else + \labelsep0.5em + \fi + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi} +\def\enditemize{\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} +\def\@title{\textcolor{red}{Author: Please provide a title}} +\let\@subtitle\@empty +\def\subtitle#1{\gdef\@subtitle{#1}} +\def\subtitleseperator{: } +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \let\@svsec\@empty + \else + \refstepcounter{#1}% + \protected@edef\@svsec{\@seccntformat{#1}\relax}% + \fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup + #6{% + \@hangfrom{\hskip #3\relax + \ifnum #2=1 + \colorbox{lipicsYellow}{\kern0.15em\@svsec\kern0.15em}\quad + \else + \@svsec\quad + \fi}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} +\def\@seccntformat#1{\csname the#1\endcsname} +\def\@biblabel#1{\textcolor{lipicsGray}{\sffamily\bfseries#1}} +\def\EventLogoHeight{25} +\def\copyrightline{% + \ifx\@hideLIPIcs\@undefined + \ifx\@EventLogo\@empty + \else + \setbox\@tempboxa\hbox{\includegraphics[height=\EventLogoHeight\p@]{\@EventLogo}}% + \rlap{\hspace\textwidth\hspace{-\wd\@tempboxa}\hspace{\z@}% + \vtop to\z@{\vskip-0mm\unhbox\@tempboxa\vss}}% + \fi + \scriptsize + \vtop{\hsize\textwidth + \nobreakspace\par + \@Copyright + \ifx\@EventLongTitle\@empty\else\@EventLongTitle.\\\fi + \ifx\@EventEditors\@empty\else + \@Eds: \@EventEditors + ; Article~No.\,\@ArticleNo; pp.\,\@ArticleNo:\thepage--\@ArticleNo:\number\numexpr\getpagerefnumber{TotPages}% + \\ + \fi + \setbox\@tempboxa\hbox{\IfFileExists{lipics-logo-bw.pdf}{\includegraphics[height=14\p@,trim=0 15 0 0]{lipics-logo-bw}}{\includegraphics[height=14\p@, width=62pt]{example-image-plain}}}% + \hspace*{\wd\@tempboxa}\enskip + \href{https://www.dagstuhl.de/lipics/}% + {Leibniz International Proceedings in Informatics}\\ + \smash{\unhbox\@tempboxa}\enskip + \href{https://www.dagstuhl.de}% + {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik, Dagstuhl Publishing, Germany}}% + \fi} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \let\@evenfoot\copyrightline + \let\@oddfoot\copyrightline} +\def\lipics@opterrshort{Option "\CurrentOption" not supported} +\def\lipics@opterrlong{The option "\CurrentOption" from article.cls is not supported by lipics.cls.} +\DeclareOption{a5paper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{b5paper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{legalpaper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{executivepaper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{landscape}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{10pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{11pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{12pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{oneside}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{twoside}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{titlepage}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{notitlepage}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{onecolumn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{twocolumn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{fleqn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{openbib}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{a4paper}{\PassOptionsToClass{\CurrentOption}{article} + \advance\hoffset-2.95mm + \advance\voffset8.8mm} +\DeclareOption{numberwithinsect}{\let\numberwithinsect\relax} +\DeclareOption{cleveref}{\let\usecleveref\relax} +\DeclareOption{autoref}{\let\useautoref\relax} +\DeclareOption{anonymous}{\let\authoranonymous\relax} +\DeclareOption{thm-restate}{\let\usethmrestate\relax} +\DeclareOption{authorcolumns}{\let\authorcolumns\relax} +\let\compactauthor\relax +\DeclareOption{oldauthorstyle}{\let\compactauthor\@empty} +\DeclareOption{compactauthor}{\let\compactauthor\relax} +\DeclareOption{pdfa}{\let\pdfa\relax} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass[twoside,notitlepage,fleqn]{article} +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt{13}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\renewcommand\small{% + \@setfontsize\small\@ixpt{11.5}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize{8.5}{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\large{\@setfontsize\large{10.5}{13}} +\renewcommand\Large{\@setfontsize\Large{12}{14}} +\setlength\parindent{1.5em} +\setlength\headheight{3mm} +\setlength\headsep {10mm} +\setlength\footskip{3mm} +\setlength\textwidth{140mm} +\setlength\textheight{222mm} +\setlength\oddsidemargin{32mm} +\setlength\evensidemargin{38mm} +\setlength\marginparwidth{25mm} +\setlength\topmargin{13mm} +\setlength{\skip\footins}{2\baselineskip \@plus 4\p@ \@minus 2\p@} +\def\@listi{\leftmargin\leftmargini + \parsep\z@ \@plus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep \parsep} +\let\@listI\@listi +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep\z@ \@plus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \z@ \@plus\p@} +\def\ps@headings{% + \def\@evenhead{\large\sffamily\bfseries + \llap{\hbox to0.5\oddsidemargin{ \ifx\@hideLIPIcs\@undefined\ifx\@ArticleNo\@empty\textcolor{red}{XX}\else\@ArticleNo\fi:\fi\thepage\hss}}\leftmark\hfil}% + \def\@oddhead{\large\sffamily\bfseries\rightmark\hfil + \rlap{\hbox to0.5\oddsidemargin{\hss \ifx\@hideLIPIcs\@undefined\ifx\@ArticleNo\@empty\textcolor{red}{XX}\else\@ArticleNo\fi:\fi\thepage}}}% + \def\@oddfoot{\hfil + \rlap{% + \vtop{% + \vskip10mm + \colorbox{lipicsYellow} + {\@tempdima\evensidemargin + \advance\@tempdima1in + \advance\@tempdima\hoffset + \hb@xt@\@tempdima{% + \ifx\@hideLIPIcs\@undefined + \textcolor{lipicsGray}{\normalsize\sffamily + \bfseries\quad + \expandafter\textsolittle + \expandafter{\@EventShortTitle}}% + \fi + \strut\hss}}}}} + \let\@evenfoot\@empty + \let\@mkboth\markboth + \let\sectionmark\@gobble + \let\subsectionmark\@gobble} +\pagestyle{headings} +\renewcommand\maketitle{\par + \begingroup + \thispagestyle{plain} + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\@subtitle\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +\newwrite\tocfile +\def\@maketitle{% + \newpage + \null\vskip-\baselineskip + \vskip-\headsep + \@titlerunning + \@authorrunning + %%\let \footnote \thanks + \parindent\z@ \raggedright + \if!\@title!\def\@title{\textcolor{red}{Author: Please fill in a title}}\fi + {\LARGE\sffamily\bfseries\mathversion{bold}\@title \if!\@subtitle!\else{\\\Large\sffamily\bfseries\mathversion{bold}\@subtitle}\fi \par}% + \vskip 1em + \ifx\@author\orig@author + \textcolor{red}{Author: Please provide author information}% + \else + {\def\thefootnote{\@arabic\c@footnote}% + \setcounter{footnote}{0}% + \fontsize{9.5}{12}\selectfont\@author}% + \fi + \bgroup + \immediate\openout\tocfile=\jobname.vtc + \protected@write\tocfile{ + \let\footnote\@gobble + \let\thanks\@gobble + \def\footnotemark{} + \def\and{and }% + \def\,{ } + \def\\{ } + }{% + \string\contitem + \string\title{\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi}% + \string\author{\@authorsfortoc}% + \string\page{\@ArticleNo:\thepage--\@ArticleNo:\number\numexpr\getpagerefnumber{TotPages}}}% + \closeout\tocfile + \egroup + \par} +\renewcommand\tableofcontents{% + \section*{\contentsname}% + \@starttoc{toc}} +\setcounter{secnumdepth}{4} +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\sffamily\Large\bfseries\raggedright}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\sffamily\Large\bfseries\raggedright}} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\sffamily\Large\bfseries\raggedright}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-3.25ex \@plus-1ex \@minus-.2ex}% + {1.5ex \@plus .2ex}% + {\sffamily\large\bfseries\raggedright}} +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\sffamily\normalsize\bfseries}} +\newcommand{\proofsubparagraph}{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\color{lipicsGray}\sffamily\normalsize\bfseries}} +\setlength\leftmargini \parindent +\setlength\leftmarginii {1.2em} +\setlength\leftmarginiii{1.2em} +\setlength\leftmarginiv {1.2em} +\setlength\leftmarginv {1.2em} +\setlength\leftmarginvi {1.2em} +\renewcommand\labelenumi{% + \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumi.}} +\renewcommand\labelenumii{% + \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumii.}} +\renewcommand\labelenumiii{% + \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumiii.}} +\renewcommand\labelenumiv{% + \textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\theenumiv.}} +\renewcommand\labelitemi{% + \textcolor{lipicsBulletGray}{\ifnum\@listdepth=\@ne + \rule{0.67em}{0.33em}% + \else + \rule{0.45em}{0.225em}% + \fi}} +\renewcommand\labelitemii{% + \textcolor{lipicsBulletGray}{\rule{0.45em}{0.225em}}} +\renewcommand\labelitemiii{% + \textcolor{lipicsBulletGray}{\sffamily\bfseries\textasteriskcentered}} +\renewcommand\labelitemiv{% + \textcolor{lipicsBulletGray}{\sffamily\bfseries\textperiodcentered}} +\renewenvironment{description} + {\list{}{\advance\partopsep\topsep\topsep\z@\@plus\p@ + \labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} +\renewcommand*\descriptionlabel[1]{% + \hspace\labelsep\textcolor{lipicsGray}{\sffamily\bfseries\mathversion{bold}#1}} +\def\topmattervskip{0.7} +\renewenvironment{abstract}{% + \vskip\topmattervskip\bigskipamount + \noindent + \rlap{\color{lipicsLineGray}\vrule\@width\textwidth\@height1\p@}% + \hspace*{7mm}\fboxsep1.5mm\colorbox[rgb]{1,1,1}{\raisebox{-0.4ex}{% + \large\selectfont\sffamily\bfseries\abstractname}}% + \vskip3\p@ + \fontsize{9}{12}\selectfont + \noindent\ignorespaces} + {\vskip\topmattervskip\baselineskip\noindent + \subjclassHeading + \ifx\@ccsdescString\@empty + \textcolor{red}{Author: Please fill in 1 or more \string\ccsdesc\space macro}% + \else + \@ccsdescString + \fi + \vskip\topmattervskip\baselineskip + \noindent\keywordsHeading + \ifx\@keywords\@empty + \textcolor{red}{Author: Please fill in \string\keywords\space macro}% + \else + \@keywords + \fi + \ifx\@hideLIPIcs\@undefined + \ifx\@DOIPrefix\@empty\else + \vskip\topmattervskip\baselineskip\noindent + \doiHeading\href{https://doi.org/\@lipicsdoi}{\@lipicsdoi}% + \fi + \fi + \ifx\@category\@empty\else + \vskip\topmattervskip\baselineskip\noindent + \categoryHeading\@category + \fi + \ifx\@relatedversion\@empty\else + \vskip\topmattervskip\baselineskip\noindent + \relatedversionHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous related version(s)}\else\@relatedversion\fi + \fi + \ifx\@supplement\@empty\else + \vskip\topmattervskip\baselineskip\noindent + \supplementHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous supplementary material}\else\@supplement\fi + \fi + \ifx\@funding\@empty\else + \vskip\topmattervskip\baselineskip\noindent + \fundingHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous funding}\else\@funding\fi + \fi + \ifx\@acknowledgements\@empty\else + \vskip\topmattervskip\baselineskip\noindent + \acknowledgementsHeading\ifx\authoranonymous\relax\textcolor{red}{Anonymous acknowledgements} \else\@acknowledgements\fi + \fi + \protected@write\@auxout{}{\string\gdef\string\@pageNumberEndAbstract{\thepage}}% + }% end abstract +\renewenvironment{thebibliography}[1] + {\if@noskipsec \leavevmode \fi + \par + \@tempskipa-3.5ex \@plus -1ex \@minus -.2ex\relax + \@afterindenttrue + \@tempskipa -\@tempskipa \@afterindentfalse + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \noindent + \rlap{\color{lipicsLineGray}\vrule\@width\textwidth\@height1\p@}% + \hspace*{7mm}\fboxsep1.5mm\colorbox[rgb]{1,1,1}{\raisebox{-0.4ex}{% + \normalsize\sffamily\bfseries\refname}}% + \@xsect{1ex \@plus.2ex}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\leftmargin8.5mm + \labelsep\leftmargin + \settowidth\labelwidth{\@biblabel{#1}}% + \advance\labelsep-\labelwidth + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \fontsize{9}{12}\selectfont + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m\protected@write\@auxout{}{\string\gdef\string\@pageNumberStartBibliography{\thepage}}} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \protected@write\@auxout{}{\string\gdef\string\@pageNumberEndBibliography{\thepage}}% + \endlist} +\g@addto@macro\appendix{\immediate\write\@auxout{\string\gdef\string\@pageNumberStartAppendix{\thepage}}}% +\renewcommand\footnoterule{% + \kern-8\p@ + {\color{lipicsBulletGray}\hrule\@width40mm\@height1\p@}% + \kern6.6\p@} +\renewcommand\@makefntext[1]{% + \parindent\z@\hangindent1em + \leavevmode + \hb@xt@1em{\@makefnmark\hss}#1} +\usepackage{microtype} +\usepackage[utf8]{inputenc} +\ifx\pdfa\relax% + \IfFileExists{glyphtounicode.tex}{ + \input glyphtounicode + \pdfgentounicode=1 + }{}% +\fi +\IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{} +\IfFileExists{fontawesome5.sty}{% +\RequirePackage{fontawesome5}% +\IfFileExists{orcid.pdf}{% +\def\orcidsymbol{\includegraphics[height=9\p@]{orcid}} +}{ +\def\orcidsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries \faOrcid}}% +} +\def\mailsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries \faIcon[regular]{envelope}}}% +\def\homesymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries \faHome}}% +}{% +\ClassWarning{Package fontawesome5 not installed}{Please install package fontawesome5} +\def\orcidsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries ORCID}} +\def\mailsymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries @}}% +\def\homesymbol{\textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries H}}% +}% +\RequirePackage[T1]{fontenc} +\RequirePackage{textcomp} +\RequirePackage[mathscr]{eucal} +\RequirePackage{amssymb} +\PassOptionsToPackage{retainmissing}{MnSymbol} +\AtBeginDocument{\@ifpackageloaded{MnSymbol}% + {\expandafter\let\csname ver@amssymb.sty\endcsname\relax + \let\complement\@undefined + \RequirePackage{amssymb}}{}} +\RequirePackage{soul} +\sodef\textsolittle{}{.12em}{.5em\@plus.08em\@minus.06em}% + {.4em\@plus.275em\@minus.183em} +\RequirePackage{color} %kept for backward compatibility +\AtBeginDocument{ + \@ifpackageloaded{xcolor}{ + }{ + \RequirePackage{xcolor} + } + \definecolor{darkgray}{rgb}{0.31,0.31,0.33} + \definecolor[named]{lipicsGray}{rgb}{0.31,0.31,0.33} + \definecolor[named]{lipicsBulletGray}{rgb}{0.60,0.60,0.61} + \definecolor[named]{lipicsLineGray}{rgb}{0.51,0.50,0.52} + \definecolor[named]{lipicsLightGray}{rgb}{0.85,0.85,0.86} + \definecolor[named]{lipicsYellow}{rgb}{0.99,0.78,0.07} +} +\RequirePackage{babel} +\RequirePackage[tbtags,fleqn]{amsmath} +\AtBeginDocument{ + \@ifpackageloaded{enumitem}{\ClassWarning{Package 'enumitem' incompatible}{Don't use package 'enumitem'; Package enumerate preloaded!}}{} + \@ifpackageloaded{paralist}{\ClassWarning{Package 'paralist' incompatible}{Don't use package 'paralist'; Package enumerate preloaded!}}{} +} +\RequirePackage{enumerate} +\def\@enum@{\list{\textcolor{lipicsGray}{\sffamily\bfseries\upshape\mathversion{bold}\csname label\@enumctr\endcsname}}% + {\advance\partopsep\topsep + \topsep\z@\@plus\p@ + \usecounter{\@enumctr}\def\makelabel##1{\hss\llap{##1}}}} +\def\romanenumerate{\enumerate[(i)]} +\let\endromanenumerate\endenumerate +\def\alphaenumerate{\enumerate[(a)]} +\let\endalphaenumerate\endenumerate +\def\bracketenumerate{\enumerate[(1)]} +\let\endbracketenumerate\endenumerate +\RequirePackage{graphicx} +\RequirePackage{array} +\let\@classzold\@classz +\def\@classz{% + \expandafter\ifx\d@llarbegin\begingroup + \toks \count@ = + \expandafter{\expandafter\small\the\toks\count@}% + \fi + \@classzold} +\RequirePackage{multirow} +\RequirePackage{tabularx} +\RequirePackage[online]{threeparttable} +\def\TPTtagStyle#1{#1)} +\def\tablenotes{\small\TPT@defaults + \@ifnextchar[\TPT@setuptnotes\TPTdoTablenotes} % ] +\RequirePackage{listings} +\lstset{basicstyle=\small\ttfamily,% + backgroundcolor=\color{lipicsLightGray},% + frame=single,framerule=0pt,xleftmargin=\fboxsep,xrightmargin=\fboxsep} +\RequirePackage[left,mathlines]{lineno} +\linenumbers +\renewcommand\linenumberfont{\normalfont\tiny\sffamily} +%%%% patch to cope with amsmath +%%%% http://phaseportrait.blogspot.de/2007/08/lineno-and-amsmath-compatibility.html +\newcommand*\patchAmsMathEnvironmentForLineno[1]{% + \expandafter\let\csname old#1\expandafter\endcsname\csname #1\endcsname + \expandafter\let\csname oldend#1\expandafter\endcsname\csname end#1\endcsname + \renewenvironment{#1}% + {\linenomath\csname old#1\endcsname}% + {\csname oldend#1\endcsname\endlinenomath}}% +\newcommand*\patchBothAmsMathEnvironmentsForLineno[1]{% + \patchAmsMathEnvironmentForLineno{#1}% + \patchAmsMathEnvironmentForLineno{#1*}}% +\AtBeginDocument{% + \patchBothAmsMathEnvironmentsForLineno{equation}% + \patchBothAmsMathEnvironmentsForLineno{align}% + \patchBothAmsMathEnvironmentsForLineno{flalign}% + \patchBothAmsMathEnvironmentsForLineno{alignat}% + \patchBothAmsMathEnvironmentsForLineno{gather}% + \patchBothAmsMathEnvironmentsForLineno{multline}} +\ifx\pdfa\relax% + \RequirePackage[pdfa,unicode]{hyperref}% +\else% + \RequirePackage[unicode]{hyperref}% +\fi% +\let\usehyperxmp\@empty% +\ifx\pdfa\relax% + \IfFileExists{hyperxmp.sty}{% + \RequirePackage{hyperxmp}% + \@ifpackagelater{hyperxmp}{2019/04/05}{% + \let\usehyperxmp\relax% + }{% + \ClassWarning{Package hyperxmp outdated}{You are using an outdated version of the package hyperxmp. Please update!}% + }}{}% +\fi% +\IfFileExists{totpages.sty}{ + \RequirePackage{totpages} +}{ + \ClassWarning{Package totpages not installed}{Please install package totpages} + \newcounter{TotPages} + \setcounter{TotPages}{99} +} +\let\C\relax% +\let\G\relax% +\let\F\relax% +\let\U\relax% +\pdfstringdefDisableCommands{% + \let\thanks\@gobble% + \let\footnote\@gobble% + \def\footnotemark{}% + \def\cs#1{\textbackslash #1}% + \let\normalfont\@empty% + \let\scshape\@empty% + \def\and{and }% + \def\,{ }% + \def\textrightarrow{ -> }% + \let\mathsf\@empty% +}% +\hypersetup{ + breaklinks=true, + pdfencoding=unicode, + bookmarksnumbered, + pdfborder={0 0 0}, + pdfauthor={ } +}% +\AtBeginDocument{ +\ifx\usehyperxmp\relax +\hypersetup{ +pdftitle={\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi}, +pdfauthor={\ifx\authoranonymous\relax Anonymous author(s) \else \@authorsforpdf \fi}, +pdfkeywords={\@keywords}, +pdfproducer={LaTeX with lipics-v2021.cls}, +pdfsubject={LIPIcs, Vol.\@SeriesVolume, \@EventShortTitle}, +pdfcopyright = { Copyright (C) \ifx\authoranonymous\relax Anonymous author(s) \else \@copyrightholder; \fi licensed under Creative Commons License CC-BY 4.0}, +pdflang={en}, +pdfmetalang={en}, +pdfpublisher={Schloss Dagstuhl -- Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany}, +pdflicenseurl={https://creativecommons.org/licenses/by/4.0/}, +pdfpubtype={LIPIcs}, +pdfvolumenum={\@SeriesVolume}, +pdfpagerange={\@ArticleNo:\thepage-\@ArticleNo:\theTotPages}, +pdfdoi={\@lipicsdoi}, +pdfapart=3, +pdfaconformance=B +} +\else% +\hypersetup{ +pdftitle={\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi}, +pdfauthor={\ifx\authoranonymous\relax Anonymous author(s) \else \@authorsforpdf \fi}, +pdfkeywords={\@keywords}, +pdfcreator={LaTeX with lipics-v2021.cls}, +pdfsubject={LIPIcs, Vol.\@SeriesVolume, \@EventShortTitle; Copyright (C) \ifx\authoranonymous\relax Anonymous author(s) \else \@copyrightholder; \fi licensed under Creative Commons License CC-BY 4.0} +}% +\fi % +} +\ifx\usehyperxmp\relax +\pdfobjcompresslevel=0 +\pdfinclusioncopyfonts=1 +\IfFileExists{colorprofiles.tex}{ +\RequirePackage{colorprofiles}% +\IfFileExists{sRGB.icc}{ +\immediate\pdfobj stream attr{/N 3} file{sRGB.icc} +\pdfcatalog{% +/OutputIntents [ +<< +/Type /OutputIntent +/S /GTS_PDFA1 +/DestOutputProfile \the\pdflastobj\space 0 R +/OutputConditionIdentifier (sRGB) +/Info (sRGB) +>> +] +}}{} +}{\ClassWarning{Package colorprofiles not installed}{Please install package colorprofiles}} +\fi +\RequirePackage[labelsep=space,singlelinecheck=false,% + font={up,small},labelfont={sf,bf},% + listof=false]{caption}%"listof" instead of "list" for backward compatibility +\@ifpackagelater{hyperref}{2009/12/09} + {\captionsetup{compatibility=false}}%cf. http://groups.google.de/group/comp.text.tex/browse_thread/thread/db9310eb540fbbd8/42e30f3b7b3aa17a?lnk=raot + {} +\DeclareCaptionLabelFormat{boxed}{% + \kern0.05em{\color[rgb]{0.99,0.78,0.07}\rule{0.73em}{0.73em}}% + \hspace*{0.67em}\bothIfFirst{#1}{~}#2} +\captionsetup{labelformat=boxed} +\captionsetup[table]{position=top} +\RequirePackage[figuresright]{rotating} +\caption@AtBeginDocument{\@ifpackageloaded{subfig}{\ClassError{lipics}{% + Do not load the subfig package}{The more recent subcaption package is already loaded}}{}} +\RequirePackage{subcaption} +\def\titlerunning#1{\gdef\@titlerunning{{\let\footnote\@gobble\markboth{#1}{#1}}}} +\def\authorrunning#1{% + \gdef\@authorrunning{\markright{\ifx\authoranonymous\relax\textcolor{red}{Anonymous author(s)} \else\if!#1!\textcolor{red}{Author: Please fill in the \string\authorrunning\space macro}\else#1\fi\fi}}} +\titlerunning{\@title \if!\@subtitle!\else\subtitleseperator \@subtitle\fi} +\authorrunning{\textcolor{red}{Author: Please use the \string\authorrunning\space macro}} +\def\EventLongTitle#1{\gdef\@EventLongTitle{#1}} +\EventLongTitle{} +\def\EventShortTitle#1{\gdef\@EventShortTitle{#1}} +\EventShortTitle{} +\def\EventEditors#1{\gdef\@EventEditors{#1}} +\EventEditors{} +\def\EventNoEds#1{\gdef\@EventNoEds{#1}\xdef\@Eds{Editor\ifnum#1>1s\fi}} +\EventNoEds{1} +\def\EventLogo#1{\gdef\@EventLogo{#1}} +\EventLogo{} +\def\EventAcronym#1{\gdef\@EventAcronym{#1}} +\EventAcronym{} +\def\EventYear#1{\gdef\@EventYear{#1}} +\EventYear{} +\def\EventDate#1{\gdef\@EventDate{#1}} +\EventDate{} +\def\EventLocation#1{\gdef\@EventLocation{#1}} +\EventLocation{} +\def\SeriesVolume#1{\gdef\@SeriesVolume{#1}} +\SeriesVolume{} +\def\ArticleNo#1{\gdef\@ArticleNo{#1}} +\ArticleNo{} +\def\DOIPrefix#1{\gdef\@DOIPrefix{#1}} +\DOIPrefix{10.4230/LIPIcs} +\def\@lipicsdoi{\@DOIPrefix.\@EventAcronym.\@EventYear.\@ArticleNo} +\def\and{\newline} +\let\orig@author\@author +\let\@authorsfortoc\@empty +\let\@authorsforpdf\@empty +\newcount\c@author +\newcounter{currentauthor} +\def\authorcolumnsMin{6} +\def\@authornum{0} +\def\author#1#2#3#4#5{% + \ifx\@author\orig@author\let\@author\@empty\fi + \g@addto@macro\@author{% + \noexpandarg\StrBehind{#2}{\and \url}[\homepageTemp]\IfSubStr{#2}{\and \url}{\StrBefore{#2}{\and \url}[\affiliation]}{\def\affiliation{#2}}% + \expandarg\exploregroups\StrRemoveBraces{\homepageTemp}[\homepage]% + \ifx\authorcolumns\relax + \ifnum\c@author>\authorcolumnsMin + \stepcounter{currentauthor} + \ifodd\value{currentauthor} + \begin{minipage}[t]{\textwidth} + \begin{minipage}[t]{0.49\textwidth} + \else + \hfill \begin{minipage}[t]{0.49\textwidth} + \fi + \else + \ClassWarning{Option 'authorcolumns' only applicable for > 6 authors}{Option 'authorcolumns' only applicable for >6 authors!} + \addvspace{0.5\baselineskip} + \fi + \else + \addvspace{0.5\baselineskip} + \fi + {\Large\bfseries + \if!#1! + \textcolor{red}{Author: Please enter author name}% + \else + \ifx\authoranonymous\relax + \textcolor{red}{Anonymous author} + \else + #1\,% + \ifx\compactauthor\relax\if!#3!\else{\,\href{mailto:#3}{\mailsymbol}}\fi% + \ifx\homepage\@empty\else{\,\href{\homepage}{\homesymbol}}\fi\fi% + \if!#4!\else{\,\href{#4}{\orcidsymbol}}\fi% + \if!#5!\else + \ifx\@funding\@empty + \expandafter\g@addto@macro\expandafter\@funding{\textit{\expandafter{\let\footnote\@gobble #1}}:\space{#5}} + \else + \expandafter\g@addto@macro\expandafter\@funding{\\\textit{\expandafter{\let\footnote\@gobble #1}}:\space{#5}} + \fi + \fi + \fi + \fi + } + {\small + \if!#2!\textcolor{red}{Author: Please enter affiliation as second parameter of the author macro}\else{\\* \ifx\authoranonymous\relax\textcolor{red}{Anonymous affiliation}\else\ifx\compactauthor\relax \affiliation \else#2\fi\fi}\fi + \ifx\compactauthor\relax\else\if!#3!\else{\ifx\authoranonymous\relax\else\\*\href{mailto:#3}{#3}\fi}\fi\fi + }\par + \ifx\authorcolumns\relax + \ifnum\c@author>\authorcolumnsMin + \end{minipage} + \ifnum\c@author=\value{currentauthor} + \end{minipage} + \else + \ifodd\value{currentauthor} + \else + \end{minipage}% + \medskip + \fi + \fi + \fi + \fi}% + \global\advance\c@author\@ne + \protected@write\@auxout{}{\string\gdef\string\@authornum{\the\c@author}} + \ifnum\c@author=\@ne + \gdef\@authorsfortoc{#1}% + \gdef\@authorsforpdf{#1} + \else + \expandafter\g@addto@macro\expandafter\@authorsforpdf\expandafter{, #1} + \expandafter\g@addto@macro\expandafter\@authorsfortoc\expandafter{\expandafter\csname\the\c@author authand\endcsname#1}% + \@namedef{\the\c@author authand}{,\space}% + \AtBeginDocument{% + \expandafter\ifnum\@authornum=2 + \@namedef{2authand}{\space and\space}% + \else + \@namedef{\@authornum authand}{,\space and\space}% + \fi} + \fi} +\newcommand*\affil[2][]{% + \ClassError{lipics} + {\string\affil\space deprecated: Please enter affiliation as second parameter of the author macro} + {Since 2017, \string\affil\space is obsolete in lipics.}} +\newcommand*\Copyright[1]{% + \def\@copyrightholder{#1} + \def\@Copyright{% + \setbox\@tempboxa\hbox{\IfFileExists{cc-by.pdf}{\includegraphics[height=14\p@,clip]{cc-by}}{\includegraphics[height=14\p@, width=40pt]{example-image-plain}}}% + \@rightskip\@flushglue \rightskip\@rightskip + \hangindent\dimexpr\wd\@tempboxa+0.5em\relax + \href{https://creativecommons.org/licenses/by/4.0/}% + {\smash{\lower\baselineskip\hbox{\unhcopy\@tempboxa}}}\enskip + \textcopyright\ % + \ifx!#1!\textcolor{red}{Author: Please fill in the \string\Copyright\space macro}\else\ifx\authoranonymous\relax\textcolor{red}{Anonymous author(s)}\else#1\fi\fi + ;\\% + licensed under Creative Commons License CC-BY 4.0\ifx!#1!\\\null\fi\par}} +\Copyright{\textcolor{red}{Author: Please provide a copyright holder}} +\let\@copyrightholder\@empty +\def\hideLIPIcs{\let\@hideLIPIcs\relax} +\usepackage{xstring} +\def\keywords#1{\def\@keywords{#1}} +\let\@keywords\@empty +\def\keywordsHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Keywords and phrases\enskip}} +\RequirePackage{comment} +\excludecomment{CCSXML} +% inspired by https://tex.stackexchange.com/questions/12810/how-do-i-split-a-string +\global\newcommand\ccsdesc[2][100]{\@ccsdesc#1~#2~~\relax} +\let\orig@ccsdesc\@ccsdesc +\let\@ccsdesc\@empty +\let\@ccsdescString\@empty +\gdef\@ccsdesc#1~#2~#3~{ + \ifx\@ccsdesc\orig@ccsdesc\let\@ccsdesc\@empty\fi + \ifx!#3! + \ifx\@ccsdescString\@empty + \g@addto@macro\@ccsdescString{{#2}} + \else + \g@addto@macro\@ccsdescString{; {#2}} + \fi + \else + \ifx\@ccsdescString\@empty + \g@addto@macro\@ccsdescString{{#2} $\rightarrow$ {#3}} + \else + \g@addto@macro\@ccsdescString{; {#2} $\rightarrow$ {#3}} + \fi + \fi +\ccsdescEnd +} +\def\ccsdescEnd#1\relax{} +\def\subjclass#1{ + \ClassError{lipics} + {\string\subjclass\space deprecated: Please enter subject classification in 1 or more ccsdesc macros} + {Since 2019, \string\subjclass\space is obsolete in lipics.}} +\let\@subjclass\@empty +\def\subjclassHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + 2012 ACM Subject Classification\enskip}} +\def\doiHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Digital Object Identifier\enskip}} +\def\category#1{\def\@category{#1}} +\let\@category\@empty +\def\categoryHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Category\enskip}} +\def\relatedversion#1{\def\@relatedversion{#1}} +\let\@relatedversion\@empty +\define@key{relatedversiondetails}{linktext}{\def\relatedversiondetails@linktext{#1}} +\define@key{relatedversiondetails}{cite}{\def\relatedversiondetails@cite{#1}} +\newcommand*\addtorelatedversionmacro[2]{% + \ifx\@relatedversion\@empty% + \g@addto@macro\@relatedversion{#1}% + \else% + \g@addto@macro\@relatedversion{\\#1}% + \fi% +}% +\newcommand{\relatedversiondetails}[3][]{% + \begingroup% + \let\relatedversiondetails@linktext\@empty + \let\relatedversiondetails@cite\@empty + \setkeys{relatedversiondetails}{#1}% + \ifx\relatedversiondetails@linktext\@empty% + \protected@edef\tmp{\textit{#2}:\space{\url{#3}}}% + \else% + \protected@edef\tmp{\textit{#2}:\space{\href{#3}{\texttt{\relatedversiondetails@linktext}}}}% + \fi% + \ifx\relatedversiondetails@cite\@empty% + \else% + \protected@edef\tmp{\tmp\nobreakspace\cite{\relatedversiondetails@cite}}% + \fi% + \expandafter\addtorelatedversionmacro\expandafter{\tmp}{#1}% + \endgroup% +}% +\def\relatedversionHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Related Version\enskip}} +\def\supplement#1{\def\@supplement{#1}} +\let\@supplement\@empty +\define@key{supplementdetails}{linktext}{\def\supplementdetails@linktext{#1}} +\define@key{supplementdetails}{cite}{\def\supplementdetails@cite{#1}} +\define@key{supplementdetails}{subcategory}{\def\supplementdetails@subcategory{#1}} +\define@key{supplementdetails}{swhlinktext}{\def\supplementdetails@swhlinktext{#1}} +\let\supplementdetails@swhlinktext\@empty +\define@key{supplementdetails}{swhid}{ + \ifx\supplementdetails@swhlinktext\@empty% + \StrBefore{#1}{;}[\supplementdetails@swhlinktext]% + \fi% + \def\supplementdetails@swhid{#1}% +} + +\define@key{supplementdetails}{swhdelimiter}{\def\supplementdetails@swhdelimiter{#1}} +\def\supplementdetails@swhdelimiter{\\ \hspace*{1.2em}} +\newcommand*\addtosupplementmacro[2]{% + \ifx\@supplement\@empty% + \g@addto@macro\@supplement{#1}% + \else% + \g@addto@macro\@supplement{\\#1}% + \fi% +}% +\newcommand{\supplementdetails}[3][]{% + \begingroup% + \let\supplementdetails@linktext\@empty + \let\supplementdetails@cite\@empty + \let\supplementdetails@subcategory\@empty + \let\supplementdetails@swhid\@empty + \setkeys{supplementdetails}{#1}% + \ifx\supplementdetails@subcategory\@empty% + \protected@edef\tmp{\textit{#2}} + \else + \protected@edef\tmp{\textit{#2\,\,(\supplementdetails@subcategory)}}% + \fi + \ifx\supplementdetails@linktext\@empty% + \protected@edef\tmp{\tmp:\space{\url{#3}}}% + \else% + \protected@edef\tmp{\tmp:\space{\href{#3}{\texttt{\supplementdetails@linktext}}}}% + \fi% + \ifx\supplementdetails@cite\@empty% + \else% + \protected@edef\tmp{\tmp\nobreakspace\cite{\supplementdetails@cite}}% + \fi + \ifx\supplementdetails@swhid\@empty% + \else% + \ifx\supplementdetails@swhlinktext\@empty% + \protected@edef\tmp{\tmp \supplementdetails@swhdelimiter{} archived at % + \href{https://archive.softwareheritage.org/\supplementdetails@swhid}{\nolinkurl{\supplementdetails@swhid}}}% + \else% + \protected@edef\tmp{\tmp \supplementdetails@swhdelimiter{} archived at % + \href{https://archive.softwareheritage.org/\supplementdetails@swhid}{\nolinkurl{\supplementdetails@swhlinktext}}}% + \fi% + \fi% + \expandafter\addtosupplementmacro\expandafter{\tmp}{#1}% + \endgroup% +}% +\def\supplementHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Supplementary Material\enskip}} +\newcommand\flag[2][0.9cm]{% + \leavevmode\marginpar{% + \raisebox{\dimexpr-\totalheight+\ht\strutbox\relax}% + [\dimexpr\ht\strutbox+3mm][\dp\strutbox]{\expandafter\includegraphics[width=#1]{#2}}% +}} +\def\funding#1{\def\@funding{#1}} +\let\@funding\@empty +\def\fundingHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Funding\enskip}} +\def\acknowledgements#1{\def\@acknowledgements{#1}} +\let\@acknowledgements\@empty +\def\acknowledgementsHeading{% + \textcolor{lipicsGray}{\fontsize{9}{12}\sffamily\bfseries + Acknowledgements\enskip}} +\RequirePackage{amsthm} +\ifx\usethmrestate\relax + \RequirePackage{thm-restate} +\fi +\thm@headfont{% + \textcolor{lipicsGray}{$\blacktriangleright$}\nobreakspace\sffamily\bfseries} +\def\th@remark{% + \thm@headfont{% + \textcolor{lipicsGray}{$\blacktriangleright$}\nobreakspace\sffamily}% + \normalfont % body font + \thm@preskip\topsep \divide\thm@preskip\tw@ + \thm@postskip\thm@preskip +} +\def\@endtheorem{\endtrivlist}%\@endpefalse +\renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\blacktriangleleft}}} +\renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item[\hskip\labelsep + \color{lipicsGray}\sffamily\bfseries + #1\@addpunct{.}]\ignorespaces +}{% + \popQED\endtrivlist%\@endpefalse +} +\newcommand{\claimqedhere}{\renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\vartriangleleft}}}% +\qedhere% +\renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\blacktriangleleft}}}} +\newenvironment{claimproof}[1][\proofname]{ + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item[\hskip\labelsep + \color{lipicsGray}\sffamily + #1\@addpunct{.}]\ignorespaces +}{% + \renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\vartriangleleft}}} + \popQED\endtrivlist%\@endpefalse + \renewcommand\qedsymbol{\textcolor{lipicsGray}{\ensuremath{\blacktriangleleft}}} +} +% inspired by qed of amsthm class +\DeclareRobustCommand{\lipicsEnd}{% + \leavevmode\unskip\penalty9999 \hbox{}\nobreak\hfill + \quad\hbox{$\lrcorner$}% +} +\AtBeginDocument{ + \@ifpackageloaded{algorithm2e}{ + \@ifpackagelater{algorithm2e}{2009/11/17}{ + \renewcommand{\algorithmcfname}{\sffamily\bfseries{}Algorithm}% + \renewcommand{\@algocf@procname}{\sffamily\bfseries{}Procedure}% + \SetAlgoCaptionSeparator{~} + \SetAlCapHSkip{0pt} + \renewcommand{\algocf@captiontext}[2]{% + \kern0.05em{\color{lipicsYellow}\rule{0.73em}{0.73em}}% + \hspace*{0.67em}\small #1\algocf@capseparator\nobreakspace#2} + \renewcommand{\algocf@makecaption}[2]{% + \parbox[t]{\textwidth}{\algocf@captiontext{#1}{#2}}% + }% + \renewcommand{\algocf@captionproctext}[2]{% + {% + \kern0.05em{\color{lipicsYellow}\rule{0.73em}{0.73em}}% + \hspace*{0.67em}\small% +\ProcSty{\ProcFnt\algocf@procname\ifthenelse{\boolean{algocf@procnumbered}}{\nobreakspace\thealgocf\algocf@typo\algocf@capseparator}{\relax}}% + \nobreakspace\ProcNameSty{\ProcNameFnt\algocf@captname #2@}% Name of the procedure in ProcName Style. + \ifthenelse{\equal{\algocf@captparam #2@}{\arg@e}}{}{% if no argument, write nothing + \ProcNameSty{\ProcNameFnt(}\ProcArgSty{\ProcArgFnt\algocf@captparam #2@}\ProcNameSty{\ProcNameFnt)}%else put arguments in ProcArgSty: + }% endif + \algocf@captother #2@% + }% +}% + \renewcommand{\@algocf@capt@boxed}{above} + \renewcommand{\@algocf@capt@ruled}{above} + \setlength\algotitleheightrule{0pt} + }{\ClassWarning{% + Package algorithm2e outdated}{You are using an outdated version of the package algorithm2e. Please update!}} + }{} + \@ifpackageloaded{algorithm}{ + \captionsetup[algorithm]{name=Algorithm, labelformat=boxed, position=top} + \newcommand\fs@ruled@notop{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled + \def\@fs@pre{}% + \def\@fs@post{\kern2pt\hrule\relax}% + \def\@fs@mid{\kern2pt\hrule\kern2pt}% + \let\@fs@iftopcapt\iftrue} + \@ifundefined{fst@algorithm}{}{ + \renewcommand\fst@algorithm{\fs@ruled@notop} + } + }{} + \ifx\usecleveref\relax\else + \@ifpackageloaded{cleveref}{\ClassWarning{Use document option 'cleveref' instead}{Use document option 'cleveref' instead directly loading package 'cleveref'}}{} + \fi + \ifx\usethmrestate\relax\else + \@ifpackageloaded{thm-restate}{\ClassWarning{Use document option 'thm-restate' instead}{Use document option 'thm-restate' instead directly loading package 'thm-restate'}}{} + \fi + \ifx\useautoref\relax + \@ifundefined{algorithmautorefname}{\newcommand{\algorithmautorefname}{Algorithm}}{\renewcommand{\algorithmautorefname}{Algorithm}}% + \fi +} + +\ifx\usecleveref\relax + \RequirePackage[capitalise, noabbrev]{cleveref} + \crefname{algocf}{Algorithm}{Algorithms} + \Crefname{algocf}{Algorithm}{Algorithms} + \newcommand{\crefrangeconjunction}{--} + \newcommand{\creflastconjunction}{, and\nobreakspace} +\fi +\ifx\useautoref\relax + \RequirePackage{aliascnt} +\fi +\newtheoremstyle{claimstyle}{\topsep}{\topsep}{}{0pt}{\sffamily}{. }{5pt plus 1pt minus 1pt}% + {$\vartriangleright$ \thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}} +\theoremstyle{plain} +\newtheorem{theorem}{Theorem} +\ifx\numberwithinsect\relax + \numberwithin{theorem}{section} +\fi +\ifx\useautoref\relax + \addto\extrasenglish{% + \def\chapterautorefname{Chapter}% + \def\sectionautorefname{Section}% + \def\subsectionautorefname{Subsection}% + \def\subsubsectionautorefname{Subsubsection}% + \def\paragraphautorefname{Paragraph}% + \def\subparagraphautorefname{Subparagraph}% + } + \addto\extrasUKenglish{% + \def\chapterautorefname{Chapter}% + \def\sectionautorefname{Section}% + \def\subsectionautorefname{Subsection}% + \def\subsubsectionautorefname{Subsubsection}% + \def\paragraphautorefname{Paragraph}% + \def\subparagraphautorefname{Subparagraph}% + } + \addto\extrasUSenglish{% + \def\chapterautorefname{Chapter}% + \def\sectionautorefname{Section}% + \def\subsectionautorefname{Subsection}% + \def\subsubsectionautorefname{Subsubsection}% + \def\paragraphautorefname{Paragraph}% + \def\subparagraphautorefname{Subparagraph}% + } + \ifx\usethmrestate\relax + \newtheorem{lemma}[theorem]{Lemma} + \newtheorem{corollary}[theorem]{Corollary} + \newtheorem{proposition}[theorem]{Proposition} + \newtheorem{exercise}[theorem]{Exercise} + \newtheorem{definition}[theorem]{Definition} + \newtheorem{conjecture}[theorem]{Conjecture} + \newtheorem{observation}[theorem]{Observation} + \theoremstyle{definition} + \newtheorem{example}[theorem]{Example} + \theoremstyle{remark} + \newtheorem{note}[theorem]{Note} + \newtheorem*{note*}{Note} + \newtheorem{remark}[theorem]{Remark} + \newtheorem*{remark*}{Remark} + \theoremstyle{claimstyle} + \newtheorem{claim}[theorem]{Claim} + \newtheorem*{claim*}{Claim} + \else + \newaliascnt{lemma}{theorem} + \newtheorem{lemma}[lemma]{Lemma} + \aliascntresetthe{lemma} + \newcommand{\lemmaautorefname}{Lemma} + \newaliascnt{corollary}{theorem} + \newtheorem{corollary}[corollary]{Corollary} + \aliascntresetthe{corollary} + \newcommand{\corollaryautorefname}{Corollary} + \newaliascnt{proposition}{theorem} + \newtheorem{proposition}[proposition]{Proposition} + \aliascntresetthe{proposition} + \newcommand{\propositionautorefname}{Proposition} + \newaliascnt{exercise}{theorem} + \newtheorem{exercise}[exercise]{Exercise} + \aliascntresetthe{exercise} + \newcommand{\exerciseautorefname}{Exercise} + \newaliascnt{definition}{theorem} + \newtheorem{definition}[definition]{Definition} + \aliascntresetthe{definition} + \newcommand{\definitionautorefname}{Definition} + \newaliascnt{conjecture}{theorem} + \newtheorem{conjecture}[conjecture]{Conjecture} + \aliascntresetthe{conjecture} + \newcommand{\conjectureautorefname}{Conjecture} + \newaliascnt{observation}{theorem} + \newtheorem{observation}[observation]{Observation} + \aliascntresetthe{observation} + \newcommand{\observationautorefname}{Observation} + \theoremstyle{definition} + \newaliascnt{example}{theorem} + \newtheorem{example}[example]{Example} + \aliascntresetthe{example} + \newcommand{\exampleautorefname}{Example} + \theoremstyle{remark} + \newaliascnt{note}{theorem} + \newtheorem{note}[note]{Note} + \aliascntresetthe{note} + \newcommand{\noteautorefname}{Note} + \newtheorem*{note*}{Note} + \newaliascnt{remark}{theorem} + \newtheorem{remark}[remark]{Remark} + \aliascntresetthe{remark} + \newcommand{\remarkautorefname}{Remark} + \newtheorem*{remark*}{Remark} + \theoremstyle{claimstyle} + \newaliascnt{claim}{theorem} + \newtheorem{claim}[claim]{Claim} + \aliascntresetthe{claim} + \newcommand{\claimautorefname}{Claim} + \newtheorem*{claim*}{Claim} + \ifx\numberwithinsect\relax + \numberwithin{theorem}{section} + \numberwithin{lemma}{section} + \numberwithin{corollary}{section} + \numberwithin{proposition}{section} + \numberwithin{exercise}{section} + \numberwithin{definition}{section} + \numberwithin{conjecture}{section} + \numberwithin{observation}{section} + \numberwithin{example}{section} + \numberwithin{note}{section} + \numberwithin{remark}{section} + \numberwithin{claim}{section} + \fi + \fi +\else + \newtheorem{lemma}[theorem]{Lemma} + \newtheorem{corollary}[theorem]{Corollary} + \newtheorem{proposition}[theorem]{Proposition} + \newtheorem{exercise}[theorem]{Exercise} + \newtheorem{definition}[theorem]{Definition} + \newtheorem{conjecture}[theorem]{Conjecture} + \newtheorem{observation}[theorem]{Observation} + \theoremstyle{definition} + \newtheorem{example}[theorem]{Example} + \theoremstyle{remark} + \newtheorem{note}[theorem]{Note} + \newtheorem*{note*}{Note} + \newtheorem{remark}[theorem]{Remark} + \newtheorem*{remark*}{Remark} + \theoremstyle{claimstyle} + \newtheorem{claim}[theorem]{Claim} + \newtheorem*{claim*}{Claim} +\fi +\theoremstyle{plain} +\endinput +%% +%% End of file `lipics-v2021.cls'. diff --git a/inst/rmarkdown/templates/lipics/skeleton/orcid.pdf b/inst/rmarkdown/templates/lipics/skeleton/orcid.pdf index 20200badd8599df6526c5389a8e9f3d422fc859b..c31b0393efd556887c0cd1a595de7be764a6a168 100644 GIT binary patch delta 69379 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 C_Tb_G delta 1565 zcmah}du&rx80W0*x;CvaKx?=9VB?br%9w!tQ0$gsEV?Ka)odRx{J zjT`EC$U~&MV{kwaC4dRIxL6Pw0}_RRgqMl}1BM9EC`t?po59}EMZ!WnIe(n{o!|GJ z-}kt`8y&j#Hn4g;O_3zB5v7nL3L#=?nka#YsDMb|DVmrHpMwm|K}4e}Q8ddzf5`iS z8P9ZsQATs4A_vS2w3**-emKB#Hb|-q2F=F)14(k!V4FbF_u>#Gu!C$2IoOw><1@h{ z0L6nK&nj>N?{qp{t^%8j;n+d}P2r{poYRRA&9j9rv5F{DX9nRKQ$XV7FC+BG`M@=8uKlRaz$$RLNTe_i`Ud~sTvG07axA_|mHc#S42UZ}BU z7B)uROQgT?}c_%6+i`0(`6O*F;)_wdwZ^JX0?(IC^F-rPRTv~~Wr z%hR3nu5Rq<%33)mC;h`whGl!dYS_GP=>eWt_0M|zeV*fXXWL7$(<8di{+3yiZxPO1 zIo0<31;gIvzIQB!L*LmC-2}UP-TMbKhj|*!5!P@$s9-6t&(kx=%ip8_C@fSa$U5p}Nnz=I^eYJ#x$6 z&^CJ5$Jf)YeYv~6g*Q~q5JS-(ukTWzW7omVPkHl4PZrabqx;-H=B)al{f{>T7pYGy zTaADHFn4&~@q=q>8W$Zou|nFK?fvQ1?e@Upf>TR8ba7`bd(wF2-JR!KX9k)l-@di| zv!&m@(QuZ2CSGzTw#Xme^sD`H&+?qDdEK7#9b;Q7ZybBP*R}ENVmX_;e0bZn2dEZNfyv3KY*w zfE0;1f@BCJSP^YcZiYAR`=DjzPfE23ZL! zwZZ6pL-ixHDg@6KK+lL&h_brmAeKn=azr%Z9n--RIKKqwbz;FnDTuoY0Mv_>a$Q|0 zrhbgV-FA?UADawD5Gv8Tod>wV0dnOrDe9|nE1?D9yJIsr-vD%ky;{9c9~P7ULeMWM zeru7Wcmr~szgk%k4&NzPL2!r=S@@Zdcxhp8;@CX$$7 z2P;8N!0)5I6iHcSo}#SC#>iHl3$RuhabC*Lk}~qK_}nD$R${FK=z%68HQ+6IfYT+b zHnA4ZpOoyXK?J#$SdAPMlha|dB4j0n3PjqG%}$f}f(Wwl>O5dHM?!&UEZJvgwVbT| zNmRdYeszrmvkJpcdz diff --git a/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd index ae0b36431..5d6134a38 100644 --- a/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd +++ b/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd @@ -1,14 +1,17 @@ --- -title: "Template for Preparing Your Manuscript Submission to LIPIcs Using RMarkdown" +title: "Template for Preparing Your Manuscript Submission to LIPIcs Using R Markdown" +subtitle: "An Optional Subtitle" titlerunning: "LIPIcs rticles" # optional, please use if title is longer than one line format: "a4paper" # for A4 paper format use option "a4paper", for US-letter use option "letterpaper" -hyphenation: "UKenglish" # for british hyphenation rules use option "UKenglish", for american hyphenation rules use option "USenglish" -authorcolumns: false # activate a two columnstyle for the authors; only available in case of more than 6 authors +hyphenation: "UKenglish" # for British hyphenation rules use option "UKenglish", for American hyphenation rules use option "USenglish" +authorcolumns: false # activate a two-column style for the authors; only available with more than 6 authors +oldauthorstyle: false # use the less compact pre-v2021 author presentation +pdfa: false # produce PDF/A with pdfLaTeX; the tagged class's PDF/A path is not XeLaTeX-compatible numberwithinsect: false # for section-numbered lemmas etc. cleveref: true # for enabling cleveref support autoref: true # for enabling autoref support -anonymous: false # for anonymousing the authors (e.g. for double-blind review) -thm-restate: false # opt in only when needed; incompatible with LaTeX 2026 +anonymous: false # for anonymizing the authors (e.g. for double-blind review) +thm-restate: false # opt in only when needed; rticles applies the current LaTeX 2026 compatibility workaround author: # mandatory, please use full name; only 1 author per \author macro; first two parameters are mandatory, other parameters can be empty. Please provide at least the name of the affiliation and the country. The full address is optional - name: John Q. Public @@ -28,9 +31,12 @@ abstract: | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse potenti. bibliography: bibliography -authorrunning: "J. Q. Public and J. R. Public" # mandatory. First: Use abbreviated first/middle names. Second (only in severe cases): Use first author plus 'et al.' -# A "thin space" character, ' ' or  , is used between the two first names. -copyright: "John Q. Public and Joan R. Public" # mandatory, please use full first names. LIPIcs license is "CC-BY"; http://creativecommons.org/licenses/by/3.0/ +# With citation_package: default, list keys used only by structured `cite` fields here so citeproc includes them. +nocite: | + @DBLP:books/mk/GrayR93 +authorrunning: 'J.\,Q. Public and J.\,R. Public' # mandatory. First: Use abbreviated first/middle names. Second (only in severe cases): Use first author plus 'et al.' +# The LaTeX thin-space command `\,` is used between abbreviated names. +copyright: "John Q. Public and Joan R. Public" # mandatory, please use full first names. Published LIPIcs articles use CC BY 4.0: https://creativecommons.org/licenses/by/4.0/ ccdesc: # Please choose ACM 2012 classifications from https://dl.acm.org/ccs/ccs_flat.cfm concept_significance: "100" @@ -39,12 +45,26 @@ keywords: "keyword one, keyword 2, three" # OPTIONAL: acknowledgements: "I want to thank \\dots" category: "Invited paper" -relatedversion: "A full version of the paper is available at https://..." # optional, e.g. full version hosted on arXiv, HAL, or other respository/website -supplement: "See code at https://github.com/.. and data at https://doi.org/..." # optional, e.g. related research data, source code, ... hosted on a repository like zenodo, figshare, GitHub, ... -funding: "(Optional) general funding statement \\dots" # optional, to capture a funding statement, which applies to all authors. Please enter author specific funding statements as fifth argument of the \author macro. +relatedversion: "A full version of the paper is available at https://..." # optional compatibility field; use a persistent URL +relatedversiondetails: # optional, repeat entries as needed + - classification: "Full Version" + url: "https://example.org/full-version" + linktext: "Full version" + cite: "DBLP:books/mk/GrayR93" # optional; also list under nocite when using citation_package: default +supplement: "See code at https://github.com/.. and data at https://doi.org/..." # optional compatibility field +supplementdetails: # optional, repeat entries as needed + - classification: "Software" + url: "https://example.org/software" + linktext: "Source code" # optional + subcategory: "Source Code" # optional + # cite: "DBLP:books/mk/GrayR93" + # swhid: "swh:1:dir:..." # Software Heritage identifier + # swhlinktext: "swh:1:dir:..." + # swhdelimiter: "\\\\" +funding: "(Optional) general funding statement \\dots" # optional, to capture a funding statement that applies to all authors. Enter author-specific funding statements as the fifth argument of the \author macro. nolinenumbers: false # disable line numbering hideLIPIcs: false # remove references to LIPIcs series (logo, DOI, ...), e.g. when preparing a pre-final version to be uploaded to arXiv or another public repository -# You will be asked to fill these in on submission with the correct information; following fields are hidded if hideLIPIcs: true: +# You will be asked to fill these in on submission with the correct information; the following fields are hidden if hideLIPIcs: true: volumemacros: | \EventEditors{John Q. Open and Joan R. Access} \EventNoEds{2} @@ -172,7 +192,8 @@ appendix: | \end{claimproof} List of different predefined enumeration styles: output: - rticles::lipics_article: default + rticles::lipics_article: + citation_package: natbib # To use with bookdown feature bookdown::pdf_book: base_format: rticles::lipics_article @@ -202,6 +223,12 @@ Please comply with the following instructions when preparing your article for a - Please try to keep the warnings log as small as possible. Avoid overfull `\hboxes` and any kind of warnings/errors with the referenced BibTeX entries. - Use a spellchecker to correct typos. +### Citation processing {.unnumbered} + +Dagstuhl's official workflow uses BibTeX, the fixed `plainurl` style, an extensionless `bibliography: bibliography` value, and LaTeX citations such as `\cite{DBLP:journals/cacm/Knuth74}`. The `citation_package` output option remains user-selectable and controls Pandoc's handling of Markdown citations; it does not change the fixed `plainurl` line in the generated LaTeX. + +With `citation_package: natbib`, Markdown citations such as `[@key]` become natbib commands, but this custom template does not load the unsupported `natbib` package. Raw LaTeX `\cite{key}` citations pass through unchanged and follow the official BibTeX workflow. With `citation_package: default`, Pandoc citeproc formats Markdown citations and creates an inline reference list; use the full `bibliography.bib` filename for that route. Citation keys that occur only in structured `relatedversiondetails` or `supplementdetails` metadata are not visible to citeproc, so list them in the YAML `nocite` field as demonstrated above. Other rmarkdown citation settings similarly request their own Pandoc/LaTeX citation commands and may require user-supplied package configuration. + ## Mandatory metadata macros {.unnumbered} **NOTE**: _The following macros are set via the YAML header in the R Markdown template._ @@ -220,11 +247,11 @@ The `\author` macros and the `\Copyright` macro should contain full author names #### Please do not \ldots {.unnumbered} -Generally speaking, please do not override the `lipics-v2019`-style defaults. To be more specific, a short checklist also used by Dagstuhl Publishing during the final typesetting is given below. -In case of `non-compliance` with these rules Dagstuhl Publishing will remove the corresponding parts of \LaTeX{} code and *replace it with the `lipics-v2019` defaults*. In serious cases, we may reject the LaTeX-source and expect the corresponding author to revise the relevant parts. +Generally speaking, please do not override the `lipics-v2021`-style defaults. To be more specific, a short checklist also used by Dagstuhl Publishing during the final typesetting is given below. +In case of `non-compliance` with these rules Dagstuhl Publishing will remove the corresponding parts of \LaTeX{} code and *replace it with the `lipics-v2021` defaults*. In serious cases, we may reject the LaTeX-source and expect the corresponding author to revise the relevant parts. - Do not use a different main font. (For example, the `times` package is forbidden.) -- Do not alter the spacing of the `lipics-v2019.cls` style file. +- Do not alter the spacing of the `lipics-v2021.cls` style file. - Do not use `enumitem` and `paralist`. (The `enumerate` package is preloaded, so you can use `\begin{enumerate}[(a)]` or the like.) - Do not use "self-made" sectioning commands (e.\,g., `\bf My Paragraph}`). @@ -236,8 +263,7 @@ In case of `non-compliance` with these rules Dagstuhl Publishing will remove the \enlargethispage{\baselineskip} -This is only a summary containing the most relevant details. Please read the complete document "LIPIcs: Instructions for Authors and the `lipics-v2019` Class" for all details and don't hesitate to contact Dagstuhl Publishing ([mailto:publishing@dagstuhl.de](publishing@dagstuhl.de)) in case of questions or comments: -[http://drops.dagstuhl.de/styles/lipics-v2019/lipics-v2019-authors/lipics-v2019-authors-guidelines.pdf](`http://drops.dagstuhl.de/styles/lipics-v2019/lipics-v2019-authors/lipics-v2019-authors-guidelines.pdf). +This is only a summary containing the most relevant details. Please read the current [instructions for authors](https://submission.dagstuhl.de/documentation/authors) and the [LIPIcs author information](https://drops.dagstuhl.de/entities/series/LIPIcs#author). This template bundles the author kit tagged [v2021.1.3](https://github.com/dagstuhl-publishing/styles/tree/v2021.1.3/LIPIcs/authors). Contact Dagstuhl Publishing at [publishing@dagstuhl.de](mailto:publishing@dagstuhl.de) with questions. # Lorem ipsum dolor sit amet @@ -252,11 +278,17 @@ Vestibulum sodales dolor et dui cursus iaculis. Nullam ullamcorper purus vel tur \begin{proof} Cras purus lorem, pulvinar et fermentum sagittis, suscipit quis magna. +\proofsubparagraph*{A subparagraph within the proof.} +The v2021 class provides `\proofsubparagraph` for structuring longer proofs. + \begin{claim} content... \end{claim} \begin{claimproof} -content... +The final item can place the claim-ending symbol explicitly. +\begin{enumerate} +\item content... \claimqedhere{} +\end{enumerate} \end{claimproof} \end{proof} @@ -267,9 +299,17 @@ Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming \end{corollary} \begin{proposition}\label{prop1} -This is a proposition +This is a proposition. \end{proposition} +\begin{conjecture}\label{conj1} +This is a conjecture. +\end{conjecture} + +\begin{observation}\label{obs1} +This is an observation. +\end{observation} + \autoref{prop1} and \cref{prop1} \ldots ## Curabitur dictum felis id sapien diff --git a/man/article.Rd b/man/article.Rd index 938521347..c8f0057ca 100644 --- a/man/article.Rd +++ b/man/article.Rd @@ -107,7 +107,7 @@ jasa_article( lipics_article( ..., - latex_engine = "xelatex", + latex_engine = "pdflatex", keep_tex = TRUE, citation_package = "natbib", md_extensions = c("-autolink_bare_uris", "-auto_identifiers") @@ -299,12 +299,27 @@ Journal of the Acoustical Society of America. Adapted from \section{\code{lipics_article}}{ Format for creating submissions to -LIPIcs - Leibniz International Proceedings Informatics - articles. -Adapted from the official Instructions for Authors at -\url{https://submission.dagstuhl.de/documentation/authors} and the -template from the archive \code{authors-lipics-v2019.zip} downloaded -with version tag v2019.2. The template is provided under The LaTeX -Project Public License (LPPL), Version 1.3c. +LIPIcs - Leibniz International Proceedings in Informatics - articles. +Adapted from the official \href{https://submission.dagstuhl.de/documentation/authors}{Instructions for Authors} and the +tagged LIPIcs author kit v2021.1.3, which contains \code{lipics-v2021.cls} +v3.1.3. The kit is provided under The LaTeX Project Public License +(LPPL), Version 1.3c. + +Dagstuhl's official bibliography workflow uses BibTeX, raw LaTeX +citations such as \verb{\\cite\{key\}}, and the fixed \code{plainurl} bibliography +style. The \code{citation_package} argument remains user-selectable: \code{"natbib"} +makes Pandoc translate Markdown citations to natbib commands, but this +custom template does not load the unsupported natbib package; \code{"default"} +uses Pandoc citeproc and is not the official BibTeX workflow. With citeproc, +keys used only by structured related-version or supplement metadata must +also be listed in the YAML \code{nocite} field. Other rmarkdown citation settings +may require user-supplied LaTeX configuration. The template keeps \code{plainurl} +fixed regardless of this argument. + +pdfLaTeX is the default and XeLaTeX remains selectable. With the tagged +class, the \code{pdfa} class option works with pdfLaTeX but not XeLaTeX. Existing +drafts retain their local v2019 class and legacy thin-space metadata is +normalized when rendering with pdfLaTeX. } \section{\code{lncs_article}}{ diff --git a/tests/testit/test-formats.R b/tests/testit/test-formats.R index 5b29df9d2..2460343ee 100644 --- a/tests/testit/test-formats.R +++ b/tests/testit/test-formats.R @@ -2,7 +2,8 @@ test_format <- function( name, output_options = NULL, skip = NULL, - transform = NULL + transform = NULL, + validate = NULL ) { withr::local_options(lifecycle_verbosity = "quiet") @@ -46,6 +47,74 @@ test_format <- function( assert(paste(name, "format works"), { file.exists(output_file) }) + if (is.function(validate)) { + validate(output_file, testdoc) + } +} + +prepare_lipics_features <- function(path) { + rmd <- xfun::read_utf8(path) + pdfa <- grepl("^pdfa: false", rmd) + oldauthorstyle <- grepl("^oldauthorstyle: false", rmd) + stopifnot(sum(pdfa) == 1, sum(oldauthorstyle) == 1) + rmd[pdfa] <- "pdfa: true # v2021 feature smoke test" + rmd[oldauthorstyle] <- "oldauthorstyle: true # v2021 feature smoke test" + xfun::write_utf8(rmd, path) +} + +prepare_lipics_citeproc <- function(path) { + rmd <- xfun::read_utf8(path) + bibliography <- grepl("^bibliography: bibliography$", rmd) + citation <- grepl("^Lorem ipsum", rmd) & + grepl( + "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", + rmd + ) + stopifnot(sum(bibliography) == 1, sum(citation) == 1) + rmd[bibliography] <- "bibliography: bibliography.bib" + rmd[citation] <- sub( + "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", + "[@DBLP:journals/cacm/Knuth74]", + rmd[citation] + ) + xfun::write_utf8(rmd, path) +} + +prepare_lipics_legacy <- function(path) { + rmd <- xfun::read_utf8(path) + authorrunning <- grepl("^authorrunning:", rmd) + stopifnot(sum(authorrunning) == 1) + rmd[authorrunning] <- paste0( + "authorrunning: \"J. Q. Public and J. R. Public\" ", + "# legacy metadata" + ) + v2021_body <- grepl( + paste( + "^\\\\proofsubparagraph", + "^The v2021 class provides", + "^\\\\begin\\{(conjecture|observation)\\}", + "^This is (a conjecture|an observation)[.]", + "^\\\\end\\{(conjecture|observation)\\}", + sep = "|" + ), + rmd + ) + rmd <- rmd[!v2021_body] + rmd <- sub(" \\\\claimqedhere\\{\\}", "", rmd) + xfun::write_utf8(rmd, path) + + stopifnot(file.remove("lipics-v2021.cls")) + stopifnot(file.copy( + pkg_file_template("lipics", "legacy", "lipics-v2019.cls"), + "lipics-v2019.cls" + )) +} + +validate_lipics_citeproc <- function(output_file, path) { + tex <- xfun::read_utf8(sub("[.]pdf$", ".tex", output_file)) + assert("structured citation is included by citeproc", { + any(grepl("ref-DBLP:books", tex, fixed = TRUE)) + }) } prepare_lipics_restatement <- function(path) { @@ -106,6 +175,18 @@ test_format("jss", skip = !rmarkdown::pandoc_available("2.8")) test_format("lncs") test_format("lncs", output_options = list(citation_package = "natbib")) test_format("lipics") +test_format( + "lipics", + output_options = list(latex_engine = "xelatex") +) +test_format("lipics", transform = prepare_lipics_features) +test_format("lipics", transform = prepare_lipics_legacy) +test_format( + "lipics", + output_options = list(citation_package = "default"), + transform = prepare_lipics_citeproc, + validate = validate_lipics_citeproc +) test_format("lipics", transform = prepare_lipics_restatement) test_format("mdpi") test_format("mnras") diff --git a/tests/testthat/test-lipics_article.R b/tests/testthat/test-lipics_article.R new file mode 100644 index 000000000..ddf593811 --- /dev/null +++ b/tests/testthat/test-lipics_article.R @@ -0,0 +1,97 @@ +test_that("LIPIcs bundles the tagged v2021 runtime resources", { + skeleton <- pkg_file_template("lipics", "skeleton") + files <- list.files(skeleton) + + expect_setequal( + files, + c( + "bibliography.bib", + "cc-by.pdf", + "lipics-logo-bw.pdf", + "lipics-v2021.cls", + "orcid.pdf", + "skeleton.Rmd" + ) + ) + expect_false("lipics-v2019.cls" %in% files) + expect_false(any(grepl("guidelines|sample.*[.]pdf$", files))) + + class <- xfun::read_utf8(file.path(skeleton, "lipics-v2021.cls")) + expect_true(any(grepl( + "[2023/05/12 v3.1.3 LIPIcs articles]", + class, + fixed = TRUE + ))) + expect_true(any(grepl("LaTeX Project Public License", class, fixed = TRUE))) + + legacy_class <- pkg_file_template( + "lipics", + "legacy", + "lipics-v2019.cls" + ) + expect_true(file.exists(legacy_class)) + expect_true(any(grepl( + "LaTeX Project Public License", + xfun::read_utf8(legacy_class), + fixed = TRUE + ))) +}) + +test_that("LIPIcs template preserves current and legacy class paths", { + template <- xfun::read_utf8( + pkg_file_template("lipics", "resources", "template.tex") + ) + + expect_true(any(grepl( + "\\IfFileExists{lipics-v2021.cls}", + template, + fixed = TRUE + ))) + expect_true(any(grepl("{lipics-v2021}", template, fixed = TRUE))) + expect_true(any(grepl("{lipics-v2019}", template, fixed = TRUE))) + expect_true(any(grepl("\\newif\\iflipicsvTwentyOne", template, fixed = TRUE))) + expect_true(any(grepl( + "\\DeclareUnicodeCharacter{2009}{\\,}", + template, + fixed = TRUE + ))) + expect_identical( + sum(grepl("\\bibliographystyle{plainurl}", template, fixed = TRUE)), + 1L + ) + expect_false(any(grepl("\\usepackage{enumitem}", template, fixed = TRUE))) + expect_true(any(grepl("if(pandoc317)", template, fixed = TRUE))) + expect_true(any(grepl("if(pandoc318)", template, fixed = TRUE))) + expect_true(any(grepl("if(pandoc321)", template, fixed = TRUE))) + expect_true(any(grepl("if(pandoc3821)", template, fixed = TRUE))) + expect_true(any(grepl( + "AddToHook{package/thm-restate/after}", + template, + fixed = TRUE + ))) +}) + +test_that("LIPIcs exposes v2021 metadata interfaces", { + template <- xfun::read_utf8( + pkg_file_template("lipics", "resources", "template.tex") + ) + + for (field in c( + "subtitle", + "pdfa", + "oldauthorstyle", + "relatedversiondetails", + "supplementdetails" + )) { + expect_true(any(grepl(field, template, fixed = TRUE)), info = field) + } + + skeleton <- xfun::read_utf8( + pkg_file_template("lipics", "skeleton", "skeleton.Rmd") + ) + expect_true(any(grepl("^nocite:", skeleton))) + expect_true(any(grepl("@DBLP:books/mk/GrayR93", skeleton, fixed = TRUE))) + + expect_identical(formals(lipics_article)$latex_engine, "pdflatex") + expect_identical(formals(lipics_article)$citation_package, "natbib") +}) From 3a2d55db33d42753a585101d84fa506a5b40721d Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 15 Sep 2026 19:07:11 +0200 Subject: [PATCH 2/5] Simplify LIPIcs test fixtures --- .../testit/fixtures}/lipics-v2019.cls | 0 tests/testit/helper-lipics.R | 105 ++++++++++++++++++ tests/testit/test-formats.R | 84 -------------- tests/testthat/test-lipics_article.R | 97 ---------------- 4 files changed, 105 insertions(+), 181 deletions(-) rename {inst/rmarkdown/templates/lipics/legacy => tests/testit/fixtures}/lipics-v2019.cls (100%) create mode 100644 tests/testit/helper-lipics.R delete mode 100644 tests/testthat/test-lipics_article.R diff --git a/inst/rmarkdown/templates/lipics/legacy/lipics-v2019.cls b/tests/testit/fixtures/lipics-v2019.cls similarity index 100% rename from inst/rmarkdown/templates/lipics/legacy/lipics-v2019.cls rename to tests/testit/fixtures/lipics-v2019.cls diff --git a/tests/testit/helper-lipics.R b/tests/testit/helper-lipics.R new file mode 100644 index 000000000..f47b5524c --- /dev/null +++ b/tests/testit/helper-lipics.R @@ -0,0 +1,105 @@ +prepare_lipics_features <- function(path) { + rmd <- xfun::read_utf8(path) + pdfa <- grepl("^pdfa: false", rmd) + oldauthorstyle <- grepl("^oldauthorstyle: false", rmd) + stopifnot(sum(pdfa) == 1, sum(oldauthorstyle) == 1) + rmd[pdfa] <- "pdfa: true # v2021 feature smoke test" + rmd[oldauthorstyle] <- "oldauthorstyle: true # v2021 feature smoke test" + xfun::write_utf8(rmd, path) +} + +prepare_lipics_citeproc <- function(path) { + rmd <- xfun::read_utf8(path) + bibliography <- grepl("^bibliography: bibliography$", rmd) + citation <- grepl("^Lorem ipsum", rmd) & + grepl( + "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", + rmd + ) + stopifnot(sum(bibliography) == 1, sum(citation) == 1) + rmd[bibliography] <- "bibliography: bibliography.bib" + rmd[citation] <- sub( + "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", + "[@DBLP:journals/cacm/Knuth74]", + rmd[citation] + ) + xfun::write_utf8(rmd, path) +} + +lipics_fixture <- function(...) { + test_root <- getOption("testit.test_dir") + stopifnot(length(test_root) == 1) + + paths <- file.path( + test_root, + c("testit/fixtures", "tests/testit/fixtures"), + ... + ) + path <- paths[file.exists(paths)] + stopifnot(length(path) == 1) + path +} + +prepare_lipics_legacy <- function(path) { + xfun::write_utf8( + c( + "---", + 'title: "Legacy LIPIcs draft"', + 'titlerunning: "Legacy LIPIcs draft"', + 'format: "a4paper"', + 'hyphenation: "UKenglish"', + "author:", + " - name: John Q. Public", + ' affiliation: "Dummy University, Country"', + " email: johnqpublic@example.org", + ' orcid: ""', + 'authorrunning: "J. Q. Public"', + 'copyright: "John Q. Public"', + "ccdesc:", + ' concept_significance: "100"', + ' concept_desc: "General and reference"', + 'keywords: "legacy, compatibility"', + 'abstract: "A legacy draft using the v2019 class."', + "output:", + " rticles::lipics_article: default", + "---", + "", + "# Legacy draft", + "", + "This draft retains its project-local `lipics-v2019.cls`." + ), + path + ) + + stopifnot(file.remove("lipics-v2021.cls")) + stopifnot(file.copy( + lipics_fixture("lipics-v2019.cls"), + "lipics-v2019.cls" + )) +} + +validate_lipics_citeproc <- function(output_file, path) { + tex <- xfun::read_utf8(sub("[.]pdf$", ".tex", output_file)) + assert("structured citation is included by citeproc", { + any(grepl("ref-DBLP:books", tex, fixed = TRUE)) + }) +} + +prepare_lipics_restatement <- function(path) { + rmd <- xfun::read_utf8(path) + option <- grepl("^thm-restate: false", rmd) + stopifnot(sum(option) == 1) + rmd[option] <- "thm-restate: true # legacy metadata" + xfun::write_utf8( + c( + rmd, + "", + "\\begin{restatable}{theorem}{legacytheorem}", + "This theorem can be restated.", + "\\end{restatable}", + "", + "\\legacytheorem*" + ), + path + ) +} diff --git a/tests/testit/test-formats.R b/tests/testit/test-formats.R index 2460343ee..ce9c477c0 100644 --- a/tests/testit/test-formats.R +++ b/tests/testit/test-formats.R @@ -52,90 +52,6 @@ test_format <- function( } } -prepare_lipics_features <- function(path) { - rmd <- xfun::read_utf8(path) - pdfa <- grepl("^pdfa: false", rmd) - oldauthorstyle <- grepl("^oldauthorstyle: false", rmd) - stopifnot(sum(pdfa) == 1, sum(oldauthorstyle) == 1) - rmd[pdfa] <- "pdfa: true # v2021 feature smoke test" - rmd[oldauthorstyle] <- "oldauthorstyle: true # v2021 feature smoke test" - xfun::write_utf8(rmd, path) -} - -prepare_lipics_citeproc <- function(path) { - rmd <- xfun::read_utf8(path) - bibliography <- grepl("^bibliography: bibliography$", rmd) - citation <- grepl("^Lorem ipsum", rmd) & - grepl( - "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", - rmd - ) - stopifnot(sum(bibliography) == 1, sum(citation) == 1) - rmd[bibliography] <- "bibliography: bibliography.bib" - rmd[citation] <- sub( - "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", - "[@DBLP:journals/cacm/Knuth74]", - rmd[citation] - ) - xfun::write_utf8(rmd, path) -} - -prepare_lipics_legacy <- function(path) { - rmd <- xfun::read_utf8(path) - authorrunning <- grepl("^authorrunning:", rmd) - stopifnot(sum(authorrunning) == 1) - rmd[authorrunning] <- paste0( - "authorrunning: \"J. Q. Public and J. R. Public\" ", - "# legacy metadata" - ) - v2021_body <- grepl( - paste( - "^\\\\proofsubparagraph", - "^The v2021 class provides", - "^\\\\begin\\{(conjecture|observation)\\}", - "^This is (a conjecture|an observation)[.]", - "^\\\\end\\{(conjecture|observation)\\}", - sep = "|" - ), - rmd - ) - rmd <- rmd[!v2021_body] - rmd <- sub(" \\\\claimqedhere\\{\\}", "", rmd) - xfun::write_utf8(rmd, path) - - stopifnot(file.remove("lipics-v2021.cls")) - stopifnot(file.copy( - pkg_file_template("lipics", "legacy", "lipics-v2019.cls"), - "lipics-v2019.cls" - )) -} - -validate_lipics_citeproc <- function(output_file, path) { - tex <- xfun::read_utf8(sub("[.]pdf$", ".tex", output_file)) - assert("structured citation is included by citeproc", { - any(grepl("ref-DBLP:books", tex, fixed = TRUE)) - }) -} - -prepare_lipics_restatement <- function(path) { - rmd <- xfun::read_utf8(path) - option <- grepl("^thm-restate: false", rmd) - stopifnot(sum(option) == 1) - rmd[option] <- "thm-restate: true # legacy metadata" - xfun::write_utf8( - c( - rmd, - "", - "\\begin{restatable}{theorem}{legacytheorem}", - "This theorem can be restated.", - "\\end{restatable}", - "", - "\\legacytheorem*" - ), - path - ) -} - #--- NOTE to contributors ------------------------------------------------------ # Please order these tests by formats alphabetically. #------------------------------------------------------------------------------- diff --git a/tests/testthat/test-lipics_article.R b/tests/testthat/test-lipics_article.R deleted file mode 100644 index ddf593811..000000000 --- a/tests/testthat/test-lipics_article.R +++ /dev/null @@ -1,97 +0,0 @@ -test_that("LIPIcs bundles the tagged v2021 runtime resources", { - skeleton <- pkg_file_template("lipics", "skeleton") - files <- list.files(skeleton) - - expect_setequal( - files, - c( - "bibliography.bib", - "cc-by.pdf", - "lipics-logo-bw.pdf", - "lipics-v2021.cls", - "orcid.pdf", - "skeleton.Rmd" - ) - ) - expect_false("lipics-v2019.cls" %in% files) - expect_false(any(grepl("guidelines|sample.*[.]pdf$", files))) - - class <- xfun::read_utf8(file.path(skeleton, "lipics-v2021.cls")) - expect_true(any(grepl( - "[2023/05/12 v3.1.3 LIPIcs articles]", - class, - fixed = TRUE - ))) - expect_true(any(grepl("LaTeX Project Public License", class, fixed = TRUE))) - - legacy_class <- pkg_file_template( - "lipics", - "legacy", - "lipics-v2019.cls" - ) - expect_true(file.exists(legacy_class)) - expect_true(any(grepl( - "LaTeX Project Public License", - xfun::read_utf8(legacy_class), - fixed = TRUE - ))) -}) - -test_that("LIPIcs template preserves current and legacy class paths", { - template <- xfun::read_utf8( - pkg_file_template("lipics", "resources", "template.tex") - ) - - expect_true(any(grepl( - "\\IfFileExists{lipics-v2021.cls}", - template, - fixed = TRUE - ))) - expect_true(any(grepl("{lipics-v2021}", template, fixed = TRUE))) - expect_true(any(grepl("{lipics-v2019}", template, fixed = TRUE))) - expect_true(any(grepl("\\newif\\iflipicsvTwentyOne", template, fixed = TRUE))) - expect_true(any(grepl( - "\\DeclareUnicodeCharacter{2009}{\\,}", - template, - fixed = TRUE - ))) - expect_identical( - sum(grepl("\\bibliographystyle{plainurl}", template, fixed = TRUE)), - 1L - ) - expect_false(any(grepl("\\usepackage{enumitem}", template, fixed = TRUE))) - expect_true(any(grepl("if(pandoc317)", template, fixed = TRUE))) - expect_true(any(grepl("if(pandoc318)", template, fixed = TRUE))) - expect_true(any(grepl("if(pandoc321)", template, fixed = TRUE))) - expect_true(any(grepl("if(pandoc3821)", template, fixed = TRUE))) - expect_true(any(grepl( - "AddToHook{package/thm-restate/after}", - template, - fixed = TRUE - ))) -}) - -test_that("LIPIcs exposes v2021 metadata interfaces", { - template <- xfun::read_utf8( - pkg_file_template("lipics", "resources", "template.tex") - ) - - for (field in c( - "subtitle", - "pdfa", - "oldauthorstyle", - "relatedversiondetails", - "supplementdetails" - )) { - expect_true(any(grepl(field, template, fixed = TRUE)), info = field) - } - - skeleton <- xfun::read_utf8( - pkg_file_template("lipics", "skeleton", "skeleton.Rmd") - ) - expect_true(any(grepl("^nocite:", skeleton))) - expect_true(any(grepl("@DBLP:books/mk/GrayR93", skeleton, fixed = TRUE))) - - expect_identical(formals(lipics_article)$latex_engine, "pdflatex") - expect_identical(formals(lipics_article)$citation_package, "natbib") -}) From 913e9bdcc675b98fe9b2914ace1608140f563cbb Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 15 Sep 2026 19:28:13 +0200 Subject: [PATCH 3/5] Fix LIPIcs citation and legacy metadata handling --- R/article.R | 10 ++-- .../templates/lipics/resources/template.tex | 4 +- .../templates/lipics/skeleton/skeleton.Rmd | 7 +-- man/article.Rd | 10 ++-- tests/testit/helper-lipics.R | 58 +++++++++++++++---- tests/testit/test-formats.R | 6 +- 6 files changed, 66 insertions(+), 29 deletions(-) diff --git a/R/article.R b/R/article.R index 4195f36c5..16ee9a71a 100644 --- a/R/article.R +++ b/R/article.R @@ -312,11 +312,11 @@ jasa_article <- function(..., keep_tex = TRUE, latex_engine = "xelatex", #' style. The `citation_package` argument remains user-selectable: `"natbib"` #' makes Pandoc translate Markdown citations to natbib commands, but this #' custom template does not load the unsupported natbib package; `"default"` -#' uses Pandoc citeproc and is not the official BibTeX workflow. With citeproc, -#' keys used only by structured related-version or supplement metadata must -#' also be listed in the YAML `nocite` field. Other rmarkdown citation settings -#' may require user-supplied LaTeX configuration. The template keeps `plainurl` -#' fixed regardless of this argument. +#' uses Pandoc citeproc and is not the official BibTeX workflow. Structured +#' related-version and supplement `cite` fields emit raw LaTeX citations and +#' therefore require the BibTeX route; omit them when using citeproc. Other +#' rmarkdown citation settings may require user-supplied LaTeX configuration. +#' The template keeps `plainurl` fixed regardless of this argument. #' #' pdfLaTeX is the default and XeLaTeX remains selectable. With the tagged #' class, the `pdfa` class option works with pdfLaTeX but not XeLaTeX. Existing diff --git a/inst/rmarkdown/templates/lipics/resources/template.tex b/inst/rmarkdown/templates/lipics/resources/template.tex index 3e13ca4e9..cee929de3 100644 --- a/inst/rmarkdown/templates/lipics/resources/template.tex +++ b/inst/rmarkdown/templates/lipics/resources/template.tex @@ -103,7 +103,7 @@ $endfor$ \else $if(supplementdetails)$ -\supplement{$if(supplement)$$supplement$; $endif$$for(supplementdetails)$\textit{$supplementdetails.classification$$if(supplementdetails.subcategory)$ ($supplementdetails.subcategory$)$endif$}: $if(supplementdetails.linktext)$\href{$supplementdetails.url$}{$supplementdetails.linktext$}$else$\url{$supplementdetails.url$}$endif$$if(supplementdetails.cite)$ \cite{$supplementdetails.cite$}$endif$$sep$; $endfor$} +\supplement{$if(supplement)$$supplement$; $endif$$for(supplementdetails)$\textit{$supplementdetails.classification$$if(supplementdetails.subcategory)$ ($supplementdetails.subcategory$)$endif$}: $if(supplementdetails.linktext)$\href{$supplementdetails.url$}{$supplementdetails.linktext$}$else$\url{$supplementdetails.url$}$endif$$if(supplementdetails.cite)$ \cite{$supplementdetails.cite$}$endif$$if(supplementdetails.swhid)$ $if(supplementdetails.swhdelimiter)$$supplementdetails.swhdelimiter$$endif$archived at \href{https://archive.softwareheritage.org/$supplementdetails.swhid$}{\nolinkurl{$if(supplementdetails.swhlinktext)$$supplementdetails.swhlinktext$$else$$supplementdetails.swhid$$endif$}}$endif$$sep$; $endfor$} $else$ $if(supplement)$ \supplement{$supplement$} @@ -299,7 +299,9 @@ %% Please use bibtex, +$if(natbib)$$if(bibliography)$ \bibliography{$bibliography$} +$endif$$endif$ $if(appendix)$ \appendix diff --git a/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd index 5d6134a38..f8e0326a9 100644 --- a/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd +++ b/inst/rmarkdown/templates/lipics/skeleton/skeleton.Rmd @@ -31,9 +31,6 @@ abstract: | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse potenti. bibliography: bibliography -# With citation_package: default, list keys used only by structured `cite` fields here so citeproc includes them. -nocite: | - @DBLP:books/mk/GrayR93 authorrunning: 'J.\,Q. Public and J.\,R. Public' # mandatory. First: Use abbreviated first/middle names. Second (only in severe cases): Use first author plus 'et al.' # The LaTeX thin-space command `\,` is used between abbreviated names. copyright: "John Q. Public and Joan R. Public" # mandatory, please use full first names. Published LIPIcs articles use CC BY 4.0: https://creativecommons.org/licenses/by/4.0/ @@ -50,7 +47,7 @@ relatedversiondetails: # optional, repeat entries as needed - classification: "Full Version" url: "https://example.org/full-version" linktext: "Full version" - cite: "DBLP:books/mk/GrayR93" # optional; also list under nocite when using citation_package: default + cite: "DBLP:books/mk/GrayR93" # optional; requires the BibTeX workflow (citation_package: natbib) supplement: "See code at https://github.com/.. and data at https://doi.org/..." # optional compatibility field supplementdetails: # optional, repeat entries as needed - classification: "Software" @@ -227,7 +224,7 @@ Please comply with the following instructions when preparing your article for a Dagstuhl's official workflow uses BibTeX, the fixed `plainurl` style, an extensionless `bibliography: bibliography` value, and LaTeX citations such as `\cite{DBLP:journals/cacm/Knuth74}`. The `citation_package` output option remains user-selectable and controls Pandoc's handling of Markdown citations; it does not change the fixed `plainurl` line in the generated LaTeX. -With `citation_package: natbib`, Markdown citations such as `[@key]` become natbib commands, but this custom template does not load the unsupported `natbib` package. Raw LaTeX `\cite{key}` citations pass through unchanged and follow the official BibTeX workflow. With `citation_package: default`, Pandoc citeproc formats Markdown citations and creates an inline reference list; use the full `bibliography.bib` filename for that route. Citation keys that occur only in structured `relatedversiondetails` or `supplementdetails` metadata are not visible to citeproc, so list them in the YAML `nocite` field as demonstrated above. Other rmarkdown citation settings similarly request their own Pandoc/LaTeX citation commands and may require user-supplied package configuration. +With `citation_package: natbib`, Markdown citations such as `[@key]` become natbib commands, but this custom template does not load the unsupported `natbib` package. Raw LaTeX `\cite{key}` citations pass through unchanged and follow the official BibTeX workflow. With `citation_package: default`, Pandoc citeproc formats Markdown citations and creates an inline reference list; use the full `bibliography.bib` filename for that route. Structured `relatedversiondetails` and `supplementdetails` `cite` fields emit raw LaTeX citations and therefore require the BibTeX route; omit those fields when using citeproc. Other rmarkdown citation settings similarly request their own Pandoc/LaTeX citation commands and may require user-supplied package configuration. ## Mandatory metadata macros {.unnumbered} diff --git a/man/article.Rd b/man/article.Rd index c8f0057ca..3fdcb5243 100644 --- a/man/article.Rd +++ b/man/article.Rd @@ -310,11 +310,11 @@ citations such as \verb{\\cite\{key\}}, and the fixed \code{plainurl} bibliograp style. The \code{citation_package} argument remains user-selectable: \code{"natbib"} makes Pandoc translate Markdown citations to natbib commands, but this custom template does not load the unsupported natbib package; \code{"default"} -uses Pandoc citeproc and is not the official BibTeX workflow. With citeproc, -keys used only by structured related-version or supplement metadata must -also be listed in the YAML \code{nocite} field. Other rmarkdown citation settings -may require user-supplied LaTeX configuration. The template keeps \code{plainurl} -fixed regardless of this argument. +uses Pandoc citeproc and is not the official BibTeX workflow. Structured +related-version and supplement \code{cite} fields emit raw LaTeX citations and +therefore require the BibTeX route; omit them when using citeproc. Other +rmarkdown citation settings may require user-supplied LaTeX configuration. +The template keeps \code{plainurl} fixed regardless of this argument. pdfLaTeX is the default and XeLaTeX remains selectable. With the tagged class, the \code{pdfa} class option works with pdfLaTeX but not XeLaTeX. Existing diff --git a/tests/testit/helper-lipics.R b/tests/testit/helper-lipics.R index f47b5524c..20bf0b8b3 100644 --- a/tests/testit/helper-lipics.R +++ b/tests/testit/helper-lipics.R @@ -11,17 +11,28 @@ prepare_lipics_features <- function(path) { prepare_lipics_citeproc <- function(path) { rmd <- xfun::read_utf8(path) bibliography <- grepl("^bibliography: bibliography$", rmd) - citation <- grepl("^Lorem ipsum", rmd) & - grepl( - "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", - rmd - ) - stopifnot(sum(bibliography) == 1, sum(citation) == 1) + raw_citations <- grepl("\\\\cite\\{DBLP:", rmd) + structured_citation <- grepl( + ' cite: "DBLP:books/mk/GrayR93"', + rmd, + fixed = TRUE + ) + stopifnot( + sum(bibliography) == 1, + any(raw_citations), + sum(structured_citation) == 1 + ) rmd[bibliography] <- "bibliography: bibliography.bib" - rmd[citation] <- sub( - "\\\\cite\\{DBLP:journals/cacm/Knuth74\\}", - "[@DBLP:journals/cacm/Knuth74]", - rmd[citation] + rmd[raw_citations] <- gsub( + "\\\\cite\\{([^}]+)\\}", + "[@\\1]", + rmd[raw_citations] + ) + rmd[structured_citation] <- sub( + " cite:", + " # cite:", + rmd[structured_citation], + fixed = TRUE ) xfun::write_utf8(rmd, path) } @@ -60,6 +71,13 @@ prepare_lipics_legacy <- function(path) { ' concept_desc: "General and reference"', 'keywords: "legacy, compatibility"', 'abstract: "A legacy draft using the v2019 class."', + "supplementdetails:", + ' - classification: "Software"', + ' url: "https://example.org/software"', + ' linktext: "Source code"', + ' swhid: "swh:1:dir:legacy"', + ' swhlinktext: "Archived source"', + " swhdelimiter: '\\quad '", "output:", " rticles::lipics_article: default", "---", @@ -78,10 +96,26 @@ prepare_lipics_legacy <- function(path) { )) } +validate_lipics_legacy <- function(output_file, path) { + tex <- xfun::read_utf8(sub("[.]pdf$", ".tex", output_file)) + assert("legacy fallback preserves Software Heritage metadata", { + all(c( + any(grepl("\\quad archived at", tex, fixed = TRUE)), + any(grepl( + "https://archive.softwareheritage.org/swh:1:dir:legacy", + tex, + fixed = TRUE + )), + any(grepl("\\nolinkurl{Archived source}", tex, fixed = TRUE)) + )) + }) +} + validate_lipics_citeproc <- function(output_file, path) { tex <- xfun::read_utf8(sub("[.]pdf$", ".tex", output_file)) - assert("structured citation is included by citeproc", { - any(grepl("ref-DBLP:books", tex, fixed = TRUE)) + assert("citeproc emits exactly one reference list", { + sum(grepl("\\begin{CSLReferences}", tex, fixed = TRUE)) == 1 && + !any(grepl("\\bibliography{", tex, fixed = TRUE)) }) } diff --git a/tests/testit/test-formats.R b/tests/testit/test-formats.R index ce9c477c0..6687f259c 100644 --- a/tests/testit/test-formats.R +++ b/tests/testit/test-formats.R @@ -96,7 +96,11 @@ test_format( output_options = list(latex_engine = "xelatex") ) test_format("lipics", transform = prepare_lipics_features) -test_format("lipics", transform = prepare_lipics_legacy) +test_format( + "lipics", + transform = prepare_lipics_legacy, + validate = validate_lipics_legacy +) test_format( "lipics", output_options = list(citation_package = "default"), From 3363b5e210774d6aa60b8a43a796edd44227de80 Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Tue, 15 Sep 2026 19:30:54 +0200 Subject: [PATCH 4/5] Expand LIPIcs legacy compatibility coverage --- tests/testit/helper-lipics.R | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tests/testit/helper-lipics.R b/tests/testit/helper-lipics.R index 20bf0b8b3..aba469a9c 100644 --- a/tests/testit/helper-lipics.R +++ b/tests/testit/helper-lipics.R @@ -56,6 +56,7 @@ prepare_lipics_legacy <- function(path) { c( "---", 'title: "Legacy LIPIcs draft"', + 'subtitle: "Legacy subtitle"', 'titlerunning: "Legacy LIPIcs draft"', 'format: "a4paper"', 'hyphenation: "UKenglish"', @@ -71,6 +72,11 @@ prepare_lipics_legacy <- function(path) { ' concept_desc: "General and reference"', 'keywords: "legacy, compatibility"', 'abstract: "A legacy draft using the v2019 class."', + 'relatedversion: "Legacy related version"', + "relatedversiondetails:", + ' - classification: "Full Version"', + ' url: "https://example.org/full-version"', + ' linktext: "Full version"', "supplementdetails:", ' - classification: "Software"', ' url: "https://example.org/software"', @@ -98,8 +104,36 @@ prepare_lipics_legacy <- function(path) { validate_lipics_legacy <- function(output_file, path) { tex <- xfun::read_utf8(sub("[.]pdf$", ".tex", output_file)) - assert("legacy fallback preserves Software Heritage metadata", { + assert("legacy fallback flattens the subtitle", { + any(grepl( + "\\title{Legacy LIPIcs draft: Legacy subtitle}", + tex, + fixed = TRUE + )) + }) + assert("legacy fallback flattens related-version metadata", { + any(grepl( + paste0( + "\\relatedversion{Legacy related version; ", + "\\textit{Full Version}: ", + "\\href{https://example.org/full-version}{Full version}}" + ), + tex, + fixed = TRUE + )) + }) + assert("legacy fallback preserves supplement metadata", { all(c( + any(grepl( + "\\textit{Software}: ", + tex, + fixed = TRUE + )), + any(grepl( + "\\href{https://example.org/software}{Source code}", + tex, + fixed = TRUE + )), any(grepl("\\quad archived at", tex, fixed = TRUE)), any(grepl( "https://archive.softwareheritage.org/swh:1:dir:legacy", From b2e101f4c3e769f3dbd6b6661a5660ea2f77bf7d Mon Sep 17 00:00:00 2001 From: Christophe Dervieux Date: Wed, 16 Sep 2026 12:44:01 +0200 Subject: [PATCH 5/5] Warn about legacy LIPIcs class files --- NEWS.md | 2 +- R/article.R | 28 +++++++- R/utils.R | 13 ++++ tests/testthat/test-lipics_article.R | 95 ++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 tests/testthat/test-lipics_article.R diff --git a/NEWS.md b/NEWS.md index 03f65f17c..cffe93d6b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -48,7 +48,7 @@ supported by the `copernicus.cls`, and fix an issue where the section headers we - Added `\setlength{\emergencystretch}{3em}` to prevent overfull lines. - Updated CSL citation helper commands (`\CSLBlock`, `\CSLLeftMargin`, `\CSLRightInline`) to match current Pandoc defaults, improving bibliography spacing and baseline alignment. -- Update `lipics_article()` to the tagged LIPIcs v2021.1.3 author kit and `lipics-v2021.cls` v3.1.3, including current runtime assets, subtitle and structured related-material metadata, compact-author and PDF/A options, and new theorem/proof interfaces. The default engine is now pdfLaTeX after testing both pdfLaTeX and XeLaTeX; XeLaTeX remains selectable. Citation processing remains user-selectable, with guidance for the official BibTeX/`plainurl` workflow. Existing drafts that carry `lipics-v2019.cls` continue to render through a compatibility fallback that normalizes their legacy thin-space metadata and degrades v2021-only metadata to supported v2019 forms (#608). +- Update `lipics_article()` to the tagged LIPIcs v2021.1.3 author kit and `lipics-v2021.cls` v3.1.3, including current runtime assets, subtitle and structured related-material metadata, compact-author and PDF/A options, and new theorem/proof interfaces. The default engine is now pdfLaTeX after testing both pdfLaTeX and XeLaTeX; XeLaTeX remains selectable. Citation processing remains user-selectable, with guidance for the official BibTeX/`plainurl` workflow. Existing drafts that carry `lipics-v2019.cls` continue to render through a compatibility fallback that normalizes their legacy thin-space metadata and degrades v2021-only metadata to supported v2019 forms; rendering now warns once per R session that these drafts should be updated from the current template, or suggests removing the unused legacy class when both class files are present (#608). - The `lipics_article()` skeleton now makes theorem restatement support opt-in to avoid an incompatibility between `thmtools` and LaTeX 2026. Existing documents that enable it use a temporary compatibility workaround while the upstream fix remains unreleased (#607). diff --git a/R/article.R b/R/article.R index 16ee9a71a..97dde7187 100644 --- a/R/article.R +++ b/R/article.R @@ -332,12 +332,38 @@ lipics_article <- function(..., latex_engine = "pdflatex", )) { # quick dev shortcut for Ubuntu: click "Install and restart" then run: # unlink("MyArticle/", recursive = TRUE); rmarkdown::draft("MyArticle.Rmd", template = "lipics", package = "rticles", edit = FALSE); rmarkdown::render("MyArticle/MyArticle.Rmd"); system(paste0("xdg-open ", here::here("MyArticle", "MyArticle.pdf"))) - pdf_document_format( + format <- pdf_document_format( "lipics", latex_engine = latex_engine, citation_package = citation_package, keep_tex = keep_tex, md_extensions = md_extensions, ... ) + + pre_knit <- format$pre_knit + format$pre_knit <- function(input, metadata, ...) { + if (is.function(pre_knit)) pre_knit(input, metadata, ...) + + input_dir <- dirname(input) + legacy_class <- file.path(input_dir, "lipics-v2019.cls") + current_class <- file.path(input_dir, "lipics-v2021.cls") + if (file.exists(legacy_class) && !file.exists(current_class)) { + warn_once( + "rticles.warn_lipics_v2019", + "Detected 'lipics-v2019.cls' next to the input file. ", + "This class remains supported for backward compatibility, but the ", + "article should be updated from the current `rticles::lipics_article()` ", + "template to use 'lipics-v2021.cls' and current YAML metadata." + ) + } else if (file.exists(legacy_class) && file.exists(current_class)) { + warn_once( + "rticles.warn_lipics_both_classes", + "Detected both 'lipics-v2019.cls' and 'lipics-v2021.cls' next to the ", + "input file. The LIPIcs template will use 'lipics-v2021.cls'; you may ", + "remove the unused 'lipics-v2019.cls' file." + ) + } + } + format } diff --git a/R/utils.R b/R/utils.R index 5db5f63b8..60c857fd0 100644 --- a/R/utils.R +++ b/R/utils.R @@ -33,6 +33,19 @@ knitr_fun <- function(name) utils::getFromNamespace(name, "knitr") output_asis <- knitr_fun("output_asis") +warn_once <- function(option, ...) { + xfun::do_once( + warning( + ..., + "\nThis warning is shown once per R session.", + immediate. = TRUE, + call. = FALSE + ), + option = option, + hint = "" + ) +} + merge_list <- function(x, y) { fun <- knitr_fun("merge_list") fun(as.list(x), y) diff --git a/tests/testthat/test-lipics_article.R b/tests/testthat/test-lipics_article.R new file mode 100644 index 000000000..188922d66 --- /dev/null +++ b/tests/testthat/test-lipics_article.R @@ -0,0 +1,95 @@ +test_that("lipics_article() warns once for a legacy local class", { + skip_if_not_pandoc("2.8") + withr::local_options(rticles.warn_lipics_v2019 = NULL) + article_dir <- withr::local_tempdir() + xfun::write_utf8("", file.path(article_dir, "lipics-v2019.cls")) + format <- lipics_article() + + expect_warning( + format$pre_knit( + input = file.path(article_dir, "article.Rmd"), + metadata = list() + ), + regexp = "lipics-v2019[.]cls.*backward compatibility" + ) + expect_no_warning( + format$pre_knit( + input = file.path(article_dir, "article.Rmd"), + metadata = list() + ) + ) +}) + +test_that("lipics_article() proposes removing the unused legacy class once", { + skip_if_not_pandoc("2.8") + withr::local_options(rticles.warn_lipics_both_classes = NULL) + article_dir <- withr::local_tempdir() + xfun::write_utf8("", file.path(article_dir, "lipics-v2019.cls")) + xfun::write_utf8("", file.path(article_dir, "lipics-v2021.cls")) + format <- lipics_article() + + expect_warning( + format$pre_knit( + input = file.path(article_dir, "article.Rmd"), + metadata = list() + ), + regexp = "both.*will use 'lipics-v2021[.]cls'.*remove" + ) + expect_no_warning( + format$pre_knit( + input = file.path(article_dir, "article.Rmd"), + metadata = list() + ) + ) +}) + +test_that("lipics_article() does not warn for only the current class", { + skip_if_not_pandoc("2.8") + article_dir <- withr::local_tempdir() + xfun::write_utf8("", file.path(article_dir, "lipics-v2021.cls")) + format <- lipics_article() + + expect_no_warning( + format$pre_knit( + input = file.path(article_dir, "article.Rmd"), + metadata = list() + ) + ) +}) + +test_that("lipics_article() does not warn when no local class is present", { + skip_if_not_pandoc("2.8") + article_dir <- withr::local_tempdir() + format <- lipics_article() + + expect_no_warning( + format$pre_knit( + input = file.path(article_dir, "article.Rmd"), + metadata = list() + ) + ) +}) + +test_that("rmarkdown::render() emits the legacy LIPIcs class warning", { + skip_if_not_pandoc("2.8") + withr::local_options(rticles.warn_lipics_v2019 = NULL) + article_dir <- withr::local_tempdir() + rmd <- file.path(article_dir, "article.Rmd") + xfun::write_utf8( + c( + "---", + "title: Legacy LIPIcs draft", + "output: rticles::lipics_article", + "---", + "", + "Body." + ), + rmd + ) + xfun::write_utf8("", file.path(article_dir, "lipics-v2019.cls")) + + expect_warning( + rmarkdown::render(rmd, quiet = TRUE, run_pandoc = FALSE), + regexp = "lipics-v2019[.]cls.*backward compatibility" + ) +})