%%
%% This is file `hypbmsec.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% hypbmsec.dtx  (with options: `package')
%% 
%% This is a generated file.
%% 
%% Project: hypbmsec
%% Version: 2024-08-07 v2.6
%% 
%% Copyright (C)
%%    1998-2000, 2006, 2007 Heiko Oberdiek
%%    2016-2024 Oberdiek Package Support Group
%% 
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
%% version 1.3c of this license or (at your option) any later
%% version. This version of this license is in
%%    https://www.latex-project.org/lppl/lppl-1-3c.txt
%% and the latest version of this license is in
%%    https://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%% 
%% This work has the LPPL maintenance status "maintained".
%% 
%% The Current Maintainers of this work are
%% Heiko Oberdiek and the Oberdiek Package Support Group
%% https://github.com/ho-tex/oberdiek/issues
%% 
%% 
%% This work consists of the main source file hypbmsec.dtx
%% and the derived files
%%    hypbmsec.sty, hypbmsec.pdf, hypbmsec.ins, hypbmsec.drv.
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hypbmsec}%
  [2024-08-07 v2.6 Bookmarks in sectioning commands (HO)]
\@ifundefined{hbs@do}{}{%
  \PackageInfo{hypbmsec}{Package 'hypbmsec' is already loaded}%
  \endinput
}
\def\hbs@do#1{%
  \@ifstar{#1*}{%
    \let\hbs@tocstring\relax
    \let\hbs@bmstring\relax
    \let\hbs@seccmd#1%
    \hbs@checkarg
  }%
}
\def\hbs@checkarg{%
  \@ifnextchar[\hbs@getsquare{%
    \@ifnextchar(\hbs@getbookmark\hbs@process
  }%
}
\long\def\hbs@getsquare[#1]{%
  \ifx\hbs@tocstring\relax
    \def\hbs@tocstring{#1}%
  \else
    \hbs@bmdef{#1}%
  \fi
  \hbs@checkarg
}
\def\hbs@getbookmark(#1){%
  \hbs@bmdef{#1}%
  \hbs@checkarg
}
\def\hbs@bmdef#1{%
  \ifx\hbs@bmstring\relax
    \def\hbs@bmstring{#1}%
  \else
    \PackageError{hypbmsec}{%
      Sectioning command with too many parameters%
    }{%
      You can only give one outline entry.%
    }%
  \fi
}
\long\def\hbs@process#1{%
  \ifx\hbs@tocstring\relax
    \ifx\hbs@bmstring\relax
      \hbs@seccmd{#1}%
    \else
      \begingroup
        \def\x##1{\endgroup
          \hbs@seccmd{\texorpdfstring{#1}{##1}}%
        }%
      \expandafter\x\expandafter{\hbs@bmstring}%
    \fi
  \else
    \ifx\hbs@bmstring\relax
      \expandafter\hbs@seccmd\expandafter[%
        \expandafter{\hbs@tocstring}%
      ]{#1}%
    \else
      \expandafter\expandafter\expandafter
      \hbs@seccmd\expandafter\expandafter\expandafter[%
        \expandafter\expandafter\expandafter
        \texorpdfstring
        \expandafter\expandafter\expandafter{%
          \expandafter\hbs@tocstring\expandafter
        }\expandafter{%
          \hbs@bmstring
        }%
      ]{#1}%
    \fi
  \fi
}
\AtBeginDocument{%
  \@ifundefined{texorpdfstring}{%
    \@ifundefined{ifbookmark}{%
      \let\texorpdfstring\@firstoftwo
      \@ifpackageloaded{hyperref}{%
        \PackageInfo{hypbmsec}{%
          \ifx\hy@driver\@empty
            Default driver %
          \else
            '\hy@driver' %
          \fi
          of hyperref not supported,\MessageBreak
          bookmark parameters will be ignored%
        }%
      }{%
        \PackageInfo{hypbmsec}{%
          Package hyperref not loaded,\MessageBreak
          bookmark parameters will be ignored%
        }%
      }%
    }%
    {%
      \newcommand\texorpdfstring[2]{\ifbookmark{#2}{#1}}%
      \PackageWarningNoLine{hypbmsec}{%
        Old hyperref version found,\MessageBreak
        update of hyperref recommended%
      }%
    }%
  }{}%
  \let\hbs@part         \part
  \let\hbs@section      \section
  \let\hbs@subsection   \subsection
  \let\hbs@subsubsection\subsubsection
  \let\hbs@paragraph    \paragraph
  \let\hbs@subparagraph \subparagraph
  \renewcommand\part         {\hbs@do\hbs@part}%
  \renewcommand\section      {\hbs@do\hbs@section}%
  \renewcommand\subsection   {\hbs@do\hbs@subsection}%
  \renewcommand\subsubsection{\hbs@do\hbs@subsubsection}%
  \renewcommand\paragraph    {\hbs@do\hbs@paragraph}%
  \renewcommand\subparagraph {\hbs@do\hbs@subparagraph}%
  \begingroup\expandafter\expandafter\expandafter\endgroup
  \expandafter\ifx\csname chapter\endcsname\relax\else
    \let\hbs@chapter    \chapter
    \renewcommand\chapter    {\hbs@do\hbs@chapter}%
  \fi
}
\endinput
%%
%% End of file `hypbmsec.sty'.
