Wpisz formuły matematyczne w programie Microsoft Word w sposób LaTeX?


66

Zastanawiam się, czy są jakieś darmowe rozwiązania do pisania formuł matematycznych w sposób LaTeX w dokumencie Microsoft Word (Office 2007)?


Czy wewnętrzny pisarz formuł nie działa dla Ciebie? Jest to całkiem przydatne, gdy idę na całki i / lub podsumowania.
kobaltz

2
Jest bardzo wolny w porównaniu do lateksu.
Tim

7
Czy nie byłoby łatwo napisać wszystko w LaTeX?
NN


@NN Nie mogę odpowiadać za Tima, ale niestety muszę napisać artykuł w programie Word. Nie korzystałem z oprogramowania w ciągu ostatnich 9 lat ...
Hans Janssen,

Odpowiedzi:


70

Jeśli korzystasz z Office 365 w wersji 1707 lub nowszej, Edytor równań umożliwia konwersję LaTex na format macierzysty. Zobacz pierwszą część tej odpowiedzi.

W starszych wersjach pakietu Office edytor równań może zrozumieć niektóre składniki LaTeX. Jednak buduje to równanie z biegiem czasu i nie można przekonwertować całego równania LaTeX. Zobacz drugą część tej odpowiedzi, jeśli korzystasz z:

  • WinWord 2007, 2010, 2013 i 2016
  • MacWord 2011 i 2016

W usłudze Office 365 w wersji 1707 lub nowszej

  1. Przełącz edytor równań w tryb LaTeX. Na wstążce Projekt edytora równań przejdź do grupy Konwersje i kliknij LaTeX .

    Grupa konwersji na wstążce Edytor równań - projekt

  2. Wpisz LaTeX.

    Po wprowadzeniu równania LaTeX

  3. Otwórz menu Konwertuj i kliknij Bieżące - profesjonalne .

    Convert menu, Current - Professional

  4. LaTeX zostanie przetworzony do natywnego formatu Edytora równań.

    Wynikowe równanie

Możesz także przekonwertować z powrotem na LaTeX, aby edytować równanie.

  1. Otwórz menu Konwertuj , a następnie kliknij Bieżący - Liniowy .
  2. Równanie jest konwertowane z powrotem do formatu LaTeX. Uwaga: To nie jest twoje oryginalne źródło LaTeX, ponieważ zostało obrócone w obie strony przez wewnętrzny format Edytora równań.
  3. Otwórz menu Konwertuj , a następnie kliknij Bieżące - profesjonalne .

Musisz użyć menu rozwijanego, ponieważ przycisk Konwertuj nie przełącza się automatycznie między liniowym a profesjonalnym. Zachowuje ostatnio używane polecenie.

Istnieją pewne ograniczenia. Na przykład Edytor równań Office 365 nie rozumie poleceń \ start i \ end . Przykłady i możliwe obejścia można znaleźć w dokumentacji Microsoft:


W pakiecie Office 2007-2016 (Mac Office 2011-2016)

Bardzo niewiele osób zdaje sobie sprawę, że wbudowany edytor równań w programie Word 2007 tak naprawdę rozumie zapis równań w stylu LaTeX. Po prostu wstaw nowe równanie, a następnie wpisz w nim LaTeX. Podczas pisania program Word tworzy graficzną reprezentację równania.

Wpis w stylu LaTeX w programie Word 2007 i nowszych

Gdy pojawi się w GUI, nie możesz już edytować go jako LaTeX. Program Word nie ma wbudowanego procesora TeX - po prostu dopasowuje wzorce, aby przekonwertować prostą składnię LaTeX na natywny format równań. Dlatego nie należy oczekiwać doskonałej wierności super-złożonych równań LaTeX. Jednak wystarcza to prawdopodobnie każdemu, kto nie jest matematykiem, i jest o wiele szybszy niż klikanie elementów myszką.

Edytor równań Word 2007 ma również format wprowadzania równań liniowych, który jest dość intuicyjny i nie wymaga znajomości LaTeX. Na przykład wpisanie (a+b)/(c+d)spowoduje ułamek dobrze sformatowany.

Wpisywanie równań liniowych w programie Word 2007 i nowszych

Uwagi:

  1. Wiele czasopism naukowych nie akceptuje dokumentów Word w nowym formacie równań - nawet jeśli zapisujesz jako .doc zamiast .docx.

  2. To nie zmienia Worda w LaTeX. Robi to same równania i nic więcej. Nie dostajesz nawet numeracji równań.


4
Kluczowym punktem jest styl LaTeX , jak zwykle ms ma swój „najlepszy” sposób robienia rzeczy. +1 dla posta, ułatwia to, jeśli utkniesz ze słowem.
BAR

1
To nie działa dla mnie w edytorze równań w programie Word 2011.
jvriesem

2
Cześć, nie jestem pewien, czy robię to dobrze. Staram się używać frakcji lateksowej: \ frac {} {}, ale to nie działa w polu równań.
jxhyc

Wciąż niedostępne ...
światło nieba

1
Wersja Office 365 działa tylko w słowach, nie działa w ppt
yuxuan

24

Napisz formuły matematyczne w LaTeX → Przekształć formuły LaTeX w Kod MathML → Skopiuj / Wklej kod MathML w programie Word (po kliknięciu wklej, CTRLa następnie T). Voila!


PRZYKŁAD:

Weźmy na przykład tę formułę: Formuła napisana w LaTeX

To jest kod źródłowy LaTeX z powyższej formuły:

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.

Teraz otwórz Edytor i umieść powyższy kod źródłowy między znakami $$ $$ w następujący sposób:

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

Zapisz plik jako plik .html i otwórz go w przeglądarce takiej jak Chrome.

Kliknij formułę prawym przyciskiem myszy i wybierz opcję Pokaż MathML jako → Kod 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>

Teraz skopiuj / wklej kod MathML w programie Word 2013 (lub 2007) i kliknij kolejno, CTRLa następnie T( Opcje wklejania: zachowaj tylko tekst ) lub przejdź do małego obrazu Ctrl na końcu wklejonego kodu MathML i wybierz opcję ręcznie.

Tak wygląda formuła na końcu w programie Word 2013:


Wydaje się, że wysokość nawiasów staje się taka sama po konwersji. (Zastanów się nad czymś takim d \left((a+b)+\frac{1}{c}\right)). Czy to ograniczenie MathML?
xzczd

1
To powinna być najlepsza odpowiedź.
Vim

7

Stworzyłem LatexToWordEquation na podstawie odpowiedzi.

To jest dodatek do programu Word.

Kod źródłowy, który przesłałem do Github. Link tutaj

Jeśli wolisz, możesz pobrać instalator bezpośrednio stąd .
Uwaga: jest to aktywny link do pobrania, który natychmiast pobierze plik po kliknięciu.

Jak to zrobić


3
Witamy w Super User. Ludzie są świadomi bezpieczeństwa i martwią się, gdy kliknięcie łącza natychmiast pobiera nieznany plik. Dobrym pomysłem jest umieszczenie powiadomienia o linkach do pobrania na żywo. BTW, czytelnicy prawdopodobnie niechętnie pobiorą nieznany plik, szczególnie od nowego użytkownika. Więc nie bierz tego osobiście, jeśli link nie daje wiele akcji. Niezależnie od tego, dziękuję za próbę pomocy z tym pytaniem.
fixer1234

1
Przetestowałem to w programie Word 2016. Niestety naciśnięcie przycisku nic nie robi. Czy muszę coś instalować, aby to rozwiązanie działało?
RAnders00

5

Wolę TeXsword od Latex in Word ( pobieranie TeXsword ). Posiada wszystkie funkcje lateksu w programie Word, a także zapewnia obsługę odniesień do równań. I nie wymaga połączenia z Internetem, co uważam za cechę, a nie ograniczenie: MikeTeX nie jest wcale taki duży, a lokalny LaTeX umożliwia pisanie dokumentu podczas podróży.


Czy obsługuje Word 2013?
Devid

Korzystam z tej wtyczki w programie Word 2016, działa dobrze.
jdhao

4

Możesz używać lateksu w programie Word .

Zapewnia makra dla Microsoft Word, które pozwalają na wykorzystanie danych wejściowych LaTeX do tworzenia obrazów równań zarówno w trybie wstawiania, jak i wyświetlania, bez konieczności instalowania jakiegokolwiek oprogramowania na komputerze lokalnym. O ile mi wiadomo, jest to jedyna darmowa alternatywa dla płatnych programów, takich jak Aurora i TexPoint .

W przypadku pakietu Office 2007 przejdź do strony Latex in Word Project na Source Forge i kliknij Word 2007 w obszarze Pliki .

LaTeX in Word to narzędzie na licencji GPL, które umożliwia stosowanie równań w dokumentach Microsoft Word. Po stronie klienta program jest zaimplementowany jako makra VBA w dokumencie „LaTeXinWord_v_0_3_1.docm” wraz z instrukcjami. Dlatego plik ten zawiera kod źródłowy, implementację i dokumentację.


Wydaje się, że teraz nie działa.
jdhao

4

Odpowiedź Devida jest doskonała, ale miałem trudności z konkretnymi instrukcjami. Oto, co dla mnie zadziałało. Wykonaj kroki Devida poprzez skopiowanie kodu MathML.

Następnie wstaw puste równanie. W programie Word 2013 przejdź do widoku Układ wydruku (karta Widok na wstążce). Na karcie Wstaw wybierz opcję Równanie. Zobaczysz Type equation herewybrane.

Na karcie Narzędzia główne wybierz menu Wklej, a następnie Wklej specjalnie (lub po prostu naciśnij CTRLALTV). Wybierz Unformatted Unicode Text. Równanie powinno następnie zostać wypełnione głównie poprawnie, jak na ostatnim zdjęciu Devida.

Jeszcze jedno - na zdjęciu polecenia „lim” są pochylone, a nie w oryginale. Aby to naprawić, dla każdego „lim” umieść kursor tuż za „m” i naciśnij, Spaceaby Word sprawił, że „lim” porówna się z tabelą funkcji i dostosuje formatowanie. (Następnie usuń utworzone dodatkowe miejsce).


1

Napisałem narzędzia do generowania MathML, poprawiłem kod Devid i dodałem kilka funkcji do łatwej edycji. Oto kod:

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

Podczas kopiowania MathML do Worda, upewnij się, że skopiujesz czysty tekst, używając klawiszy Ctrl + Alt + V (lub najpierw skopiuj go do notatnika, a następnie skopiuj do słowa).


1

Domyślny serwer LaTeX w programie Word wydaje się już nie działać. Jeśli jesteś zmuszony używać Worda (na przykład, aby współpracować z mniej zorientowanymi technicznie) użyłbym TeXsword, jak sugerował już Adam. Musisz zainstalować samodzielną dystrybucję MikTex , ale obecnie jest to łatwa instalacja. Działa z moim programem Word 2016. Nadal nie wygląda tak dobrze jak prawdziwy dokument LaTeX, ale jest łatwiejszy w użyciu i bardziej plastyczny niż edytor równań w programie Word.


Nie publikuj odpowiedzi, aby zgodzić się z inną odpowiedzią lub potwierdzić, że zadziałała. Format pytań i odpowiedzi na stronie rezerwuje odpowiedzi na pytania i każda odpowiedź powinna zawierać inne rozwiązanie. Sposobem na wskazanie, że odpowiedź jest przydatna, jest zainwestowanie trochę czasu w stronę, a zyskasz wystarczające uprawnienia do głosowania odpowiedzi, które ci się podobają.
fixer1234

1
Chciałem skomentować, że działa w nowszych wersjach słowa (aby odpowiedzieć na pytanie Devida), ale nie miałem do tego uprawnień.
mathisfun

Nie dodawaj „dziękuję” jako odpowiedzi. Zainwestuj trochę czasu na stronie, a zdobędziesz wystarczające uprawnienia do głosowania na odpowiedzi, które Ci się podobają, co jest sposobem Super Użytkownik na podziękowanie.
DavidPostill

0

Powyższa odpowiedź jest prawidłowa, ale jest też wbudowany skrót, który jest matematyczny. Jest bardzo podobny do LaTeXa. Domyślnie jest nieaktywny, ale możesz go aktywować i jest naprawdę pomocny, jeśli chcesz pisać duże równania. Na przykład, jeśli chcesz wpisać H 2, to po prostu musisz wpisać H_2 itp. I dostępnych jest wiele innych opcji, takich jak znak górny po znaku daszka (^), który zostanie przekonwertowany jako indeks górny. Wiele takich skrótów jest omawianych w tym filmie lub możesz po prostu wyszukać Jak wstawić równanie matematyczne (jak LaTeX) w Ms Office: Wskazówki i porady na youtube.

Ta metoda będzie szczególnie pomocna, jeśli potrafisz szybko pisać. Ponadto pozwoli zaoszczędzić czas, który stracisz podczas przełączania między klawiaturą i myszą i wyszukiwania odpowiedniej opcji w słowie.


Taoyue wspomniał o tym w swojej odpowiedzi dwa lata temu za pomocą zrzutów ekranu.
Ben Voigt,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.