
решение1
Два варианта с автоматическим изменением размера N
:
\documentclass{article}
\usepackage{amstext}% or package amsmath for \text
\newcommand*{\ttmath}[1]{%
\texttt{\mdseries\upshape#1}%
}
\begin{document}
$2^{\verb|N|-1}$ {\small(\verb|\verb|)}
$2^{\texttt{N}-1}$ {\small(\verb|\texttt| with \verb|amstext|)}
\textit{Italics $2^{\ttmath{N}-1}$ context} {\small(macro \verb|\ttmath|)}
$2^{\mathtt{N}-1}$ {\small(\verb|\mathtt|)}
\end{document}
Замечания:
\texttt
здесь работает с автоматическим изменением размера в математическом режиме, поскольку он внутренне использует\nfss@text
то, что переопределено в пакетеamstext
как\text
.Макрос
\ttmath
также сбрасывает атрибуты серии и формы шрифта, чтобы они стали независимыми от текущих настроек шрифта текста.\mathtt
является наиболее эффективной командой и использует настроенный шрифт пишущей машинки для математики. Это часто то же самое, что и\ttfamily
. Некоторые пакеты шрифтов переключают оба шрифта одновременно, какlmodern
, другие — нет, какberamono
. Поэтому от настройки шрифта зависит,\mathtt
можно ли использовать вместо\verb
или\texttt
.
решение2
Ядро LaTeX определяет \mathtt
и больше ничего не нужно. Кстати, \verb
не следует злоупотреблять для печати шрифтом пишущей машинки, обычно этого \texttt
достаточно, тогда как \verb
для печати кода TeX со специальными символами нужно.
\documentclass{article}
\begin{document}
$2^{\mathtt{N}-1}$
$2^{\mathtt{N}^{\mathtt{M}}}$
\end{document}
Вероятно, будет полезно определить свою собственную семантическую команду, например
\newcommand{\tvar}[1]{\mathtt{#1}}
и используйте $2^{\tvar{N}}$
. Таким образом, вы не привязаны к конкретному представлению, которое вы можете изменить в любое время, просто изменив определение.
Может случиться, что выбор другого набора шрифтов не обновится \mathtt
. Решение простое, и его преимущество перед другими решениями заключается \text
в том, что его можно легко адаптировать для поддержки \boldmath
из коробки.
\documentclass{article}
\usepackage[T1]{fontenc} % necessary for beramono
\usepackage{amsmath}
\usepackage{beramono}
% update \mathtt to use the same font as \ttfamily
\DeclareMathAlphabet{\mathtt}{\encodingdefault}{\ttdefault}{m}{n}
% if the monospaced font also supports boldface (b or bx)
\SetMathAlphabet{\mathtt}{\encodingdefault}{\ttdefault}{b}{n}
\newtheorem{theorem}{Theorem}
\begin{document}
$2^{\mathtt{N}-1}$ and \texttt{N}
\begin{theorem}
Something about $2^{\mathtt{N}-1}$
\end{theorem}
\end{document}
Примечание
Использование \texttt
является неправильным, как показано в следующем коде.
\documentclass{article}
\usepackage{amsmath}
\newcommand{\tvar}[1]{\mathtt{#1}}
\newtheorem{theorem}{Theorem}
\begin{document}
\section*{Right}
$2^{\tvar{N}-1}$
\begin{theorem}
Something about $2^{\tvar{N}-1}$
\end{theorem}
\section*{Wrong}
$2^{\texttt{N}-1}$
\begin{theorem}
Something about $2^{\texttt{N}-1}$
\end{theorem}
\end{document}
решение3
Решение с использованием этого ответа Вернера:https://tex.stackexchange.com/a/120694/120578
\documentclass{article}
\usepackage{verbatim}% http://ctan.org/pkg/verbatimes
\usepackage{pgf}
\makeatletter
\newcommand{\mverbatimfont}{\def\verbatim@font{\ttfamily}}%
\makeatother
\def\verbatimfont#1{\pgfmathsetmacro\bls{1.2*#1}\mverbatimfont\fontsize{#1}{\bls}\selectfont}
\begin{document}
\verbatimfont{6}
$2^{\verb|N|-1}$
\verbatimfont{9}
$\verb|N|^{\verbatimfont{6}\verb|N|-1}$
\end{document}
Выход: