我的文档中有很多mathtools
矩阵需要右对齐(其他矩阵则需要其他对齐):
\begin{bmatrix*}[r]
1 & 0 & 0 \\
7 & 1 & 0 \\
\end{bmatrix*}
...
文档mathtools
解释说,smallmatrix
环境允许使用 更改默认对齐方式smallmatrix-align=<c,l,r>
。是否有这样的选项/命令可以更改显示样式矩阵的默认对齐方式?
答案1
一些魔法!
\documentclass{article}
\usepackage{mathtools}
\makeatletter
\newcommand\patcher[1]{%
\expandafter\edef\csname#1*\endcsname{%
\expandafter\expandafter\expandafter\p@tcher\csname#1*\endcsname
}%
}
\newcommand\p@tcher[4]{\unexpanded{#1#2#3}{r}}
\makeatother
\patcher{bmatrix} % repeat for the other matrix types you need
\begin{document}
\[
\begin{bmatrix*}
111 & 11 & 1 \\
1 & 1 & 11
\end{bmatrix*}
+
\begin{bmatrix*}[c]
111 & 11 & 1 \\
1 & 1 & 11
\end{bmatrix*}
+
\begin{bmatrix*}[l]
111 & 11 & 1 \\
1 & 1 & 11
\end{bmatrix*}
\]
\end{document}
这个魔术利用了这样一个事实:和朋友的定义bmatrix*
本质上是相同的;宏\bmatrix*
(仅通过可用\csname
)扩展为
\MH_nospace_protected_testopt:n \bmatrix* \\bmatrix* {c}
(六个标记)。因此,内部宏\p@tcher
将第四个参数更改为,{r}
并\patcher
使用新的替换文本重建宏。