2011-09-28 02:13:27 +0000 2011-09-28 02:13:27 +0000
75
75
Advertisement

在Microsoft Word中键入数学公式的LaTeX方式?

Advertisement

我想知道是否有一些在Microsoft Word文档(Office 2007)中键入数学公式的LaTeX方式的免费解决方案?

Advertisement
Advertisement

答案 (10)

77
77
77
2012-11-23 21:20:12 +0000

如果您运行的是Office 365 1707或更高版本的Office 365,那么等式编辑器可以将LaTeX转换为原生格式。参见本答案的第一部分。

在旧版本的Office中,等式编辑器可以理解某些LaTeX组件。但是,它是边走边建立方程,你无法转换整个LaTeX方程。如果你运行的是:

  • WinWord 2007、2010、2013和2016
  • MacWord 2011和2016

在Office 365版本1707或更高版本上

  1. 将方程编辑器置入LaTeX模式。在等式编辑器设计功能区中,转到转换组,然后单击LaTeX。键入LaTeX。

  2. 打开Convert下拉菜单,点击Current - Professional.

  3. 您也可以转换回 LaTeX 来编辑方程。打开转换下拉菜单,然后点击当前-线性。该方程被转换为LaTeX格式。注意:这不是您的原始LaTeX源,因为它已经通过方程编辑器的内部格式进行了四舍五入。打开Convert下拉菜单,然后点击Current - Professional

你必须使用下拉菜单,因为Convert按钮不会在Linear和Professional之间自动切换。它保留了上次使用的命令。

有一些限制。例如,Office 365等式编辑器不理解beginend命令。参见微软文档中的例子和可能的解决方法:


在 Office 2007-2016 (Mac Office 2011-2016)

很少有人意识到,Word 2007 中的内置方程编辑器实际上可以理解 LaTeX 风格的方程输入。只需插入一个新的方程,然后在其中输入LaTeX样式的方程。当你键入时,Word将建立一个等式的图形化表示。

一旦它出现在GUI中,你就不能再以LaTeX形式编辑它了。Word没有内嵌的TeX处理器—它只是在做模式匹配,将简单的LaTeX语法转换为原生等式格式。因此,你不应该期望对超复杂的LaTeX公式有完美的保真度。然而,这对除了数学家以外的人来说已经足够了,而且比用鼠标点击元素要快得多。例如,键入(a+b)/(c+d),就可以得到一个格式很好的分数。

&004

注:

  1. 许多科学期刊将不接受使用新的等式格式的Word文档 – 即使你保存为.doc而不是.docx。这并不会把Word变成LaTeX。它只是完成了方程本身,而不是其他。你甚至不能得到方程的编号。
28
28
28
2014-08-23 18:55:51 +0000

在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图片,然后手动选择选项。

8
Advertisement
8
8
2015-11-27 14:26:46 +0000
Advertisement

我根据答案创建了LatexToWordEquation

这是一个Word AddIn。链接在这里

如果你愿意,可以直接从这里下载安装程序。

5
5
5
2012-07-14 23:10:58 +0000

相比于Latex in Word TeXsword下载),我更喜欢TeXsword。它具有Latex in Word的所有功能,还能处理方程引用。而且它不需要互联网连接,我认为这是一个功能而不是限制。MikeTeX毕竟不是那么大,而且在本地有LaTeX可以让你在旅行时打出你的文档。

4
Advertisement
4
4
2015-06-23 14:18:50 +0000
Advertisement

@Devid的回答很好,但我在具体的说明上有困难。下面是对我有效的方法。按照Devid的步骤复制MathML代码。

然后,插入一个空白方程。在Word 2013中,切换到 “打印布局 "视图(色带上的 "视图 "选项卡)。在 "插入 "选项卡上,选择方程。在 "主页 "选项卡上,选择 "粘贴 "下拉菜单,然后选择 "特殊粘贴"(或直接按CTRLALTV)。选中Type equation here,公式应该就能正确填写,就像Devid的上一张图片一样。

还有一件事–在图片中,"lim "命令是斜体字,而在原图中没有。要解决这个问题,把光标放在 "m "后面,然后按空格键,让Word对照功能表检查 "lim "并调整格式。(然后删除创建的多余空格)。

4
4
4
2011-09-28 07:10:03 +0000

你可以使用Latex in Word.

它为Microsoft Word提供了宏,允许使用LaTeX输入法来创建等式图像,而不需要在本地计算机上安装任何软件。据我所知,这是唯一一个可以替代付费程序的免费工具,如AuroraTexPoint。该程序的客户端是以VBA宏的形式实现的,在文档 “LaTeXinWord/v/0/3/1.docm "中包含了指令。因此,这个文件包含了源代码、实现和文档。

1
Advertisement
1
1
2016-08-28 08:07:47 +0000
Advertisement

我写了一个生成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)。

1
1
1
2017-01-17 16:47:53 +0000

Word中的LaTeX的默认服务器似乎不再运行了。如果你不得不使用Word(比如说,为了与技术性不强的人合作),我会按照Adam的建议使用TeXsword。你需要安装一个独立的MikTex发行版,但现在很容易安装。它可以和我的Word 2016一起使用。它看起来还是不如真正的真正的LaTeX文档好,但它比Word中的等式编辑器更容易使用,也更有延展性。

0
Advertisement
0
0
2019-12-17 16:29:29 +0000
Advertisement

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

这是一个可行性研究,不用于生产。宏很容易被文本中的游离的$符号所迷惑。这也是将宏的操作划定为当前选择的主要原因。

此外,它不能处理像equationalign这样的显示方程环境。

0
0
0
2014-09-23 16:43:58 +0000

上面提到的答案是正确的,但也有一个内置的快捷方式,就是数学自动更正。它很像LaTeX。默认情况下它是不活动的,但你可以激活它,如果你想写大的方程,它真的很有用。例如,如果你想输入H2,你只需输入H_2等,还有更多的选项可以使用,比如对于上标字符,在上标字符后面的小括号(^)符号将被转换为上标。许多这样的快捷方式在这段视频中都有介绍,或者你可以直接搜索**如何在Ms-Office中插入数学公式(如LaTeX)。

如果你是一个快速打字的人,这个方法将特别有帮助。此外,它将节省你的时间,而在键盘和鼠标之间切换和在word中搜索适当的选项时,你会失去的时间。

Advertisement

相关问题

13
6
9
11
3
Advertisement