\documentclass[12pt] {article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{longtable}
\begin{document}
\begin{longtable}{|c|c|c|}
\hline
\pmb{Operation} & \pmb{Codes} & \pmb{Output}\\\hline
\endhead
\multirow{3}{*}{Transpose} &{\fontfamily{qcr}\selectfont A=Matrix([[1,2,3],[3,2,1],[1,1,5]])} & \multirow{3}{*}{$\left(
\begin{matrix}
1 &2 &3\\
3 &2 &1\\
1 &1 &5
\end{matrix}
\right)$}\\
& {\fontfamily{qcr}\selectfont B=A.transpose()} &\\
& {\fontfamily{qcr}\selectfont show(B)} &\\\hline
\multirow{2}{*}{Determinant} &{\fontfamily{qcr}\selectfont A=Matrix([[1,2,3],[3,2,1],[1,1,5]])} & \multirow{2}{*}{-16}\\
& {\fontfamily{qcr}\selectfont A.det()} & \\\hline
\multirow{3}{*}{Adjoint} &{\fontfamily{qcr}\selectfont A=Matrix([[1,2,3],[3,2,1],[1,1,5]])} & \multirow{3}{*}{$\left(
\begin{matrix}
1 &2 &3\\
3 &2 &1\\
1 &1 &5
\end{matrix}
\right)$}\\
& {\fontfamily{qcr}\selectfont B=A.adjugate()} &\\
&{\fontfamily{qcr}\selectfont show(B)} &\\\hline
\end{longtable}
\end{document}
通过我的编码可以看出
- 在第三列(输出列),然后括号接触顶部和底部的水平线
- 中间一列的行也没有左对齐。我该如何解决这些问题?
答案1
这是一个不需要所有这些\fontfamily{qcr}\selectfont
指令的解决方案。
\documentclass[12pt]{article}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{multirow}
%%%\usepackage{multicol} % not needed
\usepackage{longtable}
% new:
\usepackage{array,courier}
\begin{document}
\begin{longtable}{| l | >{\ttfamily}l | c |}
\hline
\textbf{Operation} & \multicolumn{1}{c|}{\textbf{Codes}} & \textbf{Output}\\
\hline
\endhead
% body of table:
\multirow{3}{*}{Transpose} &
A=Matrix([[1,2,3],[3,2,1],[1,1,5]]) &
\multirow{3}{*}{\small $
\begin{pmatrix}
1 &2 &3\\
3 &2 &1\\
1 &1 &5
\end{pmatrix}
$} \\
& B=A.transpose() & \\
& show(B) & \\
\hline
\multirow{2}{*}{Determinant} &
A=Matrix([[1,2,3],[3,2,1],[1,1,5]]) &
\multirow{2}{*}{$-16$}\\
& A.det() & \\
\hline
\multirow{3}{*}{Adjoint} &
A=Matrix([[1,2,3],[3,2,1],[1,1,5]]) &
\multirow{3}{*}{\small $
\begin{pmatrix}
1 &2 &3\\
3 &2 &1\\
1 &1 &5
\end{pmatrix}
$} \\
& B=A.adjugate() & \\
& show(B) & \\
\hline
\end{longtable}
\end{document}
附录回答 OP 的后续问题:LaTeX 提供的两个用于在表格结构中绘制水平线的主要宏 --\hline
和\cline
-- 并不是特别复杂。特别是,\hline
和绘制的线条\cline
与线条上方/下方的材料之间的间距通常非常不足。你自己也遇到过这种情况,不是吗?
现在,可以尝试“临时方法”来解决这个问题,即手动在各个行的上方或下方插入一些垂直空白填充。我建议您考虑做一些非常不同的事情:加载书签包并学习使用其用户级宏:、、、\toprule
和。空格在形成视觉分隔符方面与黑线一样有效。使用该包的宏的一个令人高兴的副作用是,几乎没有必要考虑参与您在后续评论中提到的那种视觉格式。\midrule
\bottomrule
\cmidrule
\addlinespace
booktabs
哦,摆脱所有垂直规则也是你应该非常熟悉的事情。相信我,那些垂直线不会被错过。
\documentclass[12pt]{article}
\usepackage{geometry}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{multirow}
%%%\usepackage{multicol} % not needed
\usepackage{longtable}
% new:
\usepackage{array,courier,booktabs}
\begin{document}
\begin{longtable}{@{} l >{\ttfamily}l c @{}}
\toprule
\textbf{Operation} &
\multicolumn{1}{c}{\textbf{Codes}} &
\textbf{Output}\\
\midrule
\endhead
\bottomrule
\endlastfoot
% body of table:
\multirow{3}{*}{Transpose} &
A=Matrix([[1,2,3],[3,2,1],[1,1,5]]) &
\multirow{3}{*}{$
\begin{pmatrix}
1 &2 &3\\
3 &2 &1\\
1 &1 &5
\end{pmatrix}$} \\
& B=A.transpose() &\\
& show(B) & \\
\addlinespace
\multirow{2}{*}{Determinant} &
A=Matrix([[1,2,3],[3,2,1],[1,1,5]]) &
\multirow{2}{*}{$-16$}\\
& A.det() & \\
\addlinespace
\multirow{3}{*}{Adjoint} &
A=Matrix([[1,2,3],[3,2,1],[1,1,5]]) &
\multirow{3}{*}{$
\begin{pmatrix}
1 &2 &3\\
3 &2 &1\\
1 &1 &5
\end{pmatrix}$}\\
& B=A.adjugate() & \\
& show(B) & \\
\end{longtable}
\end{document}