当前位置:   article > 正文

IEEE论文LaTeX模板解析(八)| 列表(List)_latex list

latex list

本文收录于专栏:IEEE论文LaTeX模板解析,本专栏将会围绕IEEE论文LaTeX模板解析持续更新。欢迎点赞收藏+关注!

传统的 LaTeX 列表环境 itemize, enumerate and description (IED) 不适合生成 IEEE 出版物中使用的列表样式。主要问题在于它们没有为用户提供控制结果列表参数的方法。此外,对底层 \list 的参数进行全局更改会导致(通常是用户意想不到的)依赖于它的其他命令(如 \quote )的不当行为。最后,LaTeX 的 \list 将列表文本的左侧边距视为参考点,它决定了列表相对于主文本左侧边距的位置:
在这里插入图片描述
这与 IEEE 列表不同,后者使用标签框作为列表结构的参考点,即在特定情况下,列表标签将缩进一定量,列表文本块将从标签框缩进一定量,这些间距将决定列表文本的位置。

由于这些原因,IEEEtran 提供了增强的 IED 列表环境,使制作 IEEE 风格的列表变得更加容易。为了不破坏依赖于它的代码,底层的 \list 与传统 LaTeX 中的保持一致。IEEEtran 使用了一个新的长度变量 \IEEElabelindent,这样用户就可以直接以 IEEE 方式指定 IED 列表结构:
在这里插入图片描述
IEEEtran IED 列表忽略对列表长度参数的所有 "外部 "更改。相反,IED 列表只通过两个接口进行控制:

  • 通过 \IEEEEiedlistdecl 命令进行 "全局 "控制;
  • 通过一个可选参数进行 "局部 "控制,该参数可以提供给 \itemize\enumerate\description

例如,在 IEEEtran 文档中声明下列代码将设置以后所有 IED 列表中标签框的默认宽度等于 "Hello "的宽度。注意:由于设置标签宽度非常常见,IEEEtran 提供了一条命令:\IEEEsetlabelwidth{X} ,该命令是是\settowidth\{labelwidth}{X}的简写形式:

\renewcommand{\IEEEiedlistdecl}{\settowidth{\labelwidth}{Hello}}
  • 1

如果参数仅适用于单个 IED 清单,则使用本地控制:

\begin{itemize}[\IEEEsetlabelwidth{$\gamma$}]
  • 1

在一个 IED 列表中,局部控制在全局控制之后执行,因此,局部控制中的命令既可以增强全局控制中的命令,也可以抵消全局控制中的命令。请注意,本地控件和全局控件中的代码执行方式与普通 LaTeX 代码相同。因此,用户应确保控件中不会出现不必要的空白。如果控件定义太长,一行无法容纳,可以用"%"屏蔽行尾,以防止被解释为空格。此外,请注意 LaTeX 解析器要求在带有可选参数的命令周围加上大括号,这些命令应直接置于其他命令的可选参数中:

\begin{itemize}[{\mycmd[1]{example}}]
  • 1

即使这些列表嵌套很深,这种 IEEEtran IED 实现也可以轻松控制 IED 列表。

IED 列表使用的默认间距存储在各种长度(非宏)命令中。很少需要更改这些 "主 "默认值,而且只能在文档开始时更改,而不能在 IED 列表控制中更改。现在将对这些常量进行简要说明:

  • \IEEEilabelindent:该长度是分项列表标签框从左页边距开始缩进的默认值。IEEE 似乎至少使用了两种不同的值。例如,在《IEEE/OSA JOURNAL OF LIGHTWAVE TECHNOLOGY》和《IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS》中,他们倾向于使用等于 \parindent的缩进量,而在《IEEE TRANSACTIONS ON COMMUNICATIONS》中,他们倾向于将分项列表的缩进量稍大些(1.3\parindent)。较短的长度存储为 \IEEEilabelindentA,较长的存储为 \IEEEEilabelindentB。要使用较长版本,请在文档的开头部分执行:

    \setlength{\IEEEilabelindent}{\IEEEilabelindentB}
    
    • 1
  • \IEEEelabelindent:该长度是枚举列表标签框从左侧边距缩进的默认值。通常与 \parindent 相同。

  • \IEEEdlabelindent:同上,用于描述列表标签。通常与 \parindent 相同。

  • \IEEEiednormlabelsep:该长度是 IED 列表标签框与列表文本之间的正常默认间距。

  • \IEEEiedmathlabelsep:对于术语描述列表(数学符号及其解释列表),IEEE 通常会增加术语与定义之间的间隔。该长度设置为比正常长度更长。要调用它,只需在列表控制中发出 \IEEEusemathlabelsep 命令即可。

  • \IEEEiedtopsep: 这个长度是每个 IED 列表上下的额外垂直间隔。IEEE 通常会在每个列表周围加一点额外的间距。不过,这种额外的间距几乎看不出来。

  • \IEEElabelindentfactori\IEEElabelindentfactorvi: 这些包含了随着列表嵌套深度的增加而减少有效 \IEEElabelindent 的因素。IEEE 通常会随着列表嵌套深度的增加而减少缩进量,因为两列文本没有太多的缩进空间。IEEEtran 具有 "自动缩进 "功能,可以实现这种效果。
    标签框的实际缩进量是\IEEElabelindent 乘以与嵌套深度级别相对应的\IEEElabelindentfactorX(其中 "X "是以罗马数字表示的嵌套深度)。
    这就为用户提供了一种方法,可以改变较深层次的有效 \IEEElabel 缩进。可能不存在正确的 "标准 IEEE "值。IEEE 的实际做法可能取决于具体情况。第一个列表层几乎总是完全缩进。第二层通常只有正常缩进的 75%。第三级和更高级别的嵌套非常罕见,可能不使用任何缩进。这些因子并不是长度,而是像 \baselinestretch 这样的常量宏,因此如果需要更改,应使用 \renewcommand 命令。默认值是:

    \IEEElabelindentfactori 1.0 
    \IEEElabelindentfactorii 0.75 
    \IEEElabelindentfactoriii 0.0 
    \IEEElabelindentfactoriv 0.0 
    \IEEElabelindentfactorv 0.0 
    \IEEElabelindentfactorvi 0.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    可以通过在列表控制中发布命令 \IEEEnolabelindentfactortrue 来暂停在 IED 列表中使用这些因子(其效果与将所有缩进因子设置为 1.0 相同)。

通常情况下,IEEEtran 会根据 \IEEElabelindent, \labelwidth\labelsep 的当前值自动计算 \leftmargin。 要停止这种自动计算,从而使用手动指定的 \leftmargin 值,只需在列表控件中使用 \IEEEnocalcleftmargintrue 即可。在正常的 IEEE 相关工作中,应该不需要此功能。

IEEEtran 提供了一种在 IED 列表标签框内手动指定对齐方式的方法。命令 \IEEEiedlabeljustifyl\IEEEiedlabeljustifyc\IEEEiedlabeljustifyr 可以在列表控件中使用,分别使列表标签向左、向中和向右对齐。逐项列表和枚举列表自动默认为右对齐,而描述默认为左对齐。在正常的 IEEE 相关工作中,应该不需要使用对齐命令。

除了修改 itemize、enumerate 和 description 的行为外,IEEEtran 还提供了各自的别名 IEEEitemize、IEEEenumerate 和 IEEEdescription,这为用户提供了一种访问 IEEE 风格列表环境的方法,即使加载了另一个覆盖 IED 列表环境的软件包。对于特殊应用,原始的 LaTeX IED 列表环境将保留为 LaTeXitemizeLaTeXenumerateLaTeXdescription

1. Itemize

分项清单(Itemize List)通常会自动计算当前列表级别所使用的任何符号的宽度,这样用户就可以直接调用 \begin{itemize}...\end{itemize},而无需做任何特殊操作。此外,即使在列表开始之前重新定义了 \labelitemX(其中 "X "表示 “i,ii,…iv”,以合适者为准),自动标签宽度功能也能正常工作。但是,如果要通过 \item[X] 来指定任何项目符号(这种情况很少见,而且就 IEEE 相关工作而言,很可能是非标准的),那么可以使用下面的形式(其中 "Z "是列表中最长的标签):

\begin{itemize}[\IEEEsetlabelwidth{Z}] 
\item[X] blah 
\item[Y] blah 
. 
. 
\end{itemize}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2. Enumerate

关于枚举列表(Enumerate List),需要注意的一点是,在正常大小和样式下,"标签宽度 "将默认为 "9) "的长度。因此,如果以下任何条件为真,则必须手动指定最长标签的宽度:

  • 顶层列表有超过 9 个条目;
  • 重新定义了相关的 \labelenumX\theenumX
  • 使用 \item[X] 手动指定标签;
  • 标签使用的字体不是正常的大小和样式;
  • 枚举列表是嵌套的(即不在顶层),因此不使用阿拉伯数字作为标签。

例如:

\begin{enumerate}[\IEEEsetlabelwidth{12)}] 
\item blah 
\item blah 
. 
. 
% 12 items total 
\end{enumerate}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3. Description

一般来说,描述列表(Description List)总是需要指定最长的标签宽度。此外,在建立数学符号列表时,作者可能希望使用 \IEEEmathlabelsep 来代替 \labelsep。例如:

\begin{description}[\IEEEsetlabelwidth{$\alpha\omega\pi\theta\mu$}\IEEEusemathlabelsep] 
\item[$\gamma\delta\beta$] Is the index of.. 
\item[$\alpha\omega\pi\theta\mu$] Gives the.. 
. 
. 
\end{description}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

有时很难通过检查确定哪个标签最长。在这种情况下,一个小小的诊断代码可能有助于测量长度,然后将结果显示在控制台上:

\newlength{\mydiaglen} % put in preamble 
. 
. 
\settowidth{\mydiaglen}{$\alpha\beta\gamma$} 
\showthe\mydiaglen
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/758809
推荐阅读
相关标签
  

闽ICP备14008679号