\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}