Làm cách nào để vẽ bảng trong LaTeX?

Dec 18 2020

Làm cách nào để vẽ bảng trong LaTeX? Riêng nội dung cuối bảng?

Trả lời

10 Bernard Dec 18 2020 at 19:23

Bạn có thể làm điều đó với một mảng thông thường và pstricks: Tôi đã xác định các phần tử cuối cùng trong cột 5 và 8 là \rnodes và được kết nối với kết nối nút có liên quan. Lưu ý rằng phần pstricks của mã, được sử dụng theo cách này, không có thứ nguyên cho latex, vì vậy tôi đã thêm một hàng bổ sung chỉ chứa một khoảng trống theo chiều dọc, để ngăn chặn bất kỳ sự chồng chéo nào với văn bản sau.

\documentclass{article}
\usepackage{array}
\usepackage{bm}
\usepackage[semibold, condensed]{cabin}
\usepackage[usestackEOL]{stackengine}
\usepackage{pst-node}

\begin{document}

\[
\setlength{\extrarowheight}{3pt}
\begin{array}{ |*{8}{c|}}
\hline
\bm{A} & \bm{B} & \bm{C} & \bm{B\cap C}& \bm{A \cup ∪ (B \cap C)}& \bm{A \cup B}& \bm{A \cup C}& \bm{(A \cup B)\cap(A \cup C)} \\
\hline
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 \\
0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
1 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 1 & 1 & 1 \\
1 & 1 & 0 & 0 & 1 & 1 & 1 & 1 \\
1 & 1 & 1 & 1 & \rnode{A}{1} & 1 & 1 & \rnode{B}{1} \\
\hline
\multicolumn{8}{c}{\vspace{4ex}}%
\ncbar[linewidth=0.6pt, arrows=<->, arrowinset=0.12,angle=-90, nodesep=1.5ex]{A}{B}
\nbput{\sffamily\bfseries\small \Shortunderstack{Since these columns are identical, we conclude \\%
 that $\;\bm{A\cup(B\cap C)=(A \cup B) \cap (A \cup C)}$}}
\end{array}
\]

\end{document} 

7 Zarko Dec 18 2020 at 20:05

Hãy để tôi mở rộng bình luận của tôi để trả lời:

\documentclass{article}
\usepackage{bm}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
                tikzmark}
\usepackage{lipsum}

\begin{document}
\[
\renewcommand\arraystretch{1.2}
\begin{array}{ |*{8}{c|}}
    \hline
\bm{A} & \bm{B} & \bm{C} & \bm{B\cap C}& \bm{A\cup (B\cap C)}
    & \bm{A\cup B} & \bm{A\cup C} & \bm{(A\cup B)\cap (A \cup C)} \\
    \hline
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 & 1 & 0 \\
0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\
0 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
1 & 0 & 0 & 0 & 1 & 1 & 1 & 1 \\
1 & 0 & 1 & 0 & 1 & 1 & 1 & 1 \\
1 & 1 & 0 & 0 & 1 & 1 & 1 & 1 \\
1 & 1 & 1 & 1 & \tikzmarknode{a}{1} 
                  & 1 & 1 & \tikzmarknode{b}{1} \\
\hline
\end{array}
\vspace{4\baselineskip} % <--- space for arrow
\tikz[>=Straight Barb, overlay,remember picture]%
{
\draw[<->, semithick, shorten <=2ex, shorten >=2ex]
    (a) -- ++ (0,-1) -|
    node[align=center,font=\bfseries, pos=0.25, below]
        {Since these columns are identical, we conclude \\%
         that $\;\bm{A\cup(A\cap C)=(A\cup B)\cap (A\cup C)}$}
                        (b); 
}
\]
\lipsum[1]
\end{document}