'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. 세 번째 열(출력 열)에서 괄호가 위쪽 및 아래쪽 수평선에 닿았습니다.
  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에서 제공하는 두 가지 주요 매크로( \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}

관련 정보