编辑

编辑

我正在使用hyperref(和titletoc)包。我\appendix这样重新定义

\newif\if@appendix\@appendixfalse
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\gdef\thesection{\@Alph\c@section}%
\@appendixtrue
}

\@appendix如果需要修改标题,正如我之前问过的这里

\DeclareRobustCommand{\@seccntformat}[1]{%                     
 \def\temp@@a{#1}%
 \def\temp@@b{section}%
 \ifx\temp@@a\temp@@b                                          
  \if@appendix
   \csname the#1\endcsname :\quad%                              
  \else
    \csname the#1\endcsname .\quad%
  \fi
  \else                                                         
   \csname the#1\endcsname\quad%                                
  \fi
  } 

\renewcommand\section{\@startsection%
 {section}{0}{0mm}%
 {2\baselineskip}{0.5\baselineskip}%
 {\centering\normalfont\normalsize\scshape
 \if@appendix{%
  Appendix~%
  }\fi
}%

}

在实践中如果我在写作

  subsection            ==> x.y subsection_name
  section_not_appendix  ==> x. section_name
  section_appendix      ==> Appendix x: appendix_name

目前我得到了我想要的没有使用任何其他包我可能不会使用它

我的问题是:现在我想修改目录中的 toc 条目,特别是我希望有这样的格式

  Apppendix x: appendix_name

其中 x 也是指向附录的超链接。我认为最简单的方法是(无需添加任何其他包) 是进一步修改的定义,\section以便更改\addcontentesline应位于其中的命令。有人能帮帮我吗?

编辑

以下是一个最小的例子

\documentclass{article}
\usepackage{titletoc}
\usepackage[colorlinks=true
 ,urlcolor=blue
 ,anchorcolor=blue
 ,citecolor=blue
 ,filecolor=blue
 ,linkcolor=blue
 ,menucolor=blue
 ,linktocpage=true
 ,bookmarks=true
 ,unicode=true
 ,pdfcreator={XeLaTeX}
 ,pdfa=true
]{hyperref}           

\makeatletter                                                   
 \renewcommand\section{\@startsection%
  {section}{0}{0mm}%
  {2\baselineskip}{0.5\baselineskip}%
  {\centering\normalfont\normalsize\scshape
  \if@appendix{%
   Appendix~%
  }\fi
  }%
 }

 \renewcommand\subsection{\@startsection%                       
  {subsection}{1}{0mm}%
  {1\baselineskip}{0.5\baselineskip}%
  {\centering\normalfont\normalsize\itshape}%
 }

 \DeclareRobustCommand{\@seccntformat}[1]{%                     
  \def\temp@@a{#1}%
  \def\temp@@b{section}%
  \ifx\temp@@a\temp@@b                                          
   \if@appendix
    \csname the#1\endcsname :\quad%                              
   \else
    \csname the#1\endcsname .\quad%
   \fi
  \else                                                         
   \csname the#1\endcsname\quad%                             
  \fi
 } 

\makeatletter
 \renewcommand\tableofcontents{%
  \section*{\contentsname
  \@mkboth{%
   \contentsname}{\contentsname}}%
  \@starttoc{toc}%
  \addvspace{32\p@\@plus14\p@}%
  %\addcontentsline{toc}{section}{\contentsname}
 }

 \newif\if@appendix\@appendixfalse
 \renewcommand\appendix{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@Alph\c@section}%
  \@appendixtrue
  }

\makeatother

\titlecontents{section}%                                        
  [9mm]                                                         
  {}                                                            
  {\contentslabel[%                                             
   \hyperlink{%
    section.\thecontentslabel
   }{%
    \thecontentslabel.%
    }]%
  {7mm}}
  {\hspace*{-7mm}}                                              
  {\hfill\contentspage}                                         
  {}                                                            

\titlecontents{subsection}%                                     
  [20mm]                                                        
  {}                                                            
  {\contentslabel[                                              
   \hyperlink{%
    subsection.\thecontentslabel%
   }{%
    \thecontentslabel%
    }]%
  {12mm}}%
  {\hspace*{-12mm}}                                             
  {\hfill\contentspage}                                        
  {}                                                           

\begin{document}
 \tableofcontents
 \section{First}
 \subsection{First-first}
 \subsection{First-second}
 \section{Second}
 \section*{Unnumbered}
 \addcontentsline{toc}{section}{Unnumbered}
 \subsection{Second-First}
 \appendix
 \section{This is the app}
\end{document}

我想要得到的目录的输出除了因为我希望附录条目几乎像未编号的条目一样:我希望它是

 Appendix A: This is the app

带有A指向附录的超链接。我该怎么办?

答案1

也许我找到了解决方案,定义就足够了

\renewcommand\appendix{\par
 \setcounter{section}{0}%
 \setcounter{subsection}{0}%
 \gdef\thesection{\@Alph\c@section}%
 \@appendixtrue
 \titlecontents{section}%                                        
  [2mm]                                                         
  {}                                                            
  {Appendix~%                                             
  \hyperlink{%
   section.\thecontentslabel
   }{%
  \thecontentslabel.~%
   }%
  }
 {\hspace*{-7mm}}                                              
 {\hfill\contentspage}                                         
 {} 
 }

相关内容