Benutzerdefinierte Mathematica-Verknüpfung: Kopieren Sie als $ \ LaTeX $

  • Wenn Sie

    bearbeiten

    Wolfram Research\Mathematica\8.0\SystemFiles\FrontEnd\TextResources\Windows\MenuSetup.tr

    -Datei können Sie Strg + Umschalt + C nicht einfach kopieren, sondern im Format $ \ LaTeX $. Sehr hilfreich. Suchen Sie nach der Zeile in der Datei mit der Aufschrift "& amp; LaTeX" und der Zeile mit der Angabe "Nur Text & Text". Die & amp; Zeichen gibt den Unterstrich im Menü an. Ersetzen Sie diese dann durch Folgendes:

     MenuItem["Plain &Text", FrontEnd`CopySpecial["PlainText"]],
             MenuItem["&LaTeX", KernelExecute[ToExpression["FrontEnd`CopyAsTeX[]"]],
             MenuKey["C", Modifiers->{"Control", "Shift"}],
             MenuEvaluator -> Automatic],
     

    Starten Sie Mathematica neu und Sie sind fertig.

    Ich habe die Frage, ob jemand weiß, was MenuEvaluator macht, oder ob Sie wissen, wie diese Änderung von einem Notebook in Mathematica aus vorgenommen wird, anstatt die Konfigurationsdatei zu ändern.

    05 February 2012
    helloandreDrahcir
1 answer
  • MenuEvaluator->Automatic verwendet den Standardkernel, um den Ausdruck im Menü auszuwerten. MenuEvaluator->None ist die Standardeinstellung, was bedeutet, dass das Frontend den Ausdruck "auswertet" (was im Allgemeinen bedeutet, dass der Ausdruck nur aus FE-Token und -Paketen besteht). Sie können auch MenuEvaluator->"kernelname" verwenden, um auf einen expliziten Kernel zu verweisen.

    Um die gewünschte Art der Menübearbeitung auszuführen, müssen Sie die Menüs vollständig neu schreiben. Sie können das Menü aus dem Layout heraus lesen, es nach Belieben anpassen und dann an die FE in ResetMenusPacket senden. Hier ein Beispiel:

     Begin["System`"];
    menu = Get[
       FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", 
         "TextResources", "Windows", "MenuSetup.tr"}]];
    End[];
    menu = menu /. {MenuItem["Plain &Text", ___] -> 
         MenuItem["Plain &Text", FrontEnd`CopySpecial["PlainText"]], 
        MenuItem["&LaTeX", ___] -> 
         MenuItem["&LaTeX", 
          KernelExecute[ToExpression["FrontEnd`CopyAsTeX[]"]], 
          MenuKey["C", Modifiers -> {"Control", "Shift"}], 
          MenuEvaluator -> Automatic]};
    FrontEndExecute[FrontEnd`ResetMenusPacket[menu]]
     

    Einige Anmerkungen zu diesem Code:

    • Eine Reihe von Symbolen im Menüausdruck befinden sich nicht im System` -Kontext, müssen aber sein, damit dies funktioniert. Dies ist der Grund für die Aufrufe von Begin / End.
    • Damit dieser Code unter Linux funktioniert, ersetzen Sie "Windows" durch "X"
    • Damit dieser Code auf dem Mac funktioniert, ersetzen Sie "Windows" durch "Macintosh", "Control" durch "Command", und entfernen Sie das kaufmännische Und MenuItem wurde eingeführt)

    Zum Schluss, und dies ist wirklich wichtig, müssen Sie mit diesem Zeug spielen eine neue Sitzung von Mathematica, die häufig entweder Ihre Arbeit speichert oder in die Zwischenablage kopiert. Wenn Sie Fehler machen, können Sie alle Ihre Menüs verlieren, einschließlich der Möglichkeit zum Auswerten, Speichern oder Kopieren. Sie können die Wiederherstellung möglicherweise über das Kontextmenü durchführen, aber es ist wahrscheinlich sicherer, sie einfach zu beenden und neu zu starten.

    Wenn Sie die Menüs nicht wirklich geschlossen haben, können Sie sie auf den Standard zurücksetzen durch Auswertung:

     FrontEndExecute[FrontEnd`ResetMenusPacket[{Automatic}]]
     

    Eine andere Option ist, einfach Ihre eigene MenuSetup.tr zu erstellen, die in $UserBaseDirectory oder steht $BaseDirectory, an derselben Stelle befindet es sich jetzt in $InstallationDirectory. Im Allgemeinen empfehle ich dies jedoch nicht, da sonst alle Kopien von Mathematica, einschließlich früherer und zukünftiger Versionen, fündig werden, was zu hoffnungsloser Verwirrung führen kann.

    06 February 2012
    John FultzJo Ja