如何删除短目录中的页码,但不删除长目录中的页码?

如何删除短目录中的页码,但不删除长目录中的页码?

我希望在文档的开头有一个不带页码的短目录,但在文档的结尾有一个带页码的长目录。

我的例子:

\documentclass[french,a4paper,12pt,twoside]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[tight]{shorttoc} 
\addtocontents{toc}{\protect\thispagestyle{empty}}
\usepackage{color}
\usepackage[bookmarks,colorlinks=true]{hyperref}

\begin{document}
\chapter{Thanks !}
\shorttableofcontents{Sommaire.}{0}
\part{Concepts.}
\chapter{Characters}
\section{Cars.}
\subsection{Quick}
\section{Trucks.}
\subsection{Slow}
\part{Virtuality.}
\chapter{Food}
\section{Bananas.}
\subsection{Quickly}
\section{Orange.}
\subsection{Slowly}
\newpage
\tableofcontents
\end{document}

有没有什么解决方案可以删除简短目录中的页码?

答案1

本地重新定义\contentsline以忽略其第三个参数(页码)。

\documentclass[french,a4paper,12pt,twoside]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[tight]{shorttoc}
\addtocontents{toc}{\protect\thispagestyle{empty}}

\newcommand{\npshorttableofcontents}[2]{%
  \begingroup
  \let\aslsavedcontentsline\contentsline
  \renewcommand{\contentsline}[3]{%
    \aslsavedcontentsline{##1}{##2}{}%
  }%
  \shorttableofcontents{#1}{#2}
  \endgroup
}

\usepackage{color}
\usepackage[bookmarks,colorlinks=true]{hyperref}

\begin{document}
\chapter{Thanks !}
\npshorttableofcontents{Sommaire.}{0}
\part{Concepts.}
\chapter{Characters}
\section{Cars.}
\subsection{Quick}
\section{Trucks.}
\subsection{Slow}
\part{Virtuality.}
\chapter{Food}
\section{Bananas.}
\subsection{Quickly}
\section{Orange.}
\subsection{Slowly}
\newpage
\tableofcontents
\end{document}

相关内容