cuando intento seguir el código, todo funciona como se esperaba:
\documentclass{article}
%\renewcommand{\thesubsubsection}{\alph{subsubsection})}
\begin{document}
\section{A Section}
\subsection{A Subsection}
\subsubsection{A Subsubsection}
\label{testlabel}
Hello world.
\par
In \ref{testlabel} I wrote: Hello world.
\end{document}
Esto imprimirá 1.1.1.
Pero si habilito el comando en el comentario, solo obtengo a) en lugar del esperado 1.1.a)
De hecho quiero que el apartado aparezca como a)... y la referencia como 1.1.a sin llave.
¿Algunas ideas?
Respuesta1
Para cualquier contador LaTeX, la macro es el prefijo utilizado en las referencias. Normalmente se usa en enumeración anidada para obtener exactamente el efecto donde la etiqueta de la lista solo muestra un nivel y una referencia muestra la forma expandida.\[email protected]
Las macros predeterminadas suponen que la forma de impresión del contador final es la misma en ambos lugares, por lo que si desea perderlo, )
necesita la macro de prefijo para eliminarlo, como aquí, o como en la respuesta de egreg, no agregarlo al formato del contador. y en su lugar considere la )
parte del formato del encabezado de la sección.
\documentclass{article}
\renewcommand{\thesubsubsection}{\alph{subsubsection})}
\makeatletter
\renewcommand{\p@subsubsection}{\thesubsection.\protect\eatbracket}
\makeatother
\def\eatbracket#1#2{#1\ifx)#2\else#2\fi}
\begin{document}
\section{A Section}
\subsection{A Subsection}
\subsubsection{A Subsubsection}
\label{testlabel}
Hello world.
\par
In \ref{testlabel} I wrote: Hello world.
\end{document}
Respuesta2
Es mejor agregar el paréntesis donde corresponde, en lugar de eliminarlo después. Esto se puede lograr mediante una simple redefinición de \@seccntformat
:
\documentclass{article}
\makeatletter
\renewcommand{\@seccntformat}[1]{%
\csname the#1\endcsname
\csname suffix@#1\endcsname % this does nothing unless \suffix@... is defined
\quad
}
% the subsubsection number is just a letter
\renewcommand{\thesubsubsection}{\alph{subsubsection}}
% but references will also have “section.subsection.” in front of the letter
\renewcommand{\p@subsubsection}{\thesubsection.}
% define \suffix@subsubsection
\newcommand{\suffix@subsubsection}{)}
\makeatother
\begin{document}
\section{A Section}
\subsection{A Subsection}
\subsubsection{A Subsubsection}\label{testlabel}
Hello world.
In \ref{testlabel} I wrote: Hello world.
\end{document}
Esto también es escalable. Suponga que desea un espacio entre palabras normal entre a)
y el título, manteniendo el \quad
para niveles superiores. Luego puedes modificar el código como
\makeatletter
\renewcommand{\@seccntformat}[1]{%
\csname the#1\endcsname
\@ifundefined{suffix@#1}%
{\quad}%
{\csname suffix@#1\endcsname}%
}
% the subsubsection number is just a letter
\renewcommand{\thesubsubsection}{\alph{subsubsection}}
% but references will also have “section.subsection.” in front of the letter
\renewcommand{\p@subsubsection}{\thesubsection.}
% define \suffix@subsubsection
\newcommand{\suffix@subsubsection}{) }% parenthesis and space
\makeatother
La segunda solución también incluye una solución para la tabla de contenido (nuevamente, entre el paréntesis y el título, parece mejor dejar un espacio normal).
\documentclass{article}
\makeatletter
\renewcommand{\@seccntformat}[1]{%
\csname the#1\endcsname
\@ifundefined{suffix@#1}
{\quad}%
{\csname suffix@#1\endcsname}%
}
% the subsubsection number is just a letter
\renewcommand{\thesubsubsection}{\alph{subsubsection}}
% but references will also have “section.subsection.” in front of the letter
\renewcommand{\p@subsubsection}{\thesubsection.}
% define \suffix@subsubsection
\newcommand{\suffix@subsubsection}{) }% parenthesis and space
\renewcommand{\l@subsubsection}[2]{%
\@dottedtocline{3}{3.8em}{3.2em}{\let\numberline\subsubsection@numberline#1}{#2}%
}
\def\subsubsection@numberline#1{#1) }
\makeatother
\begin{document}
\tableofcontents
\section{A Section}
\subsection{A Subsection}
\subsubsection{A Subsubsection}
\label{testlabel}
Hello world.
\par
In \ref{testlabel} I wrote: Hello world.
\section{Whatever}
\end{document}
Respuesta3
También debes proporcionar el \thesubsubsection
contenido.\thesubsection
\documentclass{article}
\renewcommand{\thesubsubsection}{\thesubsection.\alph{subsubsection})}
\begin{document}
\section{A Section}
\subsection{A Subsection}
\subsubsection{A Subsubsection}
\label{testlabel}
Hello world.
\par
In \ref{testlabel} I wrote: Hello world.
\end{document}
Flexible