Введіть математичні формули в Microsoft Word способом LaTeX?


66

Цікаво, чи є якісь безкоштовні рішення для введення математичних формул способом LaTeX у документі Microsoft Word (Office 2007)?


Чи не працює внутрішній формуляр формули для вас? Це досить зручно, коли я йду робити інтеграли та / або підбивати підсумки.
кобальц

2
Це дуже повільно порівняно з Латекс.
Тім

7
Чи не було б просто написати все в LaTeX?
NN


@NN Я не можу відповісти за Тіма, але, на жаль, мені потрібно написати статтю в Word. Не використовував програмне забезпечення протягом останніх 9 років ...
Ханс Янссен

Відповіді:


70

Якщо ви використовуєте Office 365 версії 1707 або пізнішої версії, редактор рівнянь дозволяє конвертувати LaTex у початковий формат. Дивіться першу частину цієї відповіді.

У старих версіях Office редактор рівнянь може розуміти певні компоненти LaTeX. Однак воно будує рівняння по мірі руху, і ви не можете перетворити ціле рівняння LaTeX. Дивіться другу частину відповіді, якщо ви працюєте:

  • WinWord 2007, 2010, 2013 та 2016 років
  • MacWord 2011 та 2016 років

На Office 365 версії 1707 або новішої версії

  1. Переведіть редактор рівнянь у режим LaTeX. У стрічці « Дизайн редактора рівнянь» перейдіть до групи « Конверсії» та натисніть LaTeX .

    Група перетворень на стрічці редактора рівнянь рівняння

  2. Введіть LaTeX.

    Після введення рівняння LaTeX

  3. Відкрийте спадне меню Перетворити та натисніть Поточний - Професійний .

    Перетворити меню, Поточне - Професійне

  4. LaTeX буде оброблений у рідному форматі редактора рівнянь.

    Отримане рівняння

Ви також можете перетворити назад в LaTeX для редагування рівняння.

  1. Відкрийте спадне меню Перетворити , а потім натисніть Поточний - лінійний .
  2. Рівняння перетворюється назад у формат LaTeX. Примітка. Це не ваше оригінальне джерело LaTeX, тому що воно було круговим шляхом через внутрішній формат редактора рівнянь.
  3. Відкрийте спадне меню Перетворити , а потім натисніть Поточний - Професійний .

Вам потрібно скористатися спадною меню, оскільки кнопка Перетворити не перемикається автоматично між лінійним та професійним. Він зберігає останню використану команду.

Є деякі обмеження. Наприклад, редактор рівнянь Office 365 не розуміє команд \ start і \ end . Щоб отримати приклади та можливі вирішення, див. Документацію Microsoft:


Про Office 2007-2016 (Mac Office 2011-2016)

Дуже мало хто розуміє, що вбудований редактор рівнянь у Word 2007 насправді розуміє запис рівняння в стилі LaTeX. Просто вставте нове рівняння і введіть у нього LaTeX. Під час введення Word створить графічне зображення рівняння.

Запис рівняння в стилі LaTeX в Word 2007 і вище

Після появи в графічному інтерфейсі ви більше не можете редагувати його як LaTeX. У Word немає вбудованого процесора TeX - він просто робить узгодження шаблонів для перетворення простого синтаксису LaTeX у нативний формат рівняння. Тому не слід сподіватися на отримання ідеальної вірності для надскладних рівнянь LaTeX. Однак цього, мабуть, достатньо для когось, крім математика, і це набагато швидше, ніж клацання елементами мишею.

У редакторі рівнянь Word 2007 також є лінійний формат введення рівнянь, який є досить інтуїтивним і не потребує ознайомлення з LaTeX. Наприклад, введення тексту (a+b)/(c+d)призведе до отримання добре відформатованого дробу.

Лінійний запис рівняння в Word 2007 і вище

Примітки:

  1. Багато наукових журналів не прийматимуть документи Word із новим форматом рівнянь - навіть якщо ви збережете як .doc замість .docx.

  2. Це не перетворює Word у LaTeX. Це просто роблять самі рівняння, і більше нічого. Ви навіть не отримуєте нумерацію рівнянь.


4
Ключовим моментом є стиль LaTeX , оскільки звичайні повідомлення мають свій "найкращий" спосіб робити. +1 для публікації, це полегшує роботу, якщо ви застрягли у слові.
BAR

1
Це не працює для мене в редакторі рівнянь у Word 2011.
jvriesem,

2
Привіт, я не впевнений, що я роблю це правильно. Я намагаюся використовувати стиль латексу для дробу: \ frac {} {}, але це не виходить у полі рівняння.
jxhyc

Досі недоступний ...
небо-світло

1
Версія Office 365 працює лише в word не працює в ppt
yuxuan

24

Запишіть свої математичні формули в LaTeX → Перетворіть формули LaTeX у код MathML → Скопіюйте / вставте код MathML у Word (після натискання пасти CTRLта потім T). Вуаля!


ПРИКЛАД:

Давайте візьмемо для прикладу цю формулу: Формула написана в 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 як → MathML Code.

<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
Це має бути найкращою відповіддю.
Vim

7

Я створив LatexToWordEquation на основі відповідей.

Це Word AddIn.

Вихідний код я підштовхнув до Github. Посилання тут

Якщо ви хочете, ви можете завантажити інсталятор прямо звідси .
Примітка. Це активне посилання для завантаження, яке негайно завантажить файл при натисканні на нього.

Як це зробити


3
Ласкаво просимо до Супер Користувача. Люди впевнені в безпеці і турбуються, коли натискають на посилання, відразу завантажують невідомий файл. Це гарна ідея включити повідомлення про посилання для завантаження в реальному часі. До речі, читачі, ймовірно, не бажають завантажувати невідомий файл, особливо від нового користувача. Тож не сприймайте це особисто, якщо посилання не має особливих дій. Незалежно, дякую за спробу допомогти у цьому питанні.
fixer1234

1
Я перевірив це в Word 2016. На жаль, натискання кнопки нічого не робить. Чи потрібно мені щось встановлювати для того, щоб це рішення працювало?
RAnders00

5

Я віддаю перевагу TeXsword над Latex у Word ( завантаження TeXsword ). Він має всі функції латексу в Word, а також надає посилання на посилання рівнянь. І для нього не потрібне підключення до Інтернету, що я вважаю особливістю не обмеженням: зрештою, MikeTeX не настільки великий, а локальне використання LaTeX дозволяє вводити документ під час подорожі.


Чи підтримує він Word 2013?
Девід

Я використовую цей плагін у Word 2016, він прекрасно працює.
jdhao

4

Ви можете використовувати латекс у Word .

Він надає макроси для Microsoft Word, які дозволяють використовувати вхід LaTeX для створення зображень рівнянь як в режимі вбудованого, так і в режимі відображення без необхідності встановлення будь-якого програмного забезпечення на локальному комп'ютері. Наскільки мені відомо, це єдина безкоштовна альтернатива платним програмам, таким як Aurora та TexPoint .

Для Office 2007 перейдіть на сторінку Latex у програмі Word на Source Forge та натисніть Word 2007 у розділі Файли .

LaTeX у Word - це ліцензований GPL інструмент, який дозволяє використовувати рівняння в документах Microsoft Word. На стороні клієнта програма реалізується як макроси VBA в документі "LaTeXinWord_v_0_3_1.docm" разом з інструкціями. Отже, цей файл містить вихідний код, реалізацію та документацію.


Здається, зараз це не працює.
jdhao

4

@ Відповідь Девіда відмінна, але у мене виникли труднощі з конкретними інструкціями. Ось що для мене спрацювало. Виконайте дії Девіда через копіювання коду MathML.

Потім вставити порожнє рівняння. У Word 2013 перейдіть до перегляду "Макет друку" (вкладка "Перегляд" на стрічці). На вкладці Вставка виберіть рівняння. Ви побачите Type equation hereвибраних.

На вкладці Домашня сторінка виберіть спадне меню Вставити, а потім спеціальна вставка (або просто натисніть CTRLALTV). Виберіть Unformatted Unicode Text. Рівняння слід заповнити переважно правильно, як на останньому малюнку Девіда.

Ще одне - на малюнку команди «lim» курсивом, де їх не було в оригіналі. Щоб виправити це, для кожного "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 у Word, обов'язково скопіюйте чистий текст, використовуючи клавішу Ctrl + Alt + V (або спочатку скопіюйте його в блокнот, потім скопіюйте його у слово).


1

Сервер за замовчуванням для LaTeX у Word, здається, більше не працює. Якщо ви змушені використовувати Word (наприклад, для співпраці з менш технічно орієнтованими), я б використовував TeXsword, як вже запропонував Адам. Вам потрібно буде встановити автономний дистрибутив MikTex , але це просто встановити в наші дні. Він працює з моїм Word 2016. Він досі не виглядає так добре, як справжній документ LaTeX, але він простіший у використанні та більш плавний, ніж редактор рівнянь у Word.


Будь ласка, не публікуйте відповідь, щоб погодитися з іншою відповіддю або підтвердити, що вона спрацювала. Формат запиту і відповіді на сайті залишає відповіді на вирішення питання, і кожна відповідь повинна сприяти іншому рішенню. Спосіб зазначити, що відповідь корисна, - це вкласти трохи часу на сайт, і ви отримаєте достатньо привілеїв, щоб отримати відповіді, які вам подобаються.
fixer1234

1
Я хотів прокоментувати, що він працює в нових версіях слова (щоб відповісти на питання Девіда), але не мав привілеїв робити це.
mathisfun

Будь ласка, не додайте "дякую" як відповіді. Вкладіть деякий час у сайт, і ви отримаєте достатньо привілеїв, щоб одержати відповіді, які вам подобаються, це спосіб Super User сказати дякую.
DavidPostill

0

Відповідь, зазначена вище, є правильною, але є також вбудований ярлик, який є математичним авто правильним. Це дуже схоже на LaTeX. За замовчуванням його неактивне, але ви можете активувати його, і це дуже корисно, якщо ви хочете написати великі рівняння. Наприклад, якщо ви хочете ввести H 2, ніж вам просто потрібно ввести H_2 і т.д. Багато таких ярликів висвітлено у цьому відео або ви можете просто шукати як вставити математичне рівняння (наприклад, LaTeX) у програмі Ms-Office: Поради та рекомендації на youtube.

Цей спосіб буде особливо корисним, якщо ви швидко введете текст. Крім того, це заощадить ваш час, який втрачається під час перемикання між клавіатурою та мишею та пошуку потрібної опції словом.


Таоюе згадував про це у своїй відповіді два роки тому із скріншотами.
Бен Войт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.