summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/jumplines/jumplines.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/jumplines/jumplines.sty')
-rw-r--r--macros/latex/contrib/jumplines/jumplines.sty562
1 files changed, 562 insertions, 0 deletions
diff --git a/macros/latex/contrib/jumplines/jumplines.sty b/macros/latex/contrib/jumplines/jumplines.sty
new file mode 100644
index 0000000000..bc72672dfe
--- /dev/null
+++ b/macros/latex/contrib/jumplines/jumplines.sty
@@ -0,0 +1,562 @@
+\NeedsTeXFormat{LaTeX2e}%
+\ProvidesPackage{jumplines}[2015/06/02 v0.2 -- Teaser/Continued articles with hyperlinks]
+%%%
+%% -------------------------------------------------------------------------------------------
+%% Copyright (c) 2015 by Dr. Christian Hupfer <christian dot hupfer at yahoo dot de>
+%% -------------------------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% This work consists of all files listed in README
+%%
+
+\RequirePackage{etoolbox}[2011/01/03 2.2]%
+\RequirePackage{xparse}%
+\RequirePackage{xkeyval}[2012/10/14 v2.6b]%
+\RequirePackage[dvipsnames,x11names]{xcolor}%
+\PassOptionsToPackage{svgnames}{xcolor}%
+\RequirePackage[breakable]{tcolorbox}%
+
+\DeclareOptionX{languages}[english]{%
+ \def\JLPackageMacroLanguages{#1}%
+}%
+
+\DeclareOptionX*{\PackageWarning{jumplines}{Option '\CurrentOption ' ignored}}%
+
+\ExecuteOptionsX{languages={spanish,french,ngerman,english}}
+
+\ProcessOptionsX%
+
+
+\RequirePackage[strings,ngerman,english,\JLPackageMacroLanguages]{babel}
+
+\RequirePackage{tocloft}
+
+\RequirePackage{ifluatex}
+\RequirePackage[bookmarksopen=true]{hyperref}
+\RequirePackage{bookmark}
+
+\ifluatex
+\RequirePackage{luacolor}% Recommended
+\fi
+
+%%%% Provide dummy macros for unknown languages
+\newcommand{\listofarticlesname}{}
+\newcommand{\listofcontinuedarticlesname}{}
+\newcommand{\articlesname}{}
+\newcommand{\JLArticleName}{}
+\newcommand{\ContinuedOn}{}
+\newcommand{\ContinuedFrom}{}
+\newcommand{\OnPage}{}
+\newcommand{\Pagename}{}
+\newcommand{\byauthor}{}
+
+
+\StartBabelCommands{english}{extras}
+\SetString\JLArticleName{Article\xspace}
+\SetString\articlesname{Articles} % plural
+\SetString\Pagename{Page\xspace}
+\SetString\ContinuedOn{Continued on\xspace}
+\SetString\ContinuedFrom{Continued from\xspace}
+\SetString\OnPage{on \Pagename\xspace}
+\SetString\listofarticlesname{List of Articles}%
+\SetString\listofcontinuedarticlesname{List of continued \articlesname}%
+\SetString\byauthor{By\xspace}
+\EndBabelCommands
+
+\StartBabelCommands{ngerman}{extras}
+\SetString\JLArticleName{Artikel\xspace}
+\SetString\articlesname{Artikel\xspace}
+\SetString\Pagename{Seite\xspace}
+\SetString\ContinuedOn{Weiterlesen auf\xspace}
+\SetString\ContinuedFrom{Fortsetzung von\xspace}
+\SetString\OnPage{auf \Pagename\xspace}
+\SetString\listofarticlesname{Artikelverzeichnis}%
+\SetString\listofcontinuedarticlesname{Fortgesetzte \articlesname}
+\SetString\byauthor{Von\xspace}
+\EndBabelCommands
+
+\StartBabelCommands{french}{extras}
+\SetString\JLArticleName{Article\xspace}
+\SetString\articlesname{Articles} % plural
+\SetString\Pagename{Page\xspace}
+\SetString\ContinuedOn{Suite \`{a} la page\xspace}
+\SetString\ContinuedFrom{Continu\'ee de\xspace}
+\SetString\OnPage{\`a la \Pagename\xspace}
+\SetString\listofarticlesname{Liste des articles}%
+\SetString\listofcontinuedarticlesname{Liste des articles continu\'ee}%
+\SetString\byauthor{Ecrit par\xspace}
+\EndBabelCommands
+
+\StartBabelCommands{spanish}{extras}
+\SetString\JLArticleName{Art\'iculo\xspace}
+\SetString\articlesname{Art\'iculos} % plural
+\SetString\Pagename{P\'agina\xspace}
+\SetString\ContinuedOn{Continuo en la p\'agina\xspace}
+\SetString\ContinuedFrom{Continuado de\xspace}
+\SetString\OnPage{la \Pagename\xspace}
+\SetString\listofarticlesname{Lista de los art\'iculos}%
+\SetString\listofcontinuedarticlesname{Lista des art\'iculos continuado}%
+\SetString\byauthor{By\xspace}
+\EndBabelCommands
+
+
+\NewDocumentCommand{\DefaultTeaserTocExt}{}{%
+teaser%
+}%
+
+\NewDocumentCommand{\DefaultContinuedArticleTocExt}{}{%
+continued%
+}%
+
+
+\newlistof{article}{\DefaultTeaserTocExt}{\listofarticlesname}%
+\newlistof{contarticle}{\DefaultContinuedArticleTocExt}{\listofcontinuedarticlesname}%
+
+
+\@ifpackageloaded{bookmark}{%
+ \NewDocumentCommand{\@@jumpline@@bookmark}{O{}+mO{}}{%
+ \bookmark[#1]{#2}%
+ }%
+}{%
+ \@ifpackageloaded{hyperref}{%
+ \NewDocumentCommand{\@@jumpline@@bookmark}{O{}+mO{}}{%
+ \pdfbookmark[#1]{#2}{#3}%
+ }%
+ }{%
+ \NewDocumentCommand{\@@jumpline@@bookmark}{O{}+mO{}}{%
+ % \pdfbookmark[#1]{#2}{#3}%
+ }%
+ }%
+}
+
+
+%%%% Key - Value definitions
+
+
+
+\define@key{jumpline}{ArticleHeadline}{%
+ \def\JLKVMacroArticleHeadline{#1}%
+}%
+
+\define@key{jumpline}{toc}{%
+ \def\JLKVMacroToc{#1}%
+}%
+
+
+\define@key{jumpline}{ArticleAuthor}{%
+ \def\JLKVMacroArticleAuthor{#1}%
+}%
+
+% Length related keys
+
+\define@key{jumpline}{ArticleFullHeight}{%
+ \def\JLKVMacroArticleFullHeight{#1}%
+}%
+
+\define@key{jumpline}{TeaserHeight}[2in]{%
+ \def\JLKVMacroTeaserHeight{#1}%
+}%
+
+\define@key{jumpline}{ContinuedArticleHeight}{%
+ \def\JLKVMacroContinuedArticleHeight{#1}%
+}%
+
+\define@key{jumpline}{ContinuedFromTopskip}{%
+ \def\JLKVMacroContinuedFromTopskip{#1}%
+}%
+\define@key{jumpline}{ContinuedFromBottomskip}{%
+ \def\JLKVMacroContinuedFromBottomskip{#1}%
+}%
+
+\define@key{jumpline}{ContinuedOnTopskip}{%
+ \def\JLKVMacroContinuedOnTopskip{#1}%
+}%
+
+\define@key{jumpline}{ContinuedOnBottomskip}{%
+ \def\JLKVMacroContinuedOnBottomskip{#1}%
+}%
+
+\define@key{jumpline}{ContinuedArticleBottomskip}{%
+ \def\JLKVMacroContinuedArticleBottomskip{#1}%
+}%
+
+% Keys for optional teaser/continued article content and options
+
+\define@key{jumpline}{TeaserHeaderColor}{%
+ \def\JLKVMacroTeaserHeaderColor{#1}%
+}%
+
+\define@key{jumpline}{ContinuedHeaderColor}{%
+ \def\JLKVMacroContinuedHeaderColor{#1}%
+}%
+
+
+\define@key{jumpline}{TeaserHeaderContent}{%
+ \def\JLKVMacroTeaserHeaderContent{#1}%
+}%
+
+\define@key{jumpline}{TeaserHeaderOptions}{%
+ \def\JLKVMacroTeaserHeaderOptions{#1}%
+}%
+
+\define@key{jumpline}{ContinuedArticleHeaderContent}{%
+ \def\JLKVMacroContinuedArticleHeaderContent{#1}%
+}%
+
+
+\define@key{jumpline}{ContinuedArticleHeaderOptions}{%
+ \def\JLKVMacroContinuedArticleHeaderOptions{#1}%
+}%
+
+\define@boolkey{jumpline}{RightHere}[false]{%
+}%
+
+\define@boolkey{jumpline}{autobookmark}[true]{%
+}%
+
+\define@key{jumpline}{BookmarkEntry}{%
+ \def\JLKVMacroBookmarkEntry{#1}%
+}%
+
+
+\define@key{jumpline}{genericbookmarklevel}{%
+ \def\JLKVMacroGenericBookmarkLevel{#1}%
+}%
+
+\define@key{jumpline}{genericbookmarkdest}{%
+ \def\JLKVMacroGenericBookmarkDest{#1}%
+}%
+
+
+\define@boolkey{jumpline}{emptyarticleintoc}[false]{%
+}%
+
+\define@boolkey{jumpline}{emptyarticleinbookmarks}[false]{%
+}%
+
+
+\define@key{jumpline}{teasertoclevel}[section]{%
+\def\JLKVMacroTeaserTocLevel{#1}%
+}%
+
+\define@key{jumpline}{continuedtoclevel}[section]{%
+\def\JLKVMacroContinuedTocLevel{#1}%
+}%
+
+
+\define@key{jumpline}{teaserbookmarklevel}[section]{%
+\def\JLKVMacroTeaserBookmarkLevel{#1}%
+}%
+
+\define@key{jumpline}{continuedbookmarklevel}[section]{%
+\def\JLKVMacroContinuedBookmarkLevel{#1}%
+}%
+
+
+\define@key{jumpline}{teasertocext}{%
+\def\JLKVMacroTeaserTocExt{#1}%
+}%
+
+\define@key{jumpline}{continuedtocext}{%
+\def\JLKVMacroContinuedTocExt{#1}%
+}%
+
+\define@key{jumpline}{internalmode}{%
+\def\JLKVMacroInternalMode{#1}%
+}%
+
+
+
+\presetkeys{jumpline}{TeaserHeight=2in,
+ ContinuedOnTopskip={0.4\baselineskip},
+ ContinuedOnBottomskip={0pt},
+ ContinuedFromTopskip={0.4\baselineskip},
+ ContinuedFromBottomskip={0pt},%
+ ContinuedArticleBottomskip={20pt},%
+ TeaserHeaderColor={white},
+ ContinuedHeaderColor={white},
+ TeaserHeaderContent={},
+ ContinuedArticleHeaderContent={},
+ TeaserHeaderOptions={leftlower=0pt,rightlower=0pt,boxrule=0pt,left=0pt,right=0pt, arc=0pt,auto outer arc,colbacktitle=black,coltitle=white,toptitle=2mm,bottomtitle=2mm},
+ ContinuedArticleHeaderOptions={leftlower=0pt,rightlower=0pt,boxsep=0pt,boxrule=0pt,left=0pt,right=0pt,
+ arc=0pt,auto outer arc,colbacktitle=black,coltitle=white,toptitle=2mm,bottomtitle=2mm,righttitle=1mm,colback=black},
+ emptyarticleintoc=false,
+ emptyarticleinbookmarks=false,
+ autobookmark=true,
+ teasertoclevel=subsection,
+ continuedtoclevel=subsection,
+ teaserbookmarklevel=subsection,
+ continuedbookmarklevel=subsection,
+ teasertocext=\DefaultTeaserTocExt,
+ continuedtocext=\DefaultContinuedArticleTocExt
+ }{}%
+
+
+
+
+\newcounter{@@jumplines@@internaldocounter}%
+\newlength{\@@jumplines@@articleheight}%
+\newlength{\@@jumplines@@teaserboxheight}%
+
+
+\xdef\ContinuedArticleList{}%
+\xdef\TeaserBoxList{}%
+\xdef\JumplineOptionsList{}%
+
+\listcsadd{ContinuedArticleList}{}%
+\listcsadd{TeaserBoxList}{}%
+\listcsxadd{JumplineOptionsList}{}%
+
+
+\NewDocumentCommand\JumplineArticle{+o+o+m}{% Provide later on for a starred version
+ \refstepcounter{article}%
+ \newbox\@@jumplines@@articlebox%
+ \newbox\@@jumplines@@teaserbox%
+ \begingroup%
+ \IfValueTF{#1}{%
+ \setkeys{jumpline}{#1}%
+ }{%
+ \typeout{Nothing!}%
+ }%
+ \setlength{\@@jumplines@@teaserboxheight}{\JLKVMacroTeaserHeight}%
+ \global\setbox\@@jumplines@@articlebox=\vbox{\noindent#3}%
+ \setlength{\@@jumplines@@articleheight}{\the\ht\@@jumplines@@articlebox}%
+ \global\setbox\@@jumplines@@teaserbox=\vsplit\@@jumplines@@articlebox to \@@jumplines@@teaserboxheight% Split the input to teaser box and a continued box
+ \listcsxadd{TeaserBoxList}{\number\@@jumplines@@teaserbox}%
+ \listcsxadd{ContinuedArticleList}{\number\@@jumplines@@articlebox}%
+ % Transfer options to the child box handlers
+ \IfValueTF{#2}{%
+ \listcsxadd{JumplineOptionsList}{\unexpanded{#1},ContinuedArticleHeight={\the\ht\@@jumplines@@articlebox},ArticleFullHeight={\the\@@jumplines@@articleheight},toc={#2}}%
+ }{%
+ \listcsxadd{JumplineOptionsList}{\unexpanded{#1},ContinuedArticleHeight={\the\ht\@@jumplines@@articlebox},ArticleFullHeight={\the\@@jumplines@@articleheight}}%
+ }%
+ \endgroup%
+}%
+
+
+
+
+\NewDocumentCommand{\@@jumpline@@bookmarkwrapper}{+O{}}{%
+ \begingroup
+ \setkeys{jumpline}{#1}%
+ \gdef\JLBookmarkEntry{}% Empty macro
+ \ifdef{\JLKVMacroBookmarkEntry}{%
+ \def\JLBookmarkEntry{\JLKVMacroBookmarkEntry}%
+ }{% Nope, use (if defined !) the article headline, otherwise empty
+ \ifdef{\JLKVMacroArticleHeadline}{%
+ \gdef\JLBookmarkEntry{\JLKVMacroArticleHeadline}%
+ }{%
+ }%
+ }%
+ \ifdefempty{\JLBookmarkEntry}{%
+ \ifKV@jumpline@autobookmark % Check if autobookmark is on
+ \ifKV@jumpline@emptyarticleinbookmarks% Check if empty bookmark entry is allowed
+ \@@jumpline@@bookmark[level=\JLKVMacroGenericBookmarkLevel,dest=\JLKVMacroGenericBookmarkDest]{\thearticle}%
+ \fi%
+ \fi%
+ }{%
+ \ifKV@jumpline@autobookmark%
+ \@@jumpline@@bookmark[level=\JLKVMacroGenericBookmarkLevel,dest=\JLKVMacroGenericBookmarkDest]{\thearticle~\JLBookmarkEntry}%
+ \fi%
+ }%
+ \undef\JLBookmarkEntry%
+\endgroup%
+}%
+
+
+
+\NewDocumentCommand{\@@jumpline@@addcontentsline}{+O{}}{%
+ \begingroup
+ \setkeys{jumpline}{#1}%
+ \gdef\JLTocEntry{}% Empty macro
+ \ifdef{\JLKVMacroToc}{%
+ \gdef\JLTocEntry{\JLKVMacroToc}%
+ }{%
+ \ifdef{\JLKVMacroArticleHeadline}{%
+ \gdef\JLTocEntry{\JLKVMacroArticleHeadline}%
+ }{%
+ }%
+ }%
+ \ifdefempty{\JLTocEntry}{%
+ \ifKV@jumpline@emptyarticleintoc%
+ \addcontentsline{\csuse{JLKVMacro\JLKVMacroInternalMode TocExt}}{\csuse{JLKVMacro\JLKVMacroInternalMode TocLevel}}{\thearticle}%
+ \fi%
+ \@@jumpline@@bookmarkwrapper[genericbookmarklevel=\csuse{JLKVMacro\JLKVMacroInternalMode BookmarkLevel},genericbookmarkdest=jlarticle::\JLKVMacroInternalMode::\number\value{article},#1]%
+ }{%
+ \addcontentsline{\csuse{JLKVMacro\JLKVMacroInternalMode TocExt}}{\csuse{JLKVMacro\JLKVMacroInternalMode TocLevel}}{\thearticle~\JLTocEntry}%
+ \@@jumpline@@bookmarkwrapper[genericbookmarklevel=\csuse{JLKVMacro\JLKVMacroInternalMode BookmarkLevel},genericbookmarkdest={jlarticle::\JLKVMacroInternalMode::\number\value{article}},#1]
+ }%
+ \endgroup%
+ \undef{\JLTocEntry}%
+}%
+
+
+\NewDocumentCommand{\@@jumpline@@addcontentslineold}{+O{}}{%
+ \begingroup
+ \setkeys{jumpline}{#1}%
+ \gdef\JLTocEntry{}% Empty macro
+ \ifdef{\JLKVMacroToc}{%
+ \gdef\JLTocEntry{\JLKVMacroToc}%
+ }{%
+ \ifdef{\JLKVMacroArticleHeadline}{%
+ \gdef\JLTocEntry{\JLKVMacroArticleHeadline}%
+ }{%
+ }%
+ }%
+
+ \ifdefempty{\JLTocEntry}{%
+ \ifKV@jumpline@emptyarticleintoc%
+ \addcontentsline{\JLKVMacroTeaserTocExt}{\JLKVMacroTeaserTocLevel}{\thearticle}%
+ \fi%
+ \@@jumpline@@bookmarkwrapper[genericbookmarklevel=\JLKVMacroTeaserBookmarkLevel,genericbookmarkdest=jlarticle::teaser::\number\value{article},#1]%
+ }{%
+ \addcontentsline{\JLKVMacroTeaserTocExt}{\JLKVMacroTeaserTocLevel}{\thearticle~\JLTocEntry}%
+ \@@jumpline@@bookmarkwrapper[genericbookmarklevel=\JLKVMacroTeaserBookmarkLevel,genericbookmarkdest=jlarticle::teaser::\number\value{article},#1]
+ }%
+ \endgroup%
+ \undef{\JLTocEntry}%
+}%
+
+
+
+\NewDocumentCommand{\@@jumpline@@addcontentslinecontinuedarticle}{+O{}}{%
+ \begingroup
+ \setkeys{jumpline}{#1}%
+ \gdef\JLTocEntry{}% Empty macro
+ \ifdef{\JLKVMacroToc}{%
+ \gdef\JLTocEntry{\JLKVMacroToc}%
+ }{%
+ \ifdef{\JLKVMacroArticleHeadline}{%
+ \gdef\JLTocEntry{\JLKVMacroArticleHeadline}%
+ }{%
+ }%
+ }%
+ \ifdefempty{\JLTocEntry}{%
+ \ifKV@jumpline@emptyarticleintoc%
+ \addcontentsline{\JLKVMacroContinuedTocExt}{\JLKVMacroTeaserTocLevel}{\thearticle}%
+ \fi%
+ \@@jumpline@@bookmarkwrapper[genericbookmarklevel=\JLKVMacroContinuedBookmarkLevel,genericbookmarkdest=jlarticle::\number\value{article},#1]%
+ }{%
+ \addcontentsline{\JLKVMacroContinuedTocExt}{\JLKVMacroTeaserTocLevel}{\thearticle~\JLTocEntry}%
+ \@@jumpline@@bookmarkwrapper[genericbookmarklevel=\JLKVMacroTeaserBookmarkLevel,genericbookmarkdest=jlarticle::\number\value{article},#1]
+ }%
+ \endgroup%
+ \undef{\JLTocEntry}%
+}%
+
+
+
+\NewDocumentCommand{\DisplayJumplineTeaser}{+m+m}{%
+ \begingroup%
+ \setkeys{jumpline}{#1,internalmode={Teaser}}%
+ \begin{tcolorbox}[colback=black,code={\pgfkeysalsofrom\JLKVMacroTeaserHeaderOptions}]
+ \textcolor{\JLKVMacroTeaserHeaderColor}{\JLArticleName\thearticle~\ifdef{\JLKVMacroArticleHeadline}{\JLKVMacroArticleHeadline}{}}
+ \end{tcolorbox}%
+ % Typesetting possible additional header content
+ \ifdefempty{\JLKVMacroTeaserHeaderContent}{}{%
+ \begin{tcolorbox}[colback=white,boxrule=0pt,sharp corners,nobeforeafter]%
+ \JLKVMacroTeaserHeaderContent%
+ \end{tcolorbox}%
+ }%
+ \phantomsection%
+ \label{jlarticle::\JLKVMacroInternalMode::\number\value{article}}%
+ \hypertarget{jlarticle::\JLKVMacroInternalMode::\number\value{article}}{}%
+ \@@jumpline@@addcontentsline[#1]%
+ % Now unbox it
+ \begingroup%
+ \noindent\unvbox#2%
+ \endgroup%
+ \vskip\JLKVMacroContinuedOnTopskip%
+ \ifdef{\JLKVMacroArticleAuthor}{\raggedleft \byauthor\JLKVMacroArticleAuthor\par}{}%
+ \ifdimless{\JLKVMacroArticleFullHeight}{\JLKVMacroTeaserHeight}{%
+ }{%
+ \raggedleft\textit{\bfseries\ContinuedOn\Pagename~\pageref{jlarticle::\number\value{article}}} % Change later on to be more configurable!
+ }%
+ \vskip\JLKVMacroContinuedOnBottomskip%
+ \endgroup%
+}%
+
+
+
+\NewDocumentCommand{\DisplayContinuedArticle}{+m+m}{%
+ \begingroup%
+ \setkeys{jumpline}{#1,internalmode=Continued}%
+ \ifdimgreater{\JLKVMacroArticleFullHeight}{\JLKVMacroTeaserHeight}{%
+ \begin{tcolorbox}[code={\pgfkeysalsofrom\JLKVMacroContinuedArticleHeaderOptions}]%
+ \textcolor{\JLKVMacroContinuedHeaderColor}{{\raggedleft\ContinuedFrom\JLArticleName\ref{jlarticle::Teaser::\number\value{article}} \OnPage \pageref{jlarticle::Teaser::\number\value{article}}}}%
+ \end{tcolorbox}
+ \ifdefempty{\JLKVMacroContinuedArticleHeaderContent}{}{%
+ \noindent\begin{tcolorbox}[boxsep=0pt,boxrule=0pt,colback=white,sharp corners,nobeforeafter]%
+ \JLKVMacroContinuedArticleHeaderContent%
+ \end{tcolorbox}%
+ }%
+ \phantomsection\label{jlarticle::\number\value{article}}%
+ \hypertarget{jlarticle::\JLKVMacroInternalMode::\number\value{article}}{}%
+ \@@jumpline@@addcontentsline[#1]%
+ \noindent\unvbox#2%
+ }{}%
+ \endgroup%
+}%
+
+\NewDocumentCommand{\@@jumplines@@showcontinuedarticle}{+m}{%
+ \refstepcounter{article}%
+ \begingroup%
+ \setcounter{@@jumplines@@internaldocounter}{0}%
+ \renewcommand{\do}[1]{%
+ \stepcounter{@@jumplines@@internaldocounter}%
+ \ifnumequal{\value{@@jumplines@@internaldocounter}}{\value{article}}{%
+ \DisplayContinuedArticle{##1}{#1}%
+ \listbreak%
+ }{}}%
+ \dolistcsloop{JumplineOptionsList}%
+ \endgroup%
+}%
+
+\NewDocumentCommand{\@@jumplines@@showteaser}{+m}{%
+ \refstepcounter{article}%
+ \begingroup%
+ \setcounter{@@jumplines@@internaldocounter}{0}%
+ \renewcommand{\do}[1]{%
+ \stepcounter{@@jumplines@@internaldocounter}%
+ \ifnumequal{\value{@@jumplines@@internaldocounter}}{\value{article}}{%
+ \DisplayJumplineTeaser{##1}{#1}%
+ \listbreak%
+ }{%
+ % Do nothing in this case
+ }%
+ }% End of \do definition
+ \dolistcsloop{JumplineOptionsList}%
+ \endgroup%
+}%
+
+
+
+\NewDocumentCommand{\ShipoutArticleTeasers}{}{%
+ % Do it for safety reasons%
+ \setcounter{article}{0}%
+ \phantomsection\hypertarget{teaserarticlesstart}{}%
+ \@@jumpline@@bookmark[level=section,dest=teaserarticlesstart]{\articlesname}%
+ \forlistcsloop{\@@jumplines@@showteaser}{TeaserBoxList}%
+}%
+
+\NewDocumentCommand{\ShipoutArticleHangingArticles}{}{%
+ \setcounter{article}{0}%
+ \phantomsection\hypertarget{continuedarticlesstart}{}%
+ \@@jumpline@@bookmark[level=section,dest=continuedarticlesstart]{\listofcontinuedarticlesname}
+ \forlistcsloop{\@@jumplines@@showcontinuedarticle}{ContinuedArticleList}%
+}%
+
+
+
+
+
+\endinput \ No newline at end of file