From f3fcdd52c8bc722862ea73958d41fe53ec03ec1d Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Sun, 13 Mar 2022 10:48:09 -0700 Subject: [PATCH] LaTeX template: move hyperref near end of preamble. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It now comes after header-includes and right before title, author, date, abstract. The hyperref documentation says: “Make sure it comes last of your loaded packages”. The reason is that it redefines many LaTeX commands. For example, loading it after titlesec (which might be loaded in header-includes) causes links in the table of contents to point to the wrong page (#7960). Closes #5811. Note: Users who presuppose hyperref in their header-includes will now have to add `\usepackage{hyperref}` to their header-includes to make it available there. (The redundant `\usepackage` will do no harm in this case.) --- data/templates/default.latex | 54 ++++++++++++++++----------------- test/lhs-test.latex | 8 ++--- test/lhs-test.latex+lhs | 8 ++--- test/writer.latex | 12 ++++---- test/writers-lang-and-dir.latex | 10 +++--- 5 files changed, 46 insertions(+), 46 deletions(-) diff --git a/data/templates/default.latex b/data/templates/default.latex index 438f84690..e83806940 100644 --- a/data/templates/default.latex +++ b/data/templates/default.latex @@ -211,33 +211,6 @@ $if(verbatim-in-note)$ $endif$ \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} -\hypersetup{ -$if(title-meta)$ - pdftitle={$title-meta$}, -$endif$ -$if(author-meta)$ - pdfauthor={$author-meta$}, -$endif$ -$if(lang)$ - pdflang={$lang$}, -$endif$ -$if(subject)$ - pdfsubject={$subject$}, -$endif$ -$if(keywords)$ - pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, -$endif$ -$if(colorlinks)$ - colorlinks=true, - linkcolor={$if(linkcolor)$$linkcolor$$else$Maroon$endif$}, - filecolor={$if(filecolor)$$filecolor$$else$Maroon$endif$}, - citecolor={$if(citecolor)$$citecolor$$else$Blue$endif$}, - urlcolor={$if(urlcolor)$$urlcolor$$else$Blue$endif$}, -$else$ - hidelinks, -$endif$ - pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs $if(verbatim-in-note)$ \VerbatimFootnotes % allow verbatim text in footnotes @@ -409,6 +382,33 @@ $endif$ $if(csquotes)$ \usepackage{csquotes} $endif$ +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\hypersetup{ +$if(title-meta)$ + pdftitle={$title-meta$}, +$endif$ +$if(author-meta)$ + pdfauthor={$author-meta$}, +$endif$ +$if(lang)$ + pdflang={$lang$}, +$endif$ +$if(subject)$ + pdfsubject={$subject$}, +$endif$ +$if(keywords)$ + pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, +$endif$ +$if(colorlinks)$ + colorlinks=true, + linkcolor={$if(linkcolor)$$linkcolor$$else$Maroon$endif$}, + filecolor={$if(filecolor)$$filecolor$$else$Maroon$endif$}, + citecolor={$if(citecolor)$$citecolor$$else$Blue$endif$}, + urlcolor={$if(urlcolor)$$urlcolor$$else$Blue$endif$}, +$else$ + hidelinks, +$endif$ + pdfcreator={LaTeX via pandoc}} $if(title)$ \title{$title$$if(thanks)$\thanks{$thanks$}$endif$} diff --git a/test/lhs-test.latex b/test/lhs-test.latex index fdc344335..a83e31202 100644 --- a/test/lhs-test.latex +++ b/test/lhs-test.latex @@ -34,10 +34,6 @@ \makeatother \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} -\hypersetup{ - hidelinks, - pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs \usepackage{color} \usepackage{fancyvrb} @@ -84,6 +80,10 @@ \ifLuaTeX \usepackage{selnolig} % disable illegal ligatures \fi +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\hypersetup{ + hidelinks, + pdfcreator={LaTeX via pandoc}} \author{} \date{} diff --git a/test/lhs-test.latex+lhs b/test/lhs-test.latex+lhs index f9149ba02..54af9388f 100644 --- a/test/lhs-test.latex+lhs +++ b/test/lhs-test.latex+lhs @@ -34,10 +34,6 @@ \makeatother \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} -\hypersetup{ - hidelinks, - pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs \usepackage{listings} \newcommand{\passthrough}[1]{#1} @@ -51,6 +47,10 @@ \ifLuaTeX \usepackage{selnolig} % disable illegal ligatures \fi +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\hypersetup{ + hidelinks, + pdfcreator={LaTeX via pandoc}} \author{} \date{} diff --git a/test/writer.latex b/test/writer.latex index a89078b31..33a09e23c 100644 --- a/test/writer.latex +++ b/test/writer.latex @@ -35,12 +35,6 @@ \usepackage{fancyvrb} \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} -\hypersetup{ - pdftitle={Pandoc Test Suite}, - pdfauthor={John MacFarlane; Anonymous}, - hidelinks, - pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs \VerbatimFootnotes % allow verbatim text in footnotes \usepackage{graphicx} @@ -66,6 +60,12 @@ \ifLuaTeX \usepackage{selnolig} % disable illegal ligatures \fi +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\hypersetup{ + pdftitle={Pandoc Test Suite}, + pdfauthor={John MacFarlane; Anonymous}, + hidelinks, + pdfcreator={LaTeX via pandoc}} \title{Pandoc Test Suite} \author{John MacFarlane \and Anonymous} diff --git a/test/writers-lang-and-dir.latex b/test/writers-lang-and-dir.latex index 1f7ce262b..eb466c266 100644 --- a/test/writers-lang-and-dir.latex +++ b/test/writers-lang-and-dir.latex @@ -34,11 +34,6 @@ \makeatother \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available -\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} -\hypersetup{ - pdflang={en}, - hidelinks, - pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs \setlength{\emergencystretch}{3em} % prevent overfull lines \providecommand{\tightlist}{% @@ -68,6 +63,11 @@ \newenvironment{RTL}{\beginR}{\endR} \newenvironment{LTR}{\beginL}{\endL} \fi +\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} +\hypersetup{ + pdflang={en}, + hidelinks, + pdfcreator={LaTeX via pandoc}} \author{} \date{}