赞
踩
本文收录于专栏: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}}
如果参数仅适用于单个 IED 清单,则使用本地控制:
\begin{itemize}[\IEEEsetlabelwidth{$\gamma$}]
在一个 IED 列表中,局部控制在全局控制之后执行,因此,局部控制中的命令既可以增强全局控制中的命令,也可以抵消全局控制中的命令。请注意,本地控件和全局控件中的代码执行方式与普通 LaTeX 代码相同。因此,用户应确保控件中不会出现不必要的空白。如果控件定义太长,一行无法容纳,可以用"%"屏蔽行尾,以防止被解释为空格。此外,请注意 LaTeX 解析器要求在带有可选参数的命令周围加上大括号,这些命令应直接置于其他命令的可选参数中:
\begin{itemize}[{\mycmd[1]{example}}]
即使这些列表嵌套很深,这种 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}
\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
可以通过在列表控制中发布命令 \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 列表环境将保留为 LaTeXitemize
、LaTeXenumerate
和 LaTeXdescription
。
分项清单(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}
关于枚举列表(Enumerate List),需要注意的一点是,在正常大小和样式下,"标签宽度 "将默认为 "9) "的长度。因此,如果以下任何条件为真,则必须手动指定最长标签的宽度:
\labelenumX
或 \theenumX
;\item[X]
手动指定标签;例如:
\begin{enumerate}[\IEEEsetlabelwidth{12)}]
\item blah
\item blah
.
.
% 12 items total
\end{enumerate}
一般来说,描述列表(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}
有时很难通过检查确定哪个标签最长。在这种情况下,一个小小的诊断代码可能有助于测量长度,然后将结果显示在控制台上:
\newlength{\mydiaglen} % put in preamble
.
.
\settowidth{\mydiaglen}{$\alpha\beta\gamma$}
\showthe\mydiaglen
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。