IEEE期刊投稿公式编辑方法 |
您所在的位置:网站首页 › word怎么自己编辑公式 › IEEE期刊投稿公式编辑方法 |
目录
本文介绍了向IEEE期刊投稿时,怎么优雅地编辑公式。 公式编辑环境推荐在编辑公式前,必须载入公式的基础包\userpackage{amsmath} 为了保持全文风格的一致性,建议只使用IEEEeqnarray环境,原因: 不同的公式环境,前后留白的大小不一样 equation环境可以实现自动换行,但是有些时候,公式后面还有公式标号的空间时,也会自动换行后再生成公式标号,而IEEEequarray可以完全自由地控制换行的位置 align环境在某行公式过长时,会产生对齐问题,如下图所示。 equarray环境可以解决公式对齐的问题,但是对齐后会导致=前后的空格变大,与其他任何一种环境都不一样,所以应严格不使用该环境 IEEEeqnarray环境的灵活性和一致性,可以实现所有公式编辑中需要的功能在使用IEEEeqnarray环境时,如果文档使用的是\documentclass[]{IEEEtran},则直接使用即可,如果不是则要载入包\usepackage{IEEEtrantools}(回复审稿意见时可能会用到)。 基础用法单行公式写法单行公式,直接一列,用{c}居中即可 1 2 3 \begin{IEEEeqnarray}{c} a = b + c \end{IEEEeqnarray} 多行公式写法公式换行准则: 通常在等号或者运算符前进行换行 等号前优先于运算符前换行 加号或者减号前优先于其他运算符前换行 尽量避免其他换行方式多行公式,分成三列,按照=进行对齐,左列靠右,中列剧中,右列靠左 1 2 3 4 5 \begin{IEEEeqnarray}{rCl} a & = & b + c \\ & = & e + f+ g \\ & = & h + j \end{IEEEeqnarray}当公式后有括号说明时,可以添加空格列和文字对齐列,如: 1 2 3 \begin{IEEEeqnarray}{rCl"s} ... \end{IEEEeqnarray}列位置控制符: 符号 表示 l c r L C R 分别表示数字的靠左,居中,靠右 s t u 分别表示文字模式的靠左,居中,靠右 . / ? " 空格大小,逐渐变大 矩阵写法用matrix环境实现: matrix:无括号的矩阵, pmatrix:(), bmatrix:[], Bmatrix:{}, vmatrix: | |, Vmatrix: || || 控制编号公式的某行是否编号以及是否有子编号,通过在行内加入 \IEEEyesnumber、\IEEEnonumber、\IEEEyessubnumber和\IEEEnosubnumber来实现,上述命令后面加*,表示从此行起,遇到新的编号命令前,按照此行的命令执行。如\IEEEyesnumber*表示从此行起,后面的每行公式都编号。 编号命令放在每行的最后面,换行符\\前。 特殊情况及技巧1. 公式某行过长与编号重叠,且公式前还有空间时这种情况,不需要手动调整将比较长的那一行进行换行,只需在与编号重叠的那一行最后添加\IEEEeqnarraynumspace,公式整体会左移,空出公式编号的位置。 使用此方法时,要注意不要让公式的左侧超出文字的边界。 2. 公式的第一行过长时可以用\IEEEeqnarraymulticol{3}{l}{}将第一行的三列合并为一行,如下式: 1 2 3 4 5 \begin{IEEEeqnarray}{rCl} \IEEEeqnarraymulticol{3}{l}{ a + b + c + d + e + f + g + h}\IEEEnonumber\\* \quad & = & i + j \\ & = & k + l + m \end{IEEEeqnarray}显示效果如下: 通过,添加\qquad可以调整下几行公式缩进的程度,需特别注意:\IEEEeqnarraymuticol前面不可以添加\lable{}。 3.控制公式中括号的大小latex可以自动根据括号中公式的大小,调整对应的括号的大小,只需要在括号前加入\left、\right或者\middle,如以下代码所示: 1 2 3 \begin{IEEEeqnarray}{c} H\left(X \, \middle| \, \frac{Y}{X} \right) \end{IEEEeqnarray}显示效果如下: 但是还需要解决以下两个问题: 用括号表示函数$f()$时,$f$与$()$的距离太远,如下图所示: 可以在文件头加入以下代码解决此问题: 1 2 \usepackage{mleftright} \mleftright 当左、右括号之间出现换行时,如下图所示 可以在头文件加入以下代码解决此问题: 1 \newcommand{\sizecorr}[1]{\makebox[0cm]{\phantom{$\displaystyle #1$}}} 4.防止同一公式的多行分页显示只需在公式换行符号\\后添加* 5. 控制公式是否能换页在文件头添加\interdisplaylinepenalty=xx。 若xx=0,则允许公式换页 若xx=2500, 则由latex自行判断,在没有更好的处理办法时,再进行换页 若xx=10000, 则严格禁止公式换页 6.给公式引用添加超链结只需在文件头添加\usepackage[colorlinks=true,linkcolor=blue]{hyperref} 几个细节注意区分一元操作符和二元操作符 如-作为一元操作符是负号,作为二元操作符是减号,当他在公式某行的最前面时,会自动被当作一元操作符,会导致其与后一个符号的距离太近,应在符号后面添加\>,使其保持与后侧符号距离,作为二元操作符显示。 某些情况下,latex会将一元操作符,显示为二元操作符,如在\log和\sin前时,为了使其作为一元操作符显示应将后面的表达式用{}括起来,如-{\log a}。 公式的\lable{}最好放置在指定公式的最后公式的\lable{}最好放在本行公式的最后,换行符\\前,以避免类似\IEEEeqnarraymulticol的情况 应注意公式里面文字部分的字体文字部分的字体应与公式符号的字体不一样,应该将文字部分用\text{}括起来,或者在指定环境中各列对齐方式时,使用s, t, u指定该部分为文字,在文字位置需要添加公式则用行内公式的写法$...$实现。 正确实现微分符号d在文件头添加\newcommand{\dd}{\mathop{}\!\mathrm{d}},用\dd表示微分符号d。 argmin、argmax及trace实现方法在文件头加入以下代码: 1 2 3 4 5 6 7 % argmin argmax trace \DeclareMathOperator*{\argminA}{arg\,min} \DeclareMathOperator*{\argminB}{argmin} \DeclareMathOperator*{\argmaxA}{arg\,max} \DeclareMathOperator*{\argmaxB}{argmax} \DeclareMathOperator{\tr}{Tr}A和B两种样式都可以使用,选择自己习惯的样式。 解决不可见的公式引用问题不可见引用是指,在公式中使用了子编号如(3a), (3b), 并没有显式的出现编号(3), 而文中却引用了公式(3)。此时公式(3)的引用超链结会出现问题。需要在文件头中加入以下代码: 1 2 3 4 5 6 7 8 9 \makeatletter \def\IEEElabelanchoreqn#1{\bgroup \def\@currentlabel{\p@equation\theequation}\relax \def\@currentHref{\@IEEEtheHrefequation}\label{#1}\relax \Hy@raisedlink{\hyper@anchorstart{\@currentHref}}\relax \Hy@raisedlink{\hyper@anchorend}\egroup} \makeatother \newcommand{\subnumberinglabel}[1]{\IEEEyesnumber \IEEEyessubnumber*\IEEElabelanchoreqn{#1}} 解决IEEEeqnarray中编号字体随环境定义变化的问题在IEEEeqnarray环境中,如果定义了环境的字体,则公式的编号字体也会随之变化,为了避免这个问题,可以在文件头中加入下列代码: 1 2 \renewcommand{\theequationdis}{{\normalfont (\theequation)}} \renewcommand{\theIEEEsubequationdis}{{\normalfont (\theIEEEsubequation)}} 使用进阶1.两组相邻公式之间有简短文字相隔,如何将两组公式进行对齐具体实现方法如下: 1 2 3 4 5 6 7 We have \begin{IEEEeqnarray}{rCl} \subnumberinglabel{eq:block3} a & = & b + c \label{eq:block3_eq1}\\ & = & d + e \label{eq:block3_eq2}\\ \noalign{\noindent and \vspace{2\jot}} f & = & g - h + i \label{eq:block3_eq3} \end{IEEEeqnarray}显示效果如下: 注意中间的and部分实现代码是\noalign{\noindent and \vspace{2\jot}}。 2. 用IEEEeqnarraybox结合IEEEeqnarraystrutmode实现复杂的公式结构IEEEeqnarraybox用法与IEEEeqnarray类似,其特点是可以嵌套在其他环境中。 在IEEEeqnarraybox的属性中添加IEEEequarraystrutmode,具体用法见下列示例。 举例1: 1 2 3 4 5 6 7 8 9 10 \begin{IEEEeqnarray}{c} \IEEEnonumber* \begin{IEEEeqnarraybox}[ \IEEEeqnarraystrutmode \IEEEeqnarraystrutsizeadd{3pt} {1pt} ]{c’c/v/c’c’c} D_1 & D_2 & & X_1 & X_2 & X_3 \\ \hline 0 & 0 && +1 & +1 & +1\\ 0 & 1 && +1 & -1 & -1\\ 1 & 0 && -1 & +1 & -1\\ 1 & 1 && -1 & -1 & +1 \end{IEEEeqnarraybox} \end{IEEEeqnarray}其中{3pt}和{1pt}表示行前,行后添加的空白大小。 举例2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 \begin{IEEEeqnarray}{c} \left. \begin{IEEEeqnarraybox}[\IEEEeqnarraystrutmode \IEEEeqnarraystrutsizeadd{2pt}{2pt}][c]{rCl} x & = & a + b\\ y & = & a - b \end{IEEEeqnarraybox} \, \right\} \iff \left\{ \, \begin{IEEEeqnarraybox}[ \IEEEeqnarraystrutmode \IEEEeqnarraystrutsizeadd{7pt} {7pt}][c]{rCl} a & = & \frac{x}{2} + \frac{y}{2} \\ b & = & \frac{x}{2} - \frac{y}{2} \end{IEEEeqnarraybox} \right. \label{eq:example_left_right2} \end{IEEEeqnarray} 3. 实现函数组中每个函数逐个编号上一个方法可以实现函数组,但他将函数组作为整体进行编号,要为组中每个函数逐个编号时,采用下述方法: 1 2 3 4 5 \begin{IEEEeqnarray}{rrCl} & \dot{x} & = & f(x,u) \\* \smash{\left\{ \IEEEstrut[8\jot] \right.} & x+\dot{x} & = & h(x) \\* & x+\ddot{x} & = & g(x) \end{IEEEeqnarray}在左侧再添加一列,用\smash实现大括号${$, 其中的[8\jot]需要根据公式的大小进行调整,数字为 $(lines \times 2 + 2)$(公式中有\frac时是2行)。 若公式行数为偶数时,用隐藏行实现大括号的对齐 1 2 3 4 5 6 7 8 9 \begin{IEEEeqnarray}{rrCl} & \dot{x} & = & f(x,u) \\* [-0.625\normalbaselineskip] % start invisible row \smash{\left\{ \IEEEstrut[6\jot] \right.} \nonumber % end invisible row \\* [-0.625\normalbaselineskip] & x+\dot{x} & = & h(x) \end{IEEEeqnarray} 若某些公式占用多行导致大括号位置不对称时 1 2 3 4 5 6 7 8 9 \begin{IEEEeqnarray}{rrCl} \subnumberinglabel{eq:uneven2} & a_1 + a_2 & = & \sum_{k=1}^{\frac{M}{2}} f_k(x,u) \\* [-0.1\normalbaselineskip] \smash{\left\{ \IEEEstrut[12\jot] \right.} \nonumber \\* [-0.525\normalbaselineskip] & b & = & g(x,u) \\* & y_{\theta} & = & h(x) \end{IEEEeqnarray} 文件头代码汇总 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 % add packages \usepackage{amsmath} \usepackage{IEEEtrantools} % add hyperlink for equation citation \usepackage[colorlinks=true,linkcolor=blue]{hyperref} % page-break permission : 0 :yes 10000:no other:yes but let latex find someother way \interdisplaylinepenalty=2500 % fix hyperlink to invisible equation number \makeatletter \def\IEEElabelanchoreqn#1{\bgroup \def\@currentlabel{\p@equation\theequation}\relax \def\@currentHref{\@IEEEtheHrefequation}\label{#1}\relax \Hy@raisedlink{\hyper@anchorstart{\@currentHref}}\relax \Hy@raisedlink{\hyper@anchorend}\egroup} \makeatother \newcommand{\subnumberinglabel}[1]{\IEEEyesnumber \IEEEyessubnumber*\IEEElabelanchoreqn{#1}} % fix font behavior of IEEEeqnarray \renewcommand{\theequationdis}{{\normalfont (\theequation)}} \renewcommand{\theIEEEsubequationdis}{{\normalfont (\theIEEEsubequation)}} % fix distance between f and () \usepackage{mleftright} \mleftright % fix ()paris in different line same size \newcommand{\sizecorr}[1]{\makebox[0cm]{\phantom{$\displaystyle #1$}}} % argmin argmax trace \DeclareMathOperator*{\argminA}{arg\,min} \DeclareMathOperator*{\argminB}{argmin} \DeclareMathOperator*{\argmaxA}{arg\,max} \DeclareMathOperator*{\argmaxB}{argmax} \DeclareMathOperator{\tr}{Tr} % fix d in integration \newcommand{\dd}{\mathop{}\!\mathrm{d}}欢迎留言讨论。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |