%%
%% This is file `nmbib.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% nmbib.dtx  (with options: `style')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from nmbib.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file nmbib.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% Copyright 2015, Michael Cohen <mcohen@u-aizu.ac.jp>
%% and Boris Veytsman <borisv@lk.net>
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3 of this license or (at your option) any
%% later version.
%% The latest version of the license is in
%%    http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2003/06/01 or later.
%%
%% This work has the LPPL maintenance status `maintained'.
%%
%% The Current Maintainer of this work is Boris Veytsman
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{nmbib}
[2015/07/25 v1.03 Multibibliography support for LaTeX]
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{natbib}}
\ProcessOptions\relax
\RequirePackage{natbib}
\def\NMBIB@types{timeline,sequence,authors}
\def\multibibliographyfilename#1#2{%
  \expandafter\edef\csname NMBIB@#1@filename\endcsname{#2}}
\@onlypreamble{\multibibliographyfilename}
\@for\@tempa:=\NMBIB@types\do{%
  \expandafter\multibibliographyfilename{\@tempa}{\jobname-\@tempa}}
\@for\@tempa:=\NMBIB@types\do{%
  \expandafter\newwrite\csname NMBIB@\@tempa @aux\endcsname}
\AtBeginDocument{%
  \if@filesw
  \@for\@tempa:=\NMBIB@types\do{%
    \immediate\openout\csname NMBIB@\@tempa @aux\endcsname
    \csname NMBIB@\@tempa @filename\endcsname.aux
    \immediate\write\csname NMBIB@\@tempa @aux\endcsname{\relax}}%
  \fi}
\AtEndDocument{%
  \if@filesw
  \@for\@tempa:=\NMBIB@types\do{%
    \immediate\closeout\csname NMBIB@\@tempa @aux\endcsname}%
  \fi}
\def\multibibliographystyle#1#2{%
    \ifx\@begindocumenthook\@undefined\else
      \expandafter\AtBeginDocument
    \fi
    {\if@filesw
      \immediate\write\csname NMBIB@#1@aux\endcsname{%
        \string\bibstyle{#2}}%
     \fi}}
\def\multibibliography#1{%
    \ifx\@begindocumenthook\@undefined\else
      \expandafter\AtBeginDocument
    \fi
    {\if@filesw
      \@for\@tempa:=\NMBIB@types\do{%
        \immediate\write\csname NMBIB@\@tempa @aux\endcsname
        {\string\bibdata{#1}}}%
      \fi}}
\def\nmbibBasetype#1{\gdef\NMBIB@bibcite@type{#1}}
\nmbibBasetype{sequence}
\@for\@tempa:=\NMBIB@types\do{%
  \expandafter\edef\csname NMBIB@\@tempa
  @cite@suffix\endcsname{\@tempa}}
\def\NMBIB@alias@cite@suffix{authors}
\def\nmbibRedirectLinks#1#2{%
  \expandafter\edef\csname NMBIB@#1@cite@suffix\endcsname{#2}}
\def\NAT@set@cites{}
\let\@cite\NAT@cite
\let\@citex\NAT@citex
\let\@biblabel\NAT@biblabel
\let\@bibsetup\NAT@bibsetup
\let\NAT@space\NAT@spacechar
\let\NAT@penalty\@empty
\renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}
\def\natexlab#1{#1}
\newif\ifNMBIB@printyearsuffix
\NMBIB@printyearsuffixtrue
\def\nmbibYearSuffixOn{\NMBIB@printyearsuffixtrue}
\def\nmbibYearSuffixOff{\NMBIB@printyearsuffixfalse}
\renewcommand\NAT@sort@cites[1]{%
  \let\NAT@cite@list\@empty
  \@for\@citeb:=#1\do{\expandafter\NAT@star@cite\@citeb\@@}%
  \if@filesw
    \@for\@tempa:=\NMBIB@types\do{%
      \expandafter\immediate\expandafter\write\expandafter
      \csname NMBIB@\@tempa @aux\endcsname
      \expandafter{\expandafter\string\expandafter\citation\expandafter{\NAT@cite@list}}}%
  \fi
  \@ifnum{\NAT@sort>\z@}{%
    \expandafter\NAT@sort@cites@\expandafter{\NAT@cite@list}%
  }{}%
}%
\def\nmbibcitenumber#1#2{%
  \@ifundefined{nmbib@num@#1\@extra@binfo}{\relax}{%
    \NAT@citemultiple
    \PackageWarningNoLine{natbib}{Citation `#1' multiply defined}%
 }%
 \global\@namedef{nmbib@num@#1\@extra@binfo}{#2}}
\AtEndDocument{\let\nmbibcitenumber\NMBIB@testnum}
\newcommand\NMBIB@testnum[2]{%
  \def\NAT@temp{#2}%
  \expandafter \ifx \csname nmbib@num@#1\@extra@binfo\endcsname\NAT@temp
  \else
    \ifNAT@swa \NAT@swafalse
      \PackageWarningNoLine{natbib}{%
        Citation(s) may have changed.\MessageBreak
        Rerun to get citations correct%
      }%
    \fi
  \fi
}%
\let\NAT@parse@orig=\NAT@parse\relax
\renewcommand\NAT@parse[1]{\NAT@parse@orig{#1}%
  \@ifundefined{nmbib@num@#1\@extra@binfo}{\def\NAT@num{0}}{%
    \edef\NAT@num{\csname nmbib@num@#1\@extra@binfo\endcsname}}}
\def\nmbibLink#1#2#3{%
  \hyper@natlinkstart{#1\@extra@b@citeb-\csname
    NMBIB@#2@cite@suffix\endcsname}#3\hyper@natlinkend}
\def\NAT@citexnum[#1][#2]#3{%
  \NAT@reset@parser
  \NAT@sort@cites{#3}%
  \NAT@reset@citea
  \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty
    \@for\@citeb:=\NAT@cite@list\do
    {\@safe@activestrue
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \@safe@activesfalse
     \@ifundefined{b@\@citeb\@extra@b@citeb}{%
       {\reset@font\bfseries?}
        \NAT@citeundefined\PackageWarning{natbib}%
       {Citation `\@citeb' on page \thepage \space undefined}}%
     {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
      \NAT@parse{\@citeb}%
      \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
        \let\NAT@name=\NAT@all@names
        \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
      \fi
      \ifNAT@full\let\NAT@nm\NAT@all@names\else
        \let\NAT@nm\NAT@name\fi
      \ifNAT@swa
       \@ifnum{\NAT@ctype>\@ne}{%
        \@citea
        \NMBIB@hyper@{alias}{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}%
       }{%
        \@ifnum{\NAT@cmprs>\z@}{%
         \NAT@ifcat@num\NAT@num
          {\let\NAT@nm=\NAT@num}%
          {\def\NAT@nm{-2}}%
         \NAT@ifcat@num\NAT@last@num
          {\@tempcnta=\NAT@last@num\relax}%
          {\@tempcnta\m@ne}%
         \@ifnum{\NAT@nm=\@tempcnta}{%
          \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}%
         }{%
           \advance\@tempcnta by\@ne
           \@ifnum{\NAT@nm=\@tempcnta}{%
             \ifx\NAT@last@yr\relax
               \def@NAT@last@yr{\@citea}%
             \else
               \def@NAT@last@yr{--\NAT@penalty}%
             \fi
           }{%
             \NAT@last@yr@mbox
           }%
         }%
        }{%
         \@tempswatrue
         \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}%
         \if@tempswa\NAT@citea@mbox\fi
        }%
       }%
       \NAT@def@citea
      \else
        \ifcase\NAT@ctype
          \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else
            \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}%
          \fi
          \if*#1*\else#1\NAT@spacechar\fi
          \NAT@mbox{\NMBIB@hyper@{sequence}{{\citenumfont{\NAT@num}}}}%
          \NAT@def@citea@box
        \or
          \NMBIB@hyper@citea@space{sequence}{\NAT@test{\NAT@ctype}}%
        \or
          \NAT@hyper@citea@space{sequence}{\NAT@test{\NAT@ctype}}%
        \or
          \NAT@hyper@citea@space{alias}{\NAT@alias}%
        \fi
      \fi
     }%
    }%
      \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}%
      \ifNAT@swa\else
        \@ifnum{\NAT@ctype=\z@}{%
          \if*#2*\else\NAT@cmt#2\fi
        }{}%
        \NAT@mbox{\NAT@@close}%
      \fi
  }{#1}{#2}%
}%
\def\NMBIB@hyper@#1#2{%
 \nmbibLink{\@citeb}{#1}{#2}}
\def\NMBIB@hyper@citea#1#2{%
 \@citea
 \NMBIB@hyper@{#1}{#2}%
 \NAT@def@citea
}%
\def\NMBIB@hyper@citea@space#1#2{%
 \@citea
 \NMBIB@hyper@{#1}{#2}%
 \NAT@def@citea@space
}%
\def\def@NAT@last@yr#1{%
 \protected@edef\NAT@last@yr{%
  #1%
  \noexpand\mbox{%
   \noexpand\hyper@natlinkstart{\@citeb\@extra@b@citeb-\NMBIB@sequence@cite@suffix}%
   {\noexpand\citenumfont{\NAT@num}}%
   \noexpand\hyper@natlinkend
  }%
 }%
}%
\def\NAT@citea@mbox{%
 \@citea\mbox{\NMBIB@hyper@{sequence}{{\citenumfont{\NAT@num}}}}%
}%
\def\NMBIB@citex%
  [#1][#2]#3{%
  \NAT@reset@parser
  \NAT@sort@cites{#3}%
  \NAT@reset@citea
  \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty
    \@for\@citeb:=\NAT@cite@list\do
    {\@safe@activestrue
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \@safe@activesfalse
     \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
       {\reset@font\bfseries ?}\NAT@citeundefined
                 \PackageWarning{natbib}%
       {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%
     {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
      \NAT@parse{\@citeb}%
      \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
        \let\NAT@name=\NAT@all@names
        \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
      \fi
     \ifNAT@full\let\NAT@nm\NAT@all@names\else
       \let\NAT@nm\NAT@name\fi
     \ifNAT@swa\ifcase\NAT@ctype
       \if\relax\NAT@date\relax
         \@citea\NMBIB@hyper@{authors}{\NAT@nmfmt{\NAT@nm}}%
         \NMBIB@hyper@{timeline}{\NAT@date}%
       \else
         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
            \ifx\NAT@last@yr\NAT@year
              \def\NAT@temp{{?}}%
              \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
               {Multiple citation on page \thepage: same authors and
               year\MessageBreak without distinguishing extra
               letter,\MessageBreak appears as question mark}\fi
              \NMBIB@hyper@{timeline}{\NAT@exlab}%
            \else\unskip\NAT@spacechar
              \NMBIB@hyper@{timeline}{\NAT@date}%
            \fi
         \else
           \@citea\NMBIB@hyper@{authors}{%
             \NAT@nmfmt{\NAT@nm}%
             \hyper@natlinkbreak{%
               \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb
             }}%
             \NMBIB@hyper@{timeline}{\NAT@date
           }%
         \fi
       \fi
     \or\@citea\NMBIB@hyper@{authors}{\NAT@nmfmt{\NAT@nm}}%
     \or\@citea\NMBIB@hyper@{timeline}{\NAT@date}%
     \or\@citea\NMBIB@hyper@{alias}{\NAT@alias}%
     \fi \NAT@def@citea
     \else
       \ifcase\NAT@ctype
        \if\relax\NAT@date\relax
          \@citea\NMBIB@hyper@{authors}{\NAT@nmfmt{\NAT@nm}}%
        \else
         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
            \ifx\NAT@last@yr\NAT@year
              \def\NAT@temp{{?}}%
              \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
               {Multiple citation on page \thepage: same authors and
               year\MessageBreak without distinguishing extra
               letter,\MessageBreak appears as question mark}\fi
              \NMBIB@hyper@{timeline}{\NAT@exlab}%
            \else
              \unskip\NAT@spacechar
              \NMBIB@hyper@{timeline}{\NAT@date}%
            \fi
         \else
           \@citea\NMBIB@hyper@{authors}{%
             \NAT@nmfmt{\NAT@nm}%
             \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}%
               {\@citeb\@extra@b@citeb}}%
             \NMBIB@hyper@{timeline}{\NAT@date
           }%
         \fi
        \fi
       \or\@citea\NMBIB@hyper@{authors}{\NAT@nmfmt{\NAT@nm}}%
       \or\@citea\NMBIB@hyper@{timeline}{\NAT@date}%
       \or\@citea\NMBIB@hyper@{alias}{\NAT@alias}%
       \fi
       \if\relax\NAT@date\relax
         \NAT@def@citea
       \else
         \NAT@def@citea@close
       \fi
     \fi
     }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
     \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{#1}{#2}}
\let\@citex\NMBIB@citex
\newcommand\citealn[1]{[\citenum{#1}]}
\def\nmbibSetCiteall#1{\def\NMBIB@citeallformat{#1}}
\nmbibSetCiteall{\nmbibLink{\nmbibKEY}{authors}{\nmbibNAME} %
  (\nmbibLink{\nmbibKEY}{timeline}{\nmbibDATE}) %
  [\nmbibLink{\nmbibKEY}{sequence}{\nmbibNUM}]}
\DeclareRobustCommand\citeall
{\begingroup\@ifnextchar*{\NAT@fulltrue\@citeall}{\NAT@fullfalse\@citeall*}}
\def\@citeall#1{\@ifnextchar[{\@@citeall}{\@@citeall[]}}
\def\@@citeall[#1]{\@ifnextchar[{\@@@citeall[#1]}{\@@@citeall[][#1]}}
\def\@@@citeall[#1][#2]#3{%
  \NAT@reset@parser
  \NAT@sort@cites{#3}%
  \NAT@reset@citea
  \@cite{%
    \@for\@citeb:=\NAT@cite@list\do
    {\@safe@activestrue
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \@safe@activesfalse
     \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
       {\reset@font\bfseries ?}\NAT@citeundefined
                 \PackageWarning{natbib}%
       {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%
     {\NAT@parse{\@citeb}%
       \ifNAT@full\let\NAT@nm\NAT@all@names\else
         \let\NAT@nm\NAT@name\fi
       \edef\nmbibKEY{\@citeb}%
       \edef\nmbibDATE{\NAT@date}%
       \edef\nmbibNAME{\NAT@nm}%
       \edef\nmbibNUM{\NAT@num}%
       \@citea\NMBIB@citeallformat
       \def\@citea{; }%
     }}\if*#2*\else\NAT@cmt#2\fi}{#1}{#2}}
\providecommand{\timelinerefname}{Chronological List of References}
\providecommand{\timelinebibname}{Chrolonlogical Bibliography}
\providecommand{\sequencerefname}{Sequential List of References}
\providecommand{\sequencebibname}{Sequential Bibliography}
\providecommand{\authorsrefname}{Alphabetic List of References}
\providecommand{\authorsbibname}{Alphabetic Bibliography}
\newif\ifNMBIB@writenumber
\NMBIB@writenumberfalse
\def\NMBIB@setup@authors{%
  \NMBIB@writenumberfalse}
\let\NMBIB@setup@timeline\NMBIB@setup@authors
\def\NMBIB@setup@sequence{%
  \NMBIB@writenumbertrue}
\def\printbibliography#1{%
  \def\NMBIB@current@type{#1}%
  \def\@biblabel{\csname NMBIB@#1@biblabel\endcsname}
  \edef\NMBIB@current@cite@suffix{\csname NMBIB@#1@cite@suffix\endcsname}%
  \csname NMBIB@setup@#1\endcsname
  \ifx\NMBIB@current@type\NMBIB@bibcite@type
    \def\natexlab@real##1{##1}%
  \else
    \def\natexlab@real##1{\NAT@exlab}%
  \fi
  \edef\refname{\csname #1refname\endcsname}%
  \edef\bibname{\csname #1bibname\endcsname}%
  \@input@{\csname NMBIB@#1@filename\endcsname.bbl}%
  \def\natexlab##1{##1}}
\def\bibitem{\@ifnextchar[{\@@lbibitem}{\@@lbibitem[]}}%
\def\@@lbibitem[#1]#2{%
  \let\natexlab\natexlab@real
  \NAT@parse{#2}%
  \def\nmbibKEY{#2}%
  \edef\nmbibDATE{\NAT@date}%
  \edef\nmbibNAME{\NAT@name}%
  \edef\nmbibNUM{\NAT@num}%
  \@lbibitem[#1]{#2}%
  \ifNMBIB@printyearsuffix\else\def\natexlab##1{}\fi}
\providecommand\NAT@exlab{}
\renewcommand\NAT@wrout[5]{%
\if@filesw
  \ifx\NMBIB@current@type\NMBIB@bibcite@type
      {\let\protect\noexpand\let~\relax
       \immediate
       \write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}\fi
  \ifNMBIB@writenumber
      {\let\protect\noexpand\let~\relax
       \immediate
       \write\@auxout{\string\nmbibcitenumber{#5}{#1}}}\fi
\fi
\ignorespaces}
\def\NAT@anchor#1#2{%
 \hyper@natanchorstart{#1\@extra@b@citeb-\NMBIB@current@cite@suffix}%
  \def\@tempa{#2}\@ifx{\@tempa\@empty}{}{\@biblabel{#2}}%
 \hyper@natanchorend
}%
\def\nmbibSetBiblabel#1#2{%
  \expandafter\def\csname NMBIB@#1@biblabel\endcsname##1{#2}}
\nmbibSetBiblabel{timeline}{[\nmbibDATE:
  \nmbibLink{\nmbibKEY}{authors}{\nmbibNAME};
  \nmbibLink{\nmbibKEY}{sequence}{\nmbibNUM}]}
\nmbibSetBiblabel{authors}{[\nmbibNAME\
  (\nmbibLink{\nmbibKEY}{timeline}{\nmbibDATE});
  \nmbibLink{\nmbibKEY}{sequence}{\nmbibNUM}]}
\nmbibSetBiblabel{sequence}{[\nmbibNUM:
  \nmbibLink{\nmbibKEY}{authors}{\nmbibNAME}
  (\nmbibLink{\nmbibKEY}{timeline}{\nmbibDATE})]}
\endinput
%%
%% End of file `nmbib.sty'.
