如何将 \hypersetup 外包给外部文件?

如何将 \hypersetup 外包给外部文件?

我用超链接包和定义自定义设置如下:

\usepackage{color}
\usepackage[dvipsnames]{xcolor}
\usepackage{url}
\usepackage{hyperref}

\hypersetup{
    bookmarks=true,         % show bookmarks bar?
    unicode=false,          % non-Latin characters in Acrobat’s bookmarks
    pdftoolbar=true,        % show Acrobat’s toolbar?
    pdfmenubar=true,        % show Acrobat’s menu?
    pdffitwindow=false,     % window fit to page when opened
    pdfstartview={FitH},    % fits the width of the page to the window
    pdftitle={My title},    % title
    pdfauthor={Author},     % author
    pdfsubject={Subject},   % subject of the document
    pdfcreator={Creator},   % creator of the document
    pdfproducer={Producer}, % producer of the document
    pdfkeywords={keyword1} {key2} {key3}, % list of keywords
    pdfnewwindow=true,      % links in new window
    colorlinks=true,        % false: boxed links; true: colored links
    linkcolor=red,          % color of internal links
    citecolor=green,        % color of links to bibliography
    filecolor=magenta,      % color of file links
    urlcolor=OliveGreen     % color of external links
}

看到这里我可以以某种方式将这些设置放入外部文件中以精简前言。我创建了一个hyperref.sty并将\hypersetup{}部分移到那里。我注意到它在编译过程中被考虑,但是它失败了。

问题:

将选项外部化的正确方法是什么超链接包裹?

答案1

只需将 hypersetup 命令放入myfile.tex即可

\input{myfile}

不要创建名为 hyperref.sty 的文件,否则将阻止原始加载。

答案2

hyperref.cfg

如果文件hyperref.cfg存在,则包hyperref会在处理其选项之前加载此文件。因此,您可以通过\hypersetup此文件设置许多选项。PDF 信息的选项应在包hyperref加载后加载。hyperref.cfg这可以通过以下方式完成:

\AtEndOfPackage{%
  \hypersetup{pdfauthor={me}, ...}%
}

的扩展示例hyperref.cfg

\hypersetup{%
  bookmarks,%
  pdfencoding=auto,%
  colorlinks,%
  ...
}%
\AtEndOfPackage{%
  \hypersetup{%
    pdfauthor={...},%
    ...
  }%
  \RequirePackage{bookmark}%
}%

myhyperref.cfg

在你原来的方法中,你不能使用它hyperref.sty作为文件名,因为这个名字已经被包本身使用了。但\input可以通过不同的文件名加载:

\input{myhyperref.cfg}

hyperref加载后,有些选项就无法再改变。

包裹myhyperref

第三种方法是编写一个小包:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{myhyperref}[2012/09/07 v1.0]

\RequirePackage[dvipsnames]{xcolor}
\RequirePackage[
  bookmarks,
  colorlinks,
  pdfencoding=auto,
]{hyperref}
\RequirePackage{bookmark}
\bookmarksetup{
  numbered,
  open,
}
\hypersetup{
  linkcolor=red,
  % ...
  pdfauthor={me},
  % ...
}

\endinput

\usepackage然后通过主文档加载包:

\documentclass{...}
...
\usepackage{myhyperref}
...
\begin{document}
...
\end{document}

相关内容