我正在尝试在文本中使用单字体,但似乎单字体在数学和文本环境中的字符映射有所不同。有什么解决办法吗?
\documentclass[fleqn]{article}
\usepackage{fontspec}
\setmonofont[Mapping=tex-text]{Courier New}
\begin{document}
\texttt{Farschad \% + - * \$ ! }
\[
\mathtt{Farschad \% + - * \$ !}
\]
\end{document}
答案1
\mathtt
仅更改数学字母。仅\texttt
在数学模式下使用。
\documentclass{article}
\begin{document}
$\texttt{foo-bar!}$
\end{document}
答案2
这可能会或可能不会满足您的所有要求。它需要amsmath
获取正确大小的下标和上标,并且您必须自己处理所有间距。
可能有一个适用于此的包,但我不知道。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Here is some computer code.
\texttt{%
a + b + c = 123$^{\texttt{2}}$ - x$_{\texttt{3}}$
}
That is all.
\end{document}
答案3
如果你正在使用,fontspec
你也应该使用mathspec
或unicode-math
。如果你使用,那么你可以像这样mathspec
设置字体:\mathtt
\documentclass[fleqn]{article}
\usepackage{mathspec}
\setmonofont[Mapping=tex-text]{Courier New}
\setmathtt{Courier New}
\begin{document}
\texttt{Farschad \% + - * \$ ! }
\[
\mathtt{Farschad \% + - * \$ !}
\]
\end{document}
类似地,如果您使用unicode-math
,那么:
\documentclass[fleqn]{article}
\usepackage{fontspec}
\usepackage[math-style=TeX]{unicode-math}
\setmonofont[Mapping=tex-text]{Courier New}
\setmathfont{latinmodern-math.otf}
\setmathfont[range=\mathtt->\mathup]{Courier New}
\begin{document}
\texttt{Farschad \% + - * \$ ! }
\[
\mathtt{Farschad \% + - * \$ !}
\]
\end{document}
不可否认,结果并不完美——没有办法改变非字母符号的字体——但这是一个开始。