ClassicThesis:覆盖先前加载的 classicthesis 包的选项

ClassicThesis:覆盖先前加载的 classicthesis 包的选项

我最近从 Ubuntu 11.04 升级到了 Ubuntu 11.10。我还安装了“原版”TexLive 2011(而不是来自存储库的旧版 TexLive 2009),并对其进行了升级,因此sudo tlmgr update --self -all所有软件包都是最新版本。我目前需要 TexLive 来撰写我的博士论文,我使用classicthessis软件包来完成。

在 TexLive 2011 附带的新版本classicthesisv.3.0 中,只需发出以下命令即可使用该包

\usepackage {classicthesis-preamble}

它作为序言中的第一个包被加载,然后它设置一切并加载classicthesis包(它在最后一行)。

我现在的问题是:有没有办法将选项传递给包和/或如何禁用传递给包的classicthesis一些默认选项- 从我的序言(即不改变已安装的 classicthesis 文件或在我的文件夹中创建它们的副本并改变它们?classicthesis-preambleclassicthesis

例如,classicthesis-preamble 将drafting选项传递给classicthesis

\PassOptionsToPackage{....,drafting,...}{classicthesis}

并且我想在没有该选项的情况下编译我的文档 - 但更愿意从我自己的文档的序言中进行编译。

我尝试用自己的一组选项重新加载classicthesisclassisthesis-preamble但结果却出现错误,因为classicthesis已经从中调用了classicthesis-preamble

\usepackage{classicthesis-preamble}
\usepackage[<some,option,set,that,does,not,contain,"drafting">]{classicthesis}

但没有错误,选项也没有变化。我尝试使用,\PassOptionsToPackage但它只是添加其他选项到现有的。我尝试在谷歌上搜索类似的命令,可以代替代替添加选项,但没有找到。

答案1

André Miede 的想法是,人们应该classicthesis-preamble.sty在工作目录中进行复制,然后进行更改以满足特定工作的需要。

在我看来,这不是一个好主意,因为这个包中的代码对于新手来说相当吓人,而且并不局限于一些

\usepackage[<options>]{<package>}

行,也许还有一些辅助定义。不太清楚为什么说

\PassOptionsToPackage{fleqn}{amsmath}           % math environments and more by the AMS 
 \RequirePackage{amsmath}

优于更简单的

\usepackage[fleqn]{amsmath}

或者新手用户应该如何处理

\ifthenelse{\boolean{cld@backref}}%
{%
                \PassOptionsToPackage{hyperpageref}{backref}
                \RequirePackage{backref} % to be loaded after hyperref package 
                   \renewcommand{\backreftwosep}{ and~} % seperate 2 pages
                   \renewcommand{\backreflastsep}{, and~} % seperate last of longer list
                   \renewcommand*{\backref}[1]{}  % Disable standard
                   \renewcommand*{\backrefalt}[4]{% Detailed backref
                      \ifcase #1 %
                         \backrefnotcitedstring%
                      \or%
                         \backrefcitedsinglestring{#2}%
                      \else%
                         \backrefcitedmultistring{#2}%
                      \fi}%
}{\relax}

这是应该进入的代码classicthesis.sty

如果你觉得害怕classicthesis-preamble.sty,那么加载它并添加所需的包,将所需的选项直接传递给经典论文

例如

\documentclass[...]{scrbook}
\usepackage[fleqn]{amsmath}

\usepackage[eulerchapternumbers,subfig,beramono,eulermath,parts]{classicthesis}

\usepackage{hyperref}
\hypersetup{%draft, % = no hyperlinking at all (useful in b/w printouts)
    colorlinks=true, linktocpage=true, pdfstartpage=3, pdfstartview=FitV,%
    % uncomment the following line if you want to have black links (e.g., for printing)
    %colorlinks=false, linktocpage=false, pdfborder={0 0 0}, pdfstartpage=3, pdfstartview=FitV,% 
    breaklinks=true, pdfpagemode=UseNone, pageanchor=true, pdfpagemode=UseOutlines,%
    plainpages=false, bookmarksnumbered, bookmarksopen=true, bookmarksopenlevel=1,%
    hypertexnames=true, pdfhighlight=/O,%hyperfootnotes=true,%nesting=true,%frenchlinks,%
    urlcolor=webbrown, linkcolor=RoyalBlue, citecolor=webgreen, %pagecolor=RoyalBlue,%
    %urlcolor=Black, linkcolor=Black, citecolor=Black, %pagecolor=Black,%
    pdftitle={},%
    pdfauthor={},%
    pdfsubject={},%
    pdfkeywords={},%
    pdfcreator={pdfLaTeX},%
    pdfproducer={LaTeX with hyperref and classicthesis}%
}   

这可能足以满足许多用途。

相关内容