首页 > 代码库 > 定制WinEdt 优化Latex输入

定制WinEdt 优化Latex输入

前一个礼拜忙着准备讨论班的演示稿,顺带还有单位的一门考试的试题需要排版整理,所以微博更新的速度又被拖后了。说实话,Latex这种“所想即所得”的排版系统对人的确是一种折磨,它并不适合快速的文档编辑,倒是适合我们这种具有强烈强迫症倾向的人用来欣赏。偷笑所谓"慢工出细活",用Latex编辑文稿、书籍排版是集腋成裘的勾当,有许多东西是在这种折磨的过程中慢慢积累出来的。我在几年的考试命题出题过程中,从最开始的Word+Mathtype逐渐过渡到Word+Aurora,最后还是 忍不住我那清冽的强迫症人格,投入到了Miktex+Winedt的阵营中来,个中的折磨,辛苦,被人的不理解和鄙视 慢慢的汇集起来,有了一些能提高输入效率的小Tips:

1.有时输入数学公式环境比如“$$”或者 “$$ $$” ,手动输入总会有遗漏的情况,这造成了编译过程中一些无法预知的错误,尤其是在公式符号量大芜杂的时候 这时debugging相当于是噩梦一样....那就自定义一个输入数学环境的快捷键?

WinEdt提供了个可以自定义GUI界面的脚本配置程序,打开脚本配置程序:(菜单)Option->Options Interface


在WinEdt界面的左端点击“Menus and Tool bar" 选择 Main Menu.ini;这时您会看到一段很长的代码窗体,主要内容就是定义了有关WinEdt的一切 比如菜单名称 命令 快捷键等等


如果你想定义新命令的快捷键 还是要注意不要和Winedt已有的快捷键冲突 这样是最好的了。

比如可以在这段代码的最后加入一段 实现自动输入数学公式环境"$$"

ITEM="MathInText"
    CAPTION="$$"
    MACRO="Chr(-1,'$');Chr(-1,'$');CMD('Char Left');"
    REQ_DOCUMENT=1
    SHORTCUT="16461::Ctrl+M"  
    REQ_SELECTED_TEXT=1  

这段代码是我搜索得来的产物[1],实际运行中发现,如果对一个已经选择的字段对象运行快捷键“Ctrl+M”.是会覆盖掉原来的字段的。而对我的需求来说 希望是字段不被覆盖掉 要实现这个理念 本着“半搜索半探索”的目的,针对一些已有的快捷键代码 尤其是Control Pannel中的 我自己写了一段改进的代码。

 ITEM="MathInText"
    CAPTION="$$"
//    MACRO="IfSel(2,'>',!'SetSel(0);');Chr(-1,'$');Chr(-1,'$');CMD('Char Left');"
    MACRO="IfSel(2,'>',!'SetSel(0);');IfSel(0,'=',""Ins('$$');CharLeft;"",""InsLabel('','$','$');"");"
    REQ_DOCUMENT=1
    SHORTCUT="16461::Ctrl+M"
    REQ_SELECTED_TEXT=0     

至于其中所用到的宏命令 还是不在本帖子中去介绍了 参考的话 推荐一本大牛的小众书籍 The WinEdt Hacker’s Guide,Jason Alexander,November 21, 1999 点击打开链接

当然 如果您只是对其中已有的宏命令修改其相应的快捷键 比如 \textbf 添加快捷键,就可以用Bold 搜索,找到 REQ_DOCUMENT=1 那一行,加入 SHORTCUT="",然后将光标移到两个引号中间,click Insert Shortcut in the Options Interface,然后在弹出的界面中按Ctrl+B 就可以了。

当然 修改完毕之后,记得保存当前的.ini文件 并且“Load Script ”一下 偷笑



2.如果对当前的编辑窗体Font 不是很满意 可以考虑在还在左边的“Option Pannel”里面选择“Font Scheme-》Font"选项 


选择一种等宽字体。。。。。。Winedt 推荐使用 Verdana字体 而本人钟爱Conslas 仅是个人爱好 供大家参考


3.有的时候 我们需要自己定制一些输入 比如输入 

\lim\limits_{n\to\infty}
这也是很烦心的 我们可以像WinEdt那样 自定义 GUI Page COntrol 所谓GUI Page Control 就是指这样一个界面


在WinEdt 6.0 以上版本 您也可以定义自己的Symbol 这个也是在刚才的那个”Option Control“里面 选择 ”Tex Symbols“

这里面放置的是大量的Tex 符号快捷方式。自定义就是要自己建一个出来(当然你也可以修改原有的,不过一般还是没必要这样做了),仿照原有的那些信息,自己打一个。

PAGE="常用"
  CONFIGURATION=""
  MODE=""
  GROUP="常用\changyong.bmp"
    TOP=0
    SPACE=0
    ROWS=2
    COLUMNS=4
    WIDTH=50
    HEIGHT=25
    ITEM="( )"
      MACRO="Ins('\left(\right)');CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;"
    ITEM="[ ]"
      MACRO="Ins('\left[\right]');CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;"
    ITEM="{ }"
      MACRO="Ins('\left\{\right\}');CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;"
    ITEM="| |"
      MACRO="Ins('\left|\right|');CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;"
    ITEM="{ "
      MACRO="Ins('\left\{\right.');CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;CharLeft;"
    ITEM="sum_i=1^n"
      MACRO="Ins('\sum_{i=1}^{n}{}');CharLeft;"
    ITEM="prod_i=1^n"
      MACRO="Ins('\prod_{i=1}^{n}{}');CharLeft;"
    ITEM="lim_xtoinfty"
      MACRO="Ins('\lim_{x\to+\infty}{}');CharLeft;"

注意这里有个图片changyong.bmp是要自己根据你所设的符号制作的,这里比较麻烦,要作的位置恰好,否则显示得不好,不过关系不大,因为是你自己设置的你自己也清楚大概位置在哪了吧呵呵。输入完后保存并 Load Script 就 OK 了



定制WinEdt 优化Latex输入