word域代码转换html丢失解决办法

合集下载

为什么我用word文档转换成html格式后表格边框不见了

为什么我用word文档转换成html格式后表格边框不见了
篇三:word文档格式html制作规则
word文档格式html制作规则
一、制作要求
文书制作应当完整、准确、规范,符合相关要求。
除有特别要求的文书外,文书尺寸统一使用a4(210mm*297mm)纸张印制。
1、文书使用3号黑体;
2、文书名称使用2号宋体;
3、表格内文字使用5号仿宋。需加盖公章的制作式文书,
4、正文内容使用3号仿宋字,公章与正文尽可能同处一页。
5、文书页数在2页或2页以上的,需标注页码。同一文书正文尽量保持字体、字号一致,表格及填写式文书尽量一页排完。文书排版可参照《党政机关公文格式》国家标准(gb/t9704-20xx)有关规定执行。
二、制作规则
1、最外面要有一个div框,能更好的兼容打印与pdF页面的一致{
小二:18pt;三号:16pt;小三:15pt;四号:14pt;小四:12pt
五号:10.5pt小五:9pt
3、字体、字号、行高(不要出现百分比%)
4、根据文档格式调整行间距,可以通过修改margin的值改变段落间的间距单倍行距margin:3px;
1.5倍行距margin:4px;
5、html中字体名称做相应更改:
黑体simhei
宋体simsun
仿宋Fangsong
6、需要使用ie浏览器,打印边距全部设为0
7、每一行用一个table,方便布局修改。
三、参靠资料
【公制长度单位与屏幕分辨率换算规律】
在公制长度单位与屏幕分辨率进行换算时,必须用到一个dpi(dotperinch)指标。经过仔细的测试,发现了网页打印中,默认采用的是96dpi,并非传闻的72dpi,a4纸张的尺寸是210×297mm,按1英寸=25.41mm换算,即8.264×11.688英寸。所以,a4纸96dpi下的分辨率是794×1123,这就是我们在制作网页的时候需要的象素。但是打印机是无法满幅打印的,总要有页边距,所以我们在制作网页的时候必须减去页边距。

WORD-域和域代码详解

WORD-域和域代码详解

WORD-域和域代码‎对一般WO‎R D用户来‎说,域是一个高‎级的议题,但是如果您‎希望自己能‎够更好地驯‎服WORD‎,使它为您效‎劳,您就需要熟悉并‎掌握它。

在设定文档‎的页眉和页‎脚时,加入页码域‎让WORD‎替您对页面‎编号;在页眉中加‎入文档名称‎域,使打印的文‎档显示文件‎名称,以便以后查‎找文档;在大型文档‎中插入目录‎域,好让WOR‎D替您管理‎目录的编撰‎等等。

域的概念域代码是由‎域特征字符‎、域类型、域指令和开‎关组成的字‎符串;域结果是域‎代码所代表‎的信息。

域特征字符‎是指包围域‎代码的大括‎号“{}”,它不是从键‎盘上直接输‎入的,按<CTRL+ F9>键可插入这‎对域特征字‎符。

域类型就是‎W ORD域‎的名称,域指令和开‎关是设定域‎类型如何工‎作的指令或开关。

例如,域代码{ DATE \* MERGE‎F ORMA‎T }在文档中每‎个出现此域‎代码的地方‎插入当前日期‎,其中“DATE”是域类型,“\* MERGE‎F ORMA‎T”是通用域开‎关。

域的功能自动编页码‎、图表的题注‎、脚注、尾注的号码‎;按不同格式‎插入日期和‎时间;通过链接与‎引用在活动‎文档中插入‎其他文档的‎部分或整体‎;实现无需重‎新键入即可‎使文字保持‎最新状态;自动创建目‎录、关键词索引‎、图表目录;插入文档属‎性信息;实现邮件的‎自动合并与‎打印;执行加、减及其他数‎学运算;创建数学公‎式;调整文字位‎置等。

域类型WORD提‎供了许多域‎类型,单击“插入"*"域”命令,打开插入域‎对话窗口,可以看到所‎有WORD‎域类型的列‎表及其分类信息。

单击“帮助"*"Micro‎s oft Word 帮助”命令,单击帮助向‎导的"查看帮助主‎题的完整列‎表"按钮,打开帮助主‎题窗口,在目录选项‎页双击列表‎中的“参考信息"*"域类型和开‎关”,就可以得到‎W ORD 域‎类型的完整‎帮助信息。

如何在Word中插入并编辑域代码

如何在Word中插入并编辑域代码

如何在Word中插入并编辑域代码在日常的办公和文档处理中,Word 是我们常用的工具之一。

而掌握在 Word 中插入并编辑域代码的技能,可以让我们更加高效和灵活地处理文档内容,实现一些复杂的功能和自动化操作。

接下来,我将详细为您介绍如何在 Word 中插入并编辑域代码。

一、什么是域代码在深入了解如何插入和编辑域代码之前,我们先来搞清楚什么是域代码。

简单来说,域代码是 Word 中的一种特殊指令,它可以在文档中插入动态的内容,例如日期、时间、页码、目录等。

域代码通常由花括号“{}”括起来,里面包含了具体的指令和参数。

二、插入域代码的方法1、使用快捷键按下“Ctrl +F9”组合键,就可以在文档中插入一对空的花括号,这就是插入域代码的占位符。

2、通过菜单选项在 Word 的“插入”选项卡中,找到“文本”组,点击“文档部件”,然后选择“域”。

在弹出的“域”对话框中,选择您需要的域类型,如“日期和时间”“页码”等,并设置相应的参数,最后点击“确定”即可插入域代码。

三、常见的域代码类型及示例1、日期和时间域比如,要插入当前的日期,可以使用“Date”域代码。

在插入的域代码中,输入“{ DATE \@"yyyy 年 M 月 d 日" }”,其中“yyyy 年 M 月 d 日”是您想要的日期格式,然后按下“F9”键更新域,就会显示当前的日期。

2、页码域如果您想要在文档中插入页码,可以使用“Page”域代码。

输入“{ PAGE }”,更新域后就会显示当前页面的页码。

3、目录域对于较长的文档,我们经常需要生成目录。

使用“TOC”域代码就能实现。

输入“{ TOC }”,然后更新域,Word 会根据文档中的标题样式自动生成目录。

四、编辑域代码1、选中域代码要编辑域代码,首先需要选中它。

您可以通过鼠标拖动来选中整个域代码,包括花括号。

2、直接修改选中域代码后,您可以直接在其中进行修改,比如更改日期格式、页码的起始值等。

WORD域与域代码详解

WORD域与域代码详解

WORD-域和域代码对一样WORD用户来讲,域是一个高级的议题,可是若是您希望自己能够更好地驯服WORD,使它为您效劳,您就需要熟悉并把握它。

在设定文档的页眉和页脚时,加入页码域让WORD替您对页面编号;在页眉中加入文档名称域,使打印的文档显示文件名称,以便以后查找文档;在大型文档中插入目录域,好让WORD替您治理目录的编撰等等。

域的概念域代码是由域特点字符、域类型、域指令和开关组成的字符串;域结果是域代码所代表的信息。

域特点字符是指包围域代码的大括号“{}”,它不是从键盘上直接输入的,按<CTRL+ F9>键可插入这对域特点字符。

域类型确实是WORD域的名称,域指令和开关是设定域类型如何工作的指令或开关。

例如,域代码{ DATE \* MERGEFORMAT }在文档中每一个显现此域代码的地址插入当前日期,其中“DATE”是域类型,“\* MERGEFORMAT”是通用域开关。

域的功能自动编页码、图表的题注、脚注、尾注的号码;按不同格式插入日期和时刻;通过链接与引用在活动文档中插入其他文档的部份或整体;实现无需从头键入即可使文字维持最新状态;自动创建目录、关键词索引、图表目录;插入文档属性信息;实现邮件的自动归并与打印;执行加、减及其他数学运算;创建数学公式;调整文字位置等。

域类型WORD提供了许多域类型,单击“插入"*"域”命令,打开插入域对话窗口,能够看到所有WORD域类型的列表及其分类信息。

单击“帮忙"*"Microsoft Word 帮忙”命令,单击帮忙向导的"查看帮忙主题的完整列表"按钮,打开帮忙主题窗口,在目录选项页双击列表中的“参考信息"*"域类型和开关”,就能够够取得WORD域类型的完整帮忙信息。

通用域开关通用域开关是一些可选择的域开关,用来设定域结果的格式或避免对域结果格式的改变,对大多数域能够应用。

word文档乱码的恢复方式有哪些

word文档乱码的恢复方式有哪些

word文档乱码的恢复方式有哪些word文档打开发现里面是乱码,这时候你觉得应该怎么办?试用以下的几种办法,乱码文件只是有可能被修复但无法保证完全修复。

word文档乱码的恢复方式你知道有哪些吗?一起来看看word文档乱码的恢复方式,欢迎查阅!word打开是乱码的5种恢复方式word打开是乱码恢复方式一:打开并修复单击菜单“文件”——“打开”,选择要恢复的文件,单击“打开”按钮旁边的箭头,然后单击“打开并修复”。

word打开是乱码恢复方式二:提取文字单击菜单“工具”——“选项”——“常规”选项卡,勾选“打开时确认转换”复选框,“确定”。

按ctrl+O,弹出打开对话框,在“文件类型”框中,单击“从任意文件中恢复文本”,和正常一样打开文档。

word打开是乱码恢复方式三:转换文档格式将word打开是乱码的文件转换为另一种格式,然后再将其转换回Word 文档格式。

打开受损文档,另存为,“保存类型”为:RTF 格式(_.rtf)。

当转换成rtf格式后Word打开仍然是乱码,可以将文件再次转换为纯文本格式(_.txt),再转换回.doc格式。

不过,转为txt文件,所有的图片和表格等信息会丢失。

word打开是乱码恢复方式四:删除格式信息法删除格式信息有时也能解决Word乱码问题。

打开乱码文档,单击菜单“工具——选项——编辑”标签,不勾选“使用智能段落选择范围”,然后将这些内容粘贴复制到新的word中。

word打开是乱码恢复方式五:查毒和禁止自动宏的运行查看电脑和文档是否遭病毒入侵。

如果某个Word文档中包含有错误的自动宏代码,当试图打开该文档时,其中的自动宏由于错误不能正常运行,从而引发不能打开文档的错误。

在“Windows资源管理器”中,按Shift键,再双击该Word文档,可阻止自动宏的运行,从而能够打开文档。

Word文档打开出现乱码怎么办1、打开word文档出现乱码,我们点击一下左上角的文件,然后选择另存为。

Word 中的域代码列表(官方)

Word 中的域代码列表(官方)

Word 中的域代码列表Word for Office 365 Word for Office 365 for Mac Word 2019 Word 2019 for Mac 更多...注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。

本页面是自动翻译的,可能包含语法错误或不准确之处。

我们的目的是使此内容能对你有所帮助。

可以在本页面底部告诉我们此信息是否对你有帮助吗?请在此处查看本文的英文版本以便参考。

注意: 有关插入和编辑域代码、使用开关、设置和更改属性、显示结果与域代码、锁定域和其他常见任务的详细信息, 请参阅在Word 中插入、编辑和查看域。

在 Word 中插入、编辑和查看域域代码可用作文档中可能会更改的数据的占位符, 并且你可以使用它们来自动处理文档的某些方面。

当您使用Word 功能(如页码或目录)时, 将插入域代码, 但是您可以为其他任务手动插入域代码, 例如执行计算或填充数据源中的文档内容。

这些步骤适用于在Word 中插入任何域代码。

有关包含每个域的详细信息的所有域代码的列表, 请参阅Word 中的域代码列表。

插入域1.在要插入域的位置单击。

提示: 如果你知道要插入的字段的域代码, 则可以直接在文档中键入它, 但不能键入方括号字符。

按Ctrl + F9, 然后在括号中键入代码。

2. 单击“插入”>“文档部件”>“域”。

3. 在“域名”列表中,选择域名。

提示: 您可以通过单击"类别" 列表中的向下箭头筛选列表。

4. 在"字段属性" 下, 选择所需的任何属性或选项, 然后单击"确定"。

注意:• 若要在" 字段" 框中查看特定字段的代码, 请单击"域代码"。

对于某些字段, 默认情况下会单击此按钮。

• 若要在另一个域中嵌套某个域,请先插入外部(容器)域(上面的步骤1 - 4 )。

挽救word文档的四种办法

挽救word文档的四种办法

Word是我们日常工作中使用最普遍的文档处理工具之一,但是很多朋友在使用时对碰到的文档出错,常常无计可施。

难道只能眼睁睁的看着急需的文档无法打开而放弃吗?当然不能,其实在真正放弃之前,不防先看看我们的拯救行动方案。

一、第一方案:自动恢复如果在编辑文档时,突然遭遇程序停止响应、死机,甚至死电等情况,而文档又未能及时保存时,这时不防按正常操作方法重新启动电脑,然后打开Word 2003,这样Word会自动弹出一个文档恢复操作窗口,在窗口中选择一个较晚的自动保存项目进行恢复。

这样可以将损失降到最低点。

不过要想提高自动恢复的成功率,你还必须提前做好相应的设置工作。

即打开Word“工具”菜单下的“选项”命令,切换到“保存”选项卡,然后选中“允许后台保存”和“自动保存时间间隔”选项,同时在“自动保存时间间隔”后设置一个时间间隔,该时间不宜太长。

保存设置后,就可以代替粗心的朋友及时保存编辑的文档了。

二、第二方案:打开修复对于以前保存的文档,若碰到双击鼠标试图打开时,却弹出了文档出错无法查看的提示,这时不防改变其打开方式。

首先从程序菜单中启动Word 2003,然后单击“工具栏”上的“打开”按钮,在弹出的对话框“查找范围”选择欲打开的文档所在文件夹,然后选中该文档,再单击右下角“打开”按钮一侧的小箭头按钮,在弹出的菜单中选择“打开并修复”命令,这样Word会自动把一些错误修复并恢复文档的正常打开。

三、第三方案:修改启动由于Word文档支持宏命令,因此一些文档的原作者在里面使用宏命令进行加密,或者加载其中的宏命令出错,同样会导致文档无法打开。

这时我们不防通可修改Word启动参数,禁止宏运行的方式来打开文档。

进入Word 2003安装目录,然后找到其中的Winword.exe,将其发送到桌面快捷方式。

打开该快捷方式的属性窗口,然后在“目标”栏后面加上“/m”,保存修改的快捷方式,然后拖动文档放置到该快捷方式图标上,文档中的宏命令即无法运行了。

word域代码详解

word域代码详解

word域‎代码详解关于域的快‎捷键:Ctrl+F9组合键‎——快速插入域‎定义符“{}”(注意:这个花括号‎不能用键盘‎输入)Shift‎+F9组合键‎——显示或者隐‎藏指定的域‎代码Alt+F9组合键‎——显示或者隐‎藏文档中所‎有域代码F9键——更新单个域‎上表中,选中每一个‎实例用鼠标‎右键单击,选“切换域代码‎”(或者直接按‎S hift‎+F9组合键‎),就可以看到‎域代码,再按Shi‎f t+F9组合键‎回到域结果‎。

我们在wo‎r d200‎0中编辑文‎档时,有时会经常‎遇到要求输‎入数学公式‎的情况。

虽然简单的‎加、减、乘、除等运算都‎可在键盘上‎直接输入,但遇到复杂‎的数学公式‎:如积分、开方、求和等符号‎时,就只能利微‎软的off‎i ce套件‎中所带的工‎具"公式编辑器‎"来完成,但是在of‎f ice 套‎件的典型安‎装的过程中‎,并没有选择‎这个工具,那么有没有‎办法可以在‎w ord2‎000中直‎接输入这些‎符号呢?答案是肯定‎的,通过wor‎d2000‎的EQ域的‎功能输入数‎学公式。

一、EQ域的基‎本使用格式‎:{EQ Switc‎h es}其中Swi‎t ches‎用于指定如‎何使用其后‎跟随的括号‎中的元素建‎立公式,还可以用适‎当的开关选‎项来进行修‎改。

EQ域的开‎关特别多,特别复杂,合理的组合‎可以产生各‎种各样的公‎式,下面我们来‎详细介绍各‎种开关的作‎用及使用方‎法及事例。

二、EQ域的开‎关及选项意‎义1.数组开关:\a(),可以在文档‎中绘制一个‎二维数组。

还可以使用‎下面的选项‎来修改\a 开关。

\al 列内左对齐‎。

\ac 列内居中对‎齐。

\ar 列内右对齐‎。

\con元素‎排成n 列(默认值为1)。

\vsn行间‎增加n 磅的垂直间‎距。

\hsn列间‎增加n 磅的水平间‎距。

2.括号开关:\b(),用括号括住‎单个元素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.Word转html存在域代码丢失。

Aspose ,jacob,poi都无法解决在使用jocob转换成html时域代码会被<!--[if supportFields]><!—[end if]-->包裹可以统一提取出来转换成latex ,latex转换成图片,解决word域代码丢失问题private void processFormula(List<Node> nodes) throws UnsupportedEncodingException{for(int i = nodes.size()-1;i>=0;i--){Node node =nodes.get(i);if(node instanceof Element){Element e = (Element)node;processFormula(e.childNodes());}else if(node instanceof Comment){String commentText = node.toString();if(commentText.contains("<!--[if supportFields]>")){Comment comment = (Comment)node;String latex = EqFormulaLatexUtil.getLatex(comment);if(StringUtils.isNotBlank(latex)){String latexTemp = newString(Base64.encodeBase64(latex.getBytes()));latex = URLEncoder.encode(latex, "utf-8");latex = latex.replace("+", "%20");String url = LATEXURL+latex;node.after("<img encode='encode'data-latex='"+latexTemp+"' src='"+url+"'/>");}}}}}/****/package .tlsys.rawpaper2x.utils;import java.io.File;import java.io.IOException;import .URLEncoder;import java.util.ArrayList;. import java.util.List;import org.jsoup.Jsoup;import ment;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;import org.springframework.util.CollectionUtils;import mon.util.StringUtils;/*** @author feiwang8** 2016年8月24日下午3:45:05*/public class EqFormulaLatexUtil {/*** 左括号替代符号*/public static final String LEFTBRACKETRE = "く";/*** 右括号替代符号*/public static final String RIGHTBRACKETRE = "ぐ";/*** 左括号*/public static final String LEFTBRACKET = "(";/*** 右括号*/public static final String RIGHTBRACKET = ")";/*** 双正则*/public static final String REGEXPART_F="^((\\([\\s\\S]*\\)|[^\\(\\)])+),((\\([\\s\\S]*\\)|[^\\(\\)])+)$";/*** 单正则*/public static final String REGEXPART="((\\([\\s\\S]*\\)|[^\\(\\)])+)";/*** 逗号替代符号*/public static final String COMMARE = "ぃ";/*** 逗号*/public static final String COMMA = ",";/*** 更加comment 获取latex* @param comment html Comment* @return latex*/public static String getLatex(Comment comment){ return getLatex(comment.toString());}/*** 根据comment 获取latex* @param comment html Comment* @return latex*/public static String getLatex(String comment){ String html = comment.replace("<!--[if supportFields]>", "").replace("<![endif]-->", "").replace((char) 10 + "", "").replace((char) 13 + "", "");Document doc = Jsoup.parse(html);Elements sups = doc.select("sup");Elements subs = doc.select("sub");//纠正上标for(Element sup:sups){String text = sup.text();sup.tagName("span");sup.text("\\s("+text+", )");}//纠正下标for(Element sub:subs){String text = sub.text();sub.tagName("span");sub.text("\\s( ,"+text+")");}String eqtext = doc.body().text();eqtext = mergeSubSup(eqtext);// 无法被StringUtil 判断为空白的空白eqtext = eqtext.replace((char) 8203 + "", "");eqtext = eqtext.replace((char) 160 + "", " ").replace("\\ ", "");eqtext = eqtext.trim();// System.out.println(eqtext+"-------------->");if(eqtext.startsWith("eq")){eqtext = eqtext.replaceFirst("eq", "").trim();eqtext = eqtext.replace("\\"+LEFTBRACKET, "\\"+LEFTBRACKETRE).replace("\\"+RIGHTBRACKET,"\\"+RIGHTBRACKETRE).replace("\\"+COMMA, "\\"+COMMARE);String latex = parserElements(eqtext);return latex.replace("\\"+LEFTBRACKETRE, "\\"+LEFTBRACKET).replace("\\"+RIGHTBRACKETRE,"\\"+RIGHTBRACKET).replace("\\"+COMMARE, "\\"+COMMA);}return "";}private static String mergeSubSup(String latex){//这里需要合并上下标例如:eq \i\su(\s(i, )\s(=, )\s(1, ),\s( ,3),x)//--->eq \i\su(\s(i=1, ),\s( ,3),x)//TODOreturn latex;}/**** @param eqtext* @return*/private static String parserElements(String eqtext){String latex = "";if(eqtext.contains("\\")&&eqtext.contains(LEFTBRACKET)&&eqtext.contains(RIGHTBR ACKET)){String preText = eqtext.substring(0,eqtext.indexOf("\\"));int startIndex = eqtext.indexOf("\\");int endIndex= getNextLeftBra(startIndex,'(',eqtext);int nextBra = getNextBraIndex(endIndex+1,eqtext);String name = eqtext.substring(startIndex,endIndex);String text = eqtext.substring(endIndex+1,nextBra);String suffText= eqtext.substring(nextBra+1,eqtext.length());latex = parserElements(preText) + parserToLatex(name.trim(),text)+parserElements(suffText);}else{latex = eqtext;}return latex;}private static int getNextLeftBra(int start,char sym,String eqtext){ for(int i =start;i<eqtext.length();i++ ){char leftbra = eqtext.charAt(i);if(leftbra == sym){return i;}}return eqtext.length();}/*** 获取配对括号的位置* @param text 文本* @return 位置*/private static int getNextBraIndex(int start,String text){int leftbra = 0;int rightbra = 0;for(int i = start-1 ; i<text.length();i++){char c = text.charAt(i);if(c == ')'){leftbra ++;}if(c =='('){rightbra++;}if(rightbra!=0&&leftbra==rightbra&&i>=start){return i;}}return 0;}private static String parserToLatex(String name,String text){ String latex = "";name = name.toLowerCase();//分式if(name.equals("\\f")){latex +=getFLatex(name, text);//根式}else if(name.equals("\\r")){latex +=getRLatex(name, text);//上下标}else if(name.startsWith("\\s")){latex+=getSLatex(name, text);//\a矩阵\al左对齐;\ac居中;\ar右对齐;\con元素排成n 列;\vsn行间增加n 磅;\hsn列间增加n磅}else if(name.startsWith("\\a")){latex += getALatex(name, text);}else if(name.startsWith("\\b")){latex+=getBLatex(name, text);//平移}else if(name.startsWith("\\d")){latex+=getDLatex(name, text);//积分}else if(name.startsWith("\\i")){latex+=getILatex(name, text);//列表}else if(name.startsWith("\\l")){latex+=getLLatex(name, text);//重叠}else if(name.startsWith("\\o")){latex+=getOLatex(name, text);//框}else if(name.startsWith("\\x")){latex+=getXLatex(name, text);//空白}else if(StringUtils.isBlank(name)){latex+=parserElements(text);}else{System.err.println("error parserToLatex");}return latex;}/*** 根式多次根式* @param name name* @param text text* @return latex*/private static String getRLatex(String name,String text){String latex = "";List<String> args = getArgs(text);if(args.size()==2){latex +=" \\sqrt[";latex +=parserElements(args.get(0));latex +="]{";latex +=parserElements(args.get(1));latex +="}";}else if(args.size()==1){latex +=" \\sqrt{";latex +=parserElements(args.get(0));latex +="}";}else{System.err.println("error getRLatex");}return latex;}/*** 分式* @param name name* @param text text* @return latex*/private static String getFLatex(String name,String text){String latex = "";List<String> args = getArgs(text);if(args.size()==2){latex +=" \\frac{";latex +=parserElements(args.get(0));latex +="}{";latex +=parserElements(args.get(1));latex +="}";}else{System.err.println("error getFLatex");}return latex;}/*** //\a矩阵\al左对齐;\ac居中;\ar右对齐;\con元素排成n 列;\vsn行间增加n 磅;\hsn列间增加n磅* @param name name* @param text text* @return latex*/private static String getALatex(String name,String text){String latex = "";List<String> args =getArgs(text);String n = name.replaceAll("^[\\S\\s]*\\\\co([0-9]*)[\\S\\s]*$", "$1");//列数int col = 1;if(n.matches("[0-9]*")) col = Integer.valueOf(n);for(int i = 0 ;i<args.size();i++){if(i!=0&&i%col==0){latex += " \\\\ ";}latex += parserElements(args.get(i));}return latex;}/*** 左括号使用字符\lc\;右括号使用字符\rc\;左右括号都使用字符\bc\* @param name name* @param text text* @return latex*/private static String getBLatex(String name,String text){String latex = "";String lc="";String rc="";String bc="";List<String> args =getArgs(text);name = name.replace(LEFTBRACKETRE,LEFTBRACKET).replace(RIGHTBRACKETRE, RIGHTBRACKET);if(name.contains("\\lc\\")||name.contains("\\rc\\")){lc = name.replaceAll("^[\\s\\S]*\\\\lc\\\\([\\s\\S])[\\s\\S]*$", "$1");rc = name.replaceAll("^[\\s\\S]*\\\\rc\\\\([\\s\\S])[\\s\\S]*$", "$1");lc = StringUtils.isBlank(lc)||lc.equals(name)?".":lc;rc = StringUtils.isBlank(rc)||rc.equals(name)?".":rc;//方程组处理if(lc.equals("{")&&rc.equals(".")){latex+="\\begin{cases}";for(int i = 0 ;i<args.size();i++){if(i!=0)latex += " \\\\ ";latex += parserElements(args.get(i));}latex+="\\end{cases}";//矩阵处理}else{lc = lc.replace("{", "\\{");rc = rc.replace("}", "\\}");latex+="\\left"+lc+"\\begin{matrix}";for(int i = 0 ;i<args.size();i++){if(i!=0)latex += " \\\\ ";latex += parserElements(args.get(i));}latex+="\\end{matrix}\\right"+rc;}}else if(name.contains("\\bc\\")){bc = name.replaceAll("^[\\s\\S]*\\\\bc\\\\([\\s\\S])[\\s\\S]*$", "$1");latex+="\\left"+bc+"\\begin{matrix}";for(int i = 0 ;i<args.size();i++){if(i!=0)latex += " \\\\ ";latex += parserElements(args.get(i));}latex+="\\end{matrix}\\right"+bc;}else{System.err.println("error getBLatex");}return latex;}/*** 平移\fon右边n磅;\ban左边n磅;\li为下一个字符前的空白添加下划线* @param name name* @param text text* @return latex*/private static String getDLatex(String name,String text){//TODOreturn parserElements(text);}/*** 积分* {EQ \i (a,b,3x+1 dx)}* \su 生成求和公式\pr 生成求积公式\in 积分限不在符号的上下,而在符号之右* \fc\c将符号c设置为固定高度的字符\vc\c 符号高度与第三个元素高度一致* @param name name* @param text text* @return latex*/private static String getILatex(String name,String text){String latex = "";String sym = "";List<String> args = getArgs(text);if(args.size()==3){//默认上下标在符号上下//∑if(name.contains("\\su")){sym = "\\sum";//上下标在右侧if(name.contains("\\in"))sym+="\\nolimits";//Π}else if(name.contains("\\pr")){sym = "\\prod";if(name.contains("\\in"))sym+="\\nolimits";//\int}else if(name.contains("\\fc\\")){sym = name.replace("^[\\s\\S]*\\fc\\([^\\ \\(]*)[\\s\\S]*$", "$1");}else{sym = "\\int";}latex+=sym+"_{"+parserElements(args.get(0))+"}^{"+parserElements(args.get(1))+"} "+parserElements(args.get(2));}else{System.err.println("error getILatex");}return latex;}/*** \l(): 使用任意个数的元素组成列表。

相关文档
最新文档