%% %% This is file `memhfixc.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% mempatch.dtx (with options: `hyper') %% %% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net %% Copyright 2001 --- 2010 Peter R. Wilson %% Copyright 2011 --- 2013 Peter R. Wilson %% Copyright 2013 --- Lars Madsen %% Maintainer: Lars Madsen (daleif at math dot au dot dk) %% %% 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". %% %% This work consists of the files listed in the README file. %% %% %% The memhfixc package provides hyperref related temporary %% fixes and extensions for versions v1.618 and later of the memoir class. %% o hyperref fix for part and chapter entries in the ToC (v1.0) %% o Other fixes as and when %% %% Only use this package in conjunction with the hyperref package. %% Call the package without options after the hyperref package as: %% \documentclass[...]{memoir} %% ... %% \usepackage[...]{hyperref} %% \usepackage{memhfixc} %% %% With thanks to Heiko Oberdiek, if you use hyperref dated 2006/11/15 %% or later, memhfixc will be automatically loaded after hyperref. %% %% With the new hooking system from 2020+ memhfixc is automatically %% added after loading hyperref with the memoir class %% %% Version 1.22 2023/09/10 %% Version 1.21 2023/07/28 %% Version 1.21 2023/07/28 %% Version 1.20 2022/11/17 %% Version 1.19 2021/06/16 %% Version 1.18 2019/10/24 %% Version 1.17 2013/05/30 %% Version 1.16 2013/05/16 %% Version 1.15 2010/08/17 %% Version 1.14 2010/06/10 %% Version 1.13 2010/04/19 %% Version 1.12 2009/02/06 %% Version 1.11 2009/01/18 %% Version 1.10 2008/08/23 %% Version 1.9 2006/11/22 %% Version 1.8 2006/01/21 %% Version 1.7 2005/11/15 %% Version 1.6 2004/05/13 %% Version 1.5 2003/10/14 %% Version 1.4 2003/09/26 %% Version 1.3 2003/02/20 %% Version 1.2 2003/02/02 %% Version 1.1 2003/01/22 %% Version 1.0 2002/10/22 %% \ProvidesPackage{memhfixc}[2023/09/10 v1.22 hyperref package fixes for memoir class] \let\M@hfixcfinish\relax \@ifclassloaded{memoir}{}% {\let\M@hfixcfinish\endinput \typeout{No memoir class: memhfixc does nothing}} \M@hfixcfinish %% We are done unless the hyperref package has been loaded \@ifpackageloaded{hyperref}{}{\let\M@hfixcfinish\endinput} \M@hfixcfinish \let\H@old@sbook\@sbook \def\@sbook#1{% \H@old@sbook{#1}% \Hy@GlobalStepCount\Hy@linkcounter \xdef\@currentHref{book*.\the\Hy@linkcounter}% \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% } \@ifundefined{Hy@captionsenglish}{}{% \g@addto@macro{\Hy@captionsenglish}{\def\bookautorefname{Book}}} \@ifundefined{HyLang@english}{}{% \g@addto@macro{\HyLang@english}{\def\bookautorefname{Book}}} \@ifundefined{Hy@captionsgerman}{}{% \g@addto@macro{\Hy@captionsgerman}{\def\bookautorefname{Buch}}} \@ifundefined{HyLang@german}{}{% \g@addto@macro{\HyLang@german}{\def\bookautorefname{Buch}}} \@ifundefined{Hy@captionsportuges}{}{% \g@addto@macro{\Hy@captionsportuges}{\def\bookautorefname{Livro}}} \@ifundefined{HyLang@portuges}{}{% \g@addto@macro{\HyLang@portuges}{\def\bookautorefname{Livro}}} \@ifundefined{Hy@captionsspanish}{}{% \g@addto@macro{\Hy@captionsspanish}{\def\bookautorefname{Libro}}} \@ifundefined{HyLang@spanish}{}{% \g@addto@macro{\HyLang@spanish}{\def\bookautorefname{Libro}}} \@ifundefined{Hy@captionsafrikaans}{}{% \g@addto@macro{\Hy@captionsafrikaans}{\def\bookautorefname{Boek}}} \@ifundefined{HyLang@afrikaans}{}{% \g@addto@macro{\HyLang@afrikaans}{\def\bookautorefname{Boek}}} \providecommand{\bookautorefname}{Book} \providecommand{\subfigureautorefname}{Subfigure} \@ifpackagelater{hyperref}{2006/11/15}{% }{% \def\@@writetorep#1#2#3#4#5{% \begingroup \def\Hy@tempa{#5}% \ifx\Hy@tempa\Hy@bookmarkstype \edef\Hy@level{#4}% \ifx\Hy@levelcheck Y% \@tempcnta\Hy@level\relax \advance\@tempcnta by -1 \ifnum\Hy@currentbookmarklevel<\@tempcnta \advance\@tempcnta by -\Hy@currentbookmarklevel\relax \advance\@tempcnta by 1 \Hy@Warning{% Difference (\the\@tempcnta) between bookmark levels is % greater \MessageBreak than one, level fixed% }% \@tempcnta\Hy@currentbookmarklevel \advance\@tempcnta by 1 \edef\Hy@level{\the\@tempcnta}% \fi \else \global\let\Hy@levelcheck Y% \fi \global\let\Hy@currentbookmarklevel\Hy@level \@tempcnta\Hy@level\relax \expandafter\xdef\csname Parent\Hy@level\endcsname{#3}% \advance\@tempcnta by -1 \edef\Hy@tempa{#3} \edef\Hy@tempb{\csname Parent\the\@tempcnta\endcsname}% \ifx\Hy@tempa\Hy@tempb \Hy@Warning{% The anchor of a bookmark and its parent's must not% \MessageBreak be the same. Added a new anchor% }% \phantomsection \fi \ifHy@bookmarksnumbered \let\numberline\Hy@numberline \let\booknumberline\Hy@numberline % <- added \let\partnumberline\Hy@numberline % <- added \let\chapternumberline\Hy@numberline % <- added \else \let\numberline\@gobble \let\booknumberline\@gobble % <- added \let\partnumberline\@gobble % <- added \let\chapternumberline\@gobble % <- added \fi \pdfstringdef\Hy@tempa{#2}% \protected@write\@outlinefile{}{% \protect\BOOKMARK [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}% {\Hy@tempa}{\Hy@tempb}% }% \fi \endgroup} } \@ifundefined{H@old@sectm@m}{% haven't fiddled with \M@sect \let\H@old@sectm@m\M@sect \def\M@sect#1#2#3#4#5#6[#7][#8]#9{% \ifnum #2>\c@secnumdepth% \expandafter\@firstoftwo% \else% \expandafter\@secondoftwo% \fi% {% \Hy@MakeCurrentHrefAuto{section*}% \setlength{\Hy@SectionHShift}{#3}% \begingroup \toks@{\H@old@sectm@m{#1}{#2}{#3}{#4}{#5}{#6}[{#7}][{#8}]}% \toks\tw@\expandafter{% \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}% #9% }% \edef\x{\endgroup% \the\toks@{\the\toks\tw@}% }\x% }{% \H@old@sectm@m{#1}{#2}{#3}{#4}{#5}{#6}[{#7}][{#8}]{#9}% }% }% }% {% already fiddled \M@sect } \renewcommand{\cftaddtitleline}[4]{% \addtocontents{#1}{\protect\contentsline{#2}{#3}{#4}{\@currentHref}}} \renewcommand{\cftaddnumtitleline}[5]{\addtocontents{#1}{% \protect\contentsline{#2}{\protect\numberline{#3}#4}{#5}{\@currentHref}}} \let\m@moldhypcaption\caption \renewcommand{\caption}{\donemaincaptiontrue\m@moldhypcaption} \newcounter{memhycontfloat} \renewcommand*{\thememhycontfloat}{\arabic{memhycontfloat}} \providecommand*{\theHmemhycontfloat}{} \renewcommand*{\theHmemhycontfloat}{\arabic{memhycontfloat}} \setcounter{memhycontfloat}{0} \renewcommand{\contcaption}{% \par% \refstepcounter{memhycontfloat}% \addtocounter{\@captype}{\m@ne}\H@refstepcounter{\@captype}% \@contcaption\@captype} \renewcommand*\sidecaption@refstepcounter[2]{% \H@refstepcounter{#1}% \hyper@makecurrent{#2}% } % \def\endsidecaption{% % \m@mscapend@fbox % \H@refstepcounter{\@captype}% % \hyper@makecurrent{\@captype}% % \m@mscaplabel % \m@mscapcheckside %<--- added 2013/05/30 % \begin{lrbox}{\m@mscap@capbox}% % \begin{minipage}[c]{\sidecapwidth}% % \sidecapstyle % \@caption\@captype[\m@mscap@fortoc]{\m@mscap@forcap}% % \end{minipage}% % \end{lrbox}% % \m@mscapopboxes} \renewcommand*{\sidecontcaption}{% \refstepcounter{memhycontfloat}% \@sidecontcaption} % \def\endsidecontcaption{% % \m@mscapend@fbox % \addtocounter{\@captype}{\m@ne}\H@refstepcounter{\@captype}% % \hyper@makecurrent{memhycontfloat}% % \m@mscaplabel % \m@mscapcheckside %<--- added 2013/05/30 % \begin{lrbox}{\m@mscap@capbox}% % \begin{minipage}[c]{\sidecapwidth}% % \sidecapstyle % \@contcaption\@captype{\m@mscap@forcap}% % \end{minipage}% % \end{lrbox}% % \m@mscapopboxes} %\def\@mem@titlerefnolink#1{\begingroup \let\numberline\@gobble % \let\M@TitleReference\@mem@theTR % interrupt recursion of \ref % \ref*{#1}\endgroup} \AtBeginDocument{% \let\printpageinnotes\printpageinnoteshyperref% } \ifHy@hyperfootnotes \def\@footnotemark{% \leavevmode \ifhmode\edef\@x@sf{\the\spacefactor}% \m@mmf@check% <--- added \nobreak\fi \stepcounter{Hfootnote}% \global\let\Hy@saved@currentHref\@currentHref \hyper@makecurrent{Hfootnote}% \global\let\Hy@footnote@currentHref\@currentHref \global\let\@currentHref\Hy@saved@currentHref \hyper@linkstart{link}{\Hy@footnote@currentHref}% \@makefnmark \hyper@linkend \m@mmf@prepare% <--- added \ifhmode\spacefactor\@x@sf\fi \relax }% \fi % patch removed as per 2022 hyperref does not touch \@starttoc % \Hy@AtBeginDocument{% % \ifx\hyper@last\@undefined % \def\@starttoc#1{% % \begingroup\makeatletter % \IfFileExists{\jobname.#1}{% % \Hy@WarningNoLine{% % old #1 file detected, not used; run LaTeX again% % }% % }{}% % \if@filesw % \AtEndDocument{% % \expandafter\ifx\csname tf@#1\endcsname\relax % \expandafter\newwrite\csname tf@#1\endcsname % \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax % \fi % } % \fi % \@nobreakfalse % \endgroup % }% % \fi % } \ifHy@hyperfootnotes \let\m@m@pnwrite@fourtharg\m@m@pnwrite@fourtharg@hyperref \let\pagenoteanchor\pagenotehyperanchor \newcounter{Hpagenote} \@namedef{mem@pnmm@start@hook}{% \stepcounter{Hpagenote}% \global\let\Hy@saved@currentHref\@currentHref \hyper@makecurrent{Hpagenote}% \global\let\Hy@pagenote@currentHref\@currentHref \global\let\@currentHref\Hy@saved@currentHref \hyper@linkstart{link}{\Hy@pagenote@currentHref}% } \@namedef{mem@pnmm@end@hook}{\hyper@linkend} \fi \AtEndPackage{hypcap}{% \long\def\@@contcaption##1##2{% \par \begingroup \@parboxrestore \if@minipage \@setminipage \fi \global\@capstartfalse% added \normalsize \@makecaption{\csname fnum@##1\endcsname}{\ignorespaces ##2}\par \endgroup} } \endinput %% %% End of file `memhfixc.sty'.