`longtable' の配置

`longtable' の配置
\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. 3列目(出力列)では、括弧が上と下の水平線に触れています
  2. また、中央の列では、行が左揃えになっていません。これらの問題をどのように解決すればよいでしょうか?

答え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 が提供する 2 つの主要なマクロ (\hline\cline) は、特に洗練されているわけではありません。特に、 と で描かれた線\hlineと、\clineその線の上または下の素材との間隔が、ひどく不十分であることがよくあります。あなた自身もこれに遭遇したことがあるのではないでしょうか。

さて、この問題を解決するために「応急処置」を試みることもできます。それは、手動で、さまざまな行の上または下に垂直の空白を挿入することです。私は、まったく異なる方法を検討することをお勧めします。ブックタブ\topruleパッケージをインストールして、ユーザー レベルのマクロ、、、、および の\midrule使い方を学習してください。空白は\bottomrule、黒線と同じくらい視覚的な区切りを形成するのに効果的です。パッケージのマクロを使用することの嬉しい副作用は、フォローアップのコメントで言及しているような視覚的な書式設定を検討する必要がほとんどなくなることです。\cmidrule\addlinespacebooktabs

ああ、縦線をすべて取り除くことも、よく知っておくべきものです。信じてください、縦線がなくても困ることはありません。

ここに画像の説明を入力してください

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

関連情報