我正在写一个用粗体大写字母表示的矩阵的转置。当矩阵用 B 表示时,这看起来不错,但是当矩阵用 A 表示时,转置上标离字母 A 太远了。下面是一个 MWE 来说明我的意思:
\documentclass{article}
\usepackage{amssymb}
\begin{document}
\newcommand\T{{\hspace{-2pt}\intercal}}
\[
\mathbf{A}^\intercal,
\mathbf{B}^\intercal,
\mathbf{A}^\T,
\mathbf{B}^\T
\]
\end{document}
输出为:
处理此问题的一种方法是使用\hspace
将转置上标稍微向左移动,但这对 B 来说看起来不太好(如 MWE 中所示)。我可以定义两个不同的转置命令,其中一个用于 A 的转置,另一个用于 B 的转置。但是,没有更优雅、更有效的方法来处理这个问题吗?
答案1
您需要粗体罗马字体吗?bm
将提供粗体数学斜体,无需任何额外分组并提供更紧密的间距:
\documentclass{article}
\usepackage{amssymb,bm}
\begin{document}
\newcommand\T{{\hspace{-2pt}\intercal}}
\[
A^\intercal,
B^\intercal,
A^\T,
B^\T
\]
\[
\mathbf{A}^\intercal,
\mathbf{B}^\intercal,
\mathbf{A}^\T,
\mathbf{B}^\T
\]
\[
\bm{A}^\intercal,
\bm{B}^\intercal,
\bm{A}^\T,
\bm{B}^\T
\]
\end{document}
因此,如果您确实想要粗体罗马字体,那么我认为您需要稍微改变输入语法,并根据具体情况为每个字母添加字距:
\newcommand\TT[1]{%
\mathbf{#1}%
\def\tmp{#1}%
\def\tmpA{A}%
\ifx\tmp\tmpA\mkern-5mu\fi
^\intercal}
用法如下:
\[
\TT{A},
\TT{B}
\]