一个例子:
%\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