Wpisywać formuły matematyczne w sposób LaTeX w Microsoft Word?
Zastanawiam się, czy są jakieś darmowe rozwiązania do wpisywania formuł matematycznych w sposób LaTeX w dokumencie Microsoft Word (Office 2007)?
Zastanawiam się, czy są jakieś darmowe rozwiązania do wpisywania formuł matematycznych w sposób LaTeX w dokumencie Microsoft Word (Office 2007)?
Jeśli używasz Office 365 w wersji 1707 lub nowszej, Edytor równań umożliwia konwersję LaTexa na format natywny. Zobacz pierwszą część tej odpowiedzi.
W starszych wersjach pakietu Office Edytor równań może zrozumieć niektóre komponenty LaTeXa. Jednakże, buduje on równanie w miarę postępu i nie można przekonwertować całego LaTeX-owego równania. Zobacz drugą część tej odpowiedzi, jeśli używasz:
Umieść Edytor równań w trybie LaTeX. W Edytorze równań Zaprojektuj wstążkę, przejdź do grupy Konwersje i kliknij LaTeX.
Wpisz LaTeX.
Otwórz menu rozwijane Odwróć i kliknij Bieżące - Profesjonalne.
LaTeX zostanie przetworzony na natywny format edytora równań.
Możesz również przekonwertować z powrotem do LaTeX'a, aby edytować równanie.
Musisz skorzystać z menu rozwijanego, ponieważ przycisk Convert nie przełącza się automatycznie pomiędzy Linear i Professional. Zachowuje on ostatnio używane polecenie.
Istnieją pewne ograniczenia. Na przykład, Edytor równań Office 365 nie rozumie poleceń Początek i koniec**. Zobacz dokumentację Microsoftu, aby zapoznać się z przykładami i możliwymi rozwiązaniami:
Niewiele osób zdaje sobie sprawę, że wbudowany edytor równań w programie Word 2007 właściwie rozumie wpis równań w stylu LaTeX. Wystarczy wstawić nowe równanie, a następnie wpisać do niego LaTeX. W trakcie wpisywania, Word utworzy graficzną reprezentację równania.
Gdy pojawi się ono w graficznym interfejsie użytkownika, nie można go już edytować jako LaTeX. Word nie posiada wbudowanego procesora TeX-owego - po prostu robi dopasowywanie wzorców, aby przekonwertować prostą składnię LaTeX-a na natywny format równania. Nie powinieneś więc oczekiwać, że uzyskasz doskonałą wierność superzłożonym równań LaTeXowych. Wystarczy jednak dla prawdopodobnie każdego, kto nie jest matematykiem i jest to lot szybsze niż klikanie elementów za pomocą myszy.
Edytor równań Word 2007 ma również format zapisu równań liniowych, który jest dość intuicyjny i nie wymaga znajomości LaTeXa. Na przykład, wpisanie (a+b)/(c+d)
spowoduje, że ułamek będzie ładnie sformatowany.
Uwagi:
Wiele czasopism naukowych nie zaakceptuje dokumentów Worda z nowym formatem równania - nawet jeśli zapiszesz jako .doc zamiast .docx.
Nie zmienia to programu Word w LaTeX. Robi tylko same równania, i nic więcej. Nie dostajesz nawet numeracji równań.
Wpisz swoje formuły matematyczne w LaTeX → Przekształć formuły LaTeX w MathML Code → Skopiuj/wklej kod MathML w Word (po wklejeniu kliknij CTRL a następnie T). Voila!
Weźmy na przykład tę formułę:
To jest kod źródłowy LaTeXa 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 pomiędzy znakami $$ $$ jak to:
<!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 . html i otwórz go za pomocą przeglądarki takiej jak Chrome.
Kliknij prawym przyciskiem myszy na Formułę i wybierz Pokaż MathML jako → Kod MathML.
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mn>0</mn>
<mo>≤<!-- ≤ --></mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></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>≤<!-- ≤ --></mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></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">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></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">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></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 CTRL, a następnie T (Wklej Opcje: zachowaj tylko tekst) lub przejdź do małego obrazka Ctrl na końcu wklejonego kodu MathML i wybierz opcję ręcznie.
Stworzyłem LatexToWordEquation na podstawie odpowiedzi.
Jest to Word AddIn.
Kod źródłowy, który wepchnąłem do Githuba. Link tutaj
Jeśli wolisz, możesz pobrać instalator bezpośrednio z tutaj . Uwaga: To jest aktywny link do pobrania, który natychmiast pobierze plik po kliknięciu na niego.
Jak to zrobić
Wolę hasło TeX-owe niż lateksowe w programie Word TeX-owe hasło do pobrania ). Posiada wszystkie cechy Lateksu w Word, plus daje obsługę odniesień do równań. I nie wymaga połączenia z Internetem, co postrzegam jako cechę, a nie ograniczenie: MikeTeX nie jest przecież taki duży, a posiadanie LaTeXa lokalnie pozwala na pisanie dokumentu podczas podróży.
@Odpowiedź @Devid'a jest doskonała, ale miałem trudności z konkretnymi instrukcjami. Oto co dla mnie zadziałało. Zrób kroki Devid'a poprzez skopiowanie kodu MathML.
Następnie wstaw puste równanie. W programie Word 2013 przejdź do widoku Print Layout (zakładka View na wstążce). Na zakładce Insert wybierz opcję Equation. W zakładce Home wybierz polecenie Wklej rozwijane, a następnie Wklej specjalne (lub po prostu naciśnij klawisz CTRLALTV). Wybierz Type equation here
Równanie powinno wtedy wypełnić się w większości poprawnie, tak jak na ostatnim obrazku Devida.
Jeszcze jedno - na obrazku polecenia “lim” są zaznaczone kursywą, gdzie nie było ich w oryginale. Aby to naprawić, dla każdego “lim” należy ustawić kursor tuż za “m” i nacisnąć spację, aby spowodować, że Word sprawdzi “lim” względem swojej tabeli funkcji i dostosuje formatowanie. (Następnie usuń dodatkową spację, która została utworzona).
Można użyć Lateks w programie Word .
Dostarcza makra dla programu Microsoft Word, które pozwalają na użycie wejścia LaTeX do tworzenia obrazów równań zarówno w trybie inline jak i w trybie wyświetlania bez konieczności instalowania jakiegokolwiek oprogramowania na lokalnym komputerze. Z tego co wiem, jest to jedyna darmowa alternatywa dla płatnych programów takich jak Aurora i TexPoint .
Dla Office 2007, przejdź do Latex in Word Project Page na Source Forge, i kliknij na Word 2007 pod Files .
LaTeX in Word jest licencjonowanym przez GPL narzędziem, które pozwala na używanie równań w dokumentach Microsoft Word. Strona klienta programu jest zaimplementowana jako makra VBA w dokumencie “LaTeXinWord_v_0_3_1.docm” wraz z instrukcjami. Dlatego też plik ten zawiera kod źródłowy, implementację i dokumentację.
Napisałem narzędzie do generowania MathML, poprawiłem formę kodu Devid i dodałem kilka funkcji ułatwiających edycję. 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).
Wygląda na to, że domyślny serwer dla LaTeX in Word nie jest już uruchomiony. Jeśli jesteś zmuszony do korzystania z Worda (na przykład, do współpracy z mniej zorientowanymi technicznie) użyłbym TeXsword , jak już sugerował Adam. Będziesz musiał zainstalować samodzielną dystrybucję MikTex , ale w dzisiejszych czasach jest to łatwa instalacja. To działa z moim programem Word 2016. Nadal nie wygląda tak dobrze jak prawdziwy dokument LaTeXa w dobrej wierze, ale jest łatwiejszy w użyciu i bardziej plastyczny niż edytor równań w Word.
Microsoft Office ProPlus wersja 1902 z aktywnym formatem LaTeX.
Następujące makro zmienia wszystkie formuły LaTeX ograniczone parami $
w ramach bieżącego wyboru dokumentu Word na formuły Word:
Sub LaTeX()
If Selection.Start < Selection.End Then
Set myRange = ActiveDocument.Range(Selection.Start, Selection.End)
Do While myRange.Find.Execute(FindText:="$*$", Forward:=True, MatchWildcards:=True) = True
ActiveDocument.OMaths.Add Range:=myRange
ActiveDocument.OMaths.BuildUp
Set myRange = ActiveDocument.Range(myRange.Start, Selection.End)
Loop
End If
End Sub
Jest to studium wykonalności i nie jest przeznaczone do produkcji. Makro można łatwo oszukać przez zbłąkane znaki $
w tekście. Jest to również główny powód ograniczenia działania makra do bieżącego wyboru.
Ponadto nie obsługuje ono środowisk równań wyświetlania takich jak equation
czy align
.
Powyższa odpowiedź jest poprawna, ale jest też wbudowany skrót, który jest matematycznie poprawny. Jest on 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ć H2, to musisz wpisać H_2 itd. i wiele innych opcji jest dostępnych, jak na przykład znak superskryptu po znaku caret (^) będzie konwertowany jako superskrypt. Wiele takich skrótów jest zawartych w tym video lub możesz po prostu wyszukać Jak wstawić równanie matematyczne (jak LaTeX) w Ms-Office: Tips and tricks na youtube.
Ta metoda będzie szczególnie pomocna jeśli jesteś szybki w pisaniu. Co więcej, zaoszczędzi Twój czas, który traci się podczas przełączania między klawiaturą i myszą oraz szukania odpowiedniej opcji w słowie.