
Existe uma maneira de gerar um \tableofcontents
na classe do artigo sem usar \section
s padrão, mas foi usado um \section
esquema de numeração diferente? Especificamente, veja a segunda parte da resposta de David Carlisle paraQual é a melhor maneira de criar um documento com muitas subseções?. O padrão \tableofcontents
parece não funcionar. Eu sou novo no LaTeX, mas fiquei surpreso com isso \label
e \ref
funcionou perfeitamente bem.
Editar: eu gostaria de poder criar um índice contendo, por exemplo, o primeiro ou primeiro e segundo nível de títulos (da mesma forma que \setcounter{tocprofundidade}{2} parece funcionar). Abaixo está o código referenciado acima:
\documentclass{article}
\newcounter{depth}
\setcounter{depth}{1}
\newcounter{pi}
\newcounter{pii} [pi] \renewcommand\thepii{\thepi.\arabic{pii}}
\newcounter{piii}[pii] \renewcommand\thepiii{\thepii.\arabic{piii}}
\newcounter{piv} [piii]\renewcommand\thepiv{\thepiii.\arabic{piv}}
\newcounter{pv} [piv] \renewcommand\thepv{\thepiv.\arabic{pv}}
\def\psetdepth#1#2\relax{%
\ifx+#1\relax\addtocounter{depth}{#2}%
\else\ifx-#1\relax\addtocounter{depth}{-#2}%
\else\setcounter{depth}{#1#2}\fi\fi}
\newcommand\sentence[2][+0]{%
\par
\psetdepth#1\relax\relax
\vspace{\csname pspace\roman{depth}\endcsname}%
\hspace{\csname phspace\roman{depth}\endcsname}%
\hangindent=\csname pindent\roman{depth}\endcsname
\hangafter=1
\indent\refstepcounter{p\roman{depth}}\llap{\csname thep\roman{depth}\endcsname\ }%
{\csname pstyle\roman{depth}\endcsname#2\par}}
\newcommand\phspacei{20pt}
\newcommand\phspaceii{40pt}
\newcommand\phspaceiii{65pt}
\newcommand\phspaceiv{100pt}
\newcommand\phspacev{140pt}
\newcommand\pindenti{5ex}
\newcommand\pindentii{10ex}
\newcommand\pindentiii{15ex}
\newcommand\pindentiv{23.5ex}
\newcommand\pindentv{32.5ex}
\newcommand\pspacei{15pt}
\newcommand\pspaceii{15pt}
\newcommand\pspaceiii{10pt}
\newcommand\pspaceiv{10pt}
\newcommand\pspacev{10pt}
\newcommand\pstylei{\Large\bfseries}
\newcommand\pstyleii{\bfseries\itshape}
\newcommand\pstyleiii{\normalfont}
\newcommand\pstyleiv{\normalfont}
\newcommand\pstylev{\normalfont}
\begin{document}
\raggedright
\sentence{This is a sentence.}
\sentence{This is another sentence. Just like any other sentence one would think but perhaps not.}
\sentence[+1]{This sentence is similar to the others, but longer. This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This is a sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence[+1]{This is another sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence[+1]{This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This is a sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This is another sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This sentence is similar to the others, but longer.}
\sentence[+1]{Hey there how is it going my good friend. Hey there how is it going my good friend.}
\sentence[-2]{This is a sentence hey.}
\sentence{This is another sentence.}
\sentence{This sentence is similar to the others, but longer.}
\sentence[-1]{This is a sentence.}
\end{document}
Responder1
A ToC
lata é gerada com \addcontentsline
um mapeamento dos níveis toc para o depth
valor do contador.
O código
\ifcase\c@depth
\or
\def\tocstyle{section}
\or
\def\tocstyle{subsection}
\or
\def\tocstyle{subsubsection}
\or
\def\tocstyle{paragraph}
\or
\def\tocstyle{subparagraph}
\fi
define a \tocstyle
macro dependendo do valor de depth
, onde 1
significa section
etc.
A linha \addcontentsline{toc}{\toclevel}{\protect\numberline{}#2}
adiciona a linha ao ToC e gera hyperlinks
, se necessário ao usar hyperref
.
Definir tocdepth
o valor de 2
permitirá apenas os dois primeiros níveis, como acontece com os níveis de corte normais.
\documentclass{article}
\newcounter{depth}
\setcounter{depth}{1}
\newcounter{pi}
\newcounter{pii} [pi] \renewcommand\thepii{\thepi.\arabic{pii}}
\newcounter{piii}[pii] \renewcommand\thepiii{\thepii.\arabic{piii}}
\newcounter{piv} [piii]\renewcommand\thepiv{\thepiii.\arabic{piv}}
\newcounter{pv} [piv] \renewcommand\thepv{\thepiv.\arabic{pv}}
\def\psetdepth#1#2\relax{%
\ifx+#1\relax\addtocounter{depth}{#2}%
\else\ifx-#1\relax\addtocounter{depth}{-#2}%
\else\setcounter{depth}{#1#2}\fi\fi}
\setcounter{tocdepth}{2}
\makeatletter
\newcommand\sentence[2][+0]{%
\par
\psetdepth#1\relax\relax
\vspace{\csname pspace\roman{depth}\endcsname}%
\hspace{\csname phspace\roman{depth}\endcsname}%
\hangindent=\csname pindent\roman{depth}\endcsname
\hangafter=1
\indent\refstepcounter{p\roman{depth}}\llap{\csname thep\roman{depth}\endcsname\ }%
\ifcase\c@depth
\or
\def\tocstyle{section}
\or
\def\tocstyle{subsection}
\or
\def\tocstyle{subsubsection}
\or
\def\tocstyle{paragraph}
\or
\def\tocstyle{subparagraph}
\fi
{\csname pstyle\roman{depth}\endcsname#2\addcontentsline{toc}{\tocstyle}{\protect\numberline{\csname thep\roman{depth}\endcsname}#2}\par}}
\makeatother
\newcommand\phspacei{20pt}
\newcommand\phspaceii{40pt}
\newcommand\phspaceiii{65pt}
\newcommand\phspaceiv{100pt}
\newcommand\phspacev{140pt}
\newcommand\pindenti{5ex}
\newcommand\pindentii{10ex}
\newcommand\pindentiii{15ex}
\newcommand\pindentiv{23.5ex}
\newcommand\pindentv{32.5ex}
\newcommand\pspacei{15pt}
\newcommand\pspaceii{15pt}
\newcommand\pspaceiii{10pt}
\newcommand\pspaceiv{10pt}
\newcommand\pspacev{10pt}
\newcommand\pstylei{\Large\bfseries}
\newcommand\pstyleii{\bfseries\itshape}
\newcommand\pstyleiii{\normalfont}
\newcommand\pstyleiv{\normalfont}
\newcommand\pstylev{\normalfont}
\begin{document}
\tableofcontents
\raggedright
\sentence{This is a sentence.}
\sentence{This is another sentence. Just like any other sentence one would think but perhaps not.}
\sentence[+1]{This sentence is similar to the others, but longer. This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This is a sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence[+1]{This is another sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence[+1]{This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This is a sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This is another sentence.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.This sentence is similar to the others, but longer.}
\sentence{This sentence is similar to the others, but longer.}
\sentence[+1]{Hey there how is it going my good friend. Hey there how is it going my good friend.}
\sentence[-2]{This is a sentence hey.}
\sentence{This is another sentence.}
\sentence{This sentence is similar to the others, but longer.}
\sentence[-1]{This is a sentence.}
\end{document}