我正在尝试在 LaTeX 中排版一些高斯消元法的例子。我发现这个gauss
包使用起来非常简单,但不知道如何在列之间放一条垂直线。这是我目前所得到的(只是一个普通矩阵)
\documentclass[a4paper,12pt]{article}
\usepackage{gauss}
\usepackage{amsmath,amssymb}
\begin{document}
$\begin{gmatrix}[p]
2 & 0 & 1 & 1 & 0 & 0 \\
0 & 1 & 0 & 0 & 1 & 0 \\
0 & 0 & 3 & 0 & 0 & 1
\rowops
\mult{0}{\cdot \frac{1}{2}}
\end{gmatrix}$
\end{document}
答案1
您可以使用https://tex.stackexchange.com/a/146730/4427
\documentclass{article}
\usepackage{amsmath}
\usepackage{gauss}
% patch gauss macros for doing their work in `align'
% and other amsmath environments; see
% http://tex.stackexchange.com/questions/146532/
\usepackage{etoolbox}
\makeatletter
\patchcmd\g@matrix
{\vbox\bgroup}
{\vbox\bgroup\normalbaselines}% restore the standard baselineskip
{}{}
\makeatother
\newcommand{\BAR}{%
\hspace{-\arraycolsep}%
\strut\vrule % the `\vrule` is as high and deep as a strut
\hspace{-\arraycolsep}%
}
\begin{document}
\[
\begin{gmatrix}[p]
2 & 9 & 1 & \BAR & 1 & 0 & 0 \\
0 & 1 & 0 & \BAR & 0 & 1 & 0 \\
0 & 0 & 3 & \BAR & 0 & 0 & 1
\rowops
\mult{0}{\cdot \frac{1}{2}}
\end{gmatrix}
\]
\end{document}
答案2
不幸的是,gauss
软件包不提供使用垂直线分隔列的功能。我只是用了一个技巧,使用了\bigl|
3 次。
\documentclass[a4paper,12pt]{article}
\usepackage{gauss}
\usepackage{amsmath,amssymb}
\begin{document}
$\begin{gmatrix}[p]
2 & 0 & 1 &\bigl| & 1 & 0 & 0 \\
0 & 1 & 0 &\bigl| & 0 & 1 & 0 \\
0 & 0 & 3 &\bigl| & 0 & 0 & 1
\rowops
\mult{0}{\cdot \frac{1}{2}}
\end{gmatrix}$
\end{document}
答案3
另外,我建议你看一下好矩阵gauss
包?我以前用过埃格尔直到我发现 nicematrix 之前,我一直都在使用上述建议,而且我从未后悔过 :-)。它可以满足您的需求,还提供许多其他选项。以下是针对您的问题的建议解决方案:
\documentclass[a4paper,12pt]{article}
\usepackage{nicematrix}
\usepackage{amsmath,amssymb}
\begin{document}
$\begin{pNiceArray}{ccc|ccc}[last-col]
2 & 0 & 1 & 1 & 0 & 0 & \cdot \frac{1}{2}\\
0 & 1 & 0 & 0 & 1 & 0 \\
0 & 0 & 3 & 0 & 0 & 1
\end{pNiceArray}$
\end{document}
答案4
一种无需使用gauss
包而是使用简单功能的替代方案amsmath
。
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}
\begin{document}
\[\left(\begin{array}{ccc|ccc}
2 & 0 & 1 & 1 & 0 & 0 \\
0 & 1 & 0 & 0 & 1 & 0 \\
0 & 0 & 3 & 0 & 0 & 1
\end{array}\right)\begin{matrix} | \cdot \frac 12 \\ \\ \\ \end{matrix}\]
\end{document}