5

How can I make a stylesheet where inline cells are styled like input cells? By "similar", I mean the same font and syntax highlighting.

I have even tried copying all settings from Input cell of Core.nb to a private style definition for InlineCell, but had no luck.

Carl Woll
  • 130,679
  • 6
  • 243
  • 355
Naitree
  • 1,235
  • 9
  • 20

3 Answers3

3

You can change the DefaultInlineFormatType for "Text" cells to DefaultInputInlineFormatType (i.e., "StandardForm"), and change the style "InlineCell" to inherit options from "Input":

SetOptions[
    EvaluationNotebook[],
    StyleDefinitions -> Notebook[
        {
        Cell[StyleData[StyleDefinitions -> "Default.nb"]],
        Cell[StyleData["Text"], DefaultInlineFormatType -> System`DefaultInputInlineFormatType],
        Cell[StyleData["InlineCell", StyleDefinitions->StyleData["Input"]]]
        }
    ]
]

Here is screen capture from a notebook, showing a text cell with an inline cell, followed by a normal "Input" cell, so that you can compare them:

enter image description here

Carl Woll
  • 130,679
  • 6
  • 243
  • 355
3

It looked like I had misunderstood "syntax highlighting" in this context. What I need turned out to be ShowCodeAssist->True. Combining this and settings on font and others that looked relevant:

Cell[StyleData["InlineCell"],
ShowAutoStyles->True, 
ShowCodeAssist->True,
LanguageCategory->"Mathematica",
FormatType->"InputForm",
FontFamily->"Courier New", 
FontWeight->"Bold"]

I finally achieved what was almost what I was looking for.

Naitree
  • 1,235
  • 9
  • 20
1

You can't get syntax highlighting in an inline cell. Syntax highlighting is not a style, but a function of the front end's code editor, which is only active in Input cells. You can put text in a text cell into Input style. Select the text, then type Cmnd+9 (OS X) or Ctrl+9 (Windows).

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
  • thanks. Can I set upright font shape in stylesheet so that single character will not get automatically slanted? – Naitree Apr 18 '14 at 04:39
  • I just noticed that by typing Shift + Ctrl + I, inline cell can be converted to InputForm. Is there a way to automate this process? – Naitree Apr 18 '14 at 06:22