Rasmus <ras...@gmx.us> writes: > As said, I'd prefer load hyperref via org-latex-hyperref-template, but > it's probably too big a change too late. Though, it would resolve the > "issue" that if I do > > (setq org-latex-default-packages-alist > (delete '("" "hyperref" nil) > org-latex-default-packages-alist)) > > Hypersetup is still inserted.
The issue is not to remove hyperref, which is a default package for a good reason. The problem is to require titletoc before hyperref. IOW, this is orthogonal to the problem at hand. > Of course, but isn't it contradicting the docstring of > org-latex-default-packages-alist? No it isn't. It is a defcustom after all, and the manual can ensure the user knows what he is doing. > Unless I've managed to convenience you otherwise I will add a footnote > explaining and recommending the following snippet > > (with-eval-after-load 'ox-latex > (require 'cl) > (let* ((packages (mapcar (lambda (elt) (and (listp elt) (nth 1 elt))) > org-latex-default-packages-alist)) > (pos (position "hyperref" packages :test 'equal)) > (titletocp (member "titletoc" packages))) > (when (and pos (not titletocp)) > (push '("" "titletoc" nil) > (nthcdr pos org-latex-default-packages-alist))))) It is way too opaque IMO. Suggesting to put ("" "titletoc" nil) before ("" hyperref nil) should be enough. Regards,