首页 > 编程知识 正文

word中eq域的使用技巧,word中使用eq域的域开关i可以生成积分公式

时间:2023-05-05 01:53:30 阅读:273107 作者:4860

一、什么是EQ域?

嗯,大概清楚了。它是用来编写公式用的东东。那该怎么怎么使用呢?

二、EQ域的基本使用

基本格式是{ eq switch}eq为域的限定符,switch代表开关,如:分数开关 f(分子,分母)。实例{ eq f(3,4)} 渲染出来的是3 4 frac{3}{4}43​。注意:在WORD中直接输入该格式的文本是不起作用的,需要使用ctrl + f9快捷键插入一个域,此时会自动添加出一对花括号{},然后再输入eq限定符及相应的开关即可。

三、EQ域开关switch

明白了EQ域如何用后,接下来了解开关的编写及都有哪些关种类。上面已经介绍过了一个分数开关f(3,4)基本结构就是 开关字符[参数1参数2..](表达式)。
EQ域开关主要有以下几种:

数组开关a [参数...] (表达式1[,表达式2[,...]])参数值如下: al 左对齐ac 居中对齐ar 右对齐co{n} 将表达式中的元素排n列,如: co6vs{n} 设置行间距为n磅,如:vs6hs{n} 设置列间距为n磅,如:hs6括号开关 b [参数...] (表达式),参数值如下: lc{c} 设置左边括号为字符c,如: lc{rc{c} 设置右边括号为字符c,如:rc}bc{c} 设置左右括号为字符c,如:bc|位移开关 d [参数...] (表达式),参数值如下: fo{n} 下一个字符向右移动n磅ba{n} 下一个字符向左移动n磅li 为下一个字符前的空白添加下划线分数开关 f(分子表达式, 分母表达式)积分开关 i [参数...] (表达式1,表达式2,表达式3),参数值如下: pr 积分号改为求积in 积分限不写到上下,而是改为右边fc{n} 积分号改为固定大小的符号nvc{n} 积分号改为可变大小的符号n,可随着积分表达式大小变化列表开关 l(表达式)重叠开关 o(表达式)根号开关 r(,)上下标开关 s() ain() 在段落上面添加n磅的空白din() 在段落下面添加n磅的空白upn() 将给定的字符向上平移n磅don() 将给定的字符向下平移n磅方框开关 x() ri 在右边添加边框to 在上边添加边框bo 在下边添加边框四、思考

如果想把eq域公式在web中显示,我们该怎么做???网页中是怎样显示数学公式的???

MathML
数学标记语言,是一种基于XML(标准通用标记语言的子集)的标准,用来在互联网上书写数学符号和公式的置标语言。

对,就是它。先来看一下,上面我们提到的3 4 frac{3}{4}43​ ,用MathML来编写,结构如下:

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <mfrac> <mn>3</mn> <mn>4</mn> </mfrac></math> 123456

这个是可以直接在网页显示的,但是直接放到浏览器中运行会发现,样式不太对。so,MathJax前端插件就出现了,我们用它来渲染显示,立马就不一样。酷炫的八宝粥在页面右键一个公式:

有个TeX Commands 菜单,点击后:

嗯,这才是我们的主菜!!!frac{3}{4}与EQ域代码f(3,4)对比一下是不是十分相像?突破点就在这里。我们只要把EQ代码里的f => frac; ( => {; , => }{; ) => }这样一替换不就实现转换过来了吗?然后用MathJax进行渲染就可以了。

思路就是将EQ域的公式代码转换成Latex格式代码,即可实现在网页中显示。用C#写的部分思路代码如下:

static string ConvertEqToLatex(string strEqution){ Regex reg = new Regex(@"((?<cmd>\f|\r)((?<con>(?:[^()])+?)))+?"); MatchCollection mc = reg.Matches(strEqution); if (mc.Count <= 0) { return strEqution; } foreach(Match m in mc) { string strReplace = ""; if (m.Groups["cmd"].Value.Contains("\f")) { strReplace = m.Groups["con"].Value.Replace(@",", "}{"); strReplace = @"frac{" + strReplace + "}"; } else if (m.Groups["cmd"].Value.Contains("\r")) { strReplace = @"sqrt{" + m.Groups["con"].Value + "}"; } else //if(...) {// todo: 完善其它开关的转化...} strEqution = strEqution.Replace(m.Value, strdh); } return ConvertEqToLatex(strEqution);} 五、总结

记录一下最近项目遇到的情景,需要对WORD文档进行解析处理。文字图片什么的都好说,公式的处理确实挺麻烦的,需要花点时间专研。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。