ElegantLaTeX/ElegantBook

代码对于tableofcontents的修改导致目录不显示

WangDongYao opened this issue · 4 comments

我想要tableofcontents生成的目录中有目录,但现在模板是没有的,发现是这段代码导致的,我把这段代码注释掉之后就能可以出目录,应该是这段导致的,希望可以修复一下。

\renewcommand\tableofcontents{%
  \hypersetup{linktoc=all, linkcolor=black}
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{%
           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
    \ifdefstring{\ELEGANT@toc}{twocol}{
      \setlength{\columnsep}{2em}
      \begin{multicols}{2}%
        \@starttoc{toc}
      \end{multicols}}{
      \@starttoc{toc}}
    \if@restonecol\twocolumn\fi
    \hypersetup{linkcolor=winered}}

请提供完整的示例,我把这段注释后也没有“目录”:

\documentclass[cn]{elegantbook}
\begin{document}
\tableofcontents
  \chapter{测试}
\end{document}

image

确实是我搞错了,当时用了lshort-zh-cn的这段代码

\renewcommand\tableofcontents%
  {\chapter{\contentsname}%
  \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}%
  \begin{multicols}{2}
    \@starttoc{toc}%
  \end{multicols}
  \@makeschapterhead{\sourcecodename}%
  \@starttoc{los}%
}

,然后报错就把elegantbook那段注释掉了,后来把这段代码也注释掉了,pdf还没重新生成,以为是去掉elegant这段代码就好了。

并且不注释掉这一段,使用 bibtocind 宏包也可以实现

\documentclass[cn]{elegantbook}
\usepackage[notbib,notindex]{tocbibind}
\begin{document}
\tableofcontents
  \chapter{测试}
\end{document}

image

确实,在生成PDF的时候目录会有问题,实测只需要加上下面这行代码就好了

\usepackage[notbib,notindex]{tocbibind}

但是生成的TOC不具有链接的功能,不能实现页面单击跳转