diff options
author | Karl Berry <karl@freefriends.org> | 2015-06-15 23:27:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-06-15 23:27:53 +0000 |
commit | 2f05ae42598d627531926ff3c13d41c27a8e98d9 (patch) | |
tree | 1065b71cc049d249387d40fdcb593369f7492383 /Master | |
parent | 34a3585eef1ebe315c7e3380aab85554a1967aa1 (diff) |
jumplines (2jun15)
git-svn-id: svn://tug.org/texlive/trunk@37553 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/jumplines/README | 12 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jumplines/jumplines_doc.pdf | bin | 0 -> 141342 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/jumplines/jumplines_doc.tex (renamed from Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.tex) | 112 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jumplines/jumplines_example.pdf | bin | 111979 -> 110248 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/jumplines/jumplines_example.tex | 49 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.pdf | bin | 133629 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/latex/jumplines/jumplines.sty | 420 |
7 files changed, 471 insertions, 122 deletions
diff --git a/Master/texmf-dist/doc/latex/jumplines/README b/Master/texmf-dist/doc/latex/jumplines/README index 8e988154a2a..84c72c21ee3 100644 --- a/Master/texmf-dist/doc/latex/jumplines/README +++ b/Master/texmf-dist/doc/latex/jumplines/README @@ -1,4 +1,4 @@ -%% LaTeX package jumplines - version 0.1 (2015/01/05) +%% LaTeX package jumplines - version 0.2 (2015/06/02) %% %% ------------------------------------------------------------------------------------------- %% Copyright (c) 2015 by Dr. Christian Hupfer <christian dot hupfer at yahoo dot de> @@ -28,8 +28,8 @@ colour maintenance of the broken boxes. Directory listing: - jumplinesdoc.pdf 133629 01/05/15 02:24:09 - jumplinesdoc.tex 8945 01/05/15 02:23:54 -jumplines_example.pdf 111979 01/05/15 02:24:08 -jumplines_example.tex 1647 01/05/15 02:23:54 - jumplines.sty 7542 01/05/15 02:24:09 + jumplines_doc.pdf 141342 06/02/15 00:06:18 + jumplines_doc.tex 10822 06/02/15 00:05:11 + jumplines_example.pdf 110248 06/02/15 00:06:16 + jumplines_example.tex 2815 06/02/15 00:05:11 + jumplines.sty 17996 06/02/15 00:06:18 diff --git a/Master/texmf-dist/doc/latex/jumplines/jumplines_doc.pdf b/Master/texmf-dist/doc/latex/jumplines/jumplines_doc.pdf Binary files differnew file mode 100644 index 00000000000..e8d9e89c56a --- /dev/null +++ b/Master/texmf-dist/doc/latex/jumplines/jumplines_doc.pdf diff --git a/Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.tex b/Master/texmf-dist/doc/latex/jumplines/jumplines_doc.tex index 3be5c4ec6b8..cdc47dd7de2 100644 --- a/Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.tex +++ b/Master/texmf-dist/doc/latex/jumplines/jumplines_doc.tex @@ -1,6 +1,6 @@ %% Documentation for jumplines.sty %% -%% +%% %% %% ------------------------------------------------------------------------------------------- %% Copyright (c) 2015 by Dr. Christian Hupfer <christian dot hupfer at yahoo dot de> @@ -14,66 +14,55 @@ %% 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 `author-maintained'. +%% This work has the LPPL maintenance status `maintained'. %% %% This work consists of all files listed in README %% - -\documentclass[12pt,paper=a4]{ltxdoc} - -\usepackage[lmargin=2cm,rmargin=2cm]{geometry} +\documentclass[12pt,english]{ltxdoc} +\usepackage{scrlayer-scrpage} +\usepackage[lmargin=3cm,rmargin=3cm,a4paper]{geometry} \usepackage{savesym}% \usepackage{bbding}% \savesymbol{Cross}% \usepackage{blindtext}% -\usepackage{imakeidx}% - -\usepackage{datetime}% - -\usepackage{scrpage2}% - \usepackage{enumitem}% +\usepackage{datetime}% +\usepackage{imakeidx}% +\usepackage[babel,style=english]{csquotes} +\newcommand{\myquotes}[1]{\enquote{#1}}% -\usepackage{jumplines} +\usepackage{array}% +\usepackage[languages={spanish,french,ngerman,english}]{jumplines} -\tcbuselibrary{listingsutf8}% -\tcbuselibrary{documentation}% +\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} -\usepackage{hyperref}% -\usepackage{bookmark}% +\tcbuselibrary{documentation} +\tcbset{color command={blue}} \newcommand{\tcolorboxdoclink}{http://mirrors.ctan.org/macros/latex/contrib/tcolorbox/tcolorbox.pdf} +\newcommand{\packagename}[1]{\fbox{\textcolor{blue}{\textbf{\ding{41}~#1}}}\index{Package!#1}}% +\newcommand{\classname}[1]{\fbox{\textcolor{brown}{\textbf{\Writinghand~#1}}}\index{Class!#1}}% - - -\newcommand{\packagename}[1]{\textcolor{blue}{\textbf{\Envelope~#1}}\index{Paket!#1}}% - - -\newcommand{\MarkupPackageName}[2][lightgray]{% -\colorbox{#1}{\textcolor{black}{#2}}% -}% - -\newcommand{\MarkupCounterName}[2][yellow]{% -\colorbox{#1}{\textcolor{black}{\texttt{#2}}}% -}% - +\newcommand{\handrightnote}{\tcbdocmarginnote{\ding{43}}} \newtcolorbox{docCommandArgs}[1]{colbacktitle={blue},coltitle={white},title={Description of arguments of command \cs{#1}}} -\def\packageversion{0.1}% +\def\packageversion{0.2}% \makeindex \newcommand{\PackageDocName}{jumplines.sty}% +\hypersetup{breaklinks=true} \begin{document} +\selectlanguage{english} \mmddyyyydate @@ -85,7 +74,7 @@ \begin{tcolorbox}[boxrule=1mm,arc=4mm,colback=yellow!30!white,width=0.8\textwidth] \large \bfseries% \begin{center}% -\begin{tabular}{c}% +\begin{tabular}{C{0.7\textwidth}}% \textsc{\PackageDocName} \tabularnewline \tabularnewline Providing teaser headline articles continued later on \tabularnewline @@ -104,11 +93,10 @@ Author: Christian Hupfer\(^\mathrm{\fnsymbol{footnote}}\)% }{\makeatletter chris \renewcommand{\thefootnote}{\fnsymbol{footnote}}% \footnotetext{christian.hupfer@yahoo.de}% \makeatother - \end{center} -\tableofcontents \clearpage +\tableofcontents @@ -138,7 +126,7 @@ This is the second teaser headline, which is broken after some dummy text also\b \section{Package options}% -As of version \packageversion~ the package has no options so far. +As of version \packageversion~ the package has only the \oarg{languages} option so far. It is used to set the language of the articles. See section \ref{sec::language_support} for more information about the support for foreign languages. @@ -147,21 +135,21 @@ As of version \packageversion~ the package has no options so far. \subsection{Required packages} \begin{itemize} -\item \packagename{etex} -\item \packagename{etoolbox} -\item \packagename{xkeyval} +\item \packagename{etoolbox}% +\item \packagename{xkeyval}% \item \packagename{xparse}% \item \packagename{tcolorbox}% \item \packagename{luacolor}% +\item \packagename{hyperref}% \end{itemize} -\subsection{Incompatibilities} +Additionally, the features of \packagename{bookmark} package are used for more convenient bookmark generation if this package is loaded, otherwise it is restricted to the bookmarking capatibilities of \packagename{hyperref}. -This package does \textbf{not} work with floating contents \textbf{inside} of the articles, however, floats outside of such articles are possible. -\section{Documentation of Macros} -\tcbset{color command={blue}} +\subsection{Incompatibilities} +This package does \textbf{not} work with floating contents \textbf{inside} of the articles, however, floats outside of such articles are possible. Although it's possible to use \packagename{wrapfig} and its \docAuxEnvironment{wrapfigure} environment, it's advisable to adapt the teaser box height manually since the wrapping works but is continued later on too. +\section{Documentation of Macros} \begin{docCommand}{JumplineArticle}{\oarg{options}\marg{article content}} This provides the main command for typesetting a jumpline article. All of the article content is specified in the (2nd) mandatory argument. @@ -171,7 +159,7 @@ This provides the main command for typesetting a jumpline article. All of the ar \begin{enumerate}[label={\textcolor{blue}{\#\arabic*}}] \item \oarg{options}: - \begin{docKey}{TeaserHeight}{=\meta{true/false}}{2in} + \begin{docKey}{TeaserHeight}{=\meta{length value}}{2in} Sets the cut off value for the height of the teaser -- this is not the height of the shown teaser itself, since this involves the teaser header box and some vertical spacings above and below the heading and the teaser content. If the height of the article is smaller than the \refKey{TeaserHeight} value the full article is displayed then and not broken into two pieces. @@ -189,8 +177,17 @@ This provides the main command for typesetting a jumpline article. All of the ar This sets additional options for the display of the continued article header. All options are directly passed to the underlying \cs{tcolorbox}, see the \packagename{tcolorbox} documentation for this. This option has the same meaning to the continued article as \refKey{TeaserHeaderOptions} to the teaser of the same article. \end{docKey} + \begin{docKey}{ContinuedOnTopskip}{=\meta{length}} + This key value holds the vertical spacing between the splitted teaser and the line \textit{Continued on}. + \end{docKey} + + \begin{docKey}{ContinuedOnBottomskip}{=\meta{length}} + This key value holds the vertical spacing between the line \textit{Continued on} and the next possible teaser header. + \end{docKey} + + \begin{docKey}{ArticleAuthor}{=\meta{}}{initially unset} - This sets a (list of) the author name(s) -- it will be displayed at the bottom of the teaser only, introduced by ``\textit{By}''. + This sets a (list of) the author name(s) -- it will be displayed at the bottom of the teaser only, introduced by \myquotes{\textit{By}}. \end{docKey} @@ -219,27 +216,41 @@ This places all teasers consecutively without interruption. If this is placed af This introduces a table of the continued articles with reference to starting page of the continued article. \end{docCommand} -\begin{docCommand}{\listofarticlesname}{} +\begin{docCommand}{listofarticlesname}{} This command holds the name which is displayed as heading of the list of articles. Default value: \textbf{\listofarticlesname} \end{docCommand} -\begin{docCommand}{\listofcontinuedarticlesname} +\begin{docCommand}{listofcontinuedarticlesname}{} This command holds the name which is displayed as heading of the list of continued articles. Default value: \textbf{\listofcontinuedarticlesname} \end{docCommand} +\subsection{Counters} + +The internal counter \docCounter{article} is used internal for counting issues of the articles -- it can't be changed as of version \packageversion. \clearpage +\section{Language support}\label{sec::language_support} + +The package uses \packagename{babel} in order to provide support for foreign languages. Default language is English, as of version \packageversion~ ngerman (New German) is the only other language which is used inside the package and command translations are given. + + + + + + \section{To-Do list} \begin{itemize} \item More options for fine control of the behaviour of teasers and continued articles \item Better height management of the articles/placement on pages \item Better option handling +\item Improve support for languages other than English or German \item Bookmarks \item Better behaviour in multicol-environment \item Improve documentation + \end{itemize} If you @@ -247,11 +258,12 @@ If you \begin{itemize} \item find bugs \item errors in the documentation - \item have suggestions + \item have suggestions \item have feature requests + \item want provide or improve translations of the language specific items \end{itemize} -don't hesitate and contact me via \makeatletter christian.hupfer@siebenfelsen.de\makeatother +don't hesitate and contact me via \makeatletter christian.hupfer@yahoo.de\makeatother \clearpage @@ -264,12 +276,14 @@ to the users at tex.stackexchange.com, especially to \item Enrico Gregorio \item Joseph Wright \item David Carlisle + \item Paulo Roberto Massa Cereda + \item Werner Doe ;-) \end{itemize} for their invaluable help on many questions on macros. \vspace{2\baselineskip} -A special gratitude goes to Prof. Dr. Dr. Thomas Sturm for providing the wonderful \MarkupPackageName{tcolorbox} package which was used to +A special gratitude goes to Prof. Dr. Dr. Thomas Sturm for providing the wonderful \packagename{tcolorbox} package which was used to write this documentation. \clearpage diff --git a/Master/texmf-dist/doc/latex/jumplines/jumplines_example.pdf b/Master/texmf-dist/doc/latex/jumplines/jumplines_example.pdf Binary files differindex d43a1e93234..9701d3351d8 100644 --- a/Master/texmf-dist/doc/latex/jumplines/jumplines_example.pdf +++ b/Master/texmf-dist/doc/latex/jumplines/jumplines_example.pdf diff --git a/Master/texmf-dist/doc/latex/jumplines/jumplines_example.tex b/Master/texmf-dist/doc/latex/jumplines/jumplines_example.tex index 7e49064c6bb..feb9af63df8 100644 --- a/Master/texmf-dist/doc/latex/jumplines/jumplines_example.tex +++ b/Master/texmf-dist/doc/latex/jumplines/jumplines_example.tex @@ -1,40 +1,61 @@ -\documentclass[12pt,a4paper,twocolumn]{article} +%% jumplines_example.tex -- Example usage file +%%% +%% ------------------------------------------------------------------------------------------- +%% 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 +%% + + +\documentclass[12pt,a4paper,twocolumn,languages=english]{article} \usepackage{graphicx}% \usepackage{blindtext}% -\usepackage{jumplines} +\usepackage[languages=spanish,ngerman]{jumplines} \usepackage{hyperref} +\usepackage{bookmark} +\usepackage[babel,style=english]{csquotes} +\newcommand{\myquotes}[1]{\enquote{#1}}% \begin{document} + \listofarticle \listofcontarticle + \clearpage \JumplineArticle[TeaserHeight=2.25in,ArticleHeadline={Breaking News}]{% \Large\textbf{Nothing special on the dark side of the moon}\par \begin{center}\includegraphics[scale=0.3]{example-image-a}\end{center}\par - \begin{tabular}{|c|c|} - Hello & World\tabularnewline - World & Hello \tabularnewline - \end{tabular} - \blindtext[2] } % -\JumplineArticle[TeaserHeight=2in,ArticleAuthor={Gandalf},ContinuedOnTopskip=1cm,ContinuedOnBottomskip=2cm,TeaserHeaderContent={A short article}]{\color{red}{\blindtext[10]}}% -\JumplineArticle[TeaserHeight=2in,ContinuedArticleHeaderContent={More information}]{\textcolor{blue}{\blindtext[1]\textcolor{Green}{Showing}\blindtext[2]}}% -\JumplineArticle[TeaserHeight=3in,ArticleHeadline={\Huge Breaking News}]{\Huge \sffamily The World is a Globe\par\begin{center}\includegraphics[scale=0.3]{example-image-b}\end{center}\par +\JumplineArticle[RightHere=true,TeaserHeight=2in,ArticleAuthor={Gandalf},ContinuedOnTopskip=0.5cm,ContinuedOnBottomskip=10cm,TeaserHeaderContent={A short article}]{\color{red}{\blindtext[10]}}% +\JumplineArticle[TeaserHeight=2in,ContinuedArticleHeaderContent={More information},TeaserHeaderColor={yellow}]{\textcolor{blue}{\blindtext[1]\textcolor{Green}{Showing}\blindtext[2]}}% +\JumplineArticle[TeaserHeight=3in,ArticleHeadline={\Huge Breaking News}][Breaking News]{\Huge \sffamily The World is a Globe\par\begin{center}\includegraphics[scale=0.3]{example-image-b}\end{center}\par {\color{violet}{\( E = mc^2\)}}}% -\JumplineArticle[TeaserHeight=2in]{{{\color{brown}{\blindtext[10]}}}}% -\JumplineArticle[TeaserHeight=8in]{\textcolor{blue}{\blindtext[10]}}% -\JumplineArticle[TeaserHeight=2in]{\textcolor{Goldenrod}{\blindtext[10]}}% -\JumplineArticle[TeaserHeight=2in,ArticleAuthor={\textcolor{violet}{Some guy from the LaTeX3 - team}}]{\Huge \begin{center}\includegraphics[scale=0.2]{example-image-c}\end{center} \centering "I can't wait for \LaTeX3"} +\selectlanguage{spanish} +\JumplineArticle[TeaserHeight=2in][My Headline]{\color{brown}{\blindtext[10]}}% +\JumplineArticle[TeaserHeight=8in,emptyarticleinbookmarks=true]{\textcolor{blue}{\blindtext[10]}}% +\JumplineArticle[TeaserHeight=2in,ArticleHeadline={A golden rod text},BookmarkEntry={\textcolor{GoldenRod}{Golden rod}}]{\textcolor{Goldenrod}{\blindtext[10]}}% +\JumplineArticle[TeaserHeight=2in,emptyarticleintoc=true,emptyarticleinbookmarks=true,autobookmark=false,ArticleAuthor={\textcolor{violet}{Some guy from the LaTeX3 - team}}]{\Huge \begin{center}\includegraphics[scale=0.2]{example-image-c}\end{center} \centering ``I can't wait for \LaTeX3 -- it's so exciting''} diff --git a/Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.pdf b/Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.pdf Binary files differdeleted file mode 100644 index ab2bfa6d4a1..00000000000 --- a/Master/texmf-dist/doc/latex/jumplines/jumplinesdoc.pdf +++ /dev/null diff --git a/Master/texmf-dist/tex/latex/jumplines/jumplines.sty b/Master/texmf-dist/tex/latex/jumplines/jumplines.sty index b63849bbc71..bc72672dfe5 100644 --- a/Master/texmf-dist/tex/latex/jumplines/jumplines.sty +++ b/Master/texmf-dist/tex/latex/jumplines/jumplines.sty @@ -1,34 +1,145 @@ \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{jumplines}[2015/01/05 v0.1 -- Teaser/Continued articles with hyperlinks] +\ProvidesPackage{jumplines}[2015/06/02 v0.2 -- Teaser/Continued articles with hyperlinks] %%% -%% License: LaTeX Project Public License version 1.3 -%% Copyright (2015) Dr. Christian Hupfer -%% Author: Christian Hupfer christian.hupfer@yahoo.de +%% ------------------------------------------------------------------------------------------- +%% 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{etex}% \RequirePackage{etoolbox}[2011/01/03 2.2]% \RequirePackage{xparse}% \RequirePackage{xkeyval}[2012/10/14 v2.6b]% -\RequirePackage[svgnames]{xcolor} +\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% +}% -%%%% Key - Value definitions +\NewDocumentCommand{\DefaultContinuedArticleTocExt}{}{% +continued% +}% -\NewDocumentCommand{\listofarticlesname}{}{List of Articles}% -\NewDocumentCommand{\listofcontinuedarticlesname}{}{List of continued Articles}% -\newlistof{article}{art}{\listofarticlesname}% -\newlistof{contarticle}{cont}{\listofcontinuedarticlesname}% +\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 @@ -36,6 +147,11 @@ \def\JLKVMacroArticleHeadline{#1}% }% +\define@key{jumpline}{toc}{% + \def\JLKVMacroToc{#1}% +}% + + \define@key{jumpline}{ArticleAuthor}{% \def\JLKVMacroArticleAuthor{#1}% }% @@ -75,6 +191,15 @@ % 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}% }% @@ -92,22 +217,93 @@ \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={}, - TeaserHeaderOptions={breakable,leftlower=0pt,rightlower=0pt,boxrule=0pt,left=0pt,right=0pt, arc=0pt,auto outer arc,colbacktitle=black,coltitle=white,toptitle=2mm,bottomtitle=2mm}, - ContinuedArticleHeaderOptions={breakable,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} + 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}% @@ -121,11 +317,10 @@ \listcsxadd{JumplineOptionsList}{}% - -\NewDocumentCommand\JumplineArticle{+o+m}{% Provide later on for a starred version +\NewDocumentCommand\JumplineArticle{+o+o+m}{% Provide later on for a starred version \refstepcounter{article}% - \newbox\articlebox% - \newbox\teaserbox% + \newbox\@@jumplines@@articlebox% + \newbox\@@jumplines@@teaserbox% \begingroup% \IfValueTF{#1}{% \setkeys{jumpline}{#1}% @@ -133,43 +328,158 @@ \typeout{Nothing!}% }% \setlength{\@@jumplines@@teaserboxheight}{\JLKVMacroTeaserHeight}% - \global\setbox\articlebox=\vbox{\noindent#2}% - \setlength{\@@jumplines@@articleheight}{\the\ht\articlebox}% - \global\setbox\teaserbox=\vsplit\articlebox to \@@jumplines@@teaserboxheight% Split the input to teaser box and a continued box - \listcsxadd{TeaserBoxList}{\number\teaserbox}% - \listcsxadd{ContinuedArticleList}{\number\articlebox}% + \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 - \listcsxadd{JumplineOptionsList}{\unexpanded{#1},ContinuedArticleHeight={\the\ht\articlebox},ArticleFullHeight={\the\@@jumplines@@articleheight}}% + \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}% - \begin{tcolorbox}[title={Article \thearticle~\ifdef{\JLKVMacroArticleHeadline}{\JLKVMacroArticleHeadline}{}}, - code={\pgfkeysalsofrom\JLKVMacroTeaserHeaderOptions}] - \ifdef{\JLKVMacroTeaserHeaderContent}{% - \JLKVMacroTeaserHeaderContent}{}% + \setkeys{jumpline}{#1,internalmode={Teaser}}% + \begin{tcolorbox}[colback=black,code={\pgfkeysalsofrom\JLKVMacroTeaserHeaderOptions}] + \textcolor{\JLKVMacroTeaserHeaderColor}{\JLArticleName\thearticle~\ifdef{\JLKVMacroArticleHeadline}{\JLKVMacroArticleHeadline}{}} \end{tcolorbox}% - \phantomsection% - \label{jlarticle::teaser::\number\value{article}}% - \ifdef{\JLKVMacroArticleHeadline}{% - \addcontentsline{art}{section}{\thearticle~\JLKVMacroArticleHeadline} - }{% - \addcontentsline{art}{section}{\thearticle}% + % 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 -% \colorlet{saved}{.} - \begingroup + \begingroup% \noindent\unvbox#2% - \endgroup -% \color{saved} + \endgroup% \vskip\JLKVMacroContinuedOnTopskip% - \ifdef{\JLKVMacroArticleAuthor}{\raggedleft By \JLKVMacroArticleAuthor\par}{}% + \ifdef{\JLKVMacroArticleAuthor}{\raggedleft \byauthor\JLKVMacroArticleAuthor\par}{}% \ifdimless{\JLKVMacroArticleFullHeight}{\JLKVMacroTeaserHeight}{% }{% - \raggedleft\textit{\bfseries Continued on Page \pageref{jlarticle::\number\value{article}}} % Change later on to be more configurable! + \raggedleft\textit{\bfseries\ContinuedOn\Pagename~\pageref{jlarticle::\number\value{article}}} % Change later on to be more configurable! }% \vskip\JLKVMacroContinuedOnBottomskip% \endgroup% @@ -179,19 +489,19 @@ \NewDocumentCommand{\DisplayContinuedArticle}{+m+m}{% \begingroup% - \setkeys{jumpline}{#1}% + \setkeys{jumpline}{#1,internalmode=Continued}% \ifdimgreater{\JLKVMacroArticleFullHeight}{\JLKVMacroTeaserHeight}{% - \begin{tcolorbox}[title={\raggedleft Continued from Article \ref{jlarticle::teaser::\number\value{article}} on page \pageref{jlarticle::teaser::\number\value{article}}},code={\pgfkeysalsofrom\JLKVMacroContinuedArticleHeaderOptions}]% - \ifdef{\JLKVMacroContinuedArticleHeaderContent}{% - \JLKVMacroContinuedArticleHeaderContent}{% - }% - \end{tcolorbox}% - \phantomsection\label{jlarticle::\number\value{article}}% - \ifdef{\JLKVMacroArticleHeadline}{% - \addcontentsline{cont}{section}{\thearticle~\JLKVMacroArticleHeadline}% - }{% - \addcontentsline{cont}{section}{\thearticle}% + \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% @@ -233,11 +543,15 @@ \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}% }% |