일부 행을 강조 표시하기 위해 테이블에 직사각형 상자를 추가하고 싶습니다. 나는 사용하려고tikz
두 번째 코드를 사용하려고합니다.Harish Kumar의 답변비슷한 질문에. 그런데 아까 질문과 달리 를 사용하고 있는데 beamer
여러번 컴파일을 해보니 상자가 엉뚱한 곳에 나타납니다. 원하는 결과와 내가 얻은 결과가 담긴 사진을 첨부하겠습니다.
이것은 내 코드입니다.
\documentclass{beamer}
\usepackage[english]{babel}
\usepackage{tabularx,booktabs,dcolumn}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes,arrows,fit}
\pdfmapfile{+sansmathaccent.map}
\newcolumntype{d}{D..{-1}}
\newcounter{nodecount}
\newcommand\tabnode[1]{\addtocounter{nodecount}{1} \tikz \node (\arabic{nodecount}) {#1};}
% Some options common to all the nodes and paths
\tikzstyle{every picture}+=[remember picture,baseline]
\tikzstyle{every node}+=[inner sep=0pt,anchor=base,
minimum width=1.8cm,align=center,text depth=.25ex,outer sep=1.5pt]
\tikzstyle{every path}+=[thick, rounded corners]
\begin{document}
\begin{frame}
\frametitle{Title of my slide}
\begin{table}
\resizebox{\textwidth}{!}{
\begin{tabular}{c*{7}{d}}
\midrule
\multicolumn{1}{c}{$CCCCC$}
& \multicolumn{1}{c}{$CCCC$}
& \multicolumn{1}{c}{$CCCC$}
& \multicolumn{1}{c}{$CCC$}
& \multicolumn{1}{c}{$CCCCCCC$}
& \multicolumn{1}{c}{$CCCCC$}
& \multicolumn{1}{c}{$CCCCC$}
& \multicolumn{1}{c}{$CCCCCCC$}
\\
\midrule
\multicolumn{8}{c}{\textbf{Panel A: AAA}} \\
\midrule
\tabnode{0} & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & \tabnode{0.00} \\
\tabnode{} & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & \tabnode{0.00} \\
& & & & & & & \\
0 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
& & & & & & & \\
0 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
\multicolumn{8}{c}{\textbf{Panel B: BBB}} \\
\midrule
0 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
& & & & & & & \\
0 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
& & & & & & & \\
0 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
\midrule
\end{tabular}
}
\begin{tikzpicture}[overlay]
\node[draw=red,rounded corners = 1ex,fit=(1)(4),inner sep = 1pt] {};
\end{tikzpicture}
\end{table}
\end{frame}
\end{document}
답변1
수정된 버전은 다음과 같습니다.
변경사항:
.
newcolumntype
에 대한 명령도 수정했지만\tabnode
이 솔루션에서는 노드 내부의 숫자가 소수 구분 기호로 정렬되는 것을 허용하지 않았기 때문에 명령을 완전히 제거하고 다른 것으로 바꿨습니다. 아래를 참조하세요.또한 이제 값에 임의의 숫자를 추가하려고 하면 모두 구분 기호에 정렬되어야 합니다
.
. 방금 직접 테스트했습니다. 아래 출력에서 첫 번째 숫자는 길어서 정렬되지 않은 것처럼 보이지만 열에 숫자를 더 추가하면 정렬됩니다.나는 조정 된 버전을 사용했습니다Caramdir의 솔루션직사각형을 그리기 위한 것입니다. 기본적으로 표시를 해야 합니다.왼쪽 상단어디서
\marktopleft{a1}
a1
, 첫 번째 모양은오른쪽 하단와 함께\markbottomright{a1}
.각 모양은 이렇게 결합되어야 합니다.
모르는 경우에는 및
booktabs
도 지원됩니다 . 나는 그것들을 추가했습니다.\toprule
\bottomrule
Tikz의 경우와 마찬가지로 새 직사각형을 추가하면 위치를 수정하기 위해 두 번 조판해야 할 수도 있다는 점을 기억하세요.
출력은 다음과 같습니다.
코드는 다음과 같습니다.
\documentclass{beamer}
\usepackage[english]{babel}
\usepackage{lmodern}% http://ctan.org/pkg/lm
\usepackage{tikz}
\usepackage{booktabs,dcolumn}
\usepackage{tabularx}
\usetikzlibrary{matrix,shapes,arrows,fit,tikzmark}
\newcolumntype{.}{D{.}{.}{-1}}
\begin{document}
% Some options common to all the nodes and paths
\tikzset{
every picture/.style={remember picture,baseline},
every node/.style={anchor=base,align=center,outer sep=1.5pt},
every path/.style={thick},
}
\newcommand\marktopleft[1]{%
\tikz[overlay,remember picture]
\node (marker-#1-a) at (.1em,.3em) {};%
}
\newcommand\markbottomright[1]{%
\tikz[overlay,remember picture]
\node (marker-#1-b) at (.1em,.3em) {};%
\tikz[overlay,remember picture,inner sep=3pt]
\node[draw=red,rounded corners,fit=(marker-#1-a.north west) (marker-#1-b.south east)] {};%
}
\begin{frame}
\frametitle{Title of my slide}
%
\begin{table}
\resizebox{\textwidth}{!}{%
%
\begin{tabular}{.*{8}{.}}
\toprule
%
\multicolumn{1}{c}{$CCCCC$}
& \multicolumn{1}{c}{$CCCC$}
& \multicolumn{1}{c}{$CCCC$}
& \multicolumn{1}{c}{$CCC$}
& \multicolumn{1}{c}{$CCCCCCC$}
& \multicolumn{1}{c}{$CCCCC$}
& \multicolumn{1}{c}{$CCCCC$}
& \multicolumn{1}{c}{$CCCCCCC$}
\\
\midrule
\multicolumn{8}{c}{\textbf{Panel A: AAA}} \\
\midrule
\marktopleft{a1}134,343.50 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.030 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & 12510.00\markbottomright{a1} \\
& & & & & & & \\
0 & 103.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.440 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (10.00) \\
& & & & & & & \\
\marktopleft{b1}0 & 0.0435 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00)\markbottomright{b1} \\
& & & & & & & \\
\multicolumn{8}{c}{\textbf{Panel B: BBB}} \\
\midrule
0 & 0.00 & 404.00 & 0.34300 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (70.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
& & & & & & & \\
0 & 32.00 & 0.2300 & 54540.00 & 0.0045 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
& & & & & & & \\
0 & 0.00 & 10.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
& (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) & (0.00) \\
\bottomrule
\end{tabular}
}
\end{table}
\end{frame}
\end{document}