Как использовать sub и верхний индекс в тексте Mathematica, например: химические формулы? - PullRequest
6 голосов
/ 05 октября 2010

Это не совсем вопрос программирования, но он касается среды программирования, так что, надеюсь, не слишком уместен.Мне нужно иметь возможность писать химические формулы в тексте Mathematica (это конкретно о тексте, а не о вводе / коде).Что-то вроде: H 3 O + .Но Mathematica не может этого сделать.Если вы используете обычные функции sub / superscript или нажимаете Cntl-_ или Cntl-6, это переводит вас в «математический режим», даже когда вы находитесь в тексте, и поэтому буквы становятся курсивом, и между 3и О. Как это: H 3 O + .Некрасиво, особенно с более длинными химикатами.

Другие вещи в Mathematica работают как обычные текстовые процессоры - шрифты можно выделять курсивом, полужирным, большим, маленьким, цветным, но функции индекса и надстрочного индекса, общие для текстовых процессоров, по-видимому, отсутствуют.

Я что-то упустил?Я надеюсь, что так ...

спасибо,
Роб

Ответы [ 2 ]

5 голосов
/ 05 октября 2010

Вы можете использовать трюк, аналогичный тому, который использовался в LaTeX для печати подписок слева. То есть поместите индекс на объект без ширины.

Для входа в математический режим введите Cntl- (и для выхода введите Cntl-).

Прикрепите подсписок и верхний индекс к «null» или ⋮ ⋮ или ⋮ - ⋮ (где ⋮ = escape)

Вот как это выглядит - по сравнению с некоторыми выражениями в mathmode: the chemical formula for hydronium is HSubscript[[Null], 3]O[Null]^+

Я поместил выражение ячейки в гист для вас.

4 голосов
/ 05 октября 2010

В ChemData Mathematica использует контракты, такие как

 Style[
     Row[
          {Subscript["H",3],Superscript["O","+"]}
        ],
          Rule[ScriptBaselineShifts,{0.5`,0.75`}]
      ]

Пример:

alt text

НТН!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...