我正在使用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}
{}
}