2

I have a list of "mini-paragraph" for example:

id:Object1:
Title:xxxx
Author:yyyy
ecc..

id:Object2:
Title:xxxx
Author:yyyy
ecc..

I don't need to put the id in tableofcontent but i need to create a list, like tableofcontent, of all id, for example:

Obect1: page 3 (with link to the page)
Object2: page.

If I only put a \label tag then I need to insert all \ref tags but I need something to do it automatically. Any suggestion?

EDIT1: An example is this:

\noindent\makebox[\linewidth]{\rule{\textwidth}{1pt}}
\begin{list}{}{\textbf{Modifica Tag}}
    \item {\textbf{Identificativo:}} \texttt{RF-ADMIN-Tag.edit}
    \item {\textbf{Descrizione:}} L’amministratore vuole modificare il nome di un tag esistente. Accede quindi alla sezione relativa ai tag negli strumenti di amministrazione, seleziona il tag di interesse e ne modifica il nome. 
Il sistema visualizza la lista dei tag aggiornata.
    \item {\textbf{Precondizioni:}} Login come utente amministratore. Questo stato è verificato in seguito all’applicazione del requisito RF-Login.
    \item {\textbf{Input:}}
    \begin{itemize}
        \item Nome tag
        \item tag da modificare
    \end{itemize}
    \item {\textbf{Output:}}
    \begin{itemize}
        \item Lista dei tag aggiornata in ordine alfabetico
    \end{itemize}
    \item {\textbf{Priorità:}} Alta
\end{list}

In the second line I have \textbf{Modifica Tag}, the "id" of object is "Modifica Tag" (the title of the list). I need to get this "id" from all object and put in a table of contents like.

My document class definition is this:

\documentclass[a4paper,12pt,oneside,hidelinks]{article}
\usepackage{graphicx} % For images
\usepackage{multirow} % For multirow tables
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amssymb} % Per le classi di numeri
\usepackage{amsmath} % Per le frazioni
\usepackage{hyperref} % Per i link
\usepackage{eurosym} % Per usare il simbolo dell'euro
\usepackage{acronym} % Per gli acronimi

\graphicspath{{./immagini/}}
\AtBeginDocument{\renewcommand\refname{Riferimenti}} % con pacchetti lingue

\begin{document}
[..]
\end{document}
3
  • 1
    Welcome to the site! Could you provide a MWE for folks to start from?
    – cmhughes
    Apr 3, 2014 at 21:57
  • 2
    Welcome to TeX.SE! Without some more information as to how the "id:Object" objects are defined and created, it's going to be very difficult to provide concrete suggestions regarding how a list of these objects could be generated. Please post a Minimum Working Example -- starting with \documentclass and ending with \end{document} -- that shows how these objects are created. Some more information about how you would like the list of these objects to look like would also be useful.
    – Mico
    Apr 3, 2014 at 21:58
  • I have add more information.
    – Neptune
    Apr 3, 2014 at 22:43

2 Answers 2

2

Here's one option using the kernel's \@starttoc to generate the list (the associated auxiliary file will have extension .loi):

\documentclass[a4paper,12pt,oneside,hidelinks]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{hyperref}

\makeatletter
\newcommand\listofidname{List of IDs}
\newcommand\listofids{
  \section*{\listofidname}
  \@starttoc{loi}
}
\makeatother
\newcommand\myid[1]{%
  \textbf{#1}%
  \addcontentsline{loi}{section}{#1}
}

\begin{document}

\listofids

\noindent\makebox[\linewidth]{\rule{\textwidth}{1pt}}
\begin{list}{}{\myid{Modifica Tag}}
    \item {\textbf{Identificativo:}} \texttt{RF-ADMIN-Tag.edit}
    \item {\textbf{Descrizione:}} L’amministratore vuole modificare il nome di un tag esistente. Accede quindi alla sezione relativa ai tag negli strumenti di amministrazione, seleziona il tag di interesse e ne modifica il nome. 
Il sistema visualizza la lista dei tag aggiornata.
    \item {\textbf{Precondizioni:}} Login come utente amministratore. Questo stato è verificato in seguito all’applicazione del requisito RF-Login.
    \item {\textbf{Input:}}
    \begin{itemize}
        \item Nome tag
        \item tag da modificare
    \end{itemize}
    \item {\textbf{Output:}}
    \begin{itemize}
        \item Lista dei tag aggiornata in ordine alfabetico
    \end{itemize}
    \item {\textbf{Priorità:}} Alta
\end{list}

\end{document}

enter image description here

Using \listofids you generate the list eghich is built in a similar fashion as a table of contents. The name for this list can be changed appropriately redefining \listofidname. You use the command \myid to typeset its argument to the document and produce the entry in the list.

1

Another option. This will make a list of the "id"'s, which will also include Part information. You can modify the code to also include Section information (this is indicated in the comments).

The method defines a counter id, and after \myid you can then optionnally use a \label command to benefit from the \label/\ref mechanism of LaTeX2e.

Output:

list of IDs

Code:

\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{hyperref}

\usepackage{etoc}
\newcounter{id}
% we will add "id" lines to the .toc file, but don't want them to appear in the
% standard toc file:
\etocsetlevel{id}{6}

\newcommand\listofidname{List of IDs}

\makeatletter
\newcommand\listofids{%
  \begingroup
   \renewcommand{\contentsname}{\listofidname}
   \etocsetlevel {id}{1}
% with current etoc (1.07k) the following needs to be done explicitely for the
% table of contents done in "compatibility mode". For TOCs using specific
% styles as set-up by  the user via \etocsetstyle, there would be no need and no
% use to do that.
   \let\l@id\l@section % print id entries as one does for section TOC entries
%
   \etocsetnexttocdepth {id}   % (no subsections etc...)
   \etocsetlevel {section}{6}  % do not print sections, only parts and "id"
                               % entries 
% % ALTERNATIVE: print id's as subsections
% \let\l@id\l@subsection
% \etocsetlevel{id}{2}
% \etocsetlevel{subsection}{6}
% \etocsetnexttocdepth{id}
   \tableofcontents
  \endgroup
}
\makeatother

\newcommand\myid[1]{%
  \textbf{#1}%
  \refstepcounter{id}%
  \etoctoccontentsline {id}{#1}%
}

\begin{document}

% \tableofcontents % this will be standard one

\listofids


\part{First part}

\section{A section}

\noindent\makebox[\linewidth]{\rule{\textwidth}{1pt}}
\begin{list}{}{\myid{Modifica Tag}}
    \item {\textbf{Identificativo:}} \texttt{RF-ADMIN-Tag.edit}
    \item {\textbf{Descrizione:}} L’amministratore vuole modificare il nome di un tag esistente. Accede quindi alla sezione relativa ai tag negli strumenti di amministrazione, seleziona il tag di interesse e ne modifica il nome. 
Il sistema visualizza la lista dei tag aggiornata.
    \item {\textbf{Precondizioni:}} Login come utente amministratore. Questo stato è verificato in seguito all’applicazione del requisito RF-Login.
    \item {\textbf{Input:}}
    \begin{itemize}
        \item Nome tag
        \item tag da modificare
    \end{itemize}
    \item {\textbf{Output:}}
    \begin{itemize}
        \item Lista dei tag aggiornata in ordine alfabetico
    \end{itemize}
    \item {\textbf{Priorità:}} Alta
\end{list}

\part{Second part}

\section{A section in the second part}

\noindent\makebox[\linewidth]{\rule{\textwidth}{1pt}}
\begin{list}{}{\myid{Modifica Tag Due}}
    \item {\textbf{Identificativo:}} \texttt{RF-ADMIN-Tag.edit}
    \item {\textbf{Descrizione:}} L’amministratore vuole modificare il nome di un tag esistente. Accede quindi alla sezione relativa ai tag negli strumenti di amministrazione, seleziona il tag di interesse e ne modifica il nome. 
Il sistema visualizza la lista dei tag aggiornata.
    \item {\textbf{Precondizioni:}} Login come utente amministratore. Questo stato è verificato in seguito all’applicazione del requisito RF-Login.
    \item {\textbf{Input:}}
    \begin{itemize}
        \item Nome tag
        \item tag da modificare
    \end{itemize}
    \item {\textbf{Output:}}
    \begin{itemize}
        \item Lista dei tag aggiornata in ordine alfabetico
    \end{itemize}
    \item {\textbf{Priorità:}} Alta
\end{list}

\end{document}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .