Я пытаюсь написать следующее $T_E$
, но оно отображается курсивом. Я также пробовал, $\text{T_E}$
но LaTeX выдает мне ошибку.
решение1
решение2
Следующие примеры иллюстрируют несколько возможных решений.
\documentclass{scrartcl}
\usepackage{amsmath}
\newcommand{\testline}{Text $\mathrm{T}_\mathrm{E}$ or $\text{T}_\text{E}$ or $\textup{T}_\textup{E}$ or T\textsubscript E}
\begin{document}
\testline
\itshape\testline
\sffamily\upshape\testline
\itshape\testline
\rmfamily\upshape\bfseries%as before but bold
\testline
\itshape\testline
\sffamily\upshape\testline
\itshape\testline
\end{document}
Обратите внимание, что некоторые из них перенимают стиль и шрифт текста.
решение3
С современным набором инструментов
Пакет unicode-math
(который я лично рекомендую, хотя не все с этим согласны) \mathrm
по-прежнему поддерживается для обратной совместимости, но также поддерживается синоним \mathup
и тесно связанный с ним \symup
.
Если вы используете \symup
, вы можете указать другой прямой шрифт, отличный от обычного текстового шрифта, и от имен операторов, таких как log
, sin
и lim
. Мой пример — это установка идентичности Эйлера в стиле ISO, то есть с символическими константами, установленными прямым шрифтом, с константами e, π и i в Euler и всем остальным в Palatino. Это хороший пример того, почему вам может понадобиться другой прямой шрифт для математических переменных.
\documentclass[varwidth, preview]{standalone}
\usepackage{mathtools}
\usepackage[math-style=ISO]{unicode-math}
\setmainfont{TeX Gyre Pagella}
\defaultfontfeatures{Scale=MatchLowercase}
\setmathfont{Asana Math}
\setmathfont[range={up/{Latin,latin,Greek,greek},
bfup/{Latin,latin,Greek,greek}},
script-features={}, sscript-features={}
]{Neo Euler}
\newcommand\upe{\symup{e}}
\newcommand\upi{\symup{i}}
\begin{document}
\begin{align*}
\upe^{\upi x} &= \cos{x} + \upi \sin{x} \\
\upe^{\upi \uppi} + 1 &= 0
\end{align*}
\end{document}
(Если вы хотите сделать что-то подобное со шрифтом по умолчанию, вы можете попробовать Latin Modern Roman Unslanted или CMU Serif Upright Italic. Вот пример последнего:
\documentclass[varwidth, preview]{standalone}
\usepackage{amsmath}
\usepackage[math-style=ISO]{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=up/{Latin,latin,Greek,greek}]{CMU Serif Upright Italic}
\begin{document}
\begin{align*}
\symup{e}^{\symup{i} x} &= \cos{x} + \symup{i} \sin{x} \\
\symup{e}^{\symup{i \pi}} + 1 &= 0
\end{align*}
\end{document}
Команда \symup
предназначена для использования таким образом. Команды \mathrm
и \mathup
больше подходят для слов в уравнениях, например, для именования переменных TIME и ENERGY. Другой хорошей альтернативой для целых слов является использование \operatorname
from amsmath
. Это форматирует текст как \log
или\sin
, то есть вставляет пробелы как 2 logИкса не 2logx.
Аналогично обстоят дела \mathtt
и \mathsfup
с моноширинными и рублеными буквами.
Например, можно также сделать \newcommand\TIME{\mathop{\mbox{\scshape time}}}
так, чтобы ВРЕМЯ было написано маленькими заглавными буквами с пробелом оператора.
Вы можете сделать вертикальные математические переменные переменными по умолчанию, загрузив пакет с помощью \usepackage[math-style=upright]{unicode-math}
.
С устаревшим набором инструментов
Пакет eulerpx
реализует популярную комбинацию математических переменных Эйлера и текста Palatino, а также символы из newpxmath
. Если вам нужны вертикальные буквы в PDFLaTeX, то это, на мой взгляд, самый привлекательный пакет для них.
Пакет cfr-lm
делает вертикальный курсив легкодоступным; с этим пакетом вы можете писать, \DeclareRobusTCommand\mathui[1]{\mbox{\uishape #1}}
чтобы получить вертикальный курсив. Пример, который я привел ранее с \scshape
малыми капителями, тоже подойдет.
Чтобы отформатировать имя переменной шрифтом по умолчанию, хорошим вариантом будет \operatorname
from .amsmath
Для более сложного варианта использования существуют \DeclareMathAlphabet
и \DeclareMathSymbol
.