Напечатайте математические формулы в 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» .

    Группа преобразований на ленте Equation Editor-Design

  2. Введите латекс.

    После ввода уравнения LaTeX

  3. Откройте раскрывающееся меню « Преобразовать» и нажмите « Текущий - Профессиональный» .

    Преобразовать меню, Текущий - Профессиональный

  4. LaTeX будет преобразован в собственный формат редактора формул.

    Результирующее уравнение

Вы также можете конвертировать обратно в LaTeX для редактирования уравнения.

  1. Откройте раскрывающееся меню « Преобразовать» и нажмите « Текущий» - «Линейный» .
  2. Уравнение конвертируется обратно в формат LaTeX. Примечание: это не ваш исходный источник LaTeX, потому что он был обработан с помощью внутреннего формата редактора формул.
  3. Откройте раскрывающееся меню « Преобразовать» и нажмите « Текущий - Профессиональный» .

Вы должны использовать выпадающее меню, потому что кнопка Convert не переключается автоматически между Linear и Professional. Он сохраняет последнюю использованную команду.

Есть некоторые ограничения. Например, редактор уравнений Office 365 не понимает команды \ begin и \ 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. Это просто делает уравнения сами по себе, и ничего больше. Вы даже не получаете нумерацию уравнений.

taoyue
источник
4
Ключевым моментом является стиль LaTeX , как обычно у ms свой собственный «лучший» способ работы. +1 за пост, это облегчает, если вы застряли в слове.
BAR
1
Это не работает для меня в редакторе формул в Word 2011.
jvriesem
2
Привет, я не уверен, что делаю все правильно. Я пытаюсь использовать латексный стиль для дроби: \ frac {} {}, но это не работает в поле уравнения.
Jxhyc
Все еще не доступно ...
небесный свет
2
Версия Office 365 работает только в слове, не работает в ppt
yuxuan
25

Напишите свои математические формулы в 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».

<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:

Devid
источник
Кажется, что высота скобок становится все одинаковой после конвертации. (Рассмотрим что-то вроде d \left((a+b)+\frac{1}{c}\right).) Это ограничение MathML?
xzczd
1
Это должен быть лучший ответ.
Vim
Это лучший ответ, потому что все формулы латекса могут быть вместе в одном файле HTML. У вас есть возможность легко изменить формулу латекса в Notepad ++, изменить ее при необходимости и вручную скопировать / вставить версию MathML из документа Chrome в Word. Проблема с Microsoft заключается в том, что она не может принять вставку / копию уравнения латекса.
Schlebe
7

Я создал LatexToWordEquation на основе ответов.

Это Word AddIn.

Исходный код, который я отправил на Github. Ссылка здесь

Если вы предпочитаете, вы можете скачать установщик прямо здесь .
Примечание. Это активная ссылка для загрузки, которая сразу же загружает файл при нажатии на него.

Как это сделать

Александр Джорданелли
источник
3
Добро пожаловать в Супер пользователя. Люди заботятся о безопасности и беспокоятся, когда нажимая на ссылку, сразу скачивает неизвестный файл. Хорошей идеей будет добавить уведомление в прямые ссылки для скачивания. Кстати, читатели, скорее всего, неохотно скачивают неизвестный файл, особенно от нового пользователя. Так что не принимайте это на свой счет, если ссылка не дает особых действий. В любом случае, спасибо за попытку помочь с этим вопросом.
fixer1234
1
Я проверял это в Word 2016. К сожалению, нажатие кнопки ничего не делает. Нужно ли что-то устанавливать, чтобы это решение работало?
RAnders00
5

Я предпочитаю TeXsword, а не латекс в Word ( загрузка TeXsword ). Он имеет все возможности Latex в Word, а также обеспечивает обработку ссылок на уравнения. И для этого не требуется подключение к Интернету, которое я считаю функцией, а не ограничением: MikeTeX не так уж и велик, а наличие локального LaTeX позволяет печатать документ во время путешествия.

Адам Рычковски
источник
Поддерживает ли Word 2013?
Девид
Я использую этот плагин в Word 2016, он отлично работает.
18:06
4

Вы можете использовать латекс в Word .

Он предоставляет макросы для Microsoft Word, которые позволяют использовать ввод LaTeX для создания изображений уравнений как в режиме online, так и в режиме отображения без необходимости установки какого-либо программного обеспечения на локальном компьютере. Насколько я знаю, это единственная бесплатная альтернатива платным программам типа Aurora и TexPoint .

Для Office 2007 перейдите на страницу «Латекс на странице проекта Word» в Source Forge и нажмите «Word 2007» в разделе « Файлы» .

LaTeX в Word - это лицензированный по GPL инструмент, позволяющий использовать уравнения в документах Microsoft Word. Клиентская часть программы реализована в виде макросов VBA в документе «LaTeXinWord_v_0_3_1.docm» вместе с инструкциями. Следовательно, этот файл содержит исходный код, реализацию и документацию.

Мехпер С. Палавузлар
источник
Кажется, сейчас не работает.
jdhao
4

@ Ответ Дэвида превосходен, но у меня были трудности с конкретными инструкциями. Вот что сработало для меня. Выполните шаги Devid по копированию кода MathML.

Затем вставьте пустое уравнение. В Word 2013 переключитесь в представление «Макет печати» (вкладка «Вид» на ленте). На вкладке «Вставка» выберите «Уравнение». Вы увидите Type equation hereвыбранное.

На вкладке «Главная страница» выберите раскрывающийся список «Вставить», затем «Специальная вставка» (или просто нажмите CTRLALTV). Выберите Unformatted Unicode Text. «Уравнение», которое должно быть заполнено в основном правильно, как на последней картинке Дэвида.

Еще одна вещь - на рисунке команды «lim» выделены курсивом там, где их не было в оригинале. Чтобы исправить это, для каждого «lim» поместите курсор сразу после «m» и нажмите, Spaceчтобы Word сверял «lim» со своей таблицей функций и корректировал форматирование. (Затем удалите лишнее пространство, которое было создано.)

CXW
источник
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 (или сначала скопируйте его в блокнот, а затем скопируйте в слово).

stalendp
источник
1

По умолчанию сервер для LaTeX в Word больше не работает. Если вы вынуждены использовать Word (например, для совместной работы с менее технически ориентированными), я бы использовал TeXsword, как уже предлагал Адам. Вам нужно будет установить автономный дистрибутив MikTex , но в наши дни его легко установить. Он работает с моим Word 2016. Он по-прежнему не выглядит так же хорошо, как настоящий добросовестный документ LaTeX, но он проще в использовании и более податлив, чем редактор формул в Word.

mathisfun
источник
Пожалуйста, не публикуйте ответ, чтобы согласиться с другим ответом или подтвердить, что он работает. Формат вопросов и ответов сайта оставляет за собой ответы на решения вопроса, и каждый ответ должен содержать другое решение. Чтобы показать, что ответ полезен, нужно потратить немного времени на сайт, и вы получите достаточные привилегии для того, чтобы проголосовать за понравившиеся ответы.
fixer1234
1
Я хотел прокомментировать, что это работает в более новых версиях слова (чтобы ответить на вопрос Дэвида), но у меня не было привилегий сделать это.
mathisfun
Пожалуйста, не добавляйте «спасибо» как ответы. Потратьте некоторое время на сайт, и вы получите достаточные привилегии, чтобы выслушать ответы, которые вам нравятся, что является суперпользователем, чтобы сказать спасибо.
DavidPostill
0

Упомянутый выше ответ верен, но есть встроенная комбинация клавиш, которая является автокоррекцией по математике. Это очень похоже на LaTeX. По умолчанию он неактивен, но вы можете активировать его, и он действительно полезен, если вы хотите написать большие уравнения. Например, если вы хотите набрать H 2, вам нужно просто набрать H_2 и т. Д., И доступно гораздо больше опций, например, для символа верхнего индекса, после которого знак вставки (^) будет преобразован в верхний индекс. Многие такие ярлыки описаны в этом видео, или вы можете просто найти Как вставить математическое уравнение (например, LaTeX) в Ms-Office: Советы и рекомендации по YouTube.

Этот метод будет особенно полезен, если вы быстро печатаете. Кроме того, это сэкономит ваше время, которое теряется при переключении между клавиатурой и мышью и поиском правильной опции в слове.

Пракаш Гупта
источник
Таоюе упомянул это в своем ответе два года назад со скриншотами.
Бен Фойгт