有自己的目录吗?

有自己的目录吗?

是否可以在 LaTeX 中引入自己的目录?我想引入自己的标签,以定义文档中的一些术语。在文档末尾,我想自动生成已定义术语的列表,并附上定义术语的页面链接。

答案1

在以下示例中,我定义了一个\Defi具有两个强制参数的命令;第一个强制参数用于要定义的术语,第二个强制参数用于定义;该命令将术语排版为粗体字体,将术语添加到辅助文件.def,并添加\phantomsection命令(此部分需要hyperref包)以获取超链接的正确锚点。该命令\listofdefinitions实际上将使用 kernel 命令创建新的“定义列表” \@starttoc。在示例中,新列表的条目将被格式化为 LoF 中的图形,但这也可以自定义:

\documentclass{article}
\usepackage{hyperref}

\newcommand\Defi[2]{%
  \noindent\makebox[1.5cm][l]{%
    \textbf{#1}%
    \phantomsection% comment out if hyperref is noy used
    \addcontentsline{def}{figure}{#1}}{#2}\par}

\makeatletter
\newcommand\listdefinitionname{List of Definitions}
\newcommand\listofdefinitions{%
  \section*{\listdefinitionname}\@starttoc{def}}
\makeatother

\begin{document}

\Defi{CDMA}{Code Division Multiple Access}
\Defi{GSM}{Global System for Mobile communication}
\Defi{NAD}{Nicotinamide Adenine Dinucleotide}
\Defi{TDMA}{Time Division Multiple Access}
\Defi{IC}{Integrated Circuit}
\Defi{BUT}{Block Under Test}

\listofdefinitions

\end{document}

在此处输入图片描述

\newlistof以下是使用来自的命令的上述代码版本托克洛夫特包裹:

\documentclass{article}
\usepackage{tocloft}
\usepackage{hyperref}

\newcommand\Defi[2]{%
  \noindent\makebox[1.5cm][l]{%
    \phantomsection% comment out if hyperref is noy used
    \textbf{#1}%
    \addcontentsline{def}{figure}{#1}}{#2}\par}

\newcommand\listdefinitionname{List of Definitions}
\newlistof{definition}{def}{\listdefinitionname}

\begin{document}

\Defi{CDMA}{Code Division Multiple Access}\newpage
\Defi{GSM}{Global System for Mobile communication}
\Defi{NAD}{Nicotinamide Adenine Dinucleotide}\newpage
\Defi{TDMA}{Time Division Multiple Access}
\Defi{IC}{Integrated Circuit}
\Defi{BUT}{Block Under Test}

\listofdefinition

\end{document}

答案2

@Gonzalo Medina:输入\addcontentsline\makebox减慢处理速度。而且缩写有时可能比1.5cm您使用的固定长度更长。

\documentclass{article}
\usepackage{hyperref}

\makeatletter
\newcommand\Defi[2]{%
  \noindent
  \makebox[\ListOfDefAbbrevLength][l]{\textbf{#1}}%
    \csname phantomsection\endcsname
    \addcontentsline{def}{figure}{#1}%
  {#2}\par
}
\newdimen\ListOfDefAbbrevLength
\ListOfDefAbbrevLength=1.5cm
\newcommand\ListOfDefName{List of Definitions}
\newcommand\ListOfDefinitions{%
  \section*{\ListOfDefName}%
  \@starttoc{def}%
}
\makeatother

\begin{document}

\Defi{CDMA}{Code Division Multiple Access}
\Defi{GSM}{Global System for Mobile communication}
\Defi{NAD}{Nicotinamide Adenine Dinucleotide}
\Defi{TDMA}{Time Division Multiple Access}
\Defi{IC}{Integrated Circuit}
\Defi{BUT}{Block Under Test}

\ListOfDefinitions

\end{document} 

相关内容