本文收录于专栏:IEEE论文LaTeX模板解析,本专栏将会围绕IEEE论文LaTeX模板解析持续更新。欢迎点赞收藏+关注!
1. 类文件与用户文档之间传递信息
IEEEtran 提供三类特殊命令,允许在类文件和用户文档之间传递信息:
- CLASSINPUT 是一种输入,通过覆盖某些默认设置(在加载 IEEEtran 时)来定制 IEEEtran 的运行;
- CLASSOPTION 是根据已选择的 IEEEtran 类选项进行有条件编译的输出;
- CLASSINFO 是允许用户访问 IEEEtran 运行环境附加信息的输出。
下面进行具体解析:
1.1 CLASSINPUT
可用的 CLASSINPUT 包括
- \CLASSINPUTbaselinestretch
:用于设置文档的行距;
- \CLASSINPUTinnersidemargin
:用于设置内边(装订)边距;
- \CLASSINPUToutersidemargin
:用于设置外边距;
- \CLASSINPUTtoptextmargin
:用于设置顶边距;
- \CLASSINPUTbottomtextmargin
:用于设置底边距。
当然,这些参数也可以通过传统的 LATEX 界面设置(\odd sidemargin
、\topmargin
等)。然而,使用 CLASSINPUT 方法的优势在于,它允许 IEEEtran 调整其他内部参数,并根据需要执行任何附加计算。例如,在 LATEX 中设置页边距时,需要仔细设置页边距、页边距和文本宽度,同时考虑到纸张大小以及是否使用双面打印。
要调用 CLASSINPUT,只需在加载 IEEEtran 之前定义相关的 CLASSINPUT 即可。例如下面的这段命令将生成侧边距为 17 毫米的文档——如果只指定了内侧/外侧(或顶部文本/底部文本)边距对中的一个,IEEEtran 将假定用户想要对称的侧边距(或顶部/底部),并将相关对的两个值都设置为用户指定的(单一)值。
\newcommand{\CLASSINPUTinnersidemargin}{17mm}
\documentclass{IEEEtran}
IEEEtran 使用的 \headheight
和 \headsep
固定值分别为 12pt 和 0.25in。在加载 IEEEtran 后,可以在不改变页边距的情况下改变页眉的位置,只要保留 \topmargin
、\headheight
和 \headsep
。例如,可以使用以下方法将页眉上移 0.2 英寸:
\addtolength{\headsep}{0.2in}
\addtolength{\topmargin}{-0.2in}
同样,默认值为 0.4 英寸的 \footskip
也可以轻松更改,以改变页脚在底边距内的位置。
使用(\CLASSINPUTbaselinestretch
)时,IEEEtran 将自动 “数字化”\textheight
文本高度,以便页面上能容纳整数行(与草稿模式一样)。通过 CLASSINPUT 设置上边距或下边距时,不会进行数字化处理。请注意,使用 CLASSINPUT 控制可能导致文档不符合 IEEE 标准。CLASSINPUT的预期应用情况可能有:
- 对格式有特殊要求的会议或协会;
- 制作非标准页边距的副本,如装订供个人使用;
- 与 IEEE 无关的工作。
1.2 CLASSOPTION
CLASSOPTION 主要是根据正在使用的 IEEEtran 选项自动设置的 TeX \if
条件。例如下面这段构造可用于有条件地执行代码。请注意,如IEEE论文LaTeX模板解析(二)中2.2所述,draft 和 draftclsnofoot 选项意味着 draftcls。因此,大多数用户会希望测试 \ifCLASSOPTIONdraftcls
来检测草稿模式。
\ifCLASSOPTIONconference
\typeout{in conference mode}
\else
\typeout{not in conference mode}
\fi
对于文档的点尺寸选项,\CLASSOPTIONpt
被定义为一个宏,扩展为所选点值的数字部分(如 9/10/11/12pt)。对于纸张尺寸选项,\CLASSOPTIONpaper
将是一个包含纸张规格(如 letter、a4)的宏。要将这些作为条件使用,需要进行字符串宏比较:
\newcommand{\myninestring}{9}
\ifx\CLASSOPTIONpt\myninestring
\typeout{document is 9pt}
\fi
用户应将 CLASSOPTIONs 视为 “只读”,不要试图手动更改它们的值,因为 IEEEtran 内部使用它们作为标志来确定哪些选项已被选中——更改这些标志可能会导致格式不正确。
1.3 CLASSINFO
可用的 CLASSINFO 包括 \ifCLASSINFOpdf
条件,其工作原理与 Heiko Oberdiek 的 ifpdf.sty 软件包类似,用于指示 PDF 输出(来自 pdfLaTeX)是否有效:
\ifCLASSINFOpdf
\typeout{PDF mode}
\fi
IEEEtran.cls 还提供了:
- \CLASSINFOnormalsizebaselineskip
: 正常大小字体的基线基线
- \CLASSINFOnormalsizeunitybaselineskip
:统一基线提取下正常大小字体的基线基线。
最后,还有字符串宏(这些不是条件或长度) \CLASSINFOpaperwidth
和 \CLASSINFOpaperheight
,它们包含纸张尺寸的原始规格,包括单位(如 8.5 英寸、22 毫米等)。与 CLASSOPTION 一样,用户不应试图更改 CLASSINFO。