目录如下

目录如下

我有一个“小段落”列表,例如:

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

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

我不需要将 id 放在 tableofcontent 中,但我需要创建一个包含所有 id 的列表,如 tableofcontent,例如:

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

如果我只放一个\label标签,那么我需要插入所有\ref标签,但我需要一些东西来自动执行此操作。有什么建议吗?

编辑1: 例如:

\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}

在第二行中\textbf{Modifica Tag},对象的“id”是“Modifica Tag”(列表的标题)。我需要从所有对象中获取此“id”,并将其放入目录中。

我的文档类定义是这样的:

\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}

答案1

下面是使用内核 \@starttoc生成列表的一个选项(相关的辅助文件将具有扩展名.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}

在此处输入图片描述

使用\listofids生成列表 eghich 的构建方式与目录类似。可以通过重新定义 适当更改此列表的名称\listofidname。使用 命令\myid将其参数排版到文档并生成列表中的条目。

答案2

另一个选项。这将生成一个列表"id",其中还将包含Part信息。您可以修改代码以包含Section信息(这在注释中有所说明)。

该方法定义一个计数器id,然后\myid您可以选择使用命令来从该机制\label中受益。\label/\refLaTeX2e

输出:

ID 列表

代码:

\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}

相关内容