yo uso etocpara excluir números de sección de enlaces en ToC. Sin embargo, cuando inserto una sección de apéndice no numerada, etoc agrega un punto:
Jugué con el código y descubrí que el problema está \etocthenumber
en \etocsetstyle{section}
la definición (sin etoc, el punto no está allí). ¿Hay alguna solución?
Aquí un MWE:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{xcolor}
% heading styles:
\usepackage{titlesec}
\titleformat{\section}
{\color{teal}\large\sffamily}
{\thetitle.\hspace{0.5cm}}
{0cm}
{}
\titleformat{\subsection}
{\color{violet}\bfseries}
{\hspace{0.75cm}\thetitle.\hspace{0.3cm}}
{0cm}
{}
\titleformat{\subsubsection}
{\color{olive}\itshape}
{\hspace{1.3cm}\thetitle.\hspace{0.3cm}}
{0cm}
{}
% ToC styles:
\usepackage[dotinlabels]{titletoc}
\contentsmargin{2.55em} % space for a page number
\titlecontents{section}
[3.8em] % 1.5em + 2.3em
{\vspace{0.3cm}\sffamily\bfseries\large}
{\contentslabel{2.3em}}
{\hspace*{-2.3em}}
{\normalsize\normalfont\rmfamily\titlerule*[1pc]{.}\contentspage}
[\vspace{0.1cm}]
\titlecontents{subsection}
[5.2em] % 3.8em + 1.3em
{\vspace{0.1cm}}
{\contentslabel{1.4em}}
{\hspace*{-1.4em}}
{\titlerule*[1pc]{.}\contentspage}
[]
\titlecontents{subsubsection}
[6.5em] % 5.2em + 1.3em
{\vspace{0.1cm}}
{\contentslabel{1.3em}}
{\hspace*{-1.3em}}
{\titlerule*[1pc]{.}\contentspage}
[]
\makeatletter
\let\perhapsprint\@firstofone
\patchcmd{\addtocontents}
{\glossary\@gobble}
{\glossary\@gobble\let\perhapsprint\@gobble}
{}{}
\makeatother
%\newcommand{\perhapsprint}[1]{\ifprintprefix#1\fi}
%\newif\ifprintprefix
\renewcommand\thesection{\Roman{section}}
\renewcommand\thesubsection{%
\perhapsprint{\Roman{section}.}%
\alph{subsection}%
}
\renewcommand\thesubsubsection{%
\perhapsprint{\Roman{section}.\alph{subsection}.}%
\arabic{subsubsection}%
}
% appendix:
\usepackage[toc,page]{appendix}
\renewcommand*\thesubsection{\Alph{subsection}}
\usepackage{hyperref}
% exclude number from the link in ToC:
\usepackage{etoc}
\makeatletter
% store the original table of contents macros (they are not modified by hyperref, only \contentsline is)
\let\latchapter\l@chapter
\let\latsection\l@section
\let\latsubsection\l@subsection
\let\latsubsubsection\l@subsubsection
% then use the etoc package to feed the l@ macros with a filtered out data
\etocsetstyle{chapter}{}{}
{\latchapter{\numberline{\etocthenumber}\etocname}{\etocpage}}{}
\etocsetstyle{section}{}{}
{\latsection{\numberline{\etocthenumber}\etocname}{\etocpage}}{}
\etocsetstyle{subsection}{}{}
{\latsubsection{\numberline{\etocthenumber}\etocname}{\etocpage}}{}
\etocsetstyle{subsubsection}{}{}
{\latsubsubsection{\numberline{\etocthenumber}\etocname}{\etocpage}}{}
\makeatother
\renewcommand\thesection{\Roman{section}}
\renewcommand\thesubsection{\alph{subsection}}
\renewcommand\thesubsubsection{\arabic{subsubsection}}
\renewcommand\theparagraph{\Roman{section}.\alph{subsection}.\arabic{subsubsection}.\roman{paragraph}}
\begin{document}
\tableofcontents
\section{H1}
\subsection{H2}
\subsubsection{H3}
\section{H1}
\subsection{H2}
\subsubsection{H3}
\addtocontents{toc}{\vspace*{\baselineskip}}
\renewcommand{\appendixtocname}{Appendices}
\renewcommand{\appendixpagename}{Appendices}
\begin{appendices}
\subsection{H2}
\subsubsection{H3}
\subsection{H2}
\subsubsection{H3}
\subsection{H2}
\subsubsection{H3}
\end{appendices}
\end{document}
(También estoyexcluyendo la numeración de secciones en ToC)
Respuesta1
Como se menciona en los comentarios, en vista de los otros paquetes utilizados por el código del OP, el remedio más simple probablemente sea dejar de usaretoc.
En caso de que algunos usuarios etoc
encuentren esta pregunta, proporciono esta respuesta para explicar cuál podría ser la forma de etoc
manejar el problema: simplemente use el \etocifnumbered
comando.
\documentclass{article}
% appendix:
\usepackage[toc,page]{appendix}
\renewcommand*\thesubsection{\Alph{subsection}}
\usepackage{hyperref}
% exclude number from the link in ToC:
\usepackage{etoc}
\makeatletter
% store the original table of contents macros (they are not modified by hyperref, only \contentsline is)
\let\latchapter\l@chapter
\let\latsection\l@section
\let\latsubsection\l@subsection
\let\latsubsubsection\l@subsubsection
\etocsetstyle{chapter}{}{}
{\etocifnumbered
{\latchapter{\numberline{\etocthenumber}\etocname}{\etocpage}}
{\latchapter{\etocname}{\etocpage}}}{}
\etocsetstyle{section}{}{}
{\etocifnumbered
{\latsection{\numberline{\etocthenumber}\etocname}{\etocpage}}
{\latsection{\etocname}{\etocpage}}}{}
\etocsetstyle{subsection}{}{}
{\etocifnumbered
{\latsubsection{\numberline{\etocthenumber}\etocname}{\etocpage}}
{\latsubsection{\etocname}{\etocpage}}}{}
\etocsetstyle{subsubsection}{}{}
{\etocifnumbered
{\latsubsubsection{\numberline{\etocthenumber}\etocname}{\etocpage}}
{\latsubsubsection{\etocname}{\etocpage}}}{}
\makeatother
\renewcommand\thesection{\Roman{section}}
\renewcommand\thesubsection{\alph{subsection}}
\renewcommand\thesubsubsection{\arabic{subsubsection}}
\renewcommand\theparagraph{\Roman{section}.\alph{subsection}.\arabic{subsubsection}.\roman{paragraph}}
\begin{document}
\tableofcontents
\section{H1}
\subsection{H2}
\subsubsection{H3}
\section{H1}
\subsection{H2}
\subsubsection{H3}
\renewcommand{\appendixtocname}{Appendices}
\renewcommand{\appendixpagename}{Appendices}
\begin{appendices}
\subsection{H2}
\subsubsection{H3}
\subsection{H2}
\subsubsection{H3}
\subsection{H2}
\subsubsection{H3}
\end{appendices}
\end{document}