我想Foo<T>
在数学模式下排版泛型类型(例如);例如:
$\mathbf{Foo<T>} = R^3$
<
但是,和周围的间距>
当然是不正确的。有没有一种简单的方法可以让它们在这种情况下被视为正常字符?
答案1
您可以告诉 TeX<
和>
,在特定上下文中,应该发出\langle
和\rangle
,另外还应用于\bm
它们:
\documentclass{article}
\usepackage{amsmath,bm}
\makeatletter
\newcommand{\type}[1]{%
\begingroup
\activate@angle@brackets
\mathcode`<="8000 \mathcode`>="8000
\mathbf{#1}%
\endgroup
}
\newcommand{\activate@angle@brackets}{%
\begingroup\lccode`~=`< \lowercase{\endgroup\def~}{\bm{\langle}}
\begingroup\lccode`~=`> \lowercase{\endgroup\def~}{\bm{\rangle}}
}
\makeatother
\begin{document}
$\type{Foo<T>} = R^3 < x$ % second < is normal
For comparison: $\langle\mathbf{T}\rangle$
\end{document}