علت دو بار ظاهر شدن Appendix این هست که هنگامی که دستور \appendix
رو استفاده میکنید واژه Appendix
بخشی از دستور \thesection
هست.
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\setcounter{equation}{0}
\gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
\gdef\thetable{\@Alph\c@section.\arabic{table}}%
\gdef\thesection{\appendixname~\@Alph\c@section}%
\@addtoreset{equation}{section}%
\gdef\theequation{\@Alph\c@section.\arabic{equation}}%
\addtocontents{toc}{\string\let\string\numberline\string\tmptocnumberline}{}{}
}
تعریف \thesection
را ببینید که در آغازش یک \appendixname
قرار دارد. این نه تنها ایجا بلکه در فهرست مطالب و احتمالا جاهای دیگر هم مشکل ایجاد میکنه. این تعریف نادرسته. تعریف درست باید به شکل زیر باشه:
\makeatletter
\def\@appendix@seccntformat#1{\appendixname~\csname the#1\endcsname\@seccntDot\hskip 0.5em}
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\setcounter{equation}{0}
\gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
\gdef\thetable{\@Alph\c@section.\arabic{table}}%
% \gdef\thesection{\appendixname~\@Alph\c@section}%
\let\@seccntformat\@appendix@seccntformat
\@addtoreset{equation}{section}%
\gdef\theequation{\@Alph\c@section.\arabic{equation}}%
\addtocontents{toc}{\string\let\string\numberline\string\tmptocnumberline}{}{}
}
\makeatother
توجه کنید که این کد رو باید قبل از فراخوانی بسته hyperref
قرار بدهید چون بسته hyperref
هم دستور \appendix
رو patch میکنه. بنابراین فایل کامل بصورت زیر هست.
\documentclass{elsarticle}
\makeatletter
\def\@appendix@seccntformat#1{\appendixname~\csname the#1\endcsname\@seccntDot\hskip 0.5em}
\renewcommand\appendix{\par
\setcounter{section}{0}%
\setcounter{subsection}{0}%
\setcounter{equation}{0}
\gdef\thefigure{\@Alph\c@section.\arabic{figure}}%
\gdef\thetable{\@Alph\c@section.\arabic{table}}%
% \gdef\thesection{\appendixname~\@Alph\c@section}%
\let\@seccntformat\@appendix@seccntformat
\@addtoreset{equation}{section}%
\gdef\theequation{\@Alph\c@section.\arabic{equation}}%
\addtocontents{toc}{\string\let\string\numberline\string\tmptocnumberline}{}{}
}
\makeatother
\usepackage{hyperref}
\hypersetup{colorlinks=true}
\begin{document}
\begin{center}
In the name of God, the most gracious, the most merciful
\end{center}
\section{Section 1}
\label{sec1}
Output of \verb|\ref{sec1}|: \ref{sec1}.
Output of \verb|\autoref{sec1}|: \autoref{sec1}.
\subsection{Subsection 1.1}
\label{subsec1}
Output of \verb|\ref{subsec1}|: \ref{subsec1}.
Output of \verb|\autoref{subsec1}|: \autoref{subsec1}.
\appendix
\section{Appendix 1}
\label{appdx1}
Output of \verb|\ref{appdx1}|: \ref{appdx1}.
Output of \verb|\autoref{appdx1}|: \autoref{appdx1}.
\end{document}
اگر میخواهید دستور \autorefname
حرف نخست رو بصورت بزرگ بنویسه کافی دستور \#1autorefname
رو تغییر بدهید که #1
اون نامی هست که میخواهید تغییر بدهید. به عنوان نمونه برای تغییر section
به Section
کافیه دستور \sectionautorefname
رو بصورتی که دوست دارید بازتعریف کنید.
\def\sectionautorefname{Section}
این تعریف و تعریفهای مشابه باید پس از فراخوانی بسته hyperref
قرار بگیره.