web-dev-qa-db-fra.com

Tapez des formules mathématiques dans Microsoft Word à la manière de LaTeX?

Je me demande s’il existe des solutions gratuites pour taper des formules mathématiques à la manière LaTeX dans un document Microsoft Word (Office 2007)?

58
Tim

Si vous exécutez Office 365 version 1707 ou ultérieure, l'éditeur d'équation vous permet de convertir LaTex au format natif. Voir la première partie de cette réponse.

Dans les versions antérieures d'Office, l'éditeur d'équations pouvait comprendre certains composants LaTeX. Cependant, il construit l'équation au fur et à mesure et vous ne pouvez pas convertir une équation LaTeX entière. Voir la deuxième partie de cette réponse si vous utilisez:

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

Sur Office 365 version 1707 ou ultérieure

  1. Mettez l'éditeur d'équation en mode LaTeX. Dans l'éditeur d'équation Design ruban, accédez au groupe Conversions et cliquez sur LaTeX .

     Conversions group on the Equation Editor-Design ribbon

  2. Tapez le LaTeX.

     After entering LaTeX equation

  3. Ouvrez le menu déroulant Convert et cliquez sur Actuel - Professionnel .

     Convert menu, Current - Professional

  4. LaTeX sera traité dans le format natif de l'éditeur d'équation.

     Resulting equation

Vous pouvez également reconvertir en LaTeX pour modifier l'équation.

  1. Ouvrez le menu déroulant Convert , puis cliquez sur Current - Linear .
  2. L'équation est reconvertie au format LaTeX. Remarque: Il ne s'agit pas de votre source LaTeX d'origine, car elle a été arrondie par le format interne de l'éditeur d'équation.
  3. Ouvrez le menu déroulant Convert , puis cliquez sur Current - Professional .

Vous devez utiliser le menu déroulant car le bouton Convert ne bascule pas automatiquement entre Linéaire et Professionnel. Il garde la dernière commande utilisée.

Il y a quelques limitations. Par exemple, l'éditeur d'équation Office 365 ne comprend pas les commandes\begin et\end . Consultez la documentation de Microsoft pour des exemples et des solutions de contournement:


Sur Office 2007-2016 (Mac Office 2011-2016)

Très peu de gens se rendent compte que l'éditeur d'équations intégré de Word 2007 comprend en réalité l'entrée d'une équation de style LaTeX. Insérez simplement une nouvelle équation, puis tapez LaTeX dans celle-ci. Au fur et à mesure que vous tapez, Word crée une représentation graphique de l'équation.

LaTeX-style equation entry in Word 2007 and above

Une fois qu'il apparaît dans l'interface graphique, vous ne pouvez plus le modifier en tant que LaTeX. Word ne possède pas de processeur TeX intégré - il ne fait que faire une correspondance de motif pour convertir la syntaxe simple LaTeX au format d'équation natif. Par conséquent, vous ne devez pas vous attendre à obtenir une fidélité parfaite pour les équations LaTeX super complexes. Cependant, cela suffit probablement à quiconque à part un mathématicien, et c'est un lot plus rapide que de cliquer sur des éléments avec la souris.

L'éditeur d'équations Word 2007 possède également un format de saisie d'équation linéaire, ce qui est assez intuitif et ne nécessite aucune connaissance de LaTeX. Par exemple, taper (a+b)/(c+d) donnera une fraction joliment formatée.

Linear equation entry in Word 2007 and above

Remarques:

  1. De nombreuses revues scientifiques n'acceptent pas les documents Word avec le nouveau format d'équation, même si vous enregistrez au format .doc au lieu de .docx.

  2. Cela ne transforme pas Word en LaTeX. Il ne fait que les équations elles-mêmes et rien d'autre. Vous n'obtenez même pas la numérotation des équations.

63
taoyue

Écrivez vos formules mathématiques dans LaTeX → Transformez les formules LaTeX en code MathML → Copiez/collez le code MathML dans Word (après avoir collé, cliquez dessus). CTRL et alors T). Voila!


EXEMPLE:

Prenons par exemple cette formule: Formula written in LaTeX

Voici le code source LaTeX de la formule ci-dessus:

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.

Ouvrez maintenant un éditeur et mettez le code source ci-dessus entre les signes $$ $$ comme ceci:

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

Enregistrez le fichier en tant que fichier .html et ouvrez-le avec un navigateur tel que Chrome.

Cliquez avec le bouton droit sur la formule et choisissez Afficher MathML en tant que → Code 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>

Maintenant, copiez/collez le code MathML dans Word 2013 (ou 2007) et cliquez séquentiellement CTRL et alors T ( Options de collage: conservez le texte uniquement ) ou accédez à la petite image Ctrl située à la fin du code MathML que vous avez collé et sélectionnez l'option manuellement.

Voici comment la formule se présente à la fin de Word 2013:

20
Devid

J'ai créé LatexToWordEquation en fonction des réponses.

C'est un Word AddIn.

Le code source que j'ai poussé à Github. Lien ici

Si vous préférez, vous pouvez télécharger le programme d'installation directement à partir de ici .
Remarque: il s'agit d'un lien de téléchargement actif qui téléchargera immédiatement le fichier lorsque vous cliquez dessus.

Comment le faire

6

Je préfère TeXsword au latex dans Word ( Téléchargement TeXsword ). Il possède toutes les fonctionnalités de Latex dans Word, plus il gère les références aux équations. Et cela ne nécessite pas de connexion Internet, ce qui, à mon avis, ne constitue pas une limitation: MikeTeX n’est pas si énorme que cela après tout, et disposer de LaTeX localement vous permet de taper votre document lorsque vous voyagez.

4
Adam Ryczkowski

Vous pouvez utiliser Latex dans Word .

Il fournit des macros pour Microsoft Word qui permettent l’utilisation de l’entrée LaTeX pour créer des images d’équations dans les modes en ligne et en affichage sans installer aucun logiciel sur l’ordinateur local. Pour autant que je sache, il s'agit de la seule alternative gratuite aux programmes payants tels que Aurora et TexPoint .

Pour Office 2007, accédez à Page du projet Latex in Word sur Source Forge, puis cliquez sur Word 2007 sous Fichiers .

LaTeX in Word est un outil sous licence GPL permettant l’utilisation d’équations dans des documents Microsoft Word. Le côté client du programme est implémenté en tant que macros VBA dans le document "LaTeXinWord_v_0_3_1.docm" avec des instructions. Par conséquent, ce fichier contient le code source, l'implémentation et la documentation.

4

La réponse de @ Devid est excellente, mais les instructions spécifiques me posaient problème. Voici ce qui a fonctionné pour moi. Suivez les étapes de Devid pour copier le code MathML.

Ensuite, insérez une équation vide. Dans Word 2013, passez en mode Imprimer le modèle (onglet Afficher du ruban). Dans l'onglet Insertion, choisissez Equation. Vous verrez que Type equation here sera sélectionné.

Sur l'onglet Accueil, sélectionnez la liste déroulante Coller, puis Coller spécial (ou appuyez simplement sur CTRLALTV). Sélectionnez Unformatted Unicode Text. L'équation devrait ensuite être remplie la plupart du temps correctement, comme dans la dernière image de Devid.

Une dernière chose - dans l’image, les commandes "lim" sont en italique, alors qu’elles ne figuraient pas dans l’original. Pour résoudre ce problème, pour chaque "lim", placez le curseur juste après le "m" et appuyez sur Space faire en sorte que Word vérifie "lim" par rapport à son tableau de fonctions et ajuste le formatage. (Supprimez ensuite l'espace supplémentaire créé.)

3
cxw

Le serveur par défaut pour LaTeX dans Word semble ne plus être en cours d'exécution. Si vous êtes obligé d'utiliser Word (par exemple, pour collaborer avec des personnes moins techniques), j'utiliserais déjà TeXsword comme l'a déjà suggéré Adam. Vous devrez installer une distribution MikTex autonome, mais cette installation est facile de nos jours. Cela fonctionne avec mon Word 2016. Il n'a toujours pas l'air aussi bon qu'un vrai document LaTeX, mais il est plus facile à utiliser et plus malléable que l'éditeur d'équations dans Word.

1
mathisfun

J'ai écrit un outil pour générer MathML, j'ai amélioré le code Devid et ajouté quelques fonctions pour faciliter l'édition. Voici le code:

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

Lorsque vous copiez MathML dans Word, assurez-vous de copier du texte pur à l’aide de la touche Ctrl + Alt + V (ou d’abord, copiez-le dans le bloc-notes puis copiez-le dans Word).

1
stalendp

La réponse mentionnée ci-dessus est correcte, mais il existe également un raccourci intégré, Math Auto Correct. Cela ressemble beaucoup à LaTeX. Par défaut, il est inactif, mais vous pouvez l'activer et est très utile si vous voulez écrire de grandes équations. Par exemple, si vous voulez taper H2 que vous avez juste à taper H_2 etc et de nombreuses autres options sont disponibles, comme pour le caractère en exposant suivant le signe caret (^) sera converti en exposant. Beaucoup de ces raccourcis sont couverts dans cette vidéo ou vous pouvez simplement rechercher Comment insérer une équation mathématique (comme LaTeX) dans Ms-Office: Trucs et astuces sur Youtube.

Cette méthode sera particulièrement utile si vous êtes rapide à la frappe. De plus, cela vous fera gagner du temps perdu lors de la commutation entre le clavier et la souris et la recherche de l'option appropriée dans Word.

0
Prakash Gupta