diff options
Diffstat (limited to 'texmf-dist/tex/latex/fetchbibpes/fsubstr.def')
-rw-r--r-- | texmf-dist/tex/latex/fetchbibpes/fsubstr.def | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/texmf-dist/tex/latex/fetchbibpes/fsubstr.def b/texmf-dist/tex/latex/fetchbibpes/fsubstr.def new file mode 100644 index 00000000..932f6502 --- /dev/null +++ b/texmf-dist/tex/latex/fetchbibpes/fsubstr.def @@ -0,0 +1,195 @@ +%% +%% This is file `fsubstr.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fetchbibpes.dtx (with options: `copyright,fsubstr') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% fetchbibpes.sty package, %% +%% Copyright (C) 2016--2018 %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1.2 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\define@key{fbpesvprts}{marks}[]{\fp@cntArgs#1\stop@rg + \xdef\nMarks{\fp@nReplace}\def\fbpesvprts@marks{#1}% + \def\fbpes@replace{#1{}}} +\let\fbpesvprts@marks\@empty +\define@key{fbpesvprts}{name}[]{\def\@rgi{#1}% + \ifx\@rgi\@empty\else + \@ifundefined{mvname#1}{\global\csarg\let{mvname#1}\null + \def\fbpesvprts@name{#1}} + {\PackageError{fetchbibpes}{% + The value assigned for the `name' key\MessageBreak + is already in use, choose another} + {Assign a value for `name' in \string\markverse}% + }% + \fi +} +\define@key{fbpesfsubstr}{name}[]{\def\@rgi{#1}% + \ifx\@rgi\@empty\else + \@ifundefined{mvname#1}{% Not declared earlier by \markverse + \PackageError{fetchbibpes}{% + The value `#1' has not been assigned earlier\MessageBreak + for the `name' key in \string\markverse} + {You've possibly mistyped the name, + or `name=#1'\MessageBreak was not declared earlier + in a \string\markverse\space command}% + }{\def\fbpesvprts@name{#1}}% + \fi +} +\define@key{fbpesfsubstr}{begin}[]{\def\fbpesvprts@begin{#1}} +\let\fbpesvprts@begin\@empty +\define@key{fbpesfsubstr}{end}[]{\def\fbpesvprts@end{#1}} +\let\fbpesvprts@end\@empty +\let\fbpesvprts@name\@empty +\def\fb@removeBook#1 #2\@nil{% + \fb@get@chptverse{iftrue}#2\@nil +} +\def\fp@getOne#1#2\@nil{\def\fp@FT{#1}\def\fbpes@replace{#2}}% +\let\bMrkFP\relax \let\eMrkFP\relax +\newif\iffirstgr@b \firstgr@btrue +\newwrite\bvout +\long\def\gr@bSegment#1\bMrkFP#2\eMrkFP#3\@nil{% + \csarg\gdef{\fbpesvprts@name\thisIndex}{#2}% + \def\fb@passage{#3}% #1#3 + \writeToJobnameBV +} +\def\writeSubstrNotFound{% + \csarg\gdef{\fbpesvprts@name\thisIndex}{\expandafter + \string\fb@qq(alt=\fbpesvprts@name\thisIndex: + substring not identified)\expandafter\string + \fb@qq}\writeToJobnameBV +} +\let\wrtToJBV\fb@NO +\def\writeToJobnameBV{% + \iffirstgr@b + \global\let\wrtToJBV\fb@YES + \immediate\openout\bvout \jobname-bv.cut + \immediate\write\bvout{\string\begin{declareBVs*}}\fi + \global\firstgr@bfalse + \immediate\write\bvout{\string + \BV(\bib@ver\space\fbpesvprts@name\thisIndex) + \@nameuse{\fbpesvprts@name\thisIndex}\string\null}% +} +\newcommand\markverse[2][]{\bgroup + \setkeys{fbpesvprts,fbpes}{#1}% + \ifx\fbpesvprts@name\@empty + \PackageError{fetchbibpes}{% + You have not specified a value\MessageBreak + for the name key, please fix}{}\fi + \ifx\fbpesvprts@marks\@empty + \PackageWarning{fetchbibpes}{% + You have not specified any values\MessageBreak + for the marks key, please fix.\MessageBreak + Meanwhile, I'll set marks={}{}}% + \xdef\nMarks{2}\def\fbpesvprts@marks{{}{}}% + \def\fbpes@replace{{}{}{}}\fi + \fb@getBookAPassage#2\@nil + \fb@removeBook#2\@nil + \ifnum\fb@verseStart=\fb@verseEnd\relax\else + \PackageWarning{fetchbibpes}{You've specified multiple verses + (\fb@verseStart-\fb@verseEnd).\MessageBreak + The command \string\markverse\space + supports only a single verse.\MessageBreak + Will set the End verse equal to the Start verse\MessageBreak + and continue}\edef\fb@verseEnd{\fb@verseStart}% + \fi + \@tempcnta\fb@verseEnd\relax + \advance\@tempcnta\@ne + \edef\fb@verseEnd{\the\@tempcnta}% + \@tempcnta\fb@verseStart\relax + \let\fbpes@alt\@empty % the alt key is not supported + \@whilenum\@tempcnta<\fb@verseEnd\relax\do{% + \edef\bib@ver{\bib@book\space + \bib@chpt:\the\@tempcnta\fbpes@from\fbpes@alt}% + \@ifundefined{\bib@ver}{% + \ifx\fbpes@alt\@empty\else + \ifuseoldalt\else + \edef\bib@ver{\bib@book\space + \bib@chpt:\the\@tempcnta\fbpes@from}\fi + \@ifundefined{\bib@ver}{% + \edef\bib@ver{\bib@book\space + \bib@chpt:\the\@tempcnta\fbpes@from\fbpes@alt}% + }{% + \PackageWarning{fetchbibpes}{An alt value + of\fbpes@alt\space is specified. + \MessageBreak The verse '\bib@ver\fbpes@alt' + is undefined,\MessageBreak using + '\bib@ver' instead}% + }% + \fi + }{}% + \@ifundefined{\bib@ver}{\fb@qq(\bib@ver)\fb@qq} + {% + \fp@loopformarks + }\advance\@tempcnta\@ne + \iffound@ltstarstop\let\fbpes@alt\@empty\fi + }%\@whildnum + \egroup +} +\let\markverseIn\markverse +\newcommand\fetchsubstrOf[2][]{% + \setkeys{fbpesfsubstr}{#1}% + \fbpesvprts@begin\@nameuse{\fbpesvprts@name#2}\fbpesvprts@end +} +\def\fp@loopformarks{% + \@tempcntb\nMarks\relax + \multiply\@tempcntb\tw@\relax + \let\repl@cep@ssage\@empty + \protected@edef\fb@passage{\@nameuse{\bib@ver}}% + \let\@@protect\protect + \let\protect\@unexpandable@protect + \let\fbpes@replace@save\fbpes@replace + \advance\@tempcntb\@ne + \edef\fp@cnt{\the\@tempcntb}\@tempcntb1\relax + \let\fb@passage@SAVE\fb@passage + \@whilenum\@tempcntb<\fp@cnt\do + {% + \expandafter\fp@getOne\fbpes@replace\@nil + \protected@edef\fb@@tmp{\noexpand + \fb@replace*{\fb@passage}}% + \ifodd\@tempcntb\relax + \edef\cntahold{\the\@tempcntb}% + \advance\@tempcntb\@ne + \divide\@tempcntb\tw@\relax + \xdef\thisIndex{\the\@tempcntb}% + \@tempcntb\cntahold\relax + \let\fb@foundNum\fb@Zero + \ifx\fp@FT\@empty + \expandafter\def\expandafter\fb@passage\expandafter + {\expandafter\bMrkFP\fb@passage}% + \let\fb@foundNum\fb@One + \else + \protected@edef\x{% + \noexpand\fb@@tmp{\fp@FT}{\bMrkFP\fp@FT}}\x + \iffb@doreplace\let\fb@foundNum\fb@One\fi + \fi + \else + \protected@edef\x{% + \noexpand\fb@@tmp{\fp@FT}{\fp@FT\eMrkFP}}\x + \iffb@doreplace\if\fb@foundNum\fb@One + \let\fb@foundNum\fb@Two\fi\fi + \fi + \ifodd\@tempcntb\else + \if\fb@foundNum\fb@Two\expandafter + \gr@bSegment\fb@passage\bMrkFP\eMrkFP\@nil + \else + \let\fb@passage\fb@passage@SAVE + \writeSubstrNotFound + \fi + \fi + \advance\@tempcntb\@ne + }% \@whilenum + \let\fbpes@replace\fbpes@replace@save + \set@typeset@protect +} +\endinput +%% +%% End of file `fsubstr.def'. |