2018-05-20 08:17:50 +00:00
|
|
|
%% Copyright (C) 2018 The University of Sheffield
|
2019-07-28 11:01:58 +00:00
|
|
|
%% 2018 The University of Paris-Saclay
|
2019-06-29 10:16:17 +00:00
|
|
|
%% 2019 The University of Exeter
|
2018-05-20 08:17:50 +00:00
|
|
|
%%
|
|
|
|
%% License:
|
|
|
|
%% This program can be redistributed and/or modified under the terms
|
|
|
|
%% of the LaTeX Project Public License Distributed from CTAN
|
|
|
|
%% archives in directory macros/latex/base/lppl.txt; either
|
2019-08-15 13:52:15 +00:00
|
|
|
%% version 1.3c of the License, or (at your option) any later version.
|
2018-05-20 08:17:50 +00:00
|
|
|
%% OR
|
|
|
|
%% The 2-clause BSD-style license.
|
2019-08-15 13:52:15 +00:00
|
|
|
%%
|
|
|
|
%% SPDX-License-Identifier: LPPL-1.3c+ OR BSD-2-Clause
|
2018-05-20 08:17:50 +00:00
|
|
|
|
|
|
|
\NeedsTeXFormat{LaTeX2e}\relax
|
2018-06-08 13:30:48 +00:00
|
|
|
\ProvidesPackage{DOF-scholarly_paper}
|
2020-02-17 22:07:34 +00:00
|
|
|
[2020/01/14 Unreleased/Isabelle2019%
|
2018-05-20 08:17:50 +00:00
|
|
|
Document-Type Support Framework for Isabelle (LNCS).]
|
|
|
|
|
2019-03-30 23:40:01 +00:00
|
|
|
\RequirePackage{DOF-COL}
|
2018-06-14 21:27:01 +00:00
|
|
|
\RequirePackage{ifthen}
|
2018-09-18 13:29:54 +00:00
|
|
|
|
2018-10-30 00:27:24 +00:00
|
|
|
\RequirePackage{ifthen}
|
|
|
|
\newboolean{DOF@scholarlypaper@force}
|
|
|
|
\DeclareOption{force}{\setboolean{DOF@scholarlypaper@force}{true}}
|
|
|
|
|
|
|
|
\ProcessOptions\relax
|
2018-09-18 13:29:54 +00:00
|
|
|
|
2018-10-30 00:27:24 +00:00
|
|
|
\ifthenelse{\boolean{DOF@scholarlypaper@force}}{%
|
|
|
|
}{%
|
2018-06-08 13:30:48 +00:00
|
|
|
\@ifclassloaded{llncs}%
|
|
|
|
{}%
|
2018-06-14 21:27:01 +00:00
|
|
|
{%
|
|
|
|
\@ifclassloaded{scrartcl}%
|
|
|
|
{%
|
|
|
|
\newcommand{\institute}[1]{}%
|
|
|
|
\newcommand{\inst}[1]{}%
|
|
|
|
\newcommand{\orcidID}[1]{}%
|
|
|
|
\newcommand{\email}[1]{}%
|
|
|
|
}%
|
2019-01-08 20:52:37 +00:00
|
|
|
{%
|
|
|
|
\@ifclassloaded{lipics-v2019}%
|
|
|
|
{%
|
2019-06-29 10:16:17 +00:00
|
|
|
\newcommand{\institute}[1]{}%
|
|
|
|
\newcommand{\inst}[1]{}%
|
|
|
|
\newcommand{\orcidID}[1]{}%
|
|
|
|
\newcommand{\email}[1]{}%
|
|
|
|
}%
|
|
|
|
{%
|
|
|
|
\@ifclassloaded{eptcs}%
|
|
|
|
{%
|
|
|
|
\newcommand{\inst}[1]{}%
|
|
|
|
\newcommand{\orcidID}[1]{}%
|
|
|
|
}%
|
|
|
|
{%
|
|
|
|
\PackageError{DOF-scholarly_paper}
|
|
|
|
{Scholarly Paper only supports LNCS or scrartcl as document class.}
|
|
|
|
{}\stop%
|
|
|
|
}%
|
2019-01-08 20:52:37 +00:00
|
|
|
}%
|
|
|
|
}
|
2018-06-14 21:27:01 +00:00
|
|
|
}
|
2018-10-30 00:27:24 +00:00
|
|
|
}
|
2018-09-18 13:29:54 +00:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% begin: title*
|
2018-10-01 23:36:55 +00:00
|
|
|
\NewEnviron{isamarkuptitle*}[1][]{\isaDof[env={title},#1]{\BODY}}
|
2019-03-30 16:36:25 +00:00
|
|
|
\newisadof{title.scholarly_paper.title}%
|
2018-09-18 13:29:54 +00:00
|
|
|
[label=,type=%
|
2019-03-31 16:47:10 +00:00
|
|
|
,scholarly_paper.title.short_title=%
|
2018-09-18 13:29:54 +00:00
|
|
|
][1]{%
|
|
|
|
\immediate\write\@auxout{\noexpand\title{#1}}%
|
2018-05-20 08:17:50 +00:00
|
|
|
}
|
2018-09-18 13:29:54 +00:00
|
|
|
% end: title*
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2018-05-20 08:17:50 +00:00
|
|
|
|
2018-09-18 13:29:54 +00:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% begin: subtitle*
|
2018-10-01 23:36:55 +00:00
|
|
|
\NewEnviron{isamarkupsubtitle*}[1][]{\isaDof[env={subtitle},#1]{\BODY}}
|
2019-03-30 16:36:25 +00:00
|
|
|
\newisadof{subtitle.scholarly_paper.subtitle}%
|
2018-09-18 13:29:54 +00:00
|
|
|
[label=,type=%
|
2019-03-31 16:47:10 +00:00
|
|
|
,scholarly_paper.subtitle.abbrev=%
|
2018-09-18 13:29:54 +00:00
|
|
|
][1]{%
|
|
|
|
\immediate\write\@auxout{\noexpand\subtitle{#1}}%
|
2018-05-20 08:17:50 +00:00
|
|
|
}
|
2018-09-18 13:29:54 +00:00
|
|
|
% end: subtitle*
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2018-05-20 08:17:50 +00:00
|
|
|
|
2018-09-18 13:29:54 +00:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% begin: scholarly_paper.author
|
2018-05-20 08:17:50 +00:00
|
|
|
\def\dof@author{}%
|
|
|
|
\def\dof@affiliation{}%
|
|
|
|
|
2019-01-09 10:05:12 +00:00
|
|
|
\newcommand{\DOFauthor}{\author{\dof@author}}
|
|
|
|
\newcommand{\DOFinstitute}{\institute{\dof@affiliation}}
|
|
|
|
|
2018-05-20 08:17:50 +00:00
|
|
|
\AtBeginDocument{%
|
2019-01-09 10:05:12 +00:00
|
|
|
\DOFauthor
|
|
|
|
\DOFinstitute
|
2018-09-18 13:29:54 +00:00
|
|
|
}
|
2018-05-20 08:17:50 +00:00
|
|
|
|
|
|
|
\def\leftadd#1#2{\expandafter\leftaddaux\expandafter{#1}{#2}{#1}}
|
|
|
|
\def\leftaddaux#1#2#3{\gdef#3{#1#2}}
|
|
|
|
|
|
|
|
\newcounter{dof@cnt@author}
|
|
|
|
\newcommand{\addauthor}[1]{%
|
|
|
|
\ifthenelse{\equal{\dof@author}{}}{%
|
|
|
|
\gdef\dof@author{#1}%
|
|
|
|
}{%
|
|
|
|
\leftadd\dof@author{\protect\and #1}%
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
\newcommand{\addaffiliation}[1]{%
|
|
|
|
\ifthenelse{\equal{\dof@affiliation}{}}{%
|
|
|
|
\gdef\dof@affiliation{#1}%
|
|
|
|
}{%
|
|
|
|
\leftadd\dof@affiliation{\protect\and #1}%
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-03-30 16:36:25 +00:00
|
|
|
\provideisadof{text.scholarly_paper.author}%
|
2018-09-18 13:29:54 +00:00
|
|
|
[label=,type=%
|
|
|
|
,scholarly_paper.author.email=%
|
|
|
|
,scholarly_paper.author.affiliation=%
|
|
|
|
,scholarly_paper.author.orcid=%
|
2019-03-31 16:47:10 +00:00
|
|
|
,scholarly_paper.author.http_site=%
|
2018-09-18 13:29:54 +00:00
|
|
|
][1]{%
|
2018-05-20 08:17:50 +00:00
|
|
|
\stepcounter{dof@cnt@author}
|
2018-09-18 13:29:54 +00:00
|
|
|
\def\dof@a{\commandkey{scholarly_paper.author.affiliation}}
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.author.orcid}}{}}{%
|
2018-05-20 08:17:50 +00:00
|
|
|
\immediate\write\@auxout{\noexpand\addauthor{#1\noexpand\inst{\thedof@cnt@author}}}%
|
|
|
|
}{%
|
2018-09-18 13:29:54 +00:00
|
|
|
\immediate\write\@auxout{\noexpand\addauthor{#1\noexpand\inst{\thedof@cnt@author}\orcidID{\commandkey{scholarly_paper.author.orcid}}}}%
|
2018-05-20 08:17:50 +00:00
|
|
|
}
|
2018-09-18 13:29:54 +00:00
|
|
|
\protected@write\@auxout{}{\string\addaffiliation{\dof@a\\\string\email{\commandkey{scholarly_paper.author.email}}}}%
|
2018-05-20 08:17:50 +00:00
|
|
|
}
|
2018-09-18 13:29:54 +00:00
|
|
|
% end: scholarly_paper.author
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2018-05-20 08:17:50 +00:00
|
|
|
|
2018-09-18 13:29:54 +00:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% begin: scholarly_paper.abstract
|
2019-04-06 18:47:44 +00:00
|
|
|
\providecommand{\keywords}[1]{\mbox{}\\[2ex]\mbox{}\noindent{\textbf{Keywords:}} #1}
|
2019-03-30 16:36:25 +00:00
|
|
|
\newisadof{text.scholarly_paper.abstract}%
|
2018-09-18 13:29:54 +00:00
|
|
|
[label=,type=%
|
|
|
|
,scholarly_paper.abstract.keywordlist=%
|
|
|
|
][1]{%
|
|
|
|
\begin{isamarkuptext}%
|
|
|
|
\begin{abstract}%
|
|
|
|
#1%
|
2019-01-09 11:09:21 +00:00
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.abstract.keywordlist}}{}}{}{%
|
|
|
|
\keywords{\commandkey{scholarly_paper.abstract.keywordlist}}%
|
2018-09-18 13:29:54 +00:00
|
|
|
}%
|
|
|
|
\end{abstract}%
|
|
|
|
\end{isamarkuptext}%
|
2018-05-20 08:17:50 +00:00
|
|
|
}
|
2020-02-17 22:07:34 +00:00
|
|
|
|
|
|
|
|
2018-09-18 13:29:54 +00:00
|
|
|
% end: scholarly_paper.abstract
|
2020-04-08 21:29:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\newisadof{text.scholarly_paper.math_content}%
|
|
|
|
[label=,type=%
|
|
|
|
, scholarly_paper.math_content.short_name =%
|
|
|
|
, scholarly_paper.math_content.mcc =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, Isa_COL.text_element.referentiable =%
|
|
|
|
, Isa_COL.text_element.variants =%
|
|
|
|
, scholarly_paper.text_section.main_author =%
|
|
|
|
, scholarly_paper.text_section.fixme_list =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, scholarly_paper.technical.definition_list =%
|
|
|
|
, scholarly_paper.technical.status =%
|
|
|
|
]
|
|
|
|
[1]
|
|
|
|
{%
|
|
|
|
\begin{isamarkuptext}%
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.math_content.mcc}}{def}}{
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.math_content.short_name}} {} }
|
|
|
|
{\begin{definition} \label{\commandkey{label}} #1 \end{definition} }
|
|
|
|
{\begin{definition} [\commandkey{scholarly_paper.math_content.short_name}]
|
|
|
|
\label{\commandkey{label}} #1
|
|
|
|
\end{definition}}
|
|
|
|
}{%
|
|
|
|
#1%
|
|
|
|
}%
|
|
|
|
\end{isamarkuptext}%
|
|
|
|
}
|
|
|
|
|
|
|
|
% end: scholarly_paper.abstract
|
|
|
|
|
|
|
|
|
2018-09-18 13:29:54 +00:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2020-02-17 22:07:34 +00:00
|
|
|
\newisadof{text.scholarly_paper.definition}%
|
|
|
|
[label=,type=%
|
|
|
|
, scholarly_paper.definition.tag =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, Isa_COL.text_element.referentiable =%
|
|
|
|
, Isa_COL.text_element.variants =%
|
|
|
|
, scholarly_paper.text_section.main_author =%
|
|
|
|
, scholarly_paper.text_section.fixme_list =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, scholarly_paper.technical.definition_list =%
|
|
|
|
, scholarly_paper.technical.status =%
|
|
|
|
]
|
|
|
|
[1]
|
|
|
|
{%
|
|
|
|
\begin{isamarkuptext}%
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.technical.status}}{semiformal}}{
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.definition.tag}} {} }
|
|
|
|
{\begin{definition} \label{\commandkey{label}} #1 \end{definition} }
|
|
|
|
{\begin{definition} [\commandkey{scholarly_paper.definition.tag}] \label{\commandkey{label}} #1 \end{definition}}
|
|
|
|
}{%
|
|
|
|
#1%
|
|
|
|
}%
|
|
|
|
\end{isamarkuptext}%
|
|
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2020-02-19 17:13:33 +00:00
|
|
|
\newisadof{text.scholarly_paper.lemma}%
|
|
|
|
[label=,type=%
|
|
|
|
, scholarly_paper.lemma.tag =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, Isa_COL.text_element.referentiable =%
|
|
|
|
, Isa_COL.text_element.variants =%
|
|
|
|
, scholarly_paper.text_section.main_author =%
|
|
|
|
, scholarly_paper.text_section.fixme_list =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, scholarly_paper.technical.definition_list =%
|
|
|
|
, scholarly_paper.technical.status =%
|
|
|
|
]
|
|
|
|
[1]
|
|
|
|
{%
|
|
|
|
\begin{isamarkuptext}%
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.technical.status}}{semiformal}}{
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.lemma.tag}} {} }
|
|
|
|
{\begin{lemma} \label{\commandkey{label}} #1 \end{lemma} }
|
2020-02-25 11:38:59 +00:00
|
|
|
{\begin{lemma} [\commandkey{scholarly_paper.theorem.tag}] \label{\commandkey{label}} #1 \end{lemma}}
|
2020-02-19 17:13:33 +00:00
|
|
|
}{%
|
|
|
|
#1%
|
|
|
|
}%
|
|
|
|
\end{isamarkuptext}%
|
|
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2020-02-25 11:38:59 +00:00
|
|
|
\newisadof{text.scholarly_paper.theorem}%
|
2020-02-19 17:13:33 +00:00
|
|
|
[label=,type=%
|
2020-02-25 11:38:59 +00:00
|
|
|
, scholarly_paper.theorem.tag =%
|
2020-02-19 17:13:33 +00:00
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, Isa_COL.text_element.referentiable =%
|
|
|
|
, Isa_COL.text_element.variants =%
|
|
|
|
, scholarly_paper.text_section.main_author =%
|
|
|
|
, scholarly_paper.text_section.fixme_list =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, scholarly_paper.technical.definition_list =%
|
|
|
|
, scholarly_paper.technical.status =%
|
|
|
|
]
|
|
|
|
[1]
|
|
|
|
{%
|
|
|
|
\begin{isamarkuptext}%
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.technical.status}}{semiformal}}{
|
2020-02-25 11:38:59 +00:00
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.theorem.tag}} {} }
|
|
|
|
{\begin{theorem} \label{\commandkey{label}} #1 \end{theorem} }
|
|
|
|
{\begin{theorem} [\commandkey{scholarly_paper.theorem.tag}] \label{\commandkey{label}} #1 \end{theorem}}
|
2020-02-19 17:13:33 +00:00
|
|
|
}{%
|
|
|
|
#1%
|
|
|
|
}%
|
|
|
|
\end{isamarkuptext}%
|
|
|
|
}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
2020-02-17 22:07:34 +00:00
|
|
|
\newisadof{text.scholarly_paper.example}%
|
|
|
|
[label=,type=%
|
|
|
|
, scholarly_paper.example.tag =%
|
|
|
|
, Isa_COL.text_element.level =%
|
|
|
|
, Isa_COL.text_element.referentiable =%
|
|
|
|
, Isa_COL.text_element.variants =%
|
|
|
|
, scholarly_paper.text_section.main_author =%
|
|
|
|
, scholarly_paper.text_section.fixme_list =%
|
|
|
|
, scholarly_paper.technical.definition_list =%
|
|
|
|
, scholarly_paper.technical.status =%
|
|
|
|
]
|
|
|
|
[1]
|
|
|
|
{%
|
|
|
|
\begin{isamarkuptext}%
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.technical.status}}{semiformal}}{
|
|
|
|
\ifthenelse{\equal{\commandkey{scholarly_paper.example.tag}} {} }
|
|
|
|
{\begin{example} \label{\commandkey{label}} #1 \end{example} }
|
|
|
|
{\begin{example} [\commandkey{scholarly_paper.example.tag}] \label{\commandkey{label}} #1 \end{example}}
|
|
|
|
}{%
|
|
|
|
#1%
|
|
|
|
}%
|
|
|
|
\end{isamarkuptext}%
|
|
|
|
}
|