目录不显示 EG/CGF 文档的页码

目录不显示 EG/CGF 文档的页码

一个例子:

%\documentclass{article}
\documentclass{egpubl}
\begin{document}
\tableofcontents
\section{one}
\newpage
\section{two}
\newpage
\section{three}
\newpage
\end{document}

文档样式:

https://www.eg.org/wp/eurographics-publications/guidelines/

https://www.eg.org/wp/wp-content/uploads/2019/01/egPublStyle-cgf.zip

答案1

egpubl.cls链接的 zip 档案中的文件包含

\def\l@section#1#2{\addpenalty{\@secpenalty}
 \@tempdima 1.5em
 \begingroup
  \parindent \z@ \rightskip \@pnumwidth
%% DF
%   \parfillskip -\@pnumwidth \reset@font\rm \leavevmode
  \parfillskip -\@pnumwidth \reset@font\rmfamily \leavevmode
%%
  \advance\leftskip\@tempdima \hskip -\leftskip
  #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss \ }\par
 \endgroup}

这里#2代表页码。.toc在第一次 LaTeX 传递后,可以正确地在文件中找到此页码,作为第三个参数传递给\contentsline。但是上面的定义只是忽略了它,#2因为它从未在代码中使用过。

所以这是此类的一个刻意功能。否则,这将会是一些疏忽,但这听起来不太可能,因为每个用户都会遇到目录中没有各节页码的输出。


示例 PDF这里 没有提及目录。也许根本不希望使用它\tableofcontents


强制打印页码的方法如下:

\makeatletter
\def\l@section#1#2{\addpenalty{\@secpenalty}
 \@tempdima 1.5em
 \begingroup
  \parindent \z@ \rightskip \@pnumwidth
%% DF
%   \parfillskip -\@pnumwidth \reset@font\rm \leavevmode
  \parfillskip -\@pnumwidth \reset@font\rmfamily \leavevmode
%%
  \advance\leftskip\@tempdima \hskip -\leftskip
% ORIGINAL WITH NO PAGE NUMBERS
%   #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss \ }\par
% PATCH COPIED OVER FROM article.cls
  #1\nobreak\hfil \nobreak\hbox to\@pnumwidth{\hss #2\kern -\p@ \kern \p@ }\par
 \endgroup}

\def\@undottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth
 \else
  \vskip \z@ plus .2pt
  {\hangindent #2\relax
   \rightskip \@tocrmarg \parfillskip -\rightskip
   \parindent #2\relax \@afterindenttrue
   \interlinepenalty\@M \leavevmode
   \@tempdima #3\relax #4\nobreak \hfill \nobreak
%% DF
%    \hbox to\@pnumwidth{\hfil\reset@font\rm \ }\par}\fi}
% ORIGINAL WITH NO PAGE NUMBERS
%   \hbox to\@pnumwidth{\hfil\reset@font\rmfamily \ }\par}\fi}
% PATCH COPIED FROM article.cls
    \hb@xt@ \@pnumwidth {\hfil \normalfont \normalcolor #5\kern -\p@ \kern \p@ }\par }\fi}
\makeatother

您可能需要对上面的内容进行一些修改,因为我从文章类中复制粘贴了我的修改,并且与原始代码略有不同,因此也许可以保留使用。被删除的\reset@font\rmfamily原始代码可能已有数十年历史。#2#5

答案2

我刚刚编译了你的例子

%\documentclass{article}
\documentclass{egpubl}
\begin{document}
\tableofcontents
\section{one}
\newpage
\section{two}
\newpage
\section{three}
\newpage
\end{document}

它看起来像这样:

在此处输入图片描述

我没看到你的问题。

相关内容