![转置正确(或大多数同意)符号问题](https://linux22.com/image/430334/%E8%BD%AC%E7%BD%AE%E6%AD%A3%E7%A1%AE%EF%BC%88%E6%88%96%E5%A4%A7%E5%A4%9A%E6%95%B0%E5%90%8C%E6%84%8F%EF%BC%89%E7%AC%A6%E5%8F%B7%E9%97%AE%E9%A2%98.png)
我写这个问题是为了跟进这个问题的讨论在这里
其中,得票最多的答案建议使用以下可能的转置符号
我主要关心的是以下几点:
当我使用它时会出现问题
$A^{T}$
,因为我有一个矩阵$T$
,而我最终可能会得到$T^{T}$
误导性的结果,并且无法避免这种情况。这
$A^{\top}$
是有问题的,因为它类似于切线部分符号。似乎
$\mathsf{T}$
显示出一个明显的大写字母 T,类似于 (1) 中的问题它
$A^{intercal}$
看起来几乎完美,然而,我有一些顾虑,即两个问题:
A)我们如何减少在这种情况下,矩阵 A 和转置符号之间的间距
$\intercal$
看起来太大了?
乙)我们如何调整转置符号的高度
$\intercal$
?因为它在这里看起来太低了,这是推荐的参见以下参考资料第 30 页但没有进行任何演示。
我想补充一点,我只在想要绘制矩阵并用大写字母定义它时才使用粗体大写字母,而在编写证明时则不使用。因此,我的问题严格涉及在编写表达式、证明时转置符号的编写……
答案1
但是,如果你想表示转置矩阵,我建议你定义一个宏,之后可以更改它。我不确定是否有一种简单的方法可以在任何情况下获得正确的水平位置。我会使用一个可选参数,如下所示:
\documentclass{article}
\usepackage{amssymb}
\makeatletter
\newcommand*{\transpose}{\bgroup\@transpose}
\newcommand*{\@transpose}[1][0]{\mathpalette\@@transpose{#1}\egroup}
\newcommand*{\@@transpose}[2]{\setbox0=\hbox{\m@th$#1\mkern-#2mu\intercal$}\raise\dp0\box0}
\makeatother
\begin{document}
% With \intercal symbol
$A^{\intercal}$ $\mathbf{A}^\intercal$
% With \transpose
$A^\transpose$
$\mathbf{A}^{\transpose}$
$\mathbf{A}^{\transpose[4]}$
$M^\transpose$
$\mathbf{M}^\transpose$
\end{document}
A^\transpose
为了工作,需要三重宏定义(尽管这被认为是不好的风格)。
或者,简化版本仅区分带星号/不带星号:精细控制较少,但打字也较少。
\documentclass{article}
\usepackage{amssymb}
\makeatletter
\newcommand*{\transpose}{\bgroup\@ifstar{\mathpalette\@transpose{\mkern-3.5mu}\egroup}{\mathpalette\@transpose\relax\egroup}}
\newcommand*{\@transpose}[2]{\setbox0=\hbox{\m@th$#1#2\intercal$}\raise\dp0\box0}
\makeatother
\begin{document}
$A^\transpose$
$\mathbf{A}^\transpose$
$\mathbf{A}^{\transpose*}$
% $\mathbf{A}^\transpose*$ % works too but it's very very bad style
$M^\transpose$
$\mathbf{M}^\transpose$
$\mathbf{L}^\transpose$
$\mathbf{L}^{\transpose*}$
\end{document}
顺便说一句,我完全同意 egreg 的评论,即在论文中改变符号是一件非常邪恶的事情(好吧,他并没有确切地说那,但我确信他是这么想的:-)
)。