我有以下矩阵,我想将第 1 行第 2 列的条目旋转 90 度,以使其实际上看起来像一列。
\left[ \def\arraystretch{1.5}
\begin{array}{ccc|c}
&&&\\
&[X_{n-1}, A_{n-1}]& & \lambda_n\mathbf{y}- A_{n-1}\mathbf{y}\\
&&&\\\hline
&\lambda_n\mathbf{y}^T-\mathbf{y}^TA_{n-1}& & 0
\end{array}
\right] \]
输出如下
我使用了该\rotating
包,它确实有效,除了垂直居中存在问题。现在的代码是:
\[ \left[ \def\arraystretch{1.5}
\begin{array}{ccc|c}
&&&\\
&[X_{n-1}, A_{n-1}]& & \text{\begin{sideways}$\lambda_n\mathbf{y}- A_{n-1}\mathbf{y}$\end{sideways}}\\
&&&\\\hline
&\lambda_n\mathbf{y}^T-\mathbf{y}^TA_{n-1}& & 0
\end{array}
\right]\]
输出如下:
我该如何调整它以使 (1,1) 条目仍然居中?或者换句话说,我该如何定义 (1,2) 条目的旋转锚点?我知道 tikz 可以轻松做到这一点,但如果可以使用 Latex 中的简单命令来完成,我会尽量避免使用 tikz。
答案1
我会用\rotatebox
,当然假设你真的想要旋转这个东西。
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\[
\left[
\begin{array}{c|c}
\\ \relax
[X_{n-1}, A_{n-1}] & \rotatebox[origin=c]{90}{$\lambda_n\mathbf{y}- A_{n-1}\mathbf{y}$}\\
\\
\hline
\\[-1ex]
\lambda_n\mathbf{y}^T-\mathbf{y}^TA_{n-1}& 0 \\
\end{array}
\right]
\]
\end{document}
答案2
我使用了\rotcell
来自的命令makecell
,并做了一些调整:
\documentclass[a4paper, 11pt]{book}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{rotating, makecell}
\begin{document}
\[\setlength\rotheadsize{24pt}\renewcommand{\arraystretch}{1.25}\left[
\begin{array}{ccc|c}
& & & \\
& [X_{n-1}, A_{n-1}] & & \rotcell{\makebox[24pt]{$ \lambda_n\mathbf{y}- A_{n-1}\mathbf{y} $}} \\
& & & \\
\hline\
& \lambda_n\mathbf{y}^T-\mathbf{y}^TA_{n-1} & & 0
\end{array}
\right] \]
\end{document}