Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

The solution to this question on how to get latex code for a text cell (which Mathematica doesn't do correctly) was formulated as a palette but I need it as a keyboard shortcut.

How can I add an item to DefaultKeytranslations.tr that executes this solution's code? And in general, how does one construct a key command that executes arbitrary code, not just front-end packets and tokens?

share|improve this question
    
Did you see this mathematica.stackexchange.com/a/13992/29 ? Should work similarly for DefaultKeyTranslations.tr –  Rolf Mertig Nov 30 '12 at 14:30
add comment

1 Answer

up vote 6 down vote accepted

Think I figured it out: you can't use special characters like _ or ~~ in DefaultKeyTranslations.tr, everything has to be full-form.

    Item[KeyEvent["y", Modifiers -> {Control}], 
        FrontEndExecute @ Module[{nb, t},
            nb = NotebookCreate[Visible -> False];
            t = ExportString[NotebookRead[SelectedNotebook[]], "LaTeX"];
            t = StringTrim[StringReplace[t, 
                StringExpression[BlankSequence[], "\\begin{document}", 
              Pattern[txt, BlankSequence[]], "\\end{document}", BlankNullSequence[]] :> txt]];
            NotebookWrite[nb, Cell[t, "Text"]];
            SelectionMove[nb, All, Notebook];
            FrontEndTokenExecute[nb, "Copy"];
            NotebookClose[nb];
        ],
        MenuEvaluator -> Automatic 
    ],
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.