\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}