# Insert Sum template with limit tokens in text cells

I write up problem sets in Mathematica.

One thing that I haven't figured out is position limit tokens.

In a text cell (cmd+7), when I type "ESC sum ESC ^_ x", it comes up like $\sum_x$.

How do I make it look like $\displaystyle \sum_x$?

• Hm, normally Ctrl+4 (or some equivalent for your system) writes text directly underneath the previous token, but for the sum symbol specifically it still goes in a subscript after it. Is MaTeX an option for you? – Martin Ender Apr 7 '16 at 14:48
• Related: (40796). – Michael E2 Oct 3 '16 at 2:08

To get the "display form" placement of the summation limits, you have to use the low-level option LimitsPositioning -> False. Since this is inconvenient to enter manually, I defined a keyboard shortcut EscsumEsc to do this for you. I used a TemplateBox to define the shortcut, so that it creates a construct similar to what the existing shortcut EscsumtEsc does. But I only include a single entry for the lower limit, and one more for the upper limit:

ClearAll[mySum]
inlineSumAppearance[x_, y_] :=
TemplateBox[{x, y}, "mySum", DisplayFunction :> (
UnderoverscriptBox["\[Sum]", #1, #2,
LimitsPositioning -> False] &),
InterpretationFunction :> (RowBox[{"mySum", "[",
RowBox[{#1, ",", #2}], "]"}] &)]

mySum /: MakeBoxes[mySum[n_, k_], StandardForm] :=
inlineSumAppearance[ToBoxes[n], ToBoxes[k]]

SetOptions[EvaluationNotebook[],
InputAliases ->
DeleteDuplicates@
Join[{"sum" ->
inlineSumAppearance["\[SelectionPlaceholder]",
"\[Placeholder]"]},
InputAliases /.
Quiet[Options[EvaluationNotebook[], InputAliases]] /.
InputAliases -> {}]]


Now you can create a text cell and type something, like this:

Here, I entered the sum within an inline cell, by using the above shortcut.

I just saw that you may not need an upper limit. In that case, you could simplify my definition by omitting the overscript template:

ClearAll[mySimpleSum]
inlineSimpleSumAppearance[x_] :=
TemplateBox[{x}, "mySimpleSum", DisplayFunction :> (
UnderoverscriptBox["\[Sum]", #1, "",
LimitsPositioning -> False] &),
InterpretationFunction :> (RowBox[{"mySimpleSum", "[", #1, "]"}] &)]

mySimpleSum /: MakeBoxes[mySimpleSum[n_], StandardForm] :=
inlineSimpleSumAppearance[ToBoxes[n]]

SetOptions[EvaluationNotebook[],
InputAliases ->
DeleteDuplicates@
Join[{"ssum" ->
inlineSimpleSumAppearance["\[SelectionPlaceholder]"]},
InputAliases /.
Quiet[Options[EvaluationNotebook[], InputAliases]] /.
InputAliases -> {}]]


This was entered using the shortcut EscssumEsc. These new shortcuts are valid in the current notebook, and they don't modify the behavior of the existing EscsumtEsc (i.e., the built-in template will still adjust its indices when in inline mode).

The main ingredient here is the same as in this related question: How to make underscript like underscript in InlineFormula of lim in Notebook and (inline) Latex.