พิมพ์สูตรคณิตศาสตร์ใน Microsoft Word ทางน้ำยาง?


66

ฉันสงสัยว่ามีวิธีแก้ไขปัญหาฟรีสำหรับการพิมพ์สูตรคณิตศาสตร์แบบ LaTeX ในเอกสาร Microsoft Word (Office 2007) หรือไม่


ผู้เขียนสูตรภายในใช้งานไม่ได้สำหรับคุณหรือไม่? มันค่อนข้างมีประโยชน์ทุกครั้งที่ฉันไปอินทิเกรตและ / หรือการสรุป
kobaltz

2
มันช้ามากเมื่อเทียบกับลาเท็กซ์
ทิม

7
การเขียนทุกอย่างใน LaTeX นั้นง่ายหรือไม่
NN


@NN ฉันไม่สามารถตอบทิม แต่น่าเสียดายที่ฉันต้องเขียนบทความใน Word ไม่ได้ใช้ซอฟแวร์ในช่วง 9 ปี ...
ฮันส์ Janssen

คำตอบ:


70

หากคุณใช้งาน Office 365 เวอร์ชัน 1707 หรือใหม่กว่า Equation Editor จะช่วยให้คุณแปลง LaTex ให้อยู่ในรูปแบบเนทิฟ ดูส่วนแรกของคำตอบนี้

ใน Office เวอร์ชันเก่าตัวแก้ไขสมการสามารถเข้าใจส่วนประกอบของ LaTeX ได้ อย่างไรก็ตามมันสร้างสมการในขณะที่คุณไปและคุณไม่สามารถแปลงสมการ LaTeX ทั้งหมดได้ ดูส่วนที่สองของคำตอบนี้หากคุณกำลังทำงาน:

  • WinWord 2007, 2010, 2013 และ 2016
  • MacWord 2011 และ 2016

ใน Office 365 เวอร์ชัน 1707 หรือใหม่กว่า

  1. นำ Equation Editor เข้าสู่โหมด LaTeX ในการแก้ไขสมการออกแบบริบบิ้นไปที่การแปลงกลุ่มและคลิกน้ำยาง

    กลุ่มการแปลงในสมการ Editor-Design Ribbon

  2. พิมพ์ LaTeX

    หลังจากเข้าสู่สมการ LaTeX

  3. เปิดแปลงเมนูแบบเลื่อนลงและคลิกปัจจุบัน - มืออาชีพ

    แปลงเมนูปัจจุบัน - ระดับมืออาชีพ

  4. LaTeX จะถูกประมวลผลในรูปแบบดั้งเดิมของ Equation Editor

    สมการที่ส่งผล

คุณสามารถแปลงกลับเป็น LaTeX เพื่อแก้ไขสมการ

  1. เปิดแปลงเมนูแบบเลื่อนลงแล้วคลิกปัจจุบัน - เชิงเส้น
  2. สมการจะถูกแปลงกลับเป็นรูปแบบ LaTeX หมายเหตุ: นี่ไม่ใช่แหล่ง LaTeX ดั้งเดิมของคุณเนื่องจากมีการปัดเศษผ่านรูปแบบภายในของ Equation Editor
  3. เปิดแปลงเมนูแบบเลื่อนลงแล้วคลิกปัจจุบัน - มืออาชีพ

คุณต้องใช้เมนูแบบเลื่อนลงเนื่องจากปุ่มแปลงไม่สลับโดยอัตโนมัติระหว่างเชิงเส้นและแบบมืออาชีพ มันเก็บคำสั่งที่ใช้ล่าสุด

มีข้อ จำกัด บางประการ ตัวอย่างเช่นตัวแก้ไขสมการ Office 365 ไม่เข้าใจคำสั่ง\ startและ\ end ดูเอกสารประกอบของ Microsoft สำหรับตัวอย่างและวิธีแก้ไขปัญหาที่เป็นไปได้:


ใน Office 2007-2016 (Mac Office 2011-2016)

มีคนเพียงไม่กี่คนที่รู้ว่าตัวแก้ไขสมการในตัวใน Word 2007 เข้าใจถึงรายการสมการของ LaTeX อย่างแท้จริง เพียงใส่สมการใหม่แล้วพิมพ์ LaTeX ลงไป ในขณะที่คุณพิมพ์ Word จะสร้างการแทนแบบกราฟิกของสมการ

รายการสมการ LaTeX สไตล์ใน Word 2007 ขึ้นไป

เมื่อปรากฏใน GUI คุณจะไม่สามารถแก้ไขเป็น LaTeX ได้อีก Word ไม่มีตัวประมวลผล TeX แบบฝังตัว - มันเป็นเพียงการจับคู่รูปแบบเพื่อแปลงไวยากรณ์ LaTeX อย่างง่ายเป็นรูปแบบสมการดั้งเดิม คุณจึงไม่ควรคาดหวังว่าจะได้รับความสมบูรณ์แบบสำหรับสมการ LaTeX ที่มีความซับซ้อนสูง แต่ก็อาจจะเพียงพอสำหรับทุกคน แต่นักคณิตศาสตร์และมันเป็นจำนวนมากได้เร็วกว่าการคลิกองค์ประกอบด้วยเมาส์

เครื่องมือแก้ไขสมการ Word 2007 ยังมีรูปแบบรายการสมการเชิงเส้นซึ่งค่อนข้างใช้งานง่ายและไม่ต้องใช้ความคุ้นเคยกับ LaTeX ตัวอย่างเช่นการพิมพ์(a+b)/(c+d)จะส่งผลให้เกิดเศษส่วนในรูปแบบที่สวยงาม

รายการสมการเชิงเส้นใน Word 2007 ขึ้นไป

หมายเหตุ:

  1. วารสารวิทยาศาสตร์จำนวนมากจะไม่ยอมรับเอกสาร Word ที่มีรูปแบบสมการใหม่ - แม้ว่าคุณจะบันทึกเป็น. doc แทนที่จะเป็น. docx

  2. สิ่งนี้ไม่เปลี่ยน Word เป็น LaTeX มันแค่ทำสมการเองและไม่มีอะไรอื่นอีกแล้ว คุณไม่ได้เลขสมการ


4
ประเด็นสำคัญคือสไตล์ของ LaTeX เนื่องจาก ms ปกติมีวิธีที่ดีที่สุดในการทำสิ่งต่างๆ +1 สำหรับโพสต์มันทำให้ง่ายขึ้นหากคุณติดอยู่กับคำ
BAR

1
สิ่งนี้ใช้ไม่ได้สำหรับฉันในเครื่องมือแก้ไขสมการใน Word 2011
jvriesem

2
สวัสดีฉันไม่แน่ใจว่าฉันทำถูกต้อง ฉันพยายามใช้สไตล์ลาเท็กซ์เป็นเศษส่วน: \ frac {} {} แต่มันไม่ได้ผลในสมการ
jxhyc

ยังไม่สามารถใช้ ...
ท้องฟ้า

1
รุ่น Office 365 ใช้งานได้ในคำที่ไม่ทำงานใน ppt
yuxuan

23

เขียนสูตรคณิตศาสตร์ของคุณใน LaTeX →แปลงสูตร LaTeX ในรหัส MathML →คัดลอก / วางรหัส MathML ใน Word (หลังจากวางคลิกCTRLแล้วT) Voila!


ตัวอย่าง:

ลองยกตัวอย่างสูตรนี้: สูตรที่เขียนใน LaTeX

นี่คือซอร์สโค้ดของ 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 และเปิดด้วยเบราว์เซอร์เช่น Chrome

คลิกขวาที่สูตรแล้วเลือกแสดง MathML As →รหัส MathML

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mn>0</mn>
  <mo>&#x2264;<!-- ≤ --></mo>
  <munder>
    <mo form="prefix" movablelimits="true">lim</mo>
    <mrow class="MJX-TeXAtom-ORD">
      <mi>n</mi>
      <mo stretchy="false">&#x2192;<!-- → --></mo>
      <mi mathvariant="normal">&#x221E;<!-- ∞ --></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>&#x2264;<!-- ≤ --></mo>
  <munder>
    <mo form="prefix" movablelimits="true">lim</mo>
    <mrow class="MJX-TeXAtom-ORD">
      <mi>n</mi>
      <mo stretchy="false">&#x2192;<!-- → --></mo>
      <mi mathvariant="normal">&#x221E;<!-- ∞ --></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">&#x2192;<!-- → --></mo>
      <mi mathvariant="normal">&#x221E;<!-- ∞ --></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">&#x2192;<!-- → --></mo>
      <mi mathvariant="normal">&#x221E;<!-- ∞ --></mi>
    </mrow>
  </munder>
  <mfrac>
    <mn>1</mn>
    <mi>k</mi>
  </mfrac>
  <mo>=</mo>
  <mn>0.</mn>
</math>

ตอนนี้คัดลอก / วางรหัส MathML ใน Word 2013 (หรือ 2007) และคลิกตามลำดับCTRLจากนั้นT( วางตัวเลือก: เก็บข้อความเท่านั้น ) หรือไปที่ภาพ Ctrl ขนาดเล็กที่ส่วนท้ายของรหัส MathML ที่คุณวางและเลือกตัวเลือกด้วยตนเอง

นี่คือลักษณะของสูตรที่สิ้นสุดใน Word 2013:


ดูเหมือนว่าความสูงของวงเล็บจะเหมือนกันหลังจากการแปลง (ลองพิจารณาบางอย่างd \left((a+b)+\frac{1}{c}\right)) นี่เป็นข้อ จำกัด ของ MathML หรือไม่?
xzczd

1
นี่ควรเป็นคำตอบที่ดีที่สุด
กลุ่ม

7

ฉันได้สร้างLatexToWordEquationตามคำตอบแล้ว

มันเป็นคำ AddIn

ซอร์สโค้ดที่ฉันส่งไปยัง Github ลิงก์ที่นี่

ถ้าคุณต้องการคุณสามารถดาวน์โหลดติดตั้งโดยตรงจากที่นี่
หมายเหตุ: นี่เป็นลิงค์ดาวน์โหลดที่ใช้งานอยู่ซึ่งจะทำการดาวน์โหลดไฟล์ทันทีเมื่อคุณคลิกที่มัน

ทำอย่างไร


3
ยินดีต้อนรับสู่ Super User ผู้คนตระหนักถึงความปลอดภัยและกังวลเมื่อคลิกลิงค์ทันทีดาวน์โหลดไฟล์ที่ไม่รู้จัก เป็นความคิดที่ดีที่จะรวมประกาศในลิงก์ดาวน์โหลดสด BTW ผู้อ่านมีแนวโน้มที่จะลังเลที่จะดาวน์โหลดไฟล์ที่ไม่รู้จักโดยเฉพาะจากผู้ใช้ใหม่ ดังนั้นอย่าใช้มันเป็นการส่วนตัวหากลิงก์ไม่ได้รับการดำเนินการมากนัก ขอบคุณที่พยายามช่วยตอบคำถามนี้
fixer1234

1
ฉันทดสอบใน Word 2016 น่าเสียดายที่การกดปุ่มไม่ได้ทำอะไรเลย ฉันต้องติดตั้งอะไรเพื่อให้วิธีนี้ใช้งานได้หรือไม่
RAnders00

5

ฉันชอบ TeXsword มากกว่า Latex ใน Word ( ดาวน์โหลด TeXsword ) มันมีคุณสมบัติทั้งหมดของลาเท็กซ์ใน Word รวมทั้งให้การจัดการการอ้างอิงสมการ และไม่ต้องใช้การเชื่อมต่ออินเทอร์เน็ตซึ่งฉันเห็นว่าเป็นคุณสมบัติที่ไม่ จำกัด : MikeTeX นั้นไม่ใหญ่มากนักและการมี LaTeX ในตัวเครื่องช่วยให้คุณสามารถพิมพ์เอกสารของคุณเมื่อเดินทาง


รองรับ Word 2013 หรือไม่
Devid

ฉันใช้ปลั๊กอินนี้ใน Word 2016 มันใช้งานได้ดี
jdhao

4

คุณสามารถใช้น้ำยางข้นใน Word

มันมีมาโครสำหรับ Microsoft Word ที่อนุญาตให้ใช้อินพุต LaTeX เพื่อสร้างภาพสมการทั้งในแบบอินไลน์และโหมดการแสดงผลโดยไม่ต้องติดตั้งซอฟต์แวร์ใด ๆ บนเครื่องคอมพิวเตอร์ เท่าที่ผมรู้ว่านี้เป็นทางเลือกเดียวที่จะฟรีโปรแกรมการชำระเงินเช่นออโรร่าและTexPoint

สำหรับ Office 2007 ไปที่น้ำยางข้นใน Word โครงการหน้าเกี่ยวกับแหล่งที่มาของฟอร์จและคลิกที่ Word 2007 ภายใต้ไฟล์

LaTeX in Word เป็นเครื่องมือลิขสิทธิ์ GPL ที่อนุญาตให้ใช้สมการในเอกสาร Microsoft Word ฝั่งไคลเอ็นต์ของโปรแกรมนั้นถูกนำมาใช้เป็นมาโคร VBA ในเอกสาร "LaTeXinWord_v_0_3_1.docm" พร้อมด้วยคำแนะนำ ดังนั้นไฟล์นี้มีซอร์สโค้ดการใช้งานและเอกสารประกอบ


ดูเหมือนว่าจะไม่ทำงานในขณะนี้
jdhao

4

@ คำตอบของ Devidนั้นยอดเยี่ยม แต่ฉันมีปัญหากับคำแนะนำเฉพาะ นี่คือสิ่งที่ทำงานให้ฉัน ทำตามขั้นตอนของ Devid โดยการคัดลอกรหัส MathML

จากนั้นใส่สมการเปล่า ใน Word 2013 ให้สลับไปที่มุมมองเค้าโครงเหมือนพิมพ์ (แท็บมุมมองบน Ribbon) บนแท็บแทรกเลือกสมการ คุณจะเห็นType equation hereเลือก

บนแท็บหน้าแรกให้เลือกเมนูแบบเลื่อนลงวางแล้ววางแบบพิเศษ (หรือกดเพียงปุ่มเดียวCTRLALTV) เลือกUnformatted Unicode Text. สมการนั้นควรกรอกอย่างถูกต้องเป็นส่วนใหญ่เช่นในภาพสุดท้ายของ Devid

อีกสิ่งหนึ่ง - ในภาพคำสั่ง "ลิม" จะเป็นตัวเอียงซึ่งไม่ได้อยู่ในต้นฉบับ ในการแก้ไขปัญหานั้นสำหรับแต่ละ "lim" ให้วางเคอร์เซอร์หลัง "m" และกดSpaceเพื่อให้ Word ตรวจสอบ "lim" กับตารางฟังก์ชั่นและปรับการจัดรูปแบบ (จากนั้นลบพื้นที่พิเศษที่สร้างขึ้น)


1

ฉันเขียนเครื่องมือสำหรับการสร้าง 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>

เมื่อเผชิญปัญหา MathML to Word ตรวจสอบให้แน่ใจว่าได้คัดลอกข้อความล้วนโดยใช้ปุ่ม Ctrl + Alt + V (หรือคัดลอกไปยังแผ่นจดบันทึกก่อนแล้วจึงคัดลอกไปยังคำ)


1

เซิร์ฟเวอร์เริ่มต้นสำหรับ LaTeX ใน Word ดูเหมือนว่าจะไม่ทำงานอีกต่อไป หากคุณถูกบังคับให้ใช้ Word (เช่นเพื่อทำงานร่วมกับผู้ที่มีความรู้ด้านเทคนิคน้อยกว่า) ฉันจะใช้TeXswordตามที่ Adam แนะนำไว้แล้ว คุณจะต้องติดตั้งการจำหน่ายMikTexแบบสแตนด์อโลนแต่วันนี้ติดตั้งง่าย ใช้งานได้กับ Word 2016 ของฉัน แต่ก็ยังดูไม่ดีเท่าเอกสาร LaTeX ที่แท้จริง แต่มันใช้งานง่ายกว่าและใช้งานได้ง่ายกว่าตัวแก้ไขสมการใน Word


โปรดอย่าโพสต์คำตอบเพื่อเห็นด้วยกับคำตอบอื่นหรือยืนยันว่าได้ผล รูปแบบคำถาม & คำตอบของเว็บไซต์สำรองคำตอบสำหรับการแก้ปัญหาสำหรับคำถามและคำตอบแต่ละข้อควรมีส่วนร่วมในการแก้ปัญหาอื่น วิธีที่จะระบุว่าคำตอบนั้นมีประโยชน์คือการใช้เวลาเพียงเล็กน้อยในไซต์และคุณจะได้รับสิทธิ์ที่เพียงพอในการตอบคำถามที่คุณชอบ
fixer1234

1
ฉันต้องการที่จะแสดงความคิดเห็นว่ามันทำงานในคำรุ่นใหม่กว่า (เพื่อตอบคำถามของ Devid) แต่ไม่มีสิทธิ์ทำเช่นนั้น
mathisfun

โปรดอย่าเพิ่ม "ขอบคุณ" เป็นคำตอบ ลงทุนเวลาในไซต์และคุณจะได้รับสิทธิ์ที่เพียงพอในการถอนคำตอบที่คุณชอบซึ่งเป็นวิธีที่ผู้ใช้ระดับสูงในการพูดขอบคุณ
DavidPostill

0

คำตอบที่กล่าวถึงข้างต้นนั้นถูกต้อง แต่ก็มีปุ่มลัดในตัวซึ่งเป็นเลขอัตโนมัติที่ถูกต้อง มันเหมือน LaTeX มาก โดยค่าเริ่มต้นมันไม่ได้ใช้งาน แต่คุณสามารถเปิดใช้งานได้และมีประโยชน์จริง ๆ ถ้าคุณต้องการเขียนสมการขนาดใหญ่ ตัวอย่างเช่นถ้าคุณต้องการพิมพ์ H 2มากกว่าที่คุณต้องพิมพ์H_2ฯลฯ และตัวเลือกอื่น ๆ อีกมากมายมีให้เช่นอักขระตัวยกตามเครื่องหมายคาเร็ต (^) จะถูกแปลงเป็นตัวยก ทางลัดดังกล่าวจำนวนมากครอบคลุมอยู่ในวิดีโอนี้หรือคุณสามารถค้นหา วิธีแทรกสมการทางคณิตศาสตร์ (เช่น LaTeX) ใน Ms-Office: คำแนะนำและเคล็ดลับ ใน youtube

วิธีนี้จะเป็นประโยชน์อย่างยิ่งหากคุณพิมพ์เร็ว ยิ่งไปกว่านั้นมันจะประหยัดเวลาของคุณที่หายไปในขณะที่สลับระหว่างแป้นพิมพ์และเมาส์และค้นหาตัวเลือกที่เหมาะสมในคำ


Taoyue กล่าวว่าในคำตอบของเขาเมื่อสองปีก่อนพร้อมภาพหน้าจอ
Ben Voigt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.