diff options
author | Norbert Preining <norbert@preining.info> | 2020-11-05 03:02:04 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-11-05 03:02:04 +0000 |
commit | b8f26d1a3ca0ba4b66477af6bd2cff2071ddd0fc (patch) | |
tree | f4f4a5d17850094c77b0ef61d004cd2532b9ad9e /macros/latex/contrib | |
parent | 07794af1099869d326e5904c42f1224de759fd56 (diff) |
CTAN sync 202011050302
Diffstat (limited to 'macros/latex/contrib')
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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex cd1989fa8f..a823e23c5a 100644 --- a/macros/latex/contrib/fgruler/fgruler.pdf +++ b/macros/latex/contrib/fgruler/fgruler.pdf 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 Binary files differindex 73387da30b..d3b7416192 100644 --- a/macros/latex/contrib/grant/grant.pdf +++ b/macros/latex/contrib/grant/grant.pdf 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 Binary files differindex 99ae7edd82..31763a2549 100644 --- a/macros/latex/contrib/xltabular/xltabular-doc.pdf +++ b/macros/latex/contrib/xltabular/xltabular-doc.pdf 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{% |