Добавление прямоугольного ящика с tikz к столу (проектор)

Добавление прямоугольного ящика с tikz к столу (проектор)

Я хотел бы добавить прямоугольный блок в свою таблицу, чтобы выделить некоторые строки. Я пытаюсь использовать tikzвторую часть кода изОтвет Хариша Кумарана аналогичный вопрос. Однако, в отличие от предыдущего вопроса, я использую 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

Вот исправленная версия.

Изменения:

  1. Исправлен ваш newcolumntype. Я также исправил команду для \tabnode, но это решение не позволяло числам внутри узла выравниваться по десятичному разделителю, поэтому я вообще удалил команду и заменил ее чем-то другим, см. ниже.

    Более того, теперь, если вы попробуете добавить случайные числа к вашим значениям, они все должны быть выровнены по разделителю ., я только что проверил это сам. В выводе ниже первое число длинное и, похоже, не выровнено, но если вы добавите больше чисел в столбец, они выровняются.

  2. Я использовал измененную версиюРешение Карамдирадля рисования прямоугольника. В основном вам нужно отметитьверхний левыйс \marktopleft{a1}гдеa1 находится первая форма, например, иНижний правыйс \markbottomright{a1}.

    Каждую форму необходимо соединить таким образом.

  3. Если вы не знаете, 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}

Связанный контент