55

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

9 ответов9

60

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

20

Написать свои математические формулы в LaTeX → Преобразовать формулы LaTeX в MathML Code → Скопировать / вставить код 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:

6

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

Это Word AddIn.

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

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

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

4

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

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» вместе с инструкциями. Следовательно, этот файл содержит исходный код, реализацию и документацию.

3

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

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

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

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

1

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .