summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-11-05 03:02:04 +0000
committerNorbert Preining <norbert@preining.info>2020-11-05 03:02:04 +0000
commitb8f26d1a3ca0ba4b66477af6bd2cff2071ddd0fc (patch)
treef4f4a5d17850094c77b0ef61d004cd2532b9ad9e /macros/latex/contrib
parent07794af1099869d326e5904c42f1224de759fd56 (diff)
CTAN sync 202011050302
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/README.md2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/american-sbl.lbx1
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.pdfbin340521 -> 343541 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.tex8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.pdfbin58351 -> 60288 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.tex58
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.bib11
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.def525
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.pdfbin158695 -> 164804 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.tex110
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/english-sbl.lbx3
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/german-sbl.lbx1
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.pdfbin78787 -> 78804 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.sty16
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.tex7
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.bbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.cbx116
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.dbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-sbl/spanish-sbl.lbx3
-rw-r--r--macros/latex/contrib/fgruler/fgruler.dtx547
-rw-r--r--macros/latex/contrib/fgruler/fgruler.pdfbin283694 -> 421392 bytes
-rw-r--r--macros/latex/contrib/grant/LICENSE2
-rw-r--r--macros/latex/contrib/grant/VERSION1
-rw-r--r--macros/latex/contrib/grant/grant.dtx312
-rw-r--r--macros/latex/contrib/grant/grant.ins22
-rw-r--r--macros/latex/contrib/grant/grant.pdfbin115574 -> 115908 bytes
-rw-r--r--macros/latex/contrib/xltabular/Changes1
-rw-r--r--macros/latex/contrib/xltabular/xltabular-doc.pdfbin71437 -> 71248 bytes
-rw-r--r--macros/latex/contrib/xltabular/xltabular.sty18
29 files changed, 1244 insertions, 528 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/README.md
index 71a40a6784..fefcb07149 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/README.md
@@ -50,7 +50,7 @@ The following packages are required:
## Licence
```
-Copyright 2015-2018 David Purton
+Copyright 2015-2020 David Purton
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/american-sbl.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/american-sbl.lbx
index 95f47d3d09..bdb38b9a6a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/american-sbl.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/american-sbl.lbx
@@ -25,4 +25,5 @@
\iffieldbibstring{#1}
{\bibstring{\thefield{#1}}}
{\dateeraprintpre{#1}\stripzeros{\thefield{#1}}}}%
+ \DeclarePunctuationPairs{comma}{*!?}%
}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.pdf
index 08429afbd5..00501af9d4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.tex b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.tex
index d9fad6d8ab..c7cbc4bcd4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-examples.tex
@@ -11,7 +11,7 @@
\usepackage{listings}
\usepackage{imakeidx}
\makeindex[title=Author Index,intoc,options=-q]
-\usepackage[style=sbl,indexing=cite,idemtracker=false,ibidtracker=false]{biblatex}
+\usepackage[style=sbl,indexing=cite]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-sbl.bib}
@@ -176,7 +176,7 @@
revdauthor,revdtitle,revdeditor,institution,type,shorthand,xref,%
note,eprintdate,volumes,shortmaintitle,options,eprintclass,relatedoptions,%
editortype,crossref,editora,editorb,editorc,editoratype,editorbtyle,%
- editorctype,entrysubtype,sortkey,titleaddon,witheditor,witheditortype,%
+ editorctype,entrysubtype,sorttitle,titleaddon,witheditor,witheditortype,%
withtranslator,withtranslatortype,eventtitle,venue,eventdate,shortauthor%
},
sensitive=false,
@@ -2117,7 +2117,6 @@ Than the Author}
date = {1994},
shorthand = {ANF},
options = {useeditor=false,skipbiblist},
- sortkey = {Ante-Nicene Fathers},
xref = {ANF:abbreviation}
}
@@ -2155,7 +2154,6 @@ Than the Author}
date = {1994},
shorthand = {NPNF\textsuperscript{1}},
options = {useeditor=false,skipbiblist},
- sortkey = {Nicene and Post-Nicene Fathers, Series 1},
xref = {NPNF1:abbreviation}
}
@@ -2193,7 +2191,7 @@ Than the Author}
editor = {Migne, J.-P.},
volumes = {217},
location = {Paris},
- date = {1844/1864},
+ date = {1844/1855},
shorthand = {PL}
}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.pdf
index 95b796a2ea..62d82711bd 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.tex b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.tex
index 011d44dba7..11c969e09a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl-ibid.tex
@@ -9,7 +9,7 @@
\usepackage{imakeidx}
\makeindex[title=Author Index,intoc,options=-q]
\usepackage{hyperref}
-\usepackage[style=sbl,indexing=cite]{biblatex}
+\usepackage[style=sbl,indexing=cite,ibidtracker=constrict,idemtracker=citation]{biblatex}
\addbibresource{biblatex-sbl.bib}
\setmonofont{DejaVu Sans Mono}[Scale=MatchLowercase]
@@ -147,16 +147,25 @@
\maketitle
This file tests the behaviour of the various options related to using
-\emph{ibidem} and \emph{idem} in Biblatex-SBL.
+\emph{ibidem} and \emph{idem} in Biblatex-SBL. By default neither
+\emph{ibidem} nor \emph{idem} are used.\footnote{See
+\url{https://sblhs2.com/2018/02/01/cms-update-ibid/}.} When referencing
+multiple works by the same author within a footnote, subsequent references use
+only the family name of the author.\footnote{See
+\url{https://sblhs2.com/2016/10/11/placement-citations-traditional/}.} This
+corresponds to the \verb|biblatex| option \verb|idemtracker=sbl|.
-\section*{Default \emph{ibidem} tracking}
+\section*{Using \emph{ibidem}}
By default ibid.\@ is not used across page breaks and \emph{ibidem} is taken
-to mean ‘same author + same title’. See \texttt{biblatex-sbl.pdf} for a
-description of the options \texttt{ibidtracker} can take.
+to mean ‘same author + same title + same page’.\footnote{See
+\url{https://sblhs2.com/2017/01/05/subsequent-bibliographic-references/}.} See
+\texttt{biblatex-sbl.pdf} for a description of the options
+\texttt{ibidtracker} can take. It is recommended to use
+\verb|ibidtracker=constrict| for SBL compliance.
\begin{biboutput}
- \samplemacro{\textbackslash usepackage[style=sbl]\{biblatex\}}
+ \samplemacro{\textbackslash usepackage[style=sbl,ibidtracker=constrict]\{biblatex\}}
\samplecite{1}[127]{talbert:1992}
\samplecite{2}[22]{talbert:1992}
\samplecite{3}[22]{talbert:1992}
@@ -167,17 +176,15 @@ description of the options \texttt{ibidtracker} can take.
\samplecite{6}[22]{talbert:1992}
\end{biboutput}
-\section*{Not tracking \emph{ibidem} across pages}
+\section*{Using \emph{ibidem} across pages}
-\boolfalse{pagetracker}
-
-Set the \texttt{pagetracker} option to \texttt{false} to allow that the first
+Set the \texttt{pagetracker} option to \texttt{false} to allow the first
citation on a page to be ibid.
\boolfalse{pagetracker}
\begin{biboutput}
- \samplemacro{\textbackslash usepackage[style=sbl,pagetracker=false]\{biblatex\}}
+ \samplemacro{\textbackslash usepackage[style=sbl,ibidtracker=constrict,pagetracker=false]\{biblatex\}}
\samplecite{7}[53]{scott+etal:1993}
\samplecite{8}[42]{scott+etal:1993}
\samplemacro{\textbackslash clearpage}
@@ -185,43 +192,44 @@ citation on a page to be ibid.
\samplecite{9}[42]{scott+etal:1993}
\end{biboutput}
-\section*{\emph{Ibidem} meaning ‘same author + same title + same page’}
+\section*{\emph{Ibidem} meaning ‘same author + same title’}
-Turn on the \texttt{ibidpage} option to indicate that \emph{ibidem} should
-mean ‘same author + same title + same page’.
+Turn off the \texttt{ibidpage} option to indicate that \emph{ibidem} should
+mean ‘same author + same title’.
\makeatletter
-\let\blx@imc@ifloccit\blx@ifloccit@global
-\let\blx@loccittracker\blx@loccittracker@global
-\let\blx@loccitreset\blx@loccitreset@global
+\blx@opt@loccittracker@false
\makeatother
\begin{biboutput}
- \samplemacro{\textbackslash usepackage[style=sbl,ibidpage]\{biblatex\}}
+ \samplemacro{\textbackslash usepackage[style=sbl,ibidtracker=constrict,ibidpage=false]\{biblatex\}}
\samplecite{10}[28]{egger:1996}
\samplecite{11}[28]{egger:1996}
\samplecite{12}[291]{egger:1996}
\end{biboutput}
-\section*{Default \emph{idem} tracking}
+\section*{Using \emph{idem}}
-By default \emph{idem} is used. \emph{Idem} tracking is controlled using the
-\texttt{idemtracker} option. See \texttt{biblatex-sbl.pdf} for a description
-of the options \texttt{idemtracker} can take.
+By default \emph{idem} is not used. Rather only the family name of the author
+is given for subsequent references when works by the same author are cited
+within a single footnote. \emph{Idem} tracking is controlled using
+the \texttt{idemtracker} option. See \texttt{biblatex-sbl.pdf} for a
+description of the options \texttt{idemtracker} can take. To comply with SBL
+style, \verb|idemtracker=citation| should be used.\footnote{See
+\url{https://sblhs2.com/2017/01/10/idem/}.}
\begin{biboutput}
- \samplemacro{\textbackslash usepackage[style=sbl]\{biblatex\}}
- \makeatletter\blx@opt@idemtracker@constrict\makeatother
+ \samplemacro{\textbackslash usepackage[style=sbl,idemtracker=citation]\{biblatex\}}
\samplemacro{\textbackslash autocites[35]\{vanseters:1997\}\{vanseters:1995\}}
\color{biblatex-colour}
\hspace*{\bibindent}13.~\cites[35]{vanseters:1997}{vanseters:1995}.
\color{black}
\samplemacro{\textbackslash
autocites[35]\{vanseters:1997\}[222]\{vanseters:1995\}}
- \makeatletter\blx@idemreset\makeatother
\color{biblatex-colour}
\hspace*{\bibindent}14.~\cites[35]{vanseters:1997}[222]{vanseters:1995}.
\color{black}
+ \samplecite{15}[35]{vanseters:1997}
\end{biboutput}
\printbibliography
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.bib b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.bib
index cbd2ccb6ae..da2353e554 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.bib
@@ -976,7 +976,6 @@
date = {1994},
shorthand = {ANF},
options = {useeditor=false,skipbiblist},
- sortkey = {Ante-Nicene Fathers},
xref = {ANF:abbreviation}
}
@@ -1004,7 +1003,6 @@
date = {1994},
shorthand = {NPNF\textsuperscript{1}},
options = {useeditor=false,skipbiblist},
- sortkey = {Nicene and Post-Nicene Fathers, Series 1},
xref = {NPNF1:abbreviation}
}
@@ -1032,7 +1030,7 @@
editor = {Migne, J.-P.},
volumes = {217},
location = {Paris},
- date = {1844/1864},
+ date = {1844/1855},
shorthand = {PL}
}
@@ -1330,7 +1328,12 @@
date = {2015-02},
url = {https://www.sbl-site.org/assets/pdfs/pubs/SBLHSsupp2015-02.pdf},
options = {useauthor=false,useeditor=false},
- sortkey = {Student Supplement for the SBL Handbook of Style, Second Edition}
+}
+
+@periodical{sblhs2.com,
+ title = {SBL Handbook of Style},
+ subtitle = {Explanations, Clarifications, and Expansions},
+ url = {https://sblhs2.com}
}
@mvbook{sasson:2000,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.def b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.def
index aa7301d280..0f8ece1b0d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.def
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.def
@@ -15,8 +15,8 @@
% VERSION STRINGS
% ------------------------------------------------------------------
-\def\sbl@abx@date{2018/12/13}
-\def\sbl@abx@version{0.11}
+\def\sbl@abx@date{2020/11/04}
+\def\sbl@abx@version{0.12}
\def\sbl@abx@bbxid{\sbl@abx@date\space v\sbl@abx@version\space biblatex-sbl bibliography style (DCP)}
\def\sbl@abx@cbxid{\sbl@abx@date\space v\sbl@abx@version\space biblatex-sbl citation style (DCP)}
\def\sbl@abx@lbxid{\sbl@abx@date\space v\sbl@abx@version\space biblatex-sbl localization (DCP)}
@@ -52,7 +52,12 @@
\NumCheckSetup{\def\mkbibparens#1{#1}}
-\renewbibmacro*{postnote}{}
+\renewbibmacro*{postnote}{%
+ \iftoggle{blx@unit}
+ {}
+ {\newunit}%
+ \printfield{postnote}}
+
\newbibmacro*{pages}{}
\DeclareBibliographyOption[string]{citepages}[permit]{%
@@ -62,7 +67,6 @@
{Invalid option 'citepages=#1'}
{Valid values are 'sbl', 'permit', 'omit', 'separate'.}}}
-\providebibmacro*{postnote}{}
\providebibmacro*{pages}{}
\def\cbx@opt@citepages@sbl{%
@@ -82,17 +86,7 @@
{\iffieldpages{postnote}
{}
{\setunit{\addspace}%
- \printtext[parens]{\printfield{postnote}}}}}}%
- \renewbibmacro*{postnote}{%
- \iffieldundef{postnote}
- {\printfield{pages}}
- {\iffieldpages{postnote}
- {\printfield{postnote}}
- {\iffieldundef{pages}
- {\printfield{postnote}}
- {\printfield{pages}%
- \setunit{\addspace}%
- \printtext[parens]{\printfield{postnote}}}}}}}
+ \printtext[parens]{\printfield{postnote}}}}}}}
\def\cbx@opt@citepages@permit{%
\renewbibmacro*{pages}{%
@@ -109,18 +103,7 @@
}
{}
{\setunit{\addspace}%
- \printtext[parens]{\printfield{postnote}}}}}%
- \renewbibmacro*{postnote}{%
- \iffieldundef{postnote}
- {\printfield{pages}}
- {\iffieldpages{postnote}
- {\printfield{postnote}}
- {\iffieldundef{pages}
- {\newunit
- \printfield{postnote}}
- {\printfield{pages}%
- \setunit*{\addspace}%
- \printtext[parens]{\printfield{postnote}}}}}}}
+ \printtext[parens]{\printfield{postnote}}}}}}
\def\cbx@opt@citepages@omit{%
\renewbibmacro*{pages}{%
@@ -139,23 +122,12 @@
{\printfield{postnote}}
{\printfield{pages}%
\setunit*{\addspace}%
- \printtext[parens]{\printfield{postnote}}}}}}%
- \renewbibmacro*{postnote}{%
- \iffieldundef{postnote}
- {\printfield{pages}}
- {\iffieldpages{postnote}
- {\printfield{postnote}}
- {\iffieldundef{pages}
- {\newunit
- \printfield{postnote}}
- {\printfield{pages}%
- \setunit*{\addspace}%
\printtext[parens]{\printfield{postnote}}}}}}}
\def\cbx@opt@citepages@separate{%
\renewbibmacro*{pages}{%
\iffieldundef{pages}
- {\ifool{bx@inset}
+ {\ifbool{bbx@inset}
{}
{\printfield{postnote}%
\global\booltrue{suppresspostnote}}}
@@ -172,34 +144,57 @@
{\bibstring{thiscite}%
\setunit{\addspace}}
{}%
- \printfield{postnote}}}}}%
- \renewbibmacro*{postnote}{%
- \iffieldundef{postnote}
- {\printfield{pages}}
- {\iffieldpages{postnote}
- {\printfield{postnote}}
- {\iffieldundef{pages}
- {\printfield{postnote}}
- {\printfield{pages}%
- \setunit*{\addspace}%
- \printtext[parens]{%
- \iffieldpages{postnote}
- {\bibstring{thiscite}%
- \setunit{\addspace}}
- {}%
- \printfield{postnote}}}}}}}
+ \printfield{postnote}}}}}}
% ------------------------------------------------------------------
% IDEM MACROS
% ------------------------------------------------------------------
+\def\blx@opt@idemtracker@citation{%
+ \let\blx@imc@ifciteidem\blx@ifciteidem@citation
+ \let\blx@idemtracker\blx@idemtracker@constrict
+ \let\blx@idemreset\blx@idemreset@context
+ \booltrue{citetracker}}
+
+\def\blx@opt@idemtracker@sbl{%
+ \let\blx@imc@ifciteidem\blx@ifciteidem@sbl
+ \let\blx@idemtracker\blx@idemtracker@constrict
+ \let\blx@idemreset\blx@idemreset@context
+ \booltrue{citetracker}}
+
+\def\blx@ifciteidem@citation{%
+ \ifbool{citetracker}
+ {\iftoggle{blx@footnote}
+ {\blx@ifmpfncheckidem
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@foot}
+ {\@secondoftwo}}
+ {\iffirstcitekey
+ {\@secondoftwo}
+ {\blx@imc@iffieldequals{fullhash}\blx@lasthash@text}}}
+ {\@secondoftwo}}
+
+\def\blx@ifciteidem@sbl{%
+ \blx@ifciteidem@citation}
+
+\def\blx@ifmpfncheckidem{%
+ \ifnum\numexpr\value\@mpfn-\blx@lastmpfn<\@ne
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+
+\def\ifciteidemsbl{%
+ \ifdefequal{\blx@imc@ifciteidem}{\blx@ifciteidem@sbl}}
+
\newbibmacro*{ifidemused}{%
\ifboolexpr{
test {\ifciteidem}
and
not test {\iffirstonpage}
}
- {\bibstring[\mkibid]{idem\thefield{gender}}%
+ {\ifciteidemsbl
+ {\printnames{labelname}}
+ {\bibstring[\mkibid]{idem\thefield{gender}}}%
\@firstoftwo}
{\@secondoftwo}}
@@ -310,7 +305,6 @@
\ExecuteBibliographyOptions{%
citetracker,
- punctfont,
alldates=comp,
eprintdate=comp,
dateabbrev=false,
@@ -320,9 +314,9 @@
minxrefs=1,
isbn=false,
pagetracker,
- idemtracker=constrict,
- ibidtracker=constrict,
- ibidpage=false,
+ idemtracker=sbl,
+ ibidtracker=false,
+ ibidpage=true,
maxbibnames=99,
maxcitenames=3,
citepages=sbl,
@@ -363,6 +357,7 @@
\NewBibliographyString{paperpresented}
\NewBibliographyString{patentfiled}
\NewBibliographyString{released}
+\NewBibliographyString{article}
\DeclareLanguageMappingSuffix{-sbl}
@@ -404,6 +399,7 @@
\ifinteger{#1}
{\mkbibordedition{#1}~\bibsstring{edition}}
{\ifcapital{\MakeCapital{#1}}{#1}\isdot}}
+\DeclareFieldFormat{eid}{\bibsstring{article}~#1}
\DeclareFieldFormat{eprint:ebook}{#1 \biblstring{edition}}
\DeclareFieldFormat{eprint}{%
\iffieldundef{eprinttype}
@@ -453,7 +449,10 @@
\DeclareFieldFormat{volcitepages}{\mkcomprange{#1}}
\DeclareFieldFormat{part}{#1}
\DeclareFieldFormat{pt}{\bibstring{part}~#1}
-\DeclareFieldFormat{postnote}{\mkcomprange{#1}}
+\DeclareFieldFormat{postnote}{%
+ \iffieldundef{eid}
+ {\mkcomprange{#1}}
+ {\mkpageprefix[pagination][\mkcomprange]{#1}}}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{byauthor}{\bibstring{byauthor} #1}
\DeclareFieldFormat{revdtitle}{\biblstring{reviewof} \mkbibemph{#1}}
@@ -472,8 +471,8 @@
\DeclareFieldFormat{isrn}{ISRN\addcolon\space #1}
\DeclareFieldFormat{issn}{ISSN\addcolon\space #1}
\DeclareFieldFormat{pages}{\mkcomprange{#1}}
-\DeclareFieldFormat{pagepages}{\mkcomprange[\mkpageprefix]{#1}}
-\DeclareFieldFormat{pagesin}{\mkcomprange[\mkpageprefix]{#1} \usebibmacro{in}}
+\DeclareFieldFormat{pagepages}{\mkpageprefix[pagination][\mkcomprange]{#1}}
+\DeclareFieldFormat{pagesin}{\mkpageprefix[pagination][\mkcomprange]{#1} \usebibmacro{in}}
\DeclareFieldFormat{chapter}{\bibsstring{chapter}~#1}
\DeclareFieldFormat{chapterin}{\bibsstring{chapter}~#1 \usebibmacro{in}}
\DeclareFieldFormat{volume}{#1}
@@ -515,13 +514,15 @@
\DeclareFieldFormat[incommentary,inreference,inlexicon,online,review,seminarpaper,conferencepaper]{title}{\mkbibquote{#1}}
\DeclareFieldFormat[incommentary,inreference,inlexicon,online,review,seminarpaper,conferencepaper]{shorttitle}{\mkbibquote{#1}}
\DeclareFieldFormat[suppperiodical]{title}{\mkbibquote{#1}}
-\DeclareFieldFormat{issuetitle}{\mkbibquote{#1}}
-\DeclareFieldFormat{issuesubtitle}{\mkbibquote{#1}}
-\DeclareFieldFormat{shortissuetitle}{\mkbibquote{#1}}
+\DeclareFieldFormat{issuetitle}{\mkbibemph{#1}}
+\DeclareFieldFormat{issuesubtitle}{\mkbibemph{#1}}
+\DeclareFieldFormat{shortissuetitle}{\mkbibemph{#1}}
\DeclareFieldFormat{howpublished}{\ifbibstring{#1}{\bibstring{#1}}{#1}}
\DeclareFieldFormat[patent]{title}{#1}
\DeclareFieldFormat[ancienttext]{title}{%
\ifboolexpr{
+ test {\iffieldequalstr{entrysubtype}{primarysource}}
+ or
test {\iffieldequalstr{entrysubtype}{inscription}}
or
test {\iffieldequalstr{entrysubtype}{chronicle}}
@@ -532,6 +533,8 @@
{\mkbibquote{#1}}}}
\DeclareFieldFormat[ancienttext]{shorttitle}{%
\ifboolexpr{
+ test {\iffieldequalstr{entrysubtype}{primarysource}}
+ or
test {\iffieldequalstr{entrysubtype}{inscription}}
or
test {\iffieldequalstr{entrysubtype}{chronicle}}
@@ -561,6 +564,18 @@
\iffieldundef{type}
{#1}
{\mkbibemph{#1}}}
+\DeclareFieldFormat[classictext]{title}{%
+ \ifnameundef{author}
+ {#1}
+ {\mkbibemph{#1}}}
+\DeclareFieldFormat[classictext]{subtitle}{%
+ \ifnameundef{author}
+ {#1}
+ {\mkbibemph{#1}}}
+\DeclareFieldFormat[classictext]{shorttitle}{%
+ \ifnameundef{author}
+ {#1}
+ {\mkbibemph{#1}}}
\DeclareBibliographyAlias{cite:mvbook}{cite:book}
\DeclareBibliographyAlias{cite:mvcollection}{cite:collection}
@@ -675,6 +690,13 @@
% LIST OF ABBREVIATIONS
% ------------------------------------------------------------------
+\DeclareFieldFormat{shorttitlewidth}{%
+ \ifentrytype{classictext}
+ {\iffieldequalstr{entrysubtype}{churchfather}
+ {}
+ {\mkbibemph{#1}}}
+ {}}
+
\newtoggle{blx@abbrevcite}
\newlength{\abbrevwidth}
@@ -686,16 +708,30 @@
}
\defbibenvironment{abbreviations}
- {\list
+ {\setlength{\abbrevwidth}{0pt}%
+ \list
{\printfield[shorthandwidth]{shortjournal}%
- \iffieldundef{shorthand}
- {\printfield[shorthandwidth]{shortseries}}
- {\iffieldsequal{shorthand}{shorttitle}
- {\printtext{\mkbibemph{\printfield[shorthandwidth]{shorthand}}}}
- {\printfield[shorthandwidth]{shorthand}}}}
+ \iffieldsequal{shorthand}{shorttitle}
+ {\printtext{\mkbibemph{\printfield[shorthandwidth]{shorthand}}}}
+ {\printfield[shorthandwidth]{shorthand}}%
+ \ifentrytype{classictext}
+ {\printfield{shorttitle}}
+ {}%
+ \ifboolexpr{
+ not test {\iffieldundef{shorthand}}
+ or
+ (
+ test {\ifentrytype{classictext}}
+ and
+ not test {\iffieldundef{shorttitle}}
+ )
+ }
+ {}
+ {\printfield{shortseries}}}
{\setmaxlength{\abbrevwidth}{\shorthandwidth}%
\setmaxlength{\abbrevwidth}{\shortserieswidth}%
\setmaxlength{\abbrevwidth}{\shortjournalwidth}%
+ \setmaxlength{\abbrevwidth}{\shorttitlewidth}%
\addtolength{\abbrevwidth}{\biblabelsep}%
\setlength{\labelwidth}{\abbrevwidth}%
\setlength{\leftmargin}{\labelwidth}%
@@ -721,15 +757,38 @@
{\setunit{\subtitlepunct}%
\printfield{journalsubtitle}}}%
\iffieldundef{shorthand}
- {\iffieldundef{shortseries}
- {}
- {\bibhypertarget{\strfield{shortseries}}{}%
- \printfield{series}}}
+ {}
{\bibhypertarget{\strfield{shorthand}}{}%
\iffieldsequal{shorthand}{shorttitle}
{\toggletrue{blx@abbrevcite}}
{}%
\usebibmacro{bibentrycite}}%
+ \ifentrytype{classictext}
+ {\iffieldundef{shorttitle}
+ {}
+ {\bibhypertarget{\strfield{shorttitle}\strname{author}}{}%
+ \ifnameundef{author}
+ {}
+ {\usebibmacro{author}%
+ \newunit}%
+ \printfield{title}%
+ \setunit*{\subtitlepunct}%
+ \printfield{subtitle}}}
+ {}%
+ \ifboolexpr{
+ not test {\iffieldundef{shorthand}}
+ or
+ (
+ test {\ifentrytype{classictext}}
+ and
+ not test {\iffieldundef{shorttitle}}
+ )
+ }
+ {}
+ {\iffieldundef{shortseries}
+ {}
+ {\bibhypertarget{\strfield{shortseries}}{}%
+ \printfield{series}}}%
\usebibmacro{finentry}}
\DeclareBiblistFilter{abbreviations}{
@@ -737,6 +796,26 @@
\filter[type=field,filter=shorthand]
\filter[type=field,filter=shortjournal]
\filter[type=field,filter=shortseries]
+ \filter[type=field,filter=shorttitle]
+ }
+}
+
+\DeclareBiblistFilter{primary}{
+ \filteror{
+ \filter[type=subtype,filter=primarysource]
+ \filter[type=type,filter=classictext]
+ }
+ \filteror{
+ \filter[type=field,filter=shorthand]
+ \filter[type=field,filter=shorttitle]
+ }
+}
+
+\DeclareBiblistFilter{secondary}{
+ \filteror{
+ \filter[type=field,filter=shorthand]
+ \filter[type=field,filter=shortjournal]
+ \filter[type=field,filter=shortseries]
}
}
@@ -752,25 +831,65 @@
{}
{\iffieldundef{shortjournal}
{}
- {\ifcsdef{sbl\therefsection\strfield{shortjournal}=\strfield{journaltitle}}
+ {\ifcsdef{\therefsection-\strfield{shortjournal}=\strfield{journaltitle}}
{\skipentry}
- {\savefieldcs{journaltitle}{sbl\therefsection\strfield{shortjournal}=\strfield{journaltitle}}}}%
+ {\savefieldcs{journaltitle}{\therefsection-\strfield{shortjournal}=\strfield{journaltitle}}}}%
\iffieldundef{shorthand}
- {\iffieldundef{shortseries}
+ {}
+ {\ifcsdef{\therefsection-\strfield{shorthand}=\strfield{shorttitle}}
+ {\skipentry}
+ {\savefieldcs{shorthand}{\therefsection-\strfield{shorthand}=\strfield{shorttitle}}}}%
+ \ifentrytype{classictext}
+ {\iffieldundef{shorttitle}
{}
- {\ifcsdef{sbl\therefsection\strfield{shortseries}=\strfield{series}}
+ {\ifcsdef{\therefsection-\strfield{shorttitle}=\strname{author}\strfield{title}}
{\skipentry}
- {\savefieldcs{series}{sbl\therefsection\strfield{shortseries}=\strfield{series}}}}}
- {\ifcsdef{sbl\therefsection\strfield{shorthand}=\strfield{title}}
+ {\savefieldcs{shorttitle}{\therefsection-\strfield{shorttitle}=\strname{author}\strfield{title}}}}}
+ {}%
+ \ifboolexpr{
+ not test {\iffieldundef{shorthand}}
+ or
+ (
+ test {\ifentrytype{classictext}}
+ and
+ not test {\iffieldundef{shorttitle}}
+ )
+ }
+ {}
+ {\ifcsdef{\therefsection-\strfield{shortseries}=\strfield{series}}
{\skipentry}
- {\savefieldcs{shorthand}{sbl\therefsection\strfield{shorthand}=\strfield{title}}}}}}
-
-\DeclareSortingTemplate{abbreviations}{%
- \sort{%
- \field{shorthand}%
- \field{shortjournal}%
- \field{shortseries}%
- }%
+ {\savefieldcs{series}{\therefsection-\strfield{shortseries}=\strfield{series}}}}%
+ \iffieldequalstr{entrysubtype}{churchfather}
+ {\skipentry}
+ {}%
+ \ifboolexpr{
+ not test {\ifentrytype{classictext}}
+ and
+ not test {\iffieldundef{shorttitle}}
+ and
+ test {\iffieldundef{shortjournal}}
+ and
+ test {\iffieldundef{shorthand}}
+ and
+ test {\iffieldundef{shortseries}}
+ }
+ {\skipentry}
+ {}}}
+
+\DeclareSortingTemplate{abbreviations}{
+ \sort{
+ \field{sortshorthand}
+ \field{shorthand}
+ \field{shortjournal}
+ \field{shortseries}
+ \field{shorttitle}
+ }
+ \sort{
+ \field{journaltitle}
+ \field{author}
+ \field{title}
+ \field{series}
+ }
}
% ------------------------------------------------------------------
@@ -787,13 +906,14 @@
\step[fieldset=shorttitle, fieldvalue={$1}]
}
\map{
- \step[fieldsource=journaltitle, match=\regexp{(.*?):}, final]
- \step[fieldset=shortjournal, fieldvalue={$1}]
- }
- \map{
\step[fieldsource=revdtitle, match=\regexp{(.*?):}, final]
\step[fieldset=revdshorttitle, fieldvalue={$1}]
}
+ \map[overwrite=true]{
+ \step[notfield=sorttitle, final]
+ \step[fieldsource=title, match=\regexp{^(A|An|The)\s+(.+)}, final]
+ \step[fieldset=sorttitle, fieldvalue={$2}]
+ }
\map{
\pertype{suppbook}
\pertype{suppcollection}
@@ -826,16 +946,6 @@
\step[fieldset=journalsubtitle, origfieldval]
}
\map{
- \pertype{periodical}
- \step[fieldsource=shorttitle, final]
- \step[fieldset=shortjournal, origfieldval]
- }
- \map{
- \step[fieldsource=journalsubtitle, final]
- \step[fieldsource=journaltitle, final]
- \step[fieldset=shortjournal, origfieldval]
- }
- \map{
\step[fieldsource=entrysubtype, match=\regexp{ANRW}, final]
\step[fieldset=options, fieldvalue={skipbib=false}]
}
@@ -857,17 +967,32 @@
\pertype{ancienttext}
\pertype{classictext}
\step[fieldsource=related, final]
- \step[fieldset=relatedtype, fieldvalue=ancienttext]
\step[fieldsource=relatedoptions, match=\regexp{(.*)}]
\step[fieldset=relatedoptions, fieldvalue={skipbib=false,skipbiblist=false,}]
\step[fieldset=relatedoptions, fieldvalue={$1}, append]
+ \step[notfield=relatedtype, final]
+ \step[fieldset=relatedtype, fieldvalue=ancienttext]
}
\map[overwrite]{
\step[fieldsource=shortseries, final]
\step[fieldsource=shorthand, final]
\step[fieldsource=entrykey, match=\regexp{(.*)}]
\step[fieldset=xref, fieldvalue=series-$1]
- \step[entrynew=series-$1, entrynewtype=misc]
+ \step[entrynew=series-$1, entrynewtype=series]
+ \step[fieldsource=shortseries]
+ \step[fieldset=shortseries, origfieldval, entrytarget=series-$1]
+ \step[fieldsource=series]
+ \step[fieldset=series, origfieldval, entrytarget=series-$1]
+ \step[fieldset=options, fieldvalue={skipbib}, entrytarget=series-$1]
+ }
+ \map[overwrite]{
+ \pertype{classictext}
+ \step[fieldsource=shortseries, final]
+ \step[fieldsource=shorttitle, final]
+ \step[fieldset=sortshorthand, origfieldval]
+ \step[fieldsource=entrykey, match=\regexp{(.*)}]
+ \step[fieldset=xref, fieldvalue=series-$1]
+ \step[entrynew=series-$1, entrynewtype=series]
\step[fieldsource=shortseries]
\step[fieldset=shortseries, origfieldval, entrytarget=series-$1]
\step[fieldsource=series]
@@ -959,10 +1084,28 @@
{#2}}
\ExplSyntaxOn
-\cs_new_protected:Nn \sbl_ifinstringt:nnn {
- \tl_if_in:nnT {#2}{#1}{#3}}
-\cs_generate_variant:Nn \sbl_ifinstringt:nnn { non }
-\cs_new_eq:NN \IfInStringT \sbl_ifinstringt:non
+\cs_new_protected:Nn \sbl_ifinstringtf:nnnn {
+ \tl_if_in:nnTF {#2}{#1}{#3}{#4}}
+\cs_generate_variant:Nn \sbl_ifinstringtf:nnnn { nonn }
+\cs_new_eq:NN \IfInStringTF \sbl_ifinstringtf:nonn
+
+\DeclareExpandableDocumentCommand \iffirstcharsec { m m m }
+ {
+ \exp_args:Nnf \IfInStringTF { § } { \tl_use:N \tl_head:f { #1 } }
+ { #2 }
+ {
+ \exp_args:Nnf \IfInStringTF { \textsection } { \tl_use:N \tl_head:f { #1 } }
+ { #2 }
+ { #3 }
+ }
+ }
+
+\DeclareExpandableDocumentCommand \iffirstcharnum { m m m }
+ {
+ \exp_args:Nf \ifnumeral { \tl_use:N \tl_head:f { #1 } }
+ { #2 }
+ { #3 }
+ }
\ExplSyntaxOff
\newbibmacro*{setpostnotedelim}{%
@@ -971,38 +1114,52 @@
{}%
\iffieldundef{postnote}
{}
- {\IfInStringT{.}{\abx@field@postnote}
- {\renewcommand*{\postnotedelim}{\addspace}}%
- \IfInStringT{:}{\abx@field@postnote}
- {\renewcommand*{\postnotedelim}{\addspace}}%
- \IfInStringT{§}{\abx@field@postnote}
- {\renewcommand*{\postnotedelim}{\addspace}}%
- \IfInStringT{\textsection}{\abx@field@postnote}
- {\renewcommand*{\postnotedelim}{\addspace}}}}
+ {\iffirstcharnum{\abx@field@postnote}
+ {\ifboolexpr{
+ test {\ifentrytype{ancienttext}}
+ and
+ test {\usebibmacro{ifuseshorthand}}
+ }
+ {\renewcommand*{\postnotedelim}{\addspace}}
+ {}%
+ \ifboolexpr{
+ test {\ifentrytype{classictext}}
+ and
+ not test {\iffieldundef{shorttitle}}
+ }
+ {\renewcommand*{\postnotedelim}{\addspace}}
+ {}%
+ \IfInStringTF{.}{\abx@field@postnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}{}%
+ \IfInStringTF{:}{\abx@field@postnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}{}}
+ {\iffirstcharsec{\abx@field@postnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}
+ {}}}}
\newbibmacro*{setaltpostnotedelim}{%
\iffieldundef{altpostnote}
{}
- {\IfInStringT{.}{\abx@field@altpostnote}
- {\renewcommand*{\postnotedelim}{\addspace}}%
- \IfInStringT{:}{\abx@field@altpostnote}
- {\renewcommand*{\postnotedelim}{\addspace}}%
- \IfInStringT{§}{\abx@field@altpostnote}
- {\renewcommand*{\postnotedelim}{\addspace}}%
- \IfInStringT{\textsection}{\abx@field@altpostnote}
- {\renewcommand*{\postnotedelim}{\addspace}}}}
+ {\IfInStringTF{.}{\abx@field@altpostnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}{}%
+ \IfInStringTF{:}{\abx@field@altpostnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}{}%
+ \IfInStringTF{§}{\abx@field@altpostnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}{}%
+ \IfInStringTF{\textsection}{\abx@field@altpostnote}
+ {\renewcommand*{\postnotedelim}{\addspace}}{}}}
\newbibmacro*{setpagesdelim}{%
\iffieldundef{pages}
{}
- {\IfInStringT{.}{\abx@field@pages}
- {\setunit{\addspace}}%
- \IfInStringT{:}{\abx@field@pages}
- {\setunit{\addspace}}%
- \IfInStringT{§}{\abx@field@pages}
- {\setunit{\addspace}}%
- \IfInStringT{\textsection}{\abx@field@pages}
- {\setunit{\addspace}}}}
+ {\IfInStringTF{.}{\abx@field@pages}
+ {\setunit{\addspace}}{}%
+ \IfInStringTF{:}{\abx@field@pages}
+ {\setunit{\addspace}}{}%
+ \IfInStringTF{§}{\abx@field@pages}
+ {\setunit{\addspace}}{}%
+ \IfInStringTF{\textsection}{\abx@field@pages}
+ {\setunit{\addspace}}{}}}
% ------------------------------------------------------------------
% JOINING WORD MACROS
@@ -1123,6 +1280,24 @@
{\printtext[maintitle]{\printfield[titlecase]{shortmaintitle}}}%
\newunit}
+\newbibmacro*{classictexttitle}{%
+ \ifboolexpr{%
+ not togl {blx@useshorttitle}
+ or
+ test {\iffieldundef{shorttitle}}
+ }
+ {\iffieldundef{title}
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}}%
+ \newunit
+ \printfield{titleaddon}%
+ \usebibmacro{language}}}
+ {\printtext[shorttitle]{%
+ \bibhyperlink{\strfield{shorttitle}\strname{author}}{\thefield{shorttitle}}}}}
+
\renewbibmacro*{title}{%
\ifciteseen
{\usebibmacro{shorttitle}}
@@ -1226,14 +1401,17 @@
\newbibmacro*{shortjournal}{%
\iffieldundef{shortjournal}
- {\printfield{journaltitle}}
+ {\printtext[journaltitle]{%
+ \printfield[titlecase]{journaltitle}%
+ \setunit*{\subtitlepunct}%
+ \printfield[titlecase]{journalsubtitle}}}
{\printtext[shortjournal]{%
\bibhyperlink{\strfield{shortjournal}}{\thefield{shortjournal}}}}}
\newbibmacro*{shortjournal+issue}{%
\usebibmacro{shortjournal}%
\setunit{\addspace}%
- \usebibmacro{series+volume+number+eid}%
+ \usebibmacro{series+volume+number}%
\ifboolexpr{
not test {\ifnameundef{editor}}
or
@@ -1262,7 +1440,8 @@
test {\iffieldundef{date}}
}
{\usebibmacro{setpagesdelim}}
- {}}
+ {}%
+ \usebibmacro{eid}}
\renewbibmacro*{issue+date}{%
\ifboolexpr{
@@ -1296,7 +1475,7 @@
\usebibmacro{date}}}%
\setunit{\addcolon\space}}}}
-\newbibmacro*{series+volume+number+eid}{%
+\newbibmacro*{series+volume+number}{%
\iffieldundef{series}
{}
{\newunit
@@ -1304,9 +1483,7 @@
\newunit}%
\printfield{volume}%
\setunit*{\addperiod}%
- \printfield{number}%
- \setunit{\addcomma\space}%
- \printfield{eid}}
+ \printfield{number}}
\newbibmacro{inissuetitle}{%
\iffieldundef{issuetitle}
@@ -1325,7 +1502,7 @@
{\printtext[issuetitle]{\printfield[titlecase]{shortissuetitle}}}%
\newunit}
-\newbibmacro{issuetitle}{%
+\newbibmacro*{issuetitle}{%
\iffieldundef{issuetitle}
{}
{\ifciteseen
@@ -1335,6 +1512,10 @@
\setunit*{\subtitlepunct}%
\printfield[titlecase]{issuesubtitle}}}}}
+\newbibmacro*{eid}{%
+ \printfield{eid}%
+ \setunit*{\addcomma\space}}
+
% ------------------------------------------------------------------
% NAME MACROS
% ------------------------------------------------------------------
@@ -1699,15 +1880,13 @@
{}}
\newbibmacro*{byauthor/byeditor+others/bytranslator+others}{%
- \iffieldundef{title}
- {}
- {\usebibmacro{byauthor}%
+ \usebibmacro{byauthor}%
+ \newunit
+ \usebibmacro{ifbooktitleormaintitle}
+ {\usebibmacro{byeditor/bytranslator}}
+ {\usebibmacro{byeditor+others}%
\newunit
- \usebibmacro{ifbooktitleormaintitle}
- {\usebibmacro{byeditor/bytranslator}}
- {\usebibmacro{byeditor+others}%
- \newunit
- \usebibmacro{bytranslator+others}}}}
+ \usebibmacro{bytranslator+others}}}
\newbibmacro*{bybookeditor}{%
\ifnameundef{bookeditor}
@@ -2386,10 +2565,11 @@
\usedriver
{\renewbibmacro*{related:init}{}%
\ifbibliography
- {\renewbibmacro*{parens+publisher+location+date}{%
- \newunit
- \usebibmacro{publisher+location+date}}}
- {}}
+ {}
+ {\renewcommand*{\newunitpunct}{\addsemicolon\space}}%
+ \renewbibmacro*{parens+publisher+location+date}{%
+ \newunit
+ \usebibmacro{publisher+location+date}}}
{\ifbibliography
{\thefield{entrytype}}
{cite:\thefield{entrytype}}}}}
@@ -2421,23 +2601,27 @@
\newtoggle{blx@testpostnotedelim}
\newbibmacro*{volume+part+postnote}{%
- \usebibmacro{volume}%
- \iffieldundef{part}
- {}
- {\setunit{\addperiod}%
- \printfield{part}}%
- \iftoggle{blx@testpostnotedelim}{\usebibmacro{setpostnotedelim}}{}%
- \ifbool{usevolpostnotedelim}
- {\setunit{\volpostnotedelim}}
- {\setunit{\postnotedelim}}%
\ifboolexpr{
test {\ifciteseen}
- or
- test {\iffieldundef{pages}}
+ and
+ test {\iffieldundef{postnote}}
}
- {\printfield{postnote}}
- {\usebibmacro{pages}}%
- \global\booltrue{suppresspostnote}}
+ {}
+ {\usebibmacro{volume}%
+ \iffieldundef{part}
+ {}
+ {\setunit{\addperiod}%
+ \printfield{part}}%
+ \iftoggle{blx@testpostnotedelim}{\usebibmacro{setpostnotedelim}}{}%
+ \ifbool{usevolpostnotedelim}
+ {\setunit{\volpostnotedelim}}
+ {\setunit{\postnotedelim}}%
+ \ifciteseen
+ {\printfield{postnote}}
+ {\iffieldundef{pages}
+ {\printfield{postnote}}
+ {\usebibmacro{pages}}}%
+ \global\booltrue{suppresspostnote}}}
\newbibmacro*{classic:translator+series}{%
\ifnameundef{translator}
@@ -2448,7 +2632,10 @@
\iftoggle{blx@useseries}
{\newunit
\usebibmacro{shortseries}}
- {}}}}
+ {}%
+ \usebibmacro{setaltpostnotedelim}%
+ \setunit{\postnotedelim}%
+ \printfield{altpostnote}}}}
% ------------------------------------------------------------------
% ALTERNATE POSTNOTE MACROS
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.pdf
index 3f2859021f..2d7f40a15e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.tex b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.tex
index 02ea67f292..35caf8365a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/biblatex-sbl.tex
@@ -11,7 +11,7 @@
\usepackage{framed}
\usepackage{enumitem}
-\usepackage[style=sbl,indexing=cite,idemtracker=false,ibidtracker=false]{biblatex}
+\usepackage[style=sbl,indexing=cite]{biblatex}
\addbibresource{biblatex-sbl.bib}
\hypersetup{colorlinks,citecolor=spot}
@@ -143,15 +143,16 @@
\biblatexsbl provides support to \biblatex and LaTeX for citations,
bibliography, and a list of abbreviations in the style recommended by the
Society of Biblical Literature (\citeshorthand{SBL}). The style conforms to
-the second edition of the \cite{SBLHS}.
-
-The style supports all examples given in the handbook (see
-\sty{biblatex-sbl-examples.pdf}). Shorthand citations and a list of
-abbreviations containing journals, series, and shorthands are handled
-automatically. Repeated authors in the bibliography are replaced by a
-horizontal line. \emph{Ibidem} and \emph{idem} is enabled by default. Indexing
-of names is supported, but not enabled by default. Only note style citations,
-not Author-Date citations are supported. Primary sources can be cited in
+the second edition of the \cite{SBLHS} and includes updates from the
+\citetitle*{sblhs2.com} blog \autocite{sblhs2.com}.
+
+The style supports all examples given in the handbook and any relevant updates
+given on the Blog (see \sty{biblatex-sbl-examples.pdf}). Shorthand citations
+and a list of abbreviations containing journals, series, and shorthands are
+handled automatically. Repeated authors in the bibliography are replaced by a
+horizontal line. \emph{Ibidem}, \emph{idem} and indexing of names are
+supported, but not enabled by default. Only note style citations,
+not Author-Date citations, are supported. Primary sources can be cited in
parentheses. \biblatexsbl is compatible with \biblatex's support for
\sty{hyperref}.
@@ -211,7 +212,7 @@ and Hebrew usage with \sty{babel}.
\begin{quote}
\begin{lstlisting}[style=latex]{}
-\usepackage[nil,bidi=default]{babel}
+\usepackage[nil,bidi=default]{babel}% consider bidi=basic for lualatex
\usepackage{csquotes}
\babelprovide[import=en-US,main]{american}
\babelprovide[import=he]{hebrew}
@@ -275,17 +276,35 @@ e.g.,
\sampleparencite[2.233-235]{josephus:ant}
\end{snugshade}
-\cmditem{journalcite}{key}
-\cmditem{seriescite}{key}
-\cmditem{shorthandcite}{key}
-
-\cmd{journalcite}, \cmd{seriescite}, and \cmd{shorthandcite} inserts the
+\cmditem{citefullauthor}[prenote][postnote]{key}
+\cmditem{citefullauthor*}[prenote][postnote]{key}
+\cmditem{Citefullauthor}[prenote][postnote]{key}
+\cmditem{Citefullauthor*}[prenote][postnote]{key}
+
+These commands print the full names of the authors. Strictly speaking, it
+prints the \bibfield{labelname} list in the format of a first citation, which
+may be the \bibfield{author}, the \bibfield{editor}, or the
+\bibfield{translator}. \cmd{Citefullauthor} is similar to \cmd{citefullauthor}
+but capitalizes the name prefix of the first name in the citation if the
+\opt{useprefix} option is enabled, provided that there is a name prefix. The
+starred variants effectively force \opt{maxcitenames} to 1 for just this
+command on so only print the first name in the \bibfield{labelname} list
+(potentially followed by the “et al” string if there are more names). This
+allows more natural textual flow when referring to a paper in the singular
+when otherwise \cmd{citefullauthor} would generate a (naturally plural) list
+of names.
+
+\cmditem{citejournal}{key}
+\cmditem{citeseries}{key}
+\cmditem{citeshorthand}{key}
+
+\cmd{citejournal}, \cmd{citeseries}, and \cmd{citeshorthand} inserts the
respective abbreviation into the text and also adds it to the list of
abbreviations. The abbreviation is hyperlinked to the list of abbreviations if
the \sty{hyperref} package is loaded.
-These commands ignore the \bibfield{prenote} and \bibfield{postnote} fields,
-so can safely be used anywhere within a database entry.
+These commands do not take a \bibfield{prenote} or \bibfield{postnote} field,
+and can safely be used nested within a citation.
\cmditem{printbiblist}
@@ -316,8 +335,8 @@ custom ones outlined below.
\optitem[false]{accessdate}{\opt{true}, \opt{false}}
The \cite{SBLHS} discourages the use of access
-dates.\autocite[See][§6.1.6, 84]{SBLHS} If they are required this option can be
-passed to \biblatex.
+dates \autocite[See][§6.1.6, 84]{SBLHS}. If they are required this option can
+be passed to \biblatex.
\optitem[sbl]{citepages}{\opt{sbl}, \opt{permit}, \opt{omit}, \opt{separate}}
@@ -341,7 +360,7 @@ the first time an entry is cited.
The one exception to this is the \bibtype{incommentary} entry type which
always sets \opt{citepages} to \opt{omit} (see below) when \bibfield{volume}
- is defined.\autocite[See][§1.3.3.2]{SBLHS:studentsupp}
+ is defined \autocite[See][§1.3.3.2]{SBLHS:studentsupp}.
\item[permit] The \bibfield{postnote} is printed in parentheses after the
\bibfield{pages} field. e.g.,
@@ -397,7 +416,7 @@ controls the format of the \bibfield{eprintdate}.
The \emph{Student Supplement for the} \cite{SBLHS} permits two styles for the
bibliography entry for Bible dictionaries, encyclopaedias, and multivolume
commentaries for the entire Bible by multiple
-authors.\autocite[4–5]{SBLHS:studentsupp}
+authors \autocite[4–5]{SBLHS:studentsupp}.
This option applies to \bibtype{inreference} and \bibtype{incommentary}
entry types.
@@ -419,7 +438,7 @@ entry types.
\end{snugshade}
\end{valuelist}
-\optitem[constrict]{ibidtracker}{\opt{true}, \opt{false}, \opt{context},
+\optitem[false]{ibidtracker}{\opt{true}, \opt{false}, \opt{context},
\opt{strict}, \opt{constrict}}
This option controls the \emph{ibidem} tracker. The possible choices are:
@@ -444,17 +463,19 @@ This option controls the \emph{ibidem} tracker. The possible choices are:
the same footnote or in immediately consecutive footnotes.
\end{valuelist}
-\boolitem[false]{ibidpage}
+\boolitem[true]{ibidpage}
The scholarly abbreviation \emph{ibidem} is sometimes taken to mean both ‘same
author + same title’ and ‘same author + same title + same page’ in traditional
-citation schemes. By default, this is not the case with this style because it
-may lead to ambiguous citations. If you prefer the wider interpretation of
-\emph{ibidem}, set the package option \opt{ibidpage=true} or simply
-\opt{ibidpage} in the preamble. The default setting is \opt{ibidpage=false}.
+citation schemes. In line with SBL recommendations, this style uses the
+latter.\footnote{See
+\url{https://sblhs2.com/2017/01/05/subsequent-bibliographic-references/}.} If
+you prefer the narrower interpretation of \emph{ibidem}, set the package
+option \opt{ibidpage=false} in the preamble. The default setting is
+\opt{ibidpage=true}.
-\optitem[constrict]{idemtracker}{\opt{true}, \opt{false}, \opt{context},
-\opt{strict}, \opt{constrict}}
+\optitem[sbl]{idemtracker}{\opt{true}, \opt{false}, \opt{context},
+\opt{strict}, \opt{constrict}, \opt{citation}, \opt{sbl}}
This option controls the \emph{idem} tracker. The possible choices are:
@@ -470,7 +491,12 @@ This option controls the \emph{idem} tracker. The possible choices are:
\item[constrict] This mode is similar to \opt{context} with one additional
condition: a reference in a footnote will only be considered as unambiguous
if the current citation and the previous citation are given in the same
- footnote.
+ footnote or in immediately consecutive footnotes.
+\item[citation] This option only allows \emph{idem} within a citation or
+ footnote. This is the preferred option if you intend to use \emph{idem}.
+\item[sbl] This option is similar to \opt{citation}, but does not actually
+ use \emph{idem}. Rather, it uses the author family name in subsequent
+ citations. This is the default option to comply with SBL style.
\end{valuelist}
\optitem[true]{pagetracker}{\opt{true}, \opt{false}}
@@ -886,6 +912,10 @@ This field holds the month component of the \bibfield{eprintdate} field.
This field holds the year component of the \bibfield{eprintdate} field.
+\listitem{mainauthor}{name}
+
+The author(s) of the \bibfield{maintitle}.
+
\listitem{maineditor}{name}
The editor(s) of the \bibfield{maintitle}.
@@ -966,6 +996,14 @@ automatically inserted into the list of abbreviations.
The \bibfield{title} in abridged form. This is printed instead of the full
title on subsequent citations.
+\fielditem{sorttitle}{literal}
+
+A field used to modify the sorting order of the bibliography. If present, this
+field is used instead of the title field when sorting the bibliography. This
+field is automatically populated if it doesn't exist and the \bibfield{title}
+field begins with `A', `An', or `The' so that these articles do not affect
+sorting.
+
\listitem{withauthor}{name}
The author(s) who assist the \bibfield{author}. See \bibfield{witheditortype},
@@ -1251,6 +1289,14 @@ e.g.,
\section{Important Changes}
+\subsection*{0.12\quad 2020-11-04}
+
+\begin{itemize}
+ \item Ibid.\@ and idem are no longer used by default.
+ \item Only the author family name is printed for subsequent citations of a
+ different work by the same author within a footnote or citation.
+\end{itemize}
+
\subsection*{0.11\quad 2018-12-13}
\begin{itemize}
@@ -1269,7 +1315,7 @@ e.g.,
\begin{itemize}[itemsep=0pt]
\item Support and require \biblatex 3.11.
- \item Use ibid and idem by default.
+ \item Use ibid.\@ and idem by default.
\item \sty{polyglossia} is no longer supported. You should use \sty{babel}
instead.
\end{itemize}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/english-sbl.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/english-sbl.lbx
index e56c07368a..88b94e5bbe 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/english-sbl.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/english-sbl.lbx
@@ -26,7 +26,8 @@
commonera = {{CE}{CE}},
beforecommonera = {{BCE}{BCE}},
annodomini = {{AD}{AD}},
- beforechrist = {{BC}{BC}}
+ beforechrist = {{BC}{BC}},
+ article = {{article}{art\adddot}},
}
\DeclareBibliographyExtras{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/german-sbl.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/german-sbl.lbx
index cb98da0185..a6d6fe8b09 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/german-sbl.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/german-sbl.lbx
@@ -25,4 +25,5 @@
beforecommonera = {{v\adddotspace u\adddotspace Z\adddot}{v\adddotspace u\adddotspace Z\adddot}},
annodomini = {{n\adddotspace Chr\adddot}{n\adddotspace Chr\adddot}},
beforechrist = {{v\adddotspace Chr\adddot}{v\adddotspace Chr\adddot}},
+ article = {{artikel}{art\adddot}},
}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.pdf
index a297d85e2e..91e1112207 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.sty b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.sty
index 65a1884b92..2a44292b3e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.sty
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.sty
@@ -1,4 +1,4 @@
-%Copyright 2015-2018 David Purton
+%Copyright 2015-2020 David Purton
%
%This work may be distributed and/or modified under the
%conditions of the LaTeX Project Public License, either version 1.3
@@ -13,7 +13,7 @@
%The Current Maintainer of this work is David Purton.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{sbl-paper}
- [2018/05/24 Society of Bibilical Literature Paper Style (DCP)]
+ [2020/11/04 Society of Bibilical Literature Paper Style (DCP)]
% Load required packages
@@ -565,7 +565,7 @@
\biblerefmap{Timothy2}{02@\br@newtestament !16}
\biblerefmap{Titus}{02@\br@newtestament !17}
\biblerefmap{Phlm}{02@\br@newtestament !18}
-\biblerefmap{Phlemon}{02@\br@newtestament !18}
+\biblerefmap{Philemon}{02@\br@newtestament !18}
\biblerefmap{Heb}{02@\br@newtestament !19}
\biblerefmap{Hebrews}{02@\br@newtestament !19}
\biblerefmap{Jas}{02@\br@newtestament !20}
@@ -581,4 +581,14 @@
\biblerefmap{Rev}{02@\br@newtestament !27}
\biblerefmap{Revelation}{02@\br@newtestament !27}
+
+% Style Options
+
+\DeclareOption{jblstyle}{%
+ \renewcommand\@makefntext[1]{%
+ \parindent\footnotemargin\normalsize\@thefnmark.\@\space\footnotelayout #1}
+ \renewcommand{\footnotelayout}{\raggedright\normalsize\doublespacing}}
+
+\ProcessOptions\relax
+
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.tex b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.tex
index 633965f8bd..f099fbca63 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl-paper.tex
@@ -21,7 +21,11 @@
% Language and font set up
% Note: Polyglossia is *not* well supported
\ifxetexorluatex
- \usepackage[nil,bidi=default]{babel}
+ \ifluatex
+ \usepackage[nil,bidi=basic]{babel}
+ \else
+ \usepackage[nil,bidi=default]{babel}
+ \fi
\babelprovide[import=en-US,main]{american}
\babelprovide[import=he]{hebrew}
\babelprovide[import=el]{polutonikogreek}
@@ -42,6 +46,7 @@
% Load main style
% Pass indexing=cite to biblatex (if you want author indexing)
\PassOptionsToPackage{indexing=cite}{biblatex}
+% Pass jblstyle to sbl-paper if you want double spaced footnotes
\usepackage{sbl-paper}
% Add your bib resource here
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.bbx
index 4c9ee7f50d..3afa6beffc 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.bbx
@@ -65,7 +65,9 @@
\usebibmacro{bymaintranslator+others}}%
\usebibmacro{publisher+location+date}%
\newunit}
- {\DeclareFieldFormat[ancienttext]{title}{\mkbibemph{##1}}%
+ {\iffieldequalstr{entrysubtype}{primarysource}
+ {}
+ {\DeclareFieldFormat[ancienttext]{title}{\mkbibemph{##1}}}%
\clearfield{related}%
\usedriver{}{book}}%
\usebibmacro{finentry}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.cbx
index bb745ef0b8..6e67fb24f4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.cbx
@@ -130,11 +130,23 @@
\sloppy
\hangindent 6em\rlap
{\printfield[shorthandwidth]{shortjournal}%
- \iffieldundef{shorthand}
- {\printfield[shorthandwidth]{shortseries}}
- {\iffieldsequal{shorthand}{shorttitle}
- {\printtext{\mkbibemph{\printfield[shorthandwidth]{shorthand}}}}
- {\printfield[shorthandwidth]{shorthand}}}}%
+ \iffieldsequal{shorthand}{shorttitle}
+ {\printtext{\mkbibemph{\printfield[shorthandwidth]{shorthand}}}}
+ {\printfield[shorthandwidth]{shorthand}}%
+ \ifentrytype{classictext}
+ {\printfield{shorttitle}}
+ {}%
+ \ifboolexpr{
+ not test {\iffieldundef{shorthand}}
+ or
+ (
+ test {\ifentrytype{classictext}}
+ and
+ not test {\iffieldundef{shorttitle}}
+ )
+ }
+ {}
+ {\printfield{shortseries}}}%
\renewcommand*{\bibhypertarget}[2]{##2}%
\hskip 6em \setunit{}\usedriver{}{abbreviations}\par
}
@@ -294,23 +306,50 @@
{\multicitedelim}
{\usebibmacro{cite:postnote}}
-\DeclareCiteCommand{\citeseries}
- {}
+\newrobustcmd*{\Citefullauthor}{%
+ \@ifstar{\bibsentence\citefullauthor*}{\bibsentence\citefullauthor}}
+
+\DeclareCiteCommand{\citefullauthor}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexnames{labelname}}
+ {}%
+ \printnames[given-family]{labelname}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\citefullauthor}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexnames{labelname}}
+ {}%
+ \printnames[given-family][1-1]{labelname}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
+% Thanks to @moewe (https://tex.stackexchange.com/a/497548/87678)
+\newcommand*{\DeclareNestableCiteCommand}[2]{%
+ \newcommand*{#1}[1]{%
+ \blx@xsanitizeafter\blx@nocite@do{##1}%
+ \blx@ifdata{##1}
+ {\begingroup
+ \blx@blxinit
+ \entrydata{##1}{#2}%
+ \endgroup}
+ {\abx@missing@entry{##1}}}}
+
+\DeclareNestableCiteCommand{\citeseries}
{\usebibmacro{shortseries}}
- {}
- {}
-\DeclareCiteCommand{\citejournal}
- {}
+\DeclareNestableCiteCommand{\citejournal}
{\usebibmacro{shortjournal}}
- {}
- {}
-\DeclareCiteCommand{\citeshorthand}
- {}
+\DeclareNestableCiteCommand{\citeshorthand}
{\usebibmacro{shorthand}}
- {}
- {}
\newbibmacro*{textcite}{%
\ifnameundef{labelname}
@@ -457,9 +496,9 @@
{\let\ifciteseen\@firstoftwo}%
\usebibmacro{author}%
\newunit
- \usebibmacro{shorttitlenohyperlink}%
\iffieldequalstr{entrysubtype}{churchfather}
- {\setunit{\addspace}%
+ {\usebibmacro{shorttitlenohyperlink}%
+ \setunit{\addspace}%
\printfield{altpostnote}%
\DeclareFieldFormat{related}{\mkbibparens{##1}}%
\renewcommand*{\begrelateddelim}{\addspace}%
@@ -467,7 +506,8 @@
\usebibmacro{related:init}%
\usebibmacro{related}%
\global\toggletrue{relatedseen}}
- {\clearfield{pages}%
+ {\usebibmacro{classictexttitle}%
+ \clearfield{pages}%
\usebibmacro{volume+part+postnote}%
\usebibmacro{classic:translator+series}}%
\usebibmacro{finentry}}
@@ -663,11 +703,13 @@
{\usebibmacro{xrefshortmaintitle}%
\iffieldundef{volume}
{}
- {\setunit{\addspace}%
- \printfield{volume}%
- \setunit*{\addperiod}%
- \printfield{part}%
- \global\booltrue{usevolpostnotedelim}}}
+ {\iffieldpages{postnote}
+ {\setunit{\addspace}%
+ \printfield{volume}%
+ \setunit*{\addperiod}%
+ \printfield{part}%
+ \global\booltrue{usevolpostnotedelim}}
+ {}}}
{\printfield{note}%
\newunit
\usebibmacro{xrefshortmaintitle}%
@@ -743,11 +785,13 @@
{\usebibmacro{xrefshortmaintitle+xrefshortbooktitle}%
\iffieldundef{volume}
{}
- {\setunit{\addspace}%
- \printfield{volume}%
- \setunit*{\addperiod}%
- \printfield{part}%
- \global\booltrue{usevolpostnotedelim}}}
+ {\iffieldpages{postnote}
+ {\setunit{\addspace}%
+ \printfield{volume}%
+ \setunit*{\addperiod}%
+ \printfield{part}%
+ \global\booltrue{usevolpostnotedelim}}
+ {}}}
{\usebibmacro{title}%
\newunit
\printfield{note}%
@@ -773,11 +817,13 @@
{\newunit
\iffieldundef{volume}
{}
- {\newunit
- \global\booltrue{usevolpostnotedelim}%
- \printfield{volume}%
- \setunit*{\addperiod}%
- \printfield{part}}}
+ {\iffieldpages{postnote}
+ {\newunit
+ \global\booltrue{usevolpostnotedelim}%
+ \printfield{volume}%
+ \setunit*{\addperiod}%
+ \printfield{part}}
+ {}}}
{\newunit
\printfield{note}%
\newunit
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.dbx
index 02f0b2ed21..53ff00bc0f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/sbl.dbx
@@ -2,8 +2,12 @@
\DeclareDatamodelEntrytypes{
ancienttext,
+ classictext,
conferencepaper,
+ mvcommentary,
incommentary,
+ lexicon,
+ mvlexicon,
inlexicon,
review,
seminarpaper}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/spanish-sbl.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/spanish-sbl.lbx
index e6a8345dfa..d41cf64e04 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-sbl/spanish-sbl.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-sbl/spanish-sbl.lbx
@@ -25,5 +25,6 @@
commonera = {{e\adddotspace c\adddot}{e\adddotspace c\adddot}},
beforecommonera = {{a\adddotspace e\adddotspace c\adddot}{a\adddotspace e\adddotspace c\adddot}},
annodomini = {{d\adddotspace C\adddot}{d\adddotspace C\adddot}},
- beforechrist = {{a\adddotspace C\adddot}{a\adddotspace C\adddot}}
+ beforechrist = {{a\adddotspace C\adddot}{a\adddotspace C\adddot}},
+ article = {{art{\'i}culo}{art\adddot}},
}
diff --git a/macros/latex/contrib/fgruler/fgruler.dtx b/macros/latex/contrib/fgruler/fgruler.dtx
index 385795b7a8..855e1411a6 100644
--- a/macros/latex/contrib/fgruler/fgruler.dtx
+++ b/macros/latex/contrib/fgruler/fgruler.dtx
@@ -21,13 +21,15 @@
\ProvidesFile{fgruler.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-%<package>\ProvidesPackage{fgruler}[2020/10/26 v1.2 Package for drawing rulers on the foreground or in the text]
+%<package>\ProvidesPackage{fgruler}[2020/11/04 v1.3 Package for drawing rulers on the foreground or in the text]
%
%<*driver>
\documentclass{ltxdoc}
\OnlyDescription
\usepackage[a4paper,margin=25mm,marginparwidth=19mm,marginparsep=5mm,headsep=5mm,headheight=4mm,footskip=10mm]{geometry}
\usepackage[pdfstartview=FitH,colorlinks,allcolors=black,bookmarksnumbered,hyperfootnotes=false]{hyperref}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{listings,fontawesome,fancyvrb}
\usepackage[type=none,color=red!80!black]{fgruler}
@@ -64,7 +66,7 @@ keepspaces]}
%
% \GetFileInfo{fgruler.sty}
%
-% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.2 (2020/10/26)}}
+% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.3 (2020/11/04)}}
% \author{Tibor T\'{o}m\'{a}cs\\{\normalsize\url{tomacs.tibor@uni-eszterhazy.hu}}}
% \date{}
% \maketitle
@@ -102,57 +104,59 @@ keepspaces]}
% By default, the \texttt{fgruler} package draws a square ruler on the foreground of every page. The following package options set the parameters of these rulers.
% \begin{description}
% \item\commandinline|unit=!<unit>!|\\
-% Ruler unit.
+% Ruler unit. The \commandinline|!<unit>!| legal values:
% \begin{description}
-% \item\commandinline|!<unit>!| values:\\
-% \commandinline|cm| Metric ruler (centimeter). Default value.\\
-% \commandinline|in| English ruler (inch).
+% \item\commandinline|cm| Metric ruler (centimeter). Default value.
+% \item\commandinline|in| English ruler (inch).
% \end{description}
%
% \item\commandinline|type=!<type name>!|\\
-% Origin and directions.
+% Origin, directions and lengths of the ruler. The \commandinline|!<type name>!| legal values:
% \begin{description}
-% \item\commandinline|!<type name>!| values:\\
-% \commandinline|upperleft | Origin: upper left corner. Directions: down and right. Default value.\\
-% \commandinline|upperright| Origin: upper right corner. Directions: down and left.\\
-% \commandinline|lowerleft | Origin: lower left corner. Directions: up and right.\\
-% \commandinline|lowerright| Origin: lower right corner. Directions: up and left.\\
-% \commandinline|none | Not drawing ruler.\\
-% \commandinline|user | Each \commandinline|!<unit>!|--\commandinline|!<type name>!| pair activates an \commandinline|\fgruler@!<unit>!@!<type name>!@fg| command. You can control the effect of this option by redefining the \commandinline|\fgruler@!<unit>!@user@fg| commands, which are empty in the default case. (See \ref{example:user1}, \ref{example:user2} and \ref{example:user3} examples.)
+% \item\commandinline|upperleft | Default value. Origin: upper left corner of the paper. Directions: down and right. Lengths: paper sizes.
+% \item\commandinline|upperright | Origin: upper right corner of the paper. Directions: down and left. Lengths: paper sizes.
+% \item\commandinline|lowerleft | Origin: lower left corner of the paper. Directions: up and right. Lengths: paper sizes.
+% \item\commandinline|lowerright | Origin: lower right corner of the paper. Directions: up and left. Lengths: paper sizes.
+% \item\commandinline|upperleftT | Origin: upper left corner of the text area. Directions: down and right. Lengths: text area sizes.
+% \item\commandinline|upperrightT| Origin: upper right corner of the text area. Directions: down and left. Lengths: text area sizes.
+% \item\commandinline|lowerleftT | Origin: lower left corner of the text area. Directions: up and right. Lengths: text area sizes.
+% \item\commandinline|lowerrightT| Origin: lower right corner of the text area. Directions: up and left. Lengths: text area sizes.
+% \item\commandinline|none| Not drawing ruler.
+% \item\commandinline|user| Each \commandinline|!<unit>!|--\commandinline|!<type name>!| pair activates an \commandinline|\fgruler@!<unit>!@!<type name>!@fg| command, which is equivalent to \commandinline|\fgrulertype{!<unit>!}{!<type name>!}|.\\
+% You can control the effect of this option by redefining the \commandinline|\fgruler@!<unit>!@user@fg| commands, which are empty in the default case.\\
+% \commandinline|\def\fgruler@cm@user@fg{!<code>!}| is equivalent to \commandinline|\fgrulerdefusercm{!<code>!}|.\\
+% Similarly, \commandinline|\def\fgruler@in@user@fg{!<code>!}| is equivalent to \commandinline|\fgrulerdefuserin{!<code>!}|.\\
+% See \ref{example:user-first}--\ref{example:user-last} examples.
% \end{description}
%
% \item\commandinline|hshift=!<length>!|\\
-% Horizontal shift.
-% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left.\\
-% Default: \verb|hshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@hshift|.
+% Horizontal shift of the ruler, if the \commandinline|!<type name>!| is \verb|upperleft|, \verb|lowerleft|, \verb|upperright| or \verb|lowerright|.
+% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|.
+% The shift direction is left, if the \commandinline|!<type name>!| is \verb|upperright| or \verb|lowerright|.
+% Default: \verb|hshift=0cm|.
%
% \item\commandinline|vshift=!<length>!|\\
-% Vertical shift.
-% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|, otherwise it is up.\\
-% Default: \verb|vshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@vshift|.
+% Vertical shift of the ruler, if the \commandinline|!<type name>!| is \verb|upperleft|, \verb|lowerleft|, \verb|upperright| or \verb|lowerright|.
+% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|.
+% The shift direction is up, if the \commandinline|!<type name>!| is \verb|lowerleft| or \verb|lowerright|.
+% Default: \verb|vshift=0cm|.
%
% \item\commandinline|color=!<color name>!|\\
-% Ruler color (see \texttt{xcolor} package).\\
-% Default: \verb|color=black|.\\ The \commandinline|!<color name>!| is saved in \commandinline|\fgruler@color|.
+% Ruler color (see \texttt{xcolor} package). Default: \verb|color=black|.
%
% \item\commandinline|numsep=!<length>!|\\
-% Separation between number and ruler.\\
-% Default: \verb|numsep=3pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@numsep|.
+% Separation between number and ruler. Default: \verb|numsep=3pt|.
%
% \item\commandinline|markthick=!<length>!|\\
-% Mark thickness.\\
-% Default: \verb|markthick=0.4pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@markthick|.
+% Mark thickness. Default: \verb|markthick=0.4pt|.
%
% \item\commandinline|marklength=!<length>!|\\
-% Mark length at integer units:
-% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}\\
-% Default: \verb|marklength=2mm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@marklength|.\\
-% See the length of the other marks in Section \ref{sec:additional}.
+% Mark length at integer units (see the red marks):
+% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}
+% Default: \verb|marklength=2mm|. See the length of the other marks in Section \ref{sec:additional}.
%
% \item\commandinline|numfont=!<font type>!|\\
-% Number font type.\\
-% You can use this option only in \verb|\setfgruler| command.\\
-% Default: \verb|numfont=\scriptsize\sffamily|.\\ The \commandinline|!<font type>!| is saved in \commandinline|\fgruler@numfont|.
+% Number font type. Default: \verb|numfont=\scriptsize\sffamily|. You can use this option only in \verb|\setfgruler| command.
%
% \item\commandinline|showframe| or \commandinline|showframe=true|\\
% It draws visible frames for the text and margin area, and lines for the head and foot.
@@ -297,15 +301,15 @@ keepspaces]}
% \item For example, \verb|\rulerparams{}{}{red}{}{}| changes the ruler color to red.
% \end{description}
%
+% \item\commandinline|\rulerparamsfromfg|\\
+% It sets the ruler parameters from the actual foreground ruler parameters.
+%
% \item\commandinline|\rulernorotatenum|\\
% By default, the numbers of the vertical rulers (which were generated by \verb|\ruler| or \verb|\squareruler|) are rotated by 90$^\circ$.
% It kills this action.
% This command is usable only in \texttt{document} environment.
%
-% Example: \verb|\ruler{upright}{1cm}| \ruler{upright}{1cm}\\
-% but
-% \verb|{\rulernorotatenum\ruler{upright}{1cm}}|
-% {\rulernorotatenum\ruler{upright}{1cm}}
+% Example: \verb|{\rulernorotatenum\ruler{upright}{1cm}}| {\rulernorotatenum\ruler{upright}{1cm}}
%
% \item\commandinline|\rulerrotatenum|\\
% After \verb|\rulernorotatenum|, it reactivates the number rotating.
@@ -316,19 +320,28 @@ keepspaces]}
% The following commands can work on all of the rulers, which are drawn by \texttt{fgruler} package.
% \begin{description}
% \item\commandinline|\fgrulerstartnum{!<num>!}|\\
-% The \commandinline|!<num>!| is a nonnegative integer, which will be the starting number on the ruler.
+% The \commandinline|!<num>!| is a nonnegative integer, which will be the starting number on the horizontal and vertical rulers.
% Default: \verb|\fgrulerstartnum{0}|
%
-% Example: \verb|{\fgrulerstartnum{5}\ruler{rightup}{3cm}}| {\fgrulerstartnum{5}\ruler{rightup}{3cm}}
+% Example: \verb|{\fgrulerstartnum{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnum{5}\squareruler{lowerleft}{3cm}{1cm}}
+%
+% \item\commandinline|\fgrulerstartnumh{!<num>!}|\\
+% The \commandinline|!<num>!| is a nonnegative integer, which will be the starting number on the horizontal rulers.
+% Default: \verb|\fgrulerstartnumh{0}|
+%
+% Example: \verb|{\fgrulerstartnumh{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnumh{5}\squareruler{lowerleft}{3cm}{1cm}}
+%
+% \item\commandinline|\fgrulerstartnumv{!<num>!}|\\
+% The \commandinline|!<num>!| is a nonnegative integer, which will be the starting number on the vertical rulers.
+% Default: \verb|\fgrulerstartnumv{0}|
+%
+% Example: \verb|{\fgrulerstartnumv{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnumv{5}\squareruler{lowerleft}{3cm}{1cm}}
%
% \item\commandinline|\fgrulernoborderline|\\
% By default, there is a borderline on one side of the ruler.
% It disappears by this command.
%
-% Example: \verb|\ruler{rightup}{3cm}| \ruler{rightup}{3cm}\\
-% but
-% \verb|{\fgrulernoborderline\ruler{rightup}{3cm}}|
-% {\fgrulernoborderline\ruler{rightup}{3cm}}
+% Example: \verb|{\fgrulernoborderline\ruler{rightup}{3cm}}| {\fgrulernoborderline\ruler{rightup}{3cm}}
%
% \item\commandinline|\fgrulerborderline|\\
% After \verb|\fgrulernoborderline|, it reactivates the previous default effect.
@@ -337,10 +350,7 @@ keepspaces]}
% Unit caption in metric ruler.
% Default: \verb|\fgrulercaptioncm{cm}|
%
-% Example: \verb|\ruler{rightup}{3cm}| \ruler{rightup}{3cm}\\
-% but
-% \verb|{\fgrulercaptioncm{}\ruler{rightup}{3cm}}|
-% {\fgrulercaptioncm{}\ruler{rightup}{3cm}}
+% Example: \verb|{\fgrulercaptioncm{}\ruler{rightup}{3cm}}| {\fgrulercaptioncm{}\ruler{rightup}{3cm}}
%
% \item\commandinline|\fgrulercaptionin{!<caption>!}|\\
% Unit caption in English ruler.
@@ -351,9 +361,7 @@ keepspaces]}
% Its current value is printed by the \commandinline|\thefgrulernum|.
% Its default definition is \verb|\def\thefgrulernum{\arabic{fgrulernum}}|, which is equivalent to \verb|\fgrulerdefnum{\arabic{fgrulernum}}|.
%
-% Example:\\
-% \verb|{\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}|
-% {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}
+% Example: \verb|{\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}| {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}
%
% \item\commandinline|\fgrulerratiocm{!<ratio1>!}{!<ratio2>!}|\\
% Mark length ratios in metric rulers.
@@ -516,12 +524,12 @@ keepspaces]}
% \end{description}
%
% \medskip\noindent\textcolor{red}{\faWarning}
-% All setting commands\footnote{Namely \verb|\setfgruler|, \verb|\rulerparams|, \verb|\rulernorotatenum|, \verb|\rulerrotatenum|, furthermore all commands in this section.} obey the normal scoping rules, i.e.\ if you use them inside a group, then the changing of the parameters is not valid outside the group.
+% All setting commands obey the normal scoping rules, i.e.\ if you use them inside a group, then the changing of the parameters is not valid outside the group.
%
% \newpage\fgrulerreset
% \section{Examples}
% \subsection{Deafult case}
-% The output of the following code is the ruler in this page. It is the default case.
+% The output of the following example is the ruler in this page. It is the default case.
% \begin{examplelst}
% \documentclass{article}
% \usepackage{fgruler}
@@ -531,7 +539,7 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{The `showframe' option}
+% \subsection{The \texttt{showframe} and \texttt{color} options}
% \setfgruler{color=red,showframe}
% \begin{examplelst}
% \documentclass{article}
@@ -542,7 +550,7 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in default case}
+% \subsection{Shift in default case}
% \setfgruler{hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
@@ -553,7 +561,7 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case `type=upperright' option}
+% \subsection{Shift in case \texttt{type=upperright} option}
% \setfgruler{type=upperright,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
@@ -564,7 +572,7 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case `type=lowerleft' option}
+% \subsection{Shift in case \texttt{type=lowerleft} option}
% \setfgruler{type=lowerleft,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
@@ -575,7 +583,7 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case `type=lowerright' option}
+% \subsection{Shift in case \texttt{type=lowerright} option}
% \setfgruler{type=lowerright,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
@@ -586,104 +594,132 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{An example for the `type=user' option}\label{example:user1}
+% \subsection{The \texttt{type=upperleftT} option}
+% \setfgruler{type=upperleftT}
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=upperleftT]{fgruler}
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+%
+% \newpage\fgrulerreset
+% \subsection{Setting the \texttt{type=user} option}\label{example:user-first}
+% In the next example the \texttt{type=user} option activates \texttt{type=upperright} or \texttt{type=upperleft}, depending on the page number is odd or even.
% \setfgruler{type=none}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=user]{fgruler}
-% \makeatletter
-% \def\fgruler@cm@user@fg{%
-% \ifodd\value{page}\fgruler@cm@upperright@fg%
-% \else\fgruler@cm@upperleft@fg\fi}
-% \def\fgruler@in@user@fg{%
-% \ifodd\value{page}\fgruler@in@upperright@fg%
-% \else\fgruler@in@upperleft@fg\fi}
-% \makeatother
+% \fgrulerdefusercm{%
+% \ifodd\value{page}\fgrulertype{cm}{upperright}%
+% \else\fgrulertype{cm}{upperleft}\fi}
+% \fgrulerdefuserin{%
+% \ifodd\value{page}\fgrulertype{in}{upperright}%
+% \else\fgrulertype{in}{upperleft}\fi}
% \begin{document}
% ...
% \end{document}
% \end{examplelst}
-% In this case the \texttt{type=upperright} option will be activated, if the page number is odd. Otherwise \texttt{type=upperleft} will be activated.
%
% \newpage\fgrulerreset
-% \subsection{An other example for the `type=user' option}\label{example:user2}
-% \setfgruler{type=user,color=red}
-%\makeatletter
-%\newlength{\fgruler@tempdim}
-%\renewcommand{\fgruler@cm@user@fg}{\AtTextLowerLeft{\ignorespaces%
-%\settowidth{\fgruler@tempdim}{\ruler{downleft}{\textheight}}%
-%\rulerparams{}{}{\fgruler@color}{}{}%
-%\put(-\fgruler@tempdim,0){\ignorespaces%
-%\rulernorotatenum\fgrulercaptioncm{}\ruler{downleft}{\textheight}}%
-%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
-%\makeatother
+% \subsection{Setting the \texttt{type=user} option}
+% In the next example the \texttt{type=user} option combines the effect of \texttt{type=upperleft} and \texttt{type=upperleftT}.
+% \setfgruler{type=user}
+% \fgrulerdefusercm{\fgrulertype{cm}{upperleft}\fgrulertype{cm}{upperleftT}}
% \begin{examplelst}
% \documentclass{article}
-% \usepackage[type=user,color=red]{fgruler}
-% \makeatletter
-% \newlength{\fgruler@tempdim}
-% \newcommand{\fgruler@user}[1]{%
-% \AtTextLowerLeft{% See eso-pic package!
-% \rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}%
-% {\fgruler@marklength}{\fgruler@numsep}%
-% \settowidth{\fgruler@tempdim}{\ruler[#1]{downleft}{\textheight}}%
-% \put(-\fgruler@tempdim,0){%
-% \rulernorotatenum%
-% \fgrulercaptioncm{}%
-% \fgrulercaptionin{}%
-% \ruler[#1]{downleft}{\textheight}%
-% }%
-% \put(0,\textheight){%
-% \ruler[#1]{rightup}{\textwidth}%
+% \usepackage[type=user]{fgruler}
+% \fgrulerdefusercm{\fgrulertype{cm}{upperleft}\fgrulertype{cm}{upperleftT}}
+% \fgrulerdefuserin{\fgrulertype{in}{upperleft}\fgrulertype{in}{upperleftT}}
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+%
+% \newpage\fgrulerreset
+% \subsection{Setting the \texttt{type=user} option}
+% In this example the \texttt{type=user} option combines the effect of \texttt{type=upperleftT} and \texttt{type=lowerrightT}.
+% \setfgruler{type=user}
+% \fgrulerdefusercm{\fgrulertype{cm}{upperleftT}\fgrulertype{cm}{lowerrightT}}
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user]{fgruler}
+% \fgrulerdefusercm{\fgrulertype{cm}{upperleftT}\fgrulertype{cm}{lowerrightT}}
+% \fgrulerdefuserin{\fgrulertype{in}{upperleftT}\fgrulertype{in}{lowerrightT}}
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+%
+% \newpage\fgrulerreset
+% \subsection{Setting the \texttt{type=user} option}
+% In the next example the \texttt{type=user} option places a vertical ruler at the left border of the text area.
+% \setfgruler{type=user}
+%\fgrulerdefusercm{\AtTextLowerLeft{\ignorespaces\rulerparamsfromfg\llap{\ruler{downleft}{\textheight}}}}
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user]{fgruler}
+% \newcommand{\fgruleruser}[1]{%
+% \AtTextLowerLeft{% See eso-pic package!
+% \rulerparamsfromfg%
+% \llap{\ruler[#1]{downleft}{\textheight}}%
% }%
-% }%
% }
-% \renewcommand{\fgruler@cm@user@fg}{\fgruler@user{cm}}
-% \renewcommand{\fgruler@in@user@fg}{\fgruler@user{in}}
-% \makeatother
+% \fgrulerdefusercm{\fgruleruser{cm}}
+% \fgrulerdefuserin{\fgruleruser{in}}
% \begin{document}
% ...
% \end{document}
% \end{examplelst}
-% This code places rulers at the left and the top border of the body. In this case the \texttt{hshift} and \texttt{vshift} options don't work.
%
% \newpage\fgrulerreset
-% \subsection{The third example for the `type=user' option}\label{example:user3}
-% \setfgruler{type=user,color=blue}
-%\makeatletter
-%\renewcommand{\fgruler@cm@user@fg}{\fgruler@cm@upperleft@fg\AtTextLowerLeft{\ignorespaces%
-%\rulerparams{}{}{\fgruler@color}{}{}%
-%\put(\textwidth,0){\ignorespaces%
-%\rulernorotatenum\fgrulercaptioncm{}\ruler{downright}{\textheight}}%
-%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
-%\makeatother
+% \subsection{Setting the \texttt{type=user} option}
+% In the next example the \texttt{type=user} option places rulers at the right and bottom borders of the text area.
+% \setfgruler{type=user}
+%\fgrulerdefusercm{\AtTextLowerLeft{\ignorespaces\rulerparamsfromfg\rulernorotatenum\llap{\ruler{downleft}{\textheight}}\ruler*{rightdown}{\textwidth}}}
% \begin{examplelst}
% \documentclass{article}
-% \usepackage[type=user,color=blue]{fgruler}
-% \makeatletter
-% \newcommand{\fgruler@user}[1]{%
-% \AtTextLowerLeft{% See eso-pic package!
-% \rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}%
-% {\fgruler@marklength}{\fgruler@numsep}%
-% \put(\textwidth,0){%
-% \rulernorotatenum%
-% \fgrulercaptioncm{}%
-% \fgrulercaptionin{}%
-% \ruler[#1]{downright}{\textheight}%
+% \usepackage[type=user]{fgruler}
+% \newcommand{\fgruleruser}[1]{%
+% \AtTextLowerLeft{% See eso-pic package!
+% \rulerparamsfromfg%
+% \rulernorotatenum%
+% \llap{\ruler[#1]{downleft}{\textheight}}%
+% \ruler*[#1]{rightdown}{\textwidth}%
% }%
-% \put(0,\textheight){%
-% \ruler[#1]{rightup}{\textwidth}%
+% }
+% \fgrulerdefusercm{\fgruleruser{cm}}
+% \fgrulerdefuserin{\fgruleruser{in}}
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+%
+% \newpage\fgrulerreset
+% \subsection{Setting the \texttt{type=user} option}\label{example:user-last}
+% In the next example the \texttt{type=user} option places rulers at the right and top borders of the text area.
+% \setfgruler{type=user}
+%\fgrulerdefusercm{\AtTextUpperLeft{\ignorespaces%
+%\rulerparamsfromfg\ruler{rightup}{\textwidth}\ignorespaces%
+%\rulernorotatenum\fgrulercaptioncm{}\ignorespaces\ruler*{downright}{\textheight}}}
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user]{fgruler}
+% \newcommand{\fgruleruser}[1]{%
+% \AtTextUpperLeft{% See eso-pic package!
+% \rulerparamsfromfg%
+% \ruler[#1]{rightup}{\textwidth}%
+% \rulernorotatenum\fgrulercaptioncm{}\fgrulercaptionin{}%
+% \ruler*[#1]{downright}{\textheight}%
% }%
-% }%
% }
-% \renewcommand{\fgruler@cm@user@fg}{\fgruler@cm@upperleft@fg\fgruler@user{cm}}
-% \renewcommand{\fgruler@in@user@fg}{\fgruler@in@upperleft@fg\fgruler@user{in}}
-% \makeatother
+% \fgrulerdefusercm{\fgruleruser{cm}}
+% \fgrulerdefuserin{\fgruleruser{in}}
% \begin{document}
% ...
% \end{document}
% \end{examplelst}
-% In this code the effect of \texttt{type=user} is similar to \texttt{type=upperleft}, but it places further rulers at the right and the top border of the body.
%
% \newpage\fgrulerreset
% \subsection{Rulers on the foreground of a given page, and in text}
@@ -711,10 +747,10 @@ keepspaces]}
% text
% \ruler*{rightdown}{3cm}
% text
-% \rotatebox[origin=tl]{30}{\ruler*{rightdown}{3cm}}
+% \rotatebox[origin=tl]{30}{\ruler*{rightdown}{3cm}}
+% % \rotatebox is defined in graphicx package
% \end{document}
% \end{examplelst}
-% \emph{Remark.} The \verb|\rotatebox| command is defined in the \texttt{graphicx} package!
%
% \newpage\fgrulerreset
% \subsection{Ruler types in text}
@@ -874,31 +910,18 @@ keepspaces]}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{A new square ruler}
+% \subsection{A new square ruler type}
% \setfgruler{type=none}
-%
-% \makeatletter
-% \newcommand{\usersquareruler}[2]{
-% \begin{picture}(#1+1em+\fgruler@marklength,#2+1em+\fgruler@marklength)
-% {\fgrulercaptioncm{}
-% \ruler{downleft}{#2}}
-% \put(0,#2){\ruler{rightup}{#1}}
-% \end{picture}}
-% \makeatother
-% \usersquareruler{3cm}{5cm}
+% {\rulernorotatenum\fgrulercaptioncm{}\ruler*{downleft}{5cm}}\ruler{rightup}{3cm}
%
% \bigskip
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=none]{fgruler}
-% \makeatletter
% \newcommand{\usersquareruler}[2]{%
-% \begin{picture}(#1+1em+\fgruler@marklength,#2+1em+\fgruler@marklength)%
-% {\fgrulercaptioncm{}%
-% \ruler{downleft}{#2}}%
-% \put(0,#2){\ruler{rightup}{#1}}%
-% \end{picture}}
-% \makeatother
+% {\rulernorotatenum\fgrulercaptioncm{}\ruler*{downleft}{#2}}%
+% \ruler{rightup}{#1}%
+% }
% \begin{document}
% \usersquareruler{3cm}{5cm}
% \end{document}
@@ -953,6 +976,8 @@ keepspaces]}
\rulerparams{.4pt}{\scriptsize\sffamily}{black}{2mm}{3pt}
+\def\rulerparamsfromfg{\rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}{\fgruler@marklength}{\fgruler@numsep}}
+
\def\fgruler@fgsetting{%
\fgruler@set{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}{\fgruler@marklength}{\fgruler@numsep}%
\rulernorotatenum}
@@ -963,14 +988,24 @@ keepspaces]}
\def\fgruler@activate@type{%
\def\fgruler@check{cm}\ifx\fgruler@unit\fgruler@check\else%
\def\fgruler@check{in}\ifx\fgruler@unit\fgruler@check\else%
-\@latexerr{Undefined unit: \fgruler@unit\space(Defined units: cm, in)}{}\fi\fi%
+\PackageError{fgruler}{\fgruler@unit\space is invalid unit}{Valid units: cm, in}%
+\fi\fi%
\def\fgruler@check{upperleft}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{upperright}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{lowerleft}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{lowerright}\ifx\fgruler@type\fgruler@check\else%
+\def\fgruler@check{upperleftT}\ifx\fgruler@type\fgruler@check\else%
+\def\fgruler@check{upperrightT}\ifx\fgruler@type\fgruler@check\else%
+\def\fgruler@check{lowerleftT}\ifx\fgruler@type\fgruler@check\else%
+\def\fgruler@check{lowerrightT}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{none}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{user}\ifx\fgruler@type\fgruler@check\else%
-\@latexerr{Undefined type: \fgruler@type\space(Defined types: upperleft, upperright, lowerleft, lowerright, user, none)}{}\fi\fi\fi\fi\fi\fi%
+\PackageError{fgruler}{\fgruler@type\space is invalid type}%
+{Valid types:\MessageBreak
+upperleft, upperright, lowerleft, lowerright,\MessageBreak
+upperleftT, upperrightT, lowerleftT, lowerrightT,\MessageBreak
+user, none}%
+\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
\def\fgruler@output{\csname fgruler@\fgruler@unit @\fgruler@type @fg\endcsname}}
\def\fgrulerratiocm#1#2{%
@@ -1051,7 +1086,7 @@ keepspaces]}
\def\fgruler@param{#1}%
\def\fgruler@check{cm}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{in}\ifx\fgruler@param\fgruler@check\else%
-\@latexerr{Invalid parameter: \fgruler@param\space(Defined parameters: cm, in)}{}%
+\PackageError{fgruler}{\fgruler@param\space is invalid parameter}{Valid parameters: cm, in}%
\fi\fi%
\def\fgruler@param{#2}%
\def\fgruler@check{rightdown}\ifx\fgruler@param\fgruler@check\else%
@@ -1062,21 +1097,26 @@ keepspaces]}
\def\fgruler@check{downleft}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{upright}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{upleft}\ifx\fgruler@param\fgruler@check\else%
-\@latexerr{Invalid parameter: \fgruler@param\space(Defined parameters: rightdown, rightup, leftdown, leftup, downright, downleft, upright, upleft)}{}%
+\PackageError{fgruler}{\fgruler@param\space is invalid parameter}%
+{Valid parameters:\MessageBreak
+rightdown, rightup, leftdown, leftup,\MessageBreak
+downright, downleft, upright, upleft}%
\fi\fi\fi\fi\fi\fi\fi\fi}
\def\fgruler@check@param@#1#2{%
\def\fgruler@param{#1}%
\def\fgruler@check{cm}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{in}\ifx\fgruler@param\fgruler@check\else%
-\@latexerr{Invalid parameter: \fgruler@param\space(Defined parameters: cm, in)}{}%
+\PackageError{fgruler}{\fgruler@param\space is invalid parameter}{Valid parameters: cm, in}%
\fi\fi%
\def\fgruler@param{#2}%
\def\fgruler@check{upperleft}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{upperright}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{lowerleft}\ifx\fgruler@param\fgruler@check\else%
\def\fgruler@check{lowerright}\ifx\fgruler@param\fgruler@check\else%
-\@latexerr{Invalid parameter: \fgruler@param\space(Defined parameters: upperleft, upperright, lowerleft, lowerright)}{}%
+\PackageError{fgruler}{\fgruler@param\space is invalid parameter}%
+{Valid parameters:\MessageBreak
+upperleft, upperright, lowerleft, lowerright}%
\fi\fi\fi\fi}
\newcommand{\fgruler@ruler}[3][cm]{\fgruler@check@param{#1}{#2}\fgruler@intextsetting\csname fgruler@#1@#2@\endcsname{#3}}
@@ -1110,8 +1150,11 @@ keepspaces]}
\def\fgruler@ifodd#1{\ifodd\value{fgrulernum}#1\fi\stepcounter{fgrulernum}}
-\def\fgrulerstartnum#1{\def\fgruler@startnum{#1}\ignorespaces}
-\def\fgruler@startnum{0}
+\def\fgrulerstartnum#1{\def\fgruler@startnumh{#1}\def\fgruler@startnumv{#1}\ignorespaces}
+\def\fgrulerstartnumh#1{\def\fgruler@startnumh{#1}\ignorespaces}
+\def\fgrulerstartnumv#1{\def\fgruler@startnumv{#1}\ignorespaces}
+\def\fgruler@startnumh{0}
+\def\fgruler@startnumv{0}
\def\fgrulerdefnum#1{\def\thefgrulernum{#1}\ignorespaces}
@@ -1120,13 +1163,13 @@ keepspaces]}
\def\rulernorotatenum{%
\ifx\@onlypreamble\@notprerr%
\def\fgruler@rotatebox##1##2{##2}%
-\else\@latexerr{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi%
\ignorespaces}
\def\rulerrotatenum{%
\ifx\@onlypreamble\@notprerr%
\def\fgruler@rotatebox##1##2{\rotatebox{##1}{##2}}%
-\else\@latexerr{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi%
\ignorespaces}
\def\fgrulerreset{%
@@ -1171,10 +1214,11 @@ keepspaces]}
\def\thefgrulernum{\arabic{fgrulernum}}%
\def\fgruler@caption@cm{cm}%
\def\fgruler@caption@in{inch}%
-\def\fgruler@startnum{0}%
+\def\fgruler@startnumh{0}%
+\def\fgruler@startnumv{0}%
\fgruler@borderlinetrue%
\fgruler@showframefalse%
-\else\@latexerr{Don't use \protect\fgrulerreset\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\fgrulerreset\space in preamble!}{}\fi%
\ignorespaces}
\AtEndPreamble{
@@ -1261,14 +1305,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(10,-\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@rightdown@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)%
\fgruler@cm@rightdown{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
@@ -1294,14 +1338,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(16,-\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@rightdown@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)%
\fgruler@in@rightdown{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
@@ -1321,14 +1365,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(10,\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@rightup@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(#1,\fgruler@width)%
\fgruler@cm@rightup{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
@@ -1354,14 +1398,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(16,\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@rightup@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(#1,\fgruler@width)%
\fgruler@in@rightup{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
@@ -1381,14 +1425,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(-10,-\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@leftdown@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)%
\fgruler@cm@leftdown{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
@@ -1414,14 +1458,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(-16,-\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@leftdown@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)%
\fgruler@in@leftdown{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
@@ -1441,14 +1485,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(-10,\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@leftup@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(#1,\fgruler@width)(-#1,0)%
\fgruler@cm@leftup{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
@@ -1474,14 +1518,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}%
\multiput(-16,\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@leftup@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(#1,\fgruler@width)(-#1,0)%
\fgruler@in@leftup{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
\ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
@@ -1501,14 +1545,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@downright@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(\fgruler@width,#1)(0,-#1)%
\fgruler@cm@downright{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5cm\put(\fgruler@sep,-5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
@@ -1534,14 +1578,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@downright@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(\fgruler@width,#1)(0,-#1)%
\fgruler@in@downright{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5in\put(\fgruler@sep,-8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
@@ -1561,14 +1605,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(-\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@downleft@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)%
\fgruler@cm@downleft{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5cm\put(-\fgruler@sep,-5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
@@ -1594,14 +1638,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(-\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@downleft@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)%
\fgruler@in@downleft{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5in\put(-\fgruler@sep,-8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
@@ -1621,14 +1665,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@upright@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(\fgruler@width,#1)%
\fgruler@cm@upright{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5cm\put(\fgruler@sep,5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
@@ -1654,14 +1698,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@upright@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(\fgruler@width,#1)%
\fgruler@in@upright{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5in\put(\fgruler@sep,8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
@@ -1681,14 +1725,14 @@ keepspaces]}
\fgruler@div{#1}{10}%
\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(-\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@upleft@#1{%
\setlength{\unitlength}{1mm}%
\begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)%
\fgruler@cm@upleft{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5cm\put(-\fgruler@sep,5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
@@ -1714,14 +1758,14 @@ keepspaces]}
\fgruler@div{#1}{16}%
\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}%
\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}%
\multiput(-\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@upleft@#1{%
\setlength{\unitlength}{.0625in}%
\begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)%
\fgruler@in@upleft{#1}%
-\setcounter{fgrulernum}{\fgruler@startnum}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
\ifdim#1>.5in\put(-\fgruler@sep,8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
@@ -1918,9 +1962,132 @@ keepspaces]}
\def\fgruler@in@lowerright@fg{\fgruler@in@lowerright@fg@{\fgruler@hshift}{\fgruler@vshift}}
+%% UPPERLEFTT CM
+\def\fgruler@cm@upperleftT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,-\textheight)%
+\fgruler@cm@rightup{\textwidth}%
+\fgruler@cm@downleft{\textheight}%
+\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERLEFTT IN
+\def\fgruler@in@upperleftT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,-\textheight)%
+\fgruler@in@rightup{\textwidth}%
+\fgruler@in@downleft{\textheight}%
+\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERRIGHTT CM
+\def\fgruler@cm@upperrightT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)%
+\fgruler@cm@leftup{\textwidth}%
+\fgruler@cm@downright{\textheight}%
+\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERRIGHTT IN
+\def\fgruler@in@upperrightT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)%
+\fgruler@in@leftup{\textwidth}%
+\fgruler@in@downright{\textheight}%
+\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERLEFTT CM
+\def\fgruler@cm@lowerleftT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,0)%
+\fgruler@cm@rightdown{\textwidth}%
+\fgruler@cm@upleft{\textheight}%
+\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERLEFTT IN
+\def\fgruler@in@lowerleftT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,0)%
+\fgruler@in@rightdown{\textwidth}%
+\fgruler@in@upleft{\textheight}%
+\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERRIGHTT CM
+\def\fgruler@cm@lowerrightT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,0)%
+\fgruler@cm@leftdown{\textwidth}%
+\fgruler@cm@upright{\textheight}%
+\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERRIGHTT IN
+\def\fgruler@in@lowerrightT@fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler@fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,0)%
+\fgruler@in@leftdown{\textwidth}%
+\fgruler@in@upright{\textheight}%
+\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}%
+\setcounter{fgrulernum}{\fgruler@startnumh}%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler@startnumv}%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}%
+\end{picture}}}
+
%% USER
\def\fgruler@cm@user@fg{}
\def\fgruler@in@user@fg{}
+\def\fgrulertype#1#2{\csname fgruler@#1@#2@fg\endcsname}
+\def\fgrulerdefusercm#1{\def\fgruler@cm@user@fg{#1}}
+\def\fgrulerdefuserin#1{\def\fgruler@in@user@fg{#1}}
% \end{macrocode}
% \Finale
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/fgruler/fgruler.pdf b/macros/latex/contrib/fgruler/fgruler.pdf
index cd1989fa8f..a823e23c5a 100644
--- a/macros/latex/contrib/fgruler/fgruler.pdf
+++ b/macros/latex/contrib/fgruler/fgruler.pdf
Binary files differ
diff --git a/macros/latex/contrib/grant/LICENSE b/macros/latex/contrib/grant/LICENSE
index 1e5a099765..f72ac7c28c 100644
--- a/macros/latex/contrib/grant/LICENSE
+++ b/macros/latex/contrib/grant/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2016 Karr Lab
+Copyright (c) 2016-2019 Karr Lab
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/macros/latex/contrib/grant/VERSION b/macros/latex/contrib/grant/VERSION
deleted file mode 100644
index 6812f8122e..0000000000
--- a/macros/latex/contrib/grant/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-0.0.3 \ No newline at end of file
diff --git a/macros/latex/contrib/grant/grant.dtx b/macros/latex/contrib/grant/grant.dtx
index 6c8a96d5f4..153a3d780e 100644
--- a/macros/latex/contrib/grant/grant.dtx
+++ b/macros/latex/contrib/grant/grant.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2016 Jonathan Karr <karr@mssm.edu>
+% Copyright (C) 2016-2019 Jonathan Karr <karr@mssm.edu>
% -----------------------------------------------------------
%
% This file may be distributed and/or modified under the conditions of
@@ -18,7 +18,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}[2003/12/01]
%<package>\ProvidesPackage{grant}
%<*package>
- [2016/08/22 v0.0.3 Grant package for formatting federal grant applications]
+ [2019/02/26 v0.0.5 Grant package for formatting federal grant applications]
%</package>
%
%
@@ -53,7 +53,11 @@
%% Right brace \} Tilde \~}
-% \changes{v0.0.2}{2016/08/17}{Initial version}
+% \changes{v0.0.5}{2019/02/26}{Adding examples}
+% \changes{v0.0.4}{2016/09/26}{Debugging class renaming and .dtx file for pdf compilation}
+% \changes{v0.0.3}{2016/08/22}{Rename classes to grant-*.cls}
+% \changes{v0.0.2}{2016/08/17}{Packaging with ins, dtx files}
+% \changes{v0.0.1}{2016/08/17}{Initial version}
%
% \GetFileInfo{grant.dtx}
%
@@ -69,7 +73,8 @@
%
% This package provides LaTeX classes to format grant applications for the following federal agencies:
% \begin{description}[labelindent=0.25in]
-% \item[\texttt{grant-arl}]: Army Research Laboratory
+% \item[\texttt{grant-afosr}]: Air Force Office of Scientific Research
+% \item[\texttt{grant-aro}]: Army Research Office
% \item[\texttt{grant-darpa}]: Defense Advanced Research Projects Agency
% \item[\texttt{grant-doe}]: Department of Energy
% \item[\texttt{grant-nih}]: National Institutes of Health
@@ -109,7 +114,7 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant}[2016/01/12 grant class]
+\ProvidesClass{grant}[2019/02/26 grant class]
%%%%%%%%%%%%%%%%%%%%%%
%% options
@@ -128,14 +133,21 @@
{\booltrue{isdraft}}
\DeclareOption{isnotdraft}
{\boolfalse{isdraft}}
-
+
+\newbool{iswhitepaper}
+\boolfalse{iswhitepaper}
+\DeclareOption{iswhitepaper}
+ {\booltrue{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}
+ {\boolfalse{iswhitepaper}}
+
\newbool{issectioncompact}
\boolfalse{issectioncompact}
\DeclareOption{issectioncompact}
{\booltrue{issectioncompact}}
\DeclareOption{isnotsectioncompact}
{\boolfalse{issectioncompact}}
-
+
\newbool{isbibcompact}
\boolfalse{isbibcompact}
\DeclareOption{isbibcompact}
@@ -143,7 +155,7 @@
\DeclareOption{isnotbibcompact}
{\boolfalse{isbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
%%%%%%%%%%%%%%%%%%%%%%
@@ -165,6 +177,16 @@
%underline
\usepackage[normalem]{ulem}
\usepackage{soul}
+\soulregister\cite7
+
+%highlighting
+\usepackage{xcolor}
+\usepackage{framed}
+\definecolor{hlcolor}{rgb}{1, 1, 0}
+\sethlcolor{hlcolor}
+\colorlet{shadecolor}{hlcolor}
+\setlength{\fboxsep}{0.05ex}
+\setlength{\OuterFrameSep}{-\fboxsep}
%spacing
\usepackage{setspace}
@@ -241,13 +263,18 @@
\subsubsection*{#2}%
}
+\ifbool{iswhitepaper}{
+ \titleformat{\section}[runin]{\bfseries}{\uline{\thesection.~}}{0ex}{\uline{#1}}[:]
+}{
+ \usepackage[auto]{chappg}
+}
+
\ifbool{issectioncompact}{
\titleformat{\section}[runin]{\bfseries}{\uline{\thesection.~}}{0ex}{\uline{#1}}[.]
\titlespacing*{\section}{0pt}{*0.0}{*0.5}
}{}
%page numbering
-\usepackage[auto]{chappg}
%header/footer
\usepackage{fancyhdr}
@@ -262,6 +289,12 @@
\rfoot{\small\thepage}
}{}
+\ifbool{iswhitepaper}{
+ \lfoot{}
+ \rfoot{}
+ \cfoot{\small\thepage}
+}{}
+
%lists
\usepackage{paralist}
\usepackage{enumitem}
@@ -314,10 +347,17 @@
\renewcommand{\bibfont}{\footnotesize}
\ExecuteBibliographyOptions{maxbibnames=1,minbibnames=1}
+
\DeclareFieldFormat[article]{title}{}
\DeclareFieldFormat[article]{pages}{}
\DeclareFieldFormat[article]{volume}{}
\DeclareFieldFormat[article]{number}{}
+
+ \DeclareFieldFormat[inproceedings]{title}{}
+ \DeclareFieldFormat[inproceedings]{pages}{}
+ \DeclareFieldFormat[inproceedings]{volume}{}
+ \DeclareFieldFormat[inproceedings]{number}{}
+
\DeclareFieldFormat[online]{url}{}
\DeclareFieldFormat[online]{urldate}{}
@@ -474,6 +514,8 @@
\newcommand{\PoEmail}{}
\newcommand{\PoPhone}{}
+\newcommand{\FundingIdTitle}{\FundingId\ifdefempty{\FundingTitle}{}{: \FundingTitle}}
+
\newcommand{\makecoverpage}{
{\LARGE\bfseries
@@ -483,7 +525,7 @@
\vskip1ex
\uline{Funding opportunity}
\\\FundingAgency
- \\{\FundingTitle} (\href{\FundingUrl}{\FundingId})
+ \\\FundingIdTitle (\href{\FundingUrl}{\FundingId})
\\\FundingDeadline
\uline{Applicant}
@@ -503,12 +545,36 @@
\\\PoPhone
}
+\newcommand{\AbstractName}{Abstract}
+\newcommand{\AbstractOtherPersonnelName}{Other key personnel and primary subcontractors}
+\providetoggle{AbstractIsCentered}
+\providetoggle{AbstractShowAdminPOC}
+\providetoggle{AbstractShowLeadOrg}
+\providetoggle{AbstractShowOtherPersonnel}
+\providetoggle{AbstractShowDuration}
+\providetoggle{AbstractShowCost}
+\settoggle{AbstractIsCentered}{false}
+\settoggle{AbstractShowAdminPOC}{true}
+\settoggle{AbstractShowLeadOrg}{true}
+\settoggle{AbstractShowOtherPersonnel}{true}
+\settoggle{AbstractShowDuration}{true}
+\settoggle{AbstractShowCost}{true}
+
+
\newcommand{\makeabstractcoverpage}{
- \begin{center}\LARGE\textbf{
- ABSTRACT\\[0.5ex]
- \FundingId: \FundingTitle\\[0.5ex]
- \ProposalTitle
+ {\setlength{\parskip}{12pt}
+
+ \iftoggle{AbstractIsCentered}{
+ \centering
+ }{}
+
+ \begin{center}\textbf{
+ \LARGE{\MakeUppercase{\AbstractName}}\\[18pt]
+ \LARGE{\FundingId}\\
+ \large{\FundingTitle}\\[18pt]
+ \LARGE{\ProposalTitle}
}\end{center}
+ \vskip-8pt
\textbf{Technical point of contact: \PiName}\\
\PiTitle\\
@@ -517,25 +583,32 @@
\PiAddress\\
Tel: \PiPhone, Fax: \PiFax, Email: \href{mailto:\PiEmail}{\PiEmail}, Web: \href{http://www.\PiUrl}{\PiUrl}
+ \iftoggle{AbstractShowAdminPOC}{
\textbf{Administrative point of contact: \AdminName}\\
\AdminTitle\\
\AdminAddress\\
\AdminInstitution\\
Tel: \AdminPhone, Fax: \AdminFax, Email: \href{mailto:\AdminEmail}{\AdminEmail}
+ }{}
+ \iftoggle{AbstractShowLeadOrg}{
\textbf{Lead organization: \LeadOrganizationName}\\
\LeadOrganizationAddress\\
DUNS number: \LeadOrganizationDUNS\\
Taxpayer identification number: \LeadOrganizationTIN\\
CAGE code: \LeadOrganizationCAGE
+ }{}
- \textbf{Other key personnel and primary subcontractors}\\
+ \iftoggle{AbstractShowOtherPersonnel}{
+ \textbf{\AbstractOtherPersonnelName}\\
\OtherKeyPersonnel
+ }{}
- \textbf{Duration: {\ProposalDurationInYears} years}
+ \iftoggle{AbstractShowDuration}{\textbf{Duration: {\ProposalDurationInYears} years}}{}
- \textbf{Estimated cost: \${\ProposalCostInMillions} million in total costs}
+ \iftoggle{AbstractShowCost}{\textbf{Estimated cost: \${\ProposalCostInMillions} million in total costs}}{}
+ }
\clearpage
}
@@ -544,18 +617,88 @@
%</grant>
% \end{macrocode}
+% \begin{macrocode}
+%<*grant-afosr>
+% \end{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{grant-afosr}[2019/02/26 AFOSR class]
+
+\newcommand{\draftstatus}{isnotdraft}
+\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
+\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
+\newcommand{\sectioncompactstatus}{isnotsectioncompact}
+\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
+\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
+
+\newcommand{\bibcompactstatus}{isnotbibcompact}
+\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
+\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
+
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ProcessOptions
+
+\LoadClass[12pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% formatting
+%%%%%%%%%%%%%%%%%%%%%%
+
+%geometry
+\geometry{margin=1in}
+
+%font
+\usepackage{times}
+\renewcommand{\familydefault}{\rmdefault}
+
+%paragraph skip
+\setlength{\parskip}{4pt}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% abstract
+%%%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\AbstractName}{White paper}
+\settoggle{AbstractIsCentered}{true}
+\settoggle{AbstractShowAdminPOC}{false}
+\settoggle{AbstractShowLeadOrg}{false}
+\settoggle{AbstractShowOtherPersonnel}{false}
+\settoggle{AbstractShowDuration}{false}
+\settoggle{AbstractShowCost}{false}
+
+\ifbool{iswhitepaper}{
+ \titleformat{\section}[block]{\bfseries}{\uline{\thesection.~}}{0ex}{\uline{#1}}[]
+ \titleformat{\subsection}[runin]{\bfseries}{\thesubsection.~}{0ex}{#1}[.]
+ \titleformat{\subsubsection}[runin]{}{\uline{\thesubsubsection.~}}{0ex}{\uline{#1}}[.]
+
+ \titlespacing*{\section}{0pt}{*0.0}{*-1}
+
+ \renewcommand{\bibfont}{\normalsize}
+}{}
+
% \begin{macrocode}
-%<*grant-arl>
+%</grant-afosr>
% \end{macrocode}
+
+% \begin{macrocode}
+%<*grant-aro>
+% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-arl}[2016/01/19 ARL class]
+\ProvidesClass{grant-aro}[2019/02/26 ARO class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -564,10 +707,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[12pt, \draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[12pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -583,8 +726,30 @@
%paragraph skip
\setlength{\parskip}{4pt}
+%%%%%%%%%%%%%%%%%%%%%%
+%% abstract
+%%%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\AbstractName}{White paper}
+\settoggle{AbstractIsCentered}{true}
+\settoggle{AbstractShowAdminPOC}{true}
+\settoggle{AbstractShowLeadOrg}{true}
+\settoggle{AbstractShowOtherPersonnel}{true}
+\settoggle{AbstractShowDuration}{false}
+\settoggle{AbstractShowCost}{false}
+
+\ifbool{iswhitepaper}{
+ \titleformat{\section}[block]{\bfseries}{\uline{\thesection.~}}{0ex}{\uline{#1}}[]
+ \titleformat{\subsection}[runin]{\bfseries}{\thesubsection.~}{0ex}{#1}[.]
+ \titleformat{\subsubsection}[runin]{}{\uline{\thesubsubsection.~}}{0ex}{\uline{#1}}[.]
+
+ \titlespacing*{\section}{0pt}{*0.0}{*-1}
+
+ \renewcommand{\bibfont}{\normalsize}
+}{}
+
+
% \begin{macrocode}
-%</grant-arl>
+%</grant-aro>
% \end{macrocode}
@@ -592,12 +757,16 @@
%<*grant-darpa>
% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-darpa}[2016/01/12 DARPA class]
+\ProvidesClass{grant-darpa}[2019/02/26 DARPA class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -606,10 +775,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[12pt, \draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[12pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -633,12 +802,16 @@
%<*grant-doe>
% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-doe}[2016/01/12 DOE class]
+\ProvidesClass{grant-doe}[2019/02/26 DOE class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -647,10 +820,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[\draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[11pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -658,6 +831,26 @@
%geometry
\geometry{margin=1in}
+
+%font
+\usepackage{times}
+\renewcommand{\familydefault}{\rmdefault}
+
+%%%%%%%%%%%%%%%%%%%%%
+%% cover page
+%%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\makeabstractcoverpage}{
+ \titlespacing*{\chapter}{0pt}{-4.4ex}{*-1}
+ {\centering
+ \chapter*{\centerline{\ProposalTitle}}
+ \PiName, \PiTitle\\
+ \PiDepartment, \PiInstitution\\
+ \PiPhone, \href{mailto:\PiEmail}{\PiEmail}, \href{http://www.\PiUrl}{\PiUrl}\\
+ DOE/Office of Science Program Office\\
+ Funding Opportunity Announcement Number: \FundingId\\
+ }
+}
+
% \begin{macrocode}
%</grant-doe>
% \end{macrocode}
@@ -667,12 +860,16 @@
%<*grant-nih>
% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-nih}[2016/01/12 NIH class]
+\ProvidesClass{grant-nih}[2019/02/26 NIH class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -681,10 +878,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[\draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[\draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -702,12 +899,16 @@
%<*grant-nrl>
% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-nrl}[2016/01/19 NRL class]
+\ProvidesClass{grant-nrl}[2019/02/26 NRL class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -716,10 +917,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[12pt, \draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[12pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -743,12 +944,16 @@
%<*grant-nsf>
% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-nsf}[2016/01/12 NSF class]
+\ProvidesClass{grant-nsf}[2019/02/26 NSF class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -757,10 +962,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[10pt, \draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[10pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -777,12 +982,16 @@
%<*grant-onr>
% \end{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{grant-onr}[2016/01/19 ONR class]
+\ProvidesClass{grant-onr}[2019/02/26 ONR class]
\newcommand{\draftstatus}{isnotdraft}
\DeclareOption{isdraft}{\renewcommand{\draftstatus}{isdraft}}
\DeclareOption{isnotdraft}{\renewcommand{\draftstatus}{isnotdraft}}
+\newcommand{\whitepaperstatus}{isnotwhitepaper}
+\DeclareOption{iswhitepaper}{\renewcommand{\whitepaperstatus}{iswhitepaper}}
+\DeclareOption{isnotwhitepaper}{\renewcommand{\whitepaperstatus}{isnotwhitepaper}}
+
\newcommand{\sectioncompactstatus}{isnotsectioncompact}
\DeclareOption{issectioncompact}{\renewcommand{\sectioncompactstatus}{issectioncompact}}
\DeclareOption{isnotsectioncompact}{\renewcommand{\sectioncompactstatus}{isnotsectioncompact}}
@@ -791,10 +1000,10 @@
\DeclareOption{isbibcompact}{\renewcommand{\bibcompactstatus}{isbibcompact}}
\DeclareOption{isnotbibcompact}{\renewcommand{\bibcompactstatus}{isnotbibcompact}}
-\ExecuteOptions{isdraft, isnotdraft, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
+\ExecuteOptions{isdraft, isnotdraft, iswhitepaper, isnotwhitepaper, issectioncompact, isnotsectioncompact, isbibcompact, isnotbibcompact}
\ProcessOptions
-\LoadClass[12pt, \draftstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
+\LoadClass[12pt, \draftstatus, \whitepaperstatus, \sectioncompactstatus, \bibcompactstatus]{grant}
%%%%%%%%%%%%%%%%%%%%%%
%% formatting
@@ -809,6 +1018,29 @@
%paragraph skip
\setlength{\parskip}{4pt}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% abstract
+%%%%%%%%%%%%%%%%%%%%%%
+\renewcommand{\AbstractName}{White paper}
+\settoggle{AbstractIsCentered}{true}
+\settoggle{AbstractShowAdminPOC}{false}
+\settoggle{AbstractShowLeadOrg}{false}
+\settoggle{AbstractShowOtherPersonnel}{false}
+\settoggle{AbstractShowDuration}{false}
+\settoggle{AbstractShowCost}{false}
+
+\ifbool{iswhitepaper}{
+ \titleformat{\section}[block]{\bfseries}{\uline{\thesection.~}}{0ex}{\uline{#1}}[]
+ \titleformat{\subsection}[runin]{\bfseries}{\thesubsection.~}{0ex}{#1}[.]
+ \titleformat{\subsubsection}[runin]{}{\uline{\thesubsubsection.~}}{0ex}{\uline{#1}}[.]
+
+ \titlespacing*{\section}{0pt}{*0.0}{*-1}
+
+ \renewcommand{\bibfont}{\normalsize}
+}{}
+
+
% \begin{macrocode}
%</grant-onr>
% \end{macrocode}
diff --git a/macros/latex/contrib/grant/grant.ins b/macros/latex/contrib/grant/grant.ins
index 74f5035994..a726dbff3a 100644
--- a/macros/latex/contrib/grant/grant.ins
+++ b/macros/latex/contrib/grant/grant.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2016 Jonathan Karr <karr@mssm.edu>
+%% Copyright (C) 2016-2019 Jonathan Karr <karr@mssm.edu>
%%
%% This file may be distributed and/or modified under the conditions of
%% the MIT License. The latest version of this license is in:
@@ -16,7 +16,7 @@
This is a generated file.
-Copyright (C) 2016 Jonathan Karr <karr@mssm.edu>
+Copyright (C) 2016-2019 Jonathan Karr <karr@mssm.edu>
This file may be distributed and/or modified under the conditions of
the MIT License. The latest version of this license is in:
@@ -26,13 +26,14 @@ the MIT License. The latest version of this license is in:
\endpreamble
\generate{\file{grant.cls}{\from{grant.dtx}{grant}}}
-\generate{\file{grant-arl.cls}{\from{grant.dtx}{arl}}}
-\generate{\file{grant-darpa.cls}{\from{grant.dtx}{darpa}}}
-\generate{\file{grant-doe.cls}{\from{grant.dtx}{doe}}}
-\generate{\file{grant-nih.cls}{\from{grant.dtx}{nih}}}
-\generate{\file{grant-nrl.cls}{\from{grant.dtx}{nrl}}}
-\generate{\file{grant-nsf.cls}{\from{grant.dtx}{nsf}}}
-\generate{\file{grant-onr.cls}{\from{grant.dtx}{onr}}}
+\generate{\file{grant-afosr.cls}{\from{grant.dtx}{grant-afosr}}}
+\generate{\file{grant-aro.cls}{\from{grant.dtx}{grant-aro}}}
+\generate{\file{grant-darpa.cls}{\from{grant.dtx}{grant-darpa}}}
+\generate{\file{grant-doe.cls}{\from{grant.dtx}{grant-doe}}}
+\generate{\file{grant-nih.cls}{\from{grant.dtx}{grant-nih}}}
+\generate{\file{grant-nrl.cls}{\from{grant.dtx}{grant-nrl}}}
+\generate{\file{grant-nsf.cls}{\from{grant.dtx}{grant-nsf}}}
+\generate{\file{grant-onr.cls}{\from{grant.dtx}{grant-onr}}}
\obeyspaces
\Msg{*************************************************************}
@@ -41,7 +42,8 @@ the MIT License. The latest version of this license is in:
\Msg{* files into a directory searched by TeX: *}
\Msg{* *}
\Msg{* grant.cls *}
-\Msg{* grant-arl.cls *}
+\Msg{* grant-afosr.cls *}
+\Msg{* grant-aro.cls *}
\Msg{* grant-darpa.cls *}
\Msg{* grant-doe.cls *}
\Msg{* grant-nih.cls *}
diff --git a/macros/latex/contrib/grant/grant.pdf b/macros/latex/contrib/grant/grant.pdf
index 73387da30b..d3b7416192 100644
--- a/macros/latex/contrib/grant/grant.pdf
+++ b/macros/latex/contrib/grant/grant.pdf
Binary files differ
diff --git a/macros/latex/contrib/xltabular/Changes b/macros/latex/contrib/xltabular/Changes
index d29caef556..4863998012 100644
--- a/macros/latex/contrib/xltabular/Changes
+++ b/macros/latex/contrib/xltabular/Changes
@@ -1,3 +1,4 @@
+2.0e 2020/11/04 - insert a \par at the beginning of xltabular
2.0c 2020/03/20 - restore of original longtable more robust
2.0a 2018/12/16 - better hyperref support; example files
1.0a 2018/05/23 - restore original tabularx must not be statically
diff --git a/macros/latex/contrib/xltabular/xltabular-doc.pdf b/macros/latex/contrib/xltabular/xltabular-doc.pdf
index 99ae7edd82..31763a2549 100644
--- a/macros/latex/contrib/xltabular/xltabular-doc.pdf
+++ b/macros/latex/contrib/xltabular/xltabular-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/xltabular/xltabular.sty b/macros/latex/contrib/xltabular/xltabular.sty
index 9b76de8875..6752047c5e 100644
--- a/macros/latex/contrib/xltabular/xltabular.sty
+++ b/macros/latex/contrib/xltabular/xltabular.sty
@@ -6,7 +6,7 @@
% Copyright 2018-2020 Herbert Voss <hvoss@tug.org>
% Rolf Niepraschk <Rolf.Niepraschk@gmx.de>
%%
-\ProvidesPackage{xltabular}[2020/06/14 v0.2d `xltabular' package (hv,RN)]
+\ProvidesPackage{xltabular}[2020/11/04 v0.2e `xltabular' package (hv,RN)]
\RequirePackage{tabularx}
\let\XLT@i@tabularx=\tabularx
\let\XLT@i@endtabularx=\endtabularx
@@ -35,16 +35,18 @@
% define a new tabularx like the one from "ltablex"
%
\newenvironment{xltabular}[1][x]%
-{\if l#1%
+{%
+ \par
+ \if l#1%
\LTleft\z@ \LTright\fill
- \else\if r#1%
+ \else\if r#1%
\LTleft\fill \LTright\z@
- \else\if c#1%
+ \else\if c#1%
\LTleft\fill \LTright\fill
- \fi\fi\fi
- \let\TX@endtabularx=\XLT@ii@TX@endtabularx
- \let\endtabularx\endxltabular
- \XLT@ii@tabularx}
+ \fi\fi\fi
+ \let\TX@endtabularx=\XLT@ii@TX@endtabularx
+ \let\endtabularx\endxltabular
+ \XLT@ii@tabularx}
{\def\@currenvir{tabularx}}
\def\LT@caption{%