我有一个“小段落”列表,例如:
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/\ref
LaTeX2e
输出:
代码:
\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}