1

I'm trying to get acro to work with classicthesis and with the hyperref option, but to no avail, though errors are gone when the hyperref option in acro is removd.

The MWE is quite long on this one. Essentially, I modified classicthesis-config.tex and FrontBackmatter/Contents.tex to the following.

classicthesis-config.tex

%!TEX root = ./ClassicThesis.tex
% ****************************************************************************************************
% classicthesis-config.tex 
% formerly known as loadpackages.sty, classicthesis-ldpkg.sty, and classicthesis-preamble.sty 
% Use it at the beginning of your ClassicThesis.tex, or as a LaTeX Preamble 
% in your ClassicThesis.{tex,lyx} with \input{classicthesis-config}
% ****************************************************************************************************  
% If you like the classicthesis, then I would appreciate a postcard. 
% My address can be found in the file ClassicThesis.pdf. A collection 
% of the postcards I received so far is available online at 
% http://postcards.miede.de
% ****************************************************************************************************

% ****************************************************************************************************
% 1. Configure classicthesis for your needs here, e.g., remove "drafting" below 
% in order to deactivate the time-stamp on the pages
% ****************************************************************************************************
\PassOptionsToPackage{eulerchapternumbers,listings,drafting,%
                 pdfspacing,%floatperchapter,%linedheaders,%
                 subfig,beramono,eulermath,parts}{classicthesis}                                        
% ********************************************************************
% Available options for classicthesis.sty 
% (see ClassicThesis.pdf for more information):
% drafting
% parts nochapters linedheaders
% eulerchapternumbers beramono eulermath pdfspacing minionprospacing
% tocaligned dottedtoc manychapters
% listings floatperchapter subfig
% ********************************************************************

% ********************************************************************
% Triggers for this config
% ******************************************************************** 
\usepackage{ifthen}
\newboolean{enable-backrefs} % enable backrefs in the bibliography
\setboolean{enable-backrefs}{false} % true false
% ****************************************************************************************************


% ****************************************************************************************************
% 2. Personal data and user ad-hoc commands
% ****************************************************************************************************
\newcommand{\myTitle}{A Classic Thesis Style\xspace}
\newcommand{\mySubtitle}{An Homage to The Elements of Typographic Style\xspace}
\newcommand{\myDegree}{Doktor-Ingenieur (Dr.-Ing.)\xspace}
\newcommand{\myName}{Andr\'e Miede\xspace}
\newcommand{\myProf}{Put name here\xspace}
\newcommand{\myOtherProf}{Put name here\xspace}
\newcommand{\mySupervisor}{Put name here\xspace}
\newcommand{\myFaculty}{Put data here\xspace}
\newcommand{\myDepartment}{Put data here\xspace}
\newcommand{\myUni}{Put data here\xspace}
\newcommand{\myLocation}{Darmstadt\xspace}
\newcommand{\myTime}{August 2012\xspace}
\newcommand{\myVersion}{version 4.1\xspace}

% ********************************************************************
% Setup, finetuning, and useful commands
% ********************************************************************
\newcounter{dummy} % necessary for correct hyperlinks (to index, bib, etc.)
\newlength{\abcd} % for ab..z string length calculation
\providecommand{\mLyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
\newcommand{\ie}{i.\,e.}
\newcommand{\Ie}{I.\,e.}
\newcommand{\eg}{e.\,g.}
\newcommand{\Eg}{E.\,g.} 
% ****************************************************************************************************

\usepackage[usenames,dvipsnames,table]{xcolor}
\usepackage[shortlabels]{enumitem}
\usepackage{mfirstuc,relsize,acro} 
\usepackage{environ}
% ****************************************************************************************************
% 3. Loading some handy packages
% ****************************************************************************************************
% ******************************************************************** 
% Packages with options that might require adjustments
% ******************************************************************** 
\PassOptionsToPackage{latin9}{inputenc} % latin9 (ISO-8859-9) = latin1+"Euro sign"
 \usepackage{inputenc}              

%\PassOptionsToPackage{ngerman,american}{babel}   % change this to your language(s)
% Spanish languages need extra options in order to work with this template
%\PassOptionsToPackage{spanish,es-lcroman}{babel}
 \usepackage{babel}                 

\PassOptionsToPackage{square,numbers}{natbib}
 \usepackage{natbib}                

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

% ******************************************************************** 
% General useful packages
% ******************************************************************** 
\PassOptionsToPackage{T1}{fontenc} % T2A for cyrillics
    \usepackage{fontenc}     
\usepackage{textcomp} % fix warning with missing font shapes
\usepackage{scrhack} % fix warnings when using KOMA with listings package          
\usepackage{xspace} % to get the spacing after macros right  
\usepackage{mparhack} % get marginpar right
%\usepackage{fixltx2e} % fixes some LaTeX stuff 
%\PassOptionsToPackage{printonlyused,smaller}{acronym}
%   \usepackage{acronym} % nice macros for handling all acronyms in the thesis
%\renewcommand*{\acsfont}[1]{\textssc{#1}} % for MinionPro
%\renewcommand{\bflabel}[1]{{#1}\hfill} % fix the list of acronyms
% ****************************************************************************************************


% ****************************************************************************************************
% 4. Setup floats: tables, (sub)figures, and captions
% ****************************************************************************************************
\usepackage{tabularx} % better tables
    \setlength{\extrarowheight}{3pt} % increase table row height
\newcommand{\tableheadline}[1]{\multicolumn{1}{c}{\spacedlowsmallcaps{#1}}}
\newcommand{\myfloatalign}{\centering} % to be used with each float for alignment
\usepackage{caption}
\captionsetup{format=hang,font=small}
\usepackage{subfig}  
% ****************************************************************************************************


% ****************************************************************************************************
% 5. Setup code listings
% ****************************************************************************************************
\usepackage{listings} 
%\lstset{emph={trueIndex,root},emphstyle=\color{BlueViolet}}%\underbar} % for special keywords
\lstset{language=[LaTeX]Tex,%C++,
    keywordstyle=\color{RoyalBlue},%\bfseries,
    basicstyle=\small\ttfamily,
    %identifierstyle=\color{NavyBlue},
    commentstyle=\color{Green}\ttfamily,
    stringstyle=\rmfamily,
    numbers=none,%left,%
    numberstyle=\scriptsize,%\tiny
    stepnumber=5,
    numbersep=8pt,
    showstringspaces=false,
    breaklines=true,
    frameround=ftff,
    frame=single,
    belowcaptionskip=.75\baselineskip
    %frame=L
} 
% ****************************************************************************************************             


% ****************************************************************************************************
% 6. PDFLaTeX, hyperreferences and citation backreferences
% ****************************************************************************************************
% ********************************************************************
% Using PDFLaTeX
% ********************************************************************
\PassOptionsToPackage{pdftex,hyperfootnotes=false,pdfpagelabels}{hyperref}
    \usepackage{hyperref}  % backref linktocpage pagebackref
\pdfcompresslevel=9
\pdfadjustspacing=1 
\PassOptionsToPackage{pdftex}{graphicx}
    \usepackage{graphicx} 

% ********************************************************************
% Setup the style of the backrefs from the bibliography
% (translate the options to any language you use)
% ********************************************************************
\newcommand{\backrefnotcitedstring}{\relax}%(Not cited.)
\newcommand{\backrefcitedsinglestring}[1]{(Cited on page~#1.)}
\newcommand{\backrefcitedmultistring}[1]{(Cited on pages~#1.)}
\ifthenelse{\boolean{enable-backrefs}}%
{%
        \PassOptionsToPackage{hyperpageref}{backref}
        \usepackage{backref} % to be loaded after hyperref package 
           \renewcommand{\backreftwosep}{ and~} % separate 2 pages
           \renewcommand{\backreflastsep}{, and~} % separate 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}    

% ********************************************************************
% Hyperreferences
% ********************************************************************
\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,%nesting=true,%frenchlinks,%
    urlcolor=webbrown, linkcolor=RoyalBlue, citecolor=webgreen, %pagecolor=RoyalBlue,%
    %urlcolor=Black, linkcolor=Black, citecolor=Black, %pagecolor=Black,%
    pdftitle={\myTitle},%
    pdfauthor={\textcopyright\ \myName, \myUni, \myFaculty},%
    pdfsubject={},%
    pdfkeywords={},%
    pdfcreator={pdfLaTeX},%
    pdfproducer={LaTeX with hyperref and classicthesis}%
}   

% ********************************************************************
% Setup autoreferences
% ********************************************************************
% There are some issues regarding autorefnames
% http://www.ureader.de/msg/136221647.aspx
% http://www.tex.ac.uk/cgi-bin/texfaq2html?label=latexwords
% you have to redefine the makros for the 
% language you use, e.g., american, ngerman
% (as chosen when loading babel/AtBeginDocument)
% ********************************************************************
\makeatletter
\@ifpackageloaded{babel}%
    {%
       \addto\extrasamerican{%
                    \renewcommand*{\figureautorefname}{Figure}%
                    \renewcommand*{\tableautorefname}{Table}%
                    \renewcommand*{\partautorefname}{Part}%
                    \renewcommand*{\chapterautorefname}{Chapter}%
                    \renewcommand*{\sectionautorefname}{Section}%
                    \renewcommand*{\subsectionautorefname}{Section}%
                    \renewcommand*{\subsubsectionautorefname}{Section}%     
                }%
       \addto\extrasngerman{% 
                    \renewcommand*{\paragraphautorefname}{Absatz}%
                    \renewcommand*{\subparagraphautorefname}{Unterabsatz}%
                    \renewcommand*{\footnoteautorefname}{Fu\"snote}%
                    \renewcommand*{\FancyVerbLineautorefname}{Zeile}%
                    \renewcommand*{\theoremautorefname}{Theorem}%
                    \renewcommand*{\appendixautorefname}{Anhang}%
                    \renewcommand*{\equationautorefname}{Gleichung}%        
                    \renewcommand*{\itemautorefname}{Punkt}%
                }%  
            % Fix to getting autorefs for subfigures right (thanks to Belinda Vogt for changing the definition)
            \providecommand{\subfigureautorefname}{\figureautorefname}%             
    }{\relax}
\makeatother


% ****************************************************************************************************
% 7. Last calls before the bar closes
% ****************************************************************************************************
% ********************************************************************
% Development Stuff
% ********************************************************************
\listfiles
%\PassOptionsToPackage{l2tabu,orthodox,abort}{nag}
%   \usepackage{nag}
%\PassOptionsToPackage{warning, all}{onlyamsmath}
%   \usepackage{onlyamsmath}

% ********************************************************************
% Last, but not least...
% ********************************************************************
\usepackage{classicthesis} 
% ****************************************************************************************************


% ****************************************************************************************************
% 8. Further adjustments (experimental)
% ****************************************************************************************************
% ********************************************************************
% Changing the text area
% ********************************************************************
%\linespread{1.05} % a bit more for Palatino
%\areaset[current]{312pt}{761pt} % 686 (factor 2.2) + 33 head + 42 head \the\footskip
%\setlength{\marginparwidth}{7em}%
%\setlength{\marginparsep}{2em}%

% ********************************************************************
% Using different fonts
% ********************************************************************
%\usepackage[oldstylenums]{kpfonts} % oldstyle notextcomp
%\usepackage[osf]{libertine}
%\usepackage{hfoldsty} % Computer Modern with osf
%\usepackage[light,condensed,math]{iwona}
%\renewcommand{\sfdefault}{iwona}
%\usepackage{lmodern} % <-- no osf support :-(
%\usepackage[urw-garamond]{mathdesign} <-- no osf support :-(
% ****************************************************************************************************

\DeclareAcronym{DRY}{short = DRY,long = Don't Repeat Yourself}
\DeclareAcronym{API}{short = API,long = Application Programming Interface}
\DeclareAcronym{UML}{short = UML,long = Unified Modeling Language}

and

FrontBackmatter/Contents.tex

%!TEX root = ../ClassicThesis.tex
%*******************************************************
% Table of Contents
%*******************************************************
%\phantomsection
\refstepcounter{dummy}
\pdfbookmark[1]{\contentsname}{tableofcontents}
\setcounter{tocdepth}{2} % <-- 2 includes up to subsections in the ToC
\setcounter{secnumdepth}{3} % <-- 3 numbers up to subsubsections
\manualmark
\markboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}
\tableofcontents 
\automark[section]{chapter}
\renewcommand{\chaptermark}[1]{\markboth{\spacedlowsmallcaps{#1}}{\spacedlowsmallcaps{#1}}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\enspace\spacedlowsmallcaps{#1}}}
%*******************************************************
% List of Figures and of the Tables
%*******************************************************
\clearpage

\begingroup 
    \let\clearpage\relax
    \let\cleardoublepage\relax
    \let\cleardoublepage\relax
    %*******************************************************
    % List of Figures
    %*******************************************************    
    %\phantomsection 
    \refstepcounter{dummy}
    %\addcontentsline{toc}{chapter}{\listfigurename}
    \pdfbookmark[1]{\listfigurename}{lof}
    \listoffigures

    \vspace*{8ex}

    %*******************************************************
    % List of Tables
    %*******************************************************
    %\phantomsection 
    \refstepcounter{dummy}
    %\addcontentsline{toc}{chapter}{\listtablename}
    \pdfbookmark[1]{\listtablename}{lot}
    \listoftables

    \vspace*{8ex}
%   \newpage

    %*******************************************************
    % List of Listings
    %*******************************************************      
      %\phantomsection 
    \refstepcounter{dummy}
    %\addcontentsline{toc}{chapter}{\lstlistlistingname}
    \pdfbookmark[1]{\lstlistlistingname}{lol}
    \lstlistoflistings 

    \vspace*{8ex}

    %*******************************************************
    % Acronyms
    %*******************************************************
    %\phantomsection 
    \refstepcounter{dummy}
    \pdfbookmark[1]{Acronyms}{acronyms}
    \markboth{\spacedlowsmallcaps{Acronyms}}{\spacedlowsmallcaps{Acronyms}}
    \chapter*{Acronyms}
    \newlist{acronyms}{description}{1}
    \newcommand*\addcolon[1]{#1}
    \setlist[acronyms]{
    labelwidth=3em,
    leftmargin=3.5em,
    noitemsep,
    itemindent=0pt,
    font=\addcolon}
    \acsetup{list-type=acronyms,hyperref=false,extra-style=comma,uc-cmd=\makefirstuc,first-long-format=\itshape,hyperref}
    \printacronyms
    % \begin{acronym}[UML]
    %     \acro{DRY}{Don't Repeat Yourself}
    %     \acro{API}{Application Programming Interface}
    %     \acro{UML}{Unified Modeling Language}
    % \end{acronym}                     
\endgroup

\cleardoublepage

(Not sure if a patch wouldn't be more appropriate in this case, so you can fetch a tarball from here)

When I generate the document it complains about this

    ! Undefined control sequence.
\@hyper@@anchor ...r@spot {#2#3}\let \put@me@back 
                                                  \@empty \ifx \relax #2\rel...
l.82 \endgroup

? 
! Missing control sequence inserted.
<inserted text> 
                \inaccessible 
l.82 \endgroup

? 
! Extra }, or forgotten \endgroup.
\@begin@tempboxa ...begingroup #2\color@endgroup }
                                                  \def \width {\wd \@tempbox...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\@tempboxa }\let \totalheight 
                                                  \@ovri \totalheight \heigh...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...talheight \@ovri \totalheight 
                                                  \height \advance \totalhei...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...t \@ovri \totalheight \height 
                                                  \advance \totalheight \depth 
l.82 \endgroup

? 
! Missing number, treated as zero.
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Illegal unit of measure (pt inserted).
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\height \advance \totalheight 
                                                  \depth 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ... \advance \totalheight \depth 

l.82 \endgroup

? 
! Missing } inserted.
<inserted text> 
                }
l.82 \endgroup

? 
! Extra \else.
<recently read> \else 

l.82 \endgroup

? 
! Undefined control sequence.
\@hyper@@anchor ...r@spot {#2#3}\let \put@me@back 
                                                  \@empty \ifx \relax #2\rel...
l.82 \endgroup

? 
! Missing control sequence inserted.
<inserted text> 
                \inaccessible 
l.82 \endgroup

? 
! Extra }, or forgotten \endgroup.
\@begin@tempboxa ...begingroup #2\color@endgroup }
                                                  \def \width {\wd \@tempbox...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\@tempboxa }\let \totalheight 
                                                  \@ovri \totalheight \heigh...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...talheight \@ovri \totalheight 
                                                  \height \advance \totalhei...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...t \@ovri \totalheight \height 
                                                  \advance \totalheight \depth 
l.82 \endgroup

? 
! Missing number, treated as zero.
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Illegal unit of measure (pt inserted).
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\height \advance \totalheight 
                                                  \depth 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ... \advance \totalheight \depth 

l.82 \endgroup

? 
! Missing } inserted.
<inserted text> 
                }
l.82 \endgroup

? 
! Undefined control sequence.
\@hyper@@anchor ...r@spot {#2#3}\let \put@me@back 
                                                  \@empty \ifx \relax #2\rel...
l.82 \endgroup

? 
! Missing control sequence inserted.
<inserted text> 
                \inaccessible 
l.82 \endgroup

? 
! Extra }, or forgotten \endgroup.
\@begin@tempboxa ...begingroup #2\color@endgroup }
                                                  \def \width {\wd \@tempbox...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\@tempboxa }\let \totalheight 
                                                  \@ovri \totalheight \heigh...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...talheight \@ovri \totalheight 
                                                  \height \advance \totalhei...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...t \@ovri \totalheight \height 
                                                  \advance \totalheight \depth 
l.82 \endgroup

? 
! Missing number, treated as zero.
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Illegal unit of measure (pt inserted).
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\height \advance \totalheight 
                                                  \depth 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ... \advance \totalheight \depth 

l.82 \endgroup

? 
! Missing } inserted.
<inserted text> 
                }
l.82 \endgroup

? 
! Extra \else.
<recently read> \else 

l.82 \endgroup

? 
! Undefined control sequence.
\@hyper@@anchor ...r@spot {#2#3}\let \put@me@back 
                                                  \@empty \ifx \relax #2\rel...
l.82 \endgroup

? 
! Missing control sequence inserted.
<inserted text> 
                \inaccessible 
l.82 \endgroup

? 
! Extra }, or forgotten \endgroup.
\@begin@tempboxa ...begingroup #2\color@endgroup }
                                                  \def \width {\wd \@tempbox...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\@tempboxa }\let \totalheight 
                                                  \@ovri \totalheight \heigh...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...talheight \@ovri \totalheight 
                                                  \height \advance \totalhei...
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...t \@ovri \totalheight \height 
                                                  \advance \totalheight \depth 
l.82 \endgroup

? 
! Missing number, treated as zero.
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Illegal unit of measure (pt inserted).
<to be read again> 
                   \advance 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ...\height \advance \totalheight 
                                                  \depth 
l.82 \endgroup

? 
! Undefined control sequence.
\@begin@tempboxa ... \advance \totalheight \depth 

l.82 \endgroup

? 
! Missing } inserted.
<inserted text> 
                }
l.82 \endgroup

? 
[14

])
! Extra \else.
\@include ...ediate \closeout \@partaux \fi \else 
                                                  \deadcycles \z@ \@nameuse ...
l.80 ...ublepage\incl

ude{FrontBackmatter/Contents}

And the list of acronyms is printed like shown

Duplicated entry in list of acronyms

If I remove the hyperref option at the end of \acsetup{}, then I obtain no errors and the list of acronyms gets printed as wanted, but the hyperreferencing of the acronyms is gone, which is something desirable to have.

enter image description here

I had read something about acro and babel conflicting, so I pushed the \usepackage{acro} to before that of babel as instructed here, to no avail. I'd go for acronym, but I need to customize the acronyms behavior in a way that suits a certain typesetting style, not to mention the \ac{}-\Ac{} problem with acronym.

  • Does it work without all the stuff in classicthesis-config.tex? Replace the call to this file in your master document with only \usepackage{classicthesis} and check. Just noticed: what's this \usepackage{mfirstuc,relsize,acro}? – PhilipPirrip Aug 25 '15 at 11:18
  • I've replaced acronym with acro, mfirstuc is required to control how the acronym appears in the list and relsize comes from an error I solved with the inclusion of acro. – Joao Andrade Aug 25 '15 at 11:59
  • Just tried it your suggestion. Doesn't really work as a bunch of packages on which stuff from the working example rely become missing, so then there's those to handle. – Joao Andrade Aug 25 '15 at 12:04
  • It probably won't solve your problem, but shouldn't this be \usepackage{mfirstuc,relsize}{acro} – PhilipPirrip Aug 25 '15 at 12:05
  • 1
    @Johannes_B I don't even get a MWE running with classicthesis and acro, hyperref or no hyperref… :( – clemens Jan 3 '16 at 12:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.