如果您运行的是Office 365 1707或更高版本的Office 365,那么等式编辑器可以将LaTeX转换为原生格式。参见本答案的第一部分。
在旧版本的Office中,等式编辑器可以理解某些LaTeX组件。但是,它是边走边建立方程,你无法转换整个LaTeX方程。如果你运行的是:
将方程编辑器置入LaTeX模式。在等式编辑器设计功能区中,转到转换组,然后单击LaTeX。键入LaTeX。
打开Convert下拉菜单,点击Current - Professional.
您也可以转换回 LaTeX 来编辑方程。打开转换下拉菜单,然后点击当前-线性。该方程被转换为LaTeX格式。注意:这不是您的原始LaTeX源,因为它已经通过方程编辑器的内部格式进行了四舍五入。打开Convert下拉菜单,然后点击Current - Professional。
你必须使用下拉菜单,因为Convert按钮不会在Linear和Professional之间自动切换。它保留了上次使用的命令。
有一些限制。例如,Office 365等式编辑器不理解begin和end命令。参见微软文档中的例子和可能的解决方法:
很少有人意识到,Word 2007 中的内置方程编辑器实际上可以理解 LaTeX 风格的方程输入。只需插入一个新的方程,然后在其中输入LaTeX样式的方程。当你键入时,Word将建立一个等式的图形化表示。
一旦它出现在GUI中,你就不能再以LaTeX形式编辑它了。Word没有内嵌的TeX处理器—它只是在做模式匹配,将简单的LaTeX语法转换为原生等式格式。因此,你不应该期望对超复杂的LaTeX公式有完美的保真度。然而,这对除了数学家以外的人来说已经足够了,而且比用鼠标点击元素要快得多。例如,键入(a+b)/(c+d)
,就可以得到一个格式很好的分数。
&004
注:
在LaTeX中写出你的数学公式 → 将LaTeX公式转换为MathML代码 → 在Word中复制/粘贴MathML代码(粘贴后点击CTRL,然后点击T)。Voila!
以这个公式为例:
这是上面公式中的LaTeX源代码:
0 \leq \lim_{n\to \infty}\frac{n!}{(2n)!} \leq \lim_{n\to \infty} \frac{n!}{(n!)^2} = \lim_{k \to \infty, k = n!}\frac{k}{k^2} = \lim_{k \to \infty}\frac{1}{k} = 0.
现在打开一个编辑器,把上面的源代码放在符号之间$$$$**,像这样:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<title>tex texample</title>
</head>
<body>
$$ 0 \leq \lim_{n\to \infty}\frac{n!}{(2n)!} \leq \lim_{n\to \infty} \frac{n!}{(n!)^2} = \lim_{k \to \infty, k = n!}\frac{k}{k^2} = \lim_{k \to \infty}\frac{1}{k} = 0.$$
</body>
</html>
保存文件为.html文件,用浏览器打开。 html文件,然后用Chrome等浏览器打开它。
右键点击公式,选择显示 MathML 为 → MathML 代码。
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mn>0</mn>
<mo>≤<!-- ≤ --></mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mrow>
</munder>
<mfrac>
<mrow>
<mi>n</mi>
<mo>!</mo>
</mrow>
<mrow>
<mo stretchy="false">(</mo>
<mn>2</mn>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>!</mo>
</mrow>
</mfrac>
<mo>≤<!-- ≤ --></mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mrow>
</munder>
<mfrac>
<mrow>
<mi>n</mi>
<mo>!</mo>
</mrow>
<mrow>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo>!</mo>
<msup>
<mo stretchy="false">)</mo>
<mn>2</mn>
</msup>
</mrow>
</mfrac>
<mo>=</mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
<mo>,</mo>
<mi>k</mi>
<mo>=</mo>
<mi>n</mi>
<mo>!</mo>
</mrow>
</munder>
<mfrac>
<mi>k</mi>
<msup>
<mi>k</mi>
<mn>2</mn>
</msup>
</mfrac>
<mo>=</mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mrow>
</munder>
<mfrac>
<mn>1</mn>
<mi>k</mi>
</mfrac>
<mo>=</mo>
<mn>0.</mn>
</math>
现在在Word 2013(或2007)中复制/粘贴MathML代码,然后依次点击CTRL,然后点击T(粘贴选项:只保留文本),或者到你粘贴的MathML代码末尾的小Ctrl图片,然后手动选择选项。
我根据答案创建了LatexToWordEquation。
这是一个Word AddIn。链接在这里
如果你愿意,可以直接从这里下载安装程序。
相比于Latex in Word TeXsword下载),我更喜欢TeXsword。它具有Latex in Word的所有功能,还能处理方程引用。而且它不需要互联网连接,我认为这是一个功能而不是限制。MikeTeX毕竟不是那么大,而且在本地有LaTeX可以让你在旅行时打出你的文档。
@Devid的回答很好,但我在具体的说明上有困难。下面是对我有效的方法。按照Devid的步骤复制MathML代码。
然后,插入一个空白方程。在Word 2013中,切换到 “打印布局 "视图(色带上的 "视图 "选项卡)。在 "插入 "选项卡上,选择方程。在 "主页 "选项卡上,选择 "粘贴 "下拉菜单,然后选择 "特殊粘贴"(或直接按CTRLALTV)。选中Type equation here
,公式应该就能正确填写,就像Devid的上一张图片一样。
还有一件事–在图片中,"lim "命令是斜体字,而在原图中没有。要解决这个问题,把光标放在 "m "后面,然后按空格键,让Word对照功能表检查 "lim "并调整格式。(然后删除创建的多余空格)。
你可以使用Latex in Word.
它为Microsoft Word提供了宏,允许使用LaTeX输入法来创建等式图像,而不需要在本地计算机上安装任何软件。据我所知,这是唯一一个可以替代付费程序的免费工具,如Aurora和TexPoint。该程序的客户端是以VBA宏的形式实现的,在文档 “LaTeXinWord/v/0/3/1.docm "中包含了指令。因此,这个文件包含了源代码、实现和文档。
我写了一个生成MathML的工具,我对Devid的代码进行了改进,并添加了一些函数,方便编辑。下面是代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<title>tex texample</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\(','\)']]}});
</script>
<script>
function SelectText(element) {
var doc = document
, text = doc.getElementById(element)
, range, selection
;
if (doc.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
}
}
$(document).ready(function(){
$("#latexContent").val("$$ $$");
$('#latexContent').bind('input propertychange', function() {
$("#myoutput").text($("#latexContent").val());
// MathJax.Hub.Queue(["TypeseTextt",MathJax.Hub,"myoutput"]);
MathJax.Hub.Typeset("myoutput")
});
$("#btnShowMathML").click(function(){
var con = $(".MJX_Assistive_MathML").html();
$("#myMathml").text(con);
SelectText("myMathml");
});
$("#btnClear").click(function(){
$("#latexContent").val("$$ $$");
$("#myoutput").html("<p style='color: grey; font-style: italic;'> The LaTeX will display here ! </p>");
$("#myMathml").text("");
});
});
</script>
</head>
<body>
<center>
<p> Enter LaTeX here! </p>
<textarea id="latexContent" rows="5" cols="100"> </textarea>
<button id="btnClear" type="button">clear</button>
<button id="btnShowMathML" type="button">Show The MathML</button> </br></br>
<span id="myoutput">
<p style="color: grey; font-style: italic;"> The LaTeX will display here ! </p>
</span> </br>
<span id="myMathml"> </span>
</center>
</body>
</html>
&001
在复制MathML到Word时,一定要复制纯文本,使用Ctrl+Alt+V键(或先复制到记事本中再复制到word)。
Microsoft Office ProPlus 1902版激活的LaTeX格式。
以下宏将当前选择的Word文档中所有以$
对分隔的LaTeX公式修改为Word公式:
Sub LaTeX()
If Selection.Start < Selection.End Then
Set myRange = ActiveDocument.Range(Selection.Start, Selection.End)
Do While myRange.Find.Execute(FindText:="$*$", Forward:=True, MatchWildcards:=True) = True
ActiveDocument.OMaths.Add Range:=myRange
ActiveDocument.OMaths.BuildUp
Set myRange = ActiveDocument.Range(myRange.Start, Selection.End)
Loop
End If
End Sub
这是一个可行性研究,不用于生产。宏很容易被文本中的游离的$
符号所迷惑。这也是将宏的操作划定为当前选择的主要原因。
此外,它不能处理像equation
或align
这样的显示方程环境。
上面提到的答案是正确的,但也有一个内置的快捷方式,就是数学自动更正。它很像LaTeX。默认情况下它是不活动的,但你可以激活它,如果你想写大的方程,它真的很有用。例如,如果你想输入H2,你只需输入H_2等,还有更多的选项可以使用,比如对于上标字符,在上标字符后面的小括号(^)符号将被转换为上标。许多这样的快捷方式在这段视频中都有介绍,或者你可以直接搜索**如何在Ms-Office中插入数学公式(如LaTeX)。
如果你是一个快速打字的人,这个方法将特别有帮助。此外,它将节省你的时间,而在键盘和鼠标之间切换和在word中搜索适当的选项时,你会失去的时间。