[Tex/LaTex] How to break large table across multiple frames(slides) in beamer

beamertables

\begin{frame}[allowframebreaks]{CLI Protocol}
\begin{center}
    \footnotesize

    \begin{table}
        \begin{tabular}{|>{\bfseries \ttfamily}c|>{\ttfamily}c|L{12cm}|} \hline
            \multicolumn{1}{|c}{\bfseries Definition}
                & \multicolumn{1}{|c|}{\bfseries Protocol}
                & \multicolumn{1}{c|}{\bfseries Desc} \\ \hline
            GLUSTER\_CLI\_PROBE               & CLI\_PROBE
                & Desc \\ \hline
            GLUSTER\_CLI\_CREATE\_VOLUME      & CLI\_CREATE\_VOLUME
                & Desc \\ \hline
            GLUSTER\_CLI\_DEFRAGE\_VOLUME     & CLI\_DEFRAG\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_DEPROBE             & FRIEND\_REMOVE
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_LIST\_FRIENDS       & LIST\_FRIENDS
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_UUID\_RESET         & UUID\_RESET
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_UUID\_GET           & UUID\_GET
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_START\_VOLUME       & START\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_STOP\_VOLUME        & STOP\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_DELETE\_VOLUME      & DELETE\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GET\_VOLUME         & GET\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_ADD\_BRICK          & ADD\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_ATTACH\_TIER        & ATTACH\_TIER
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_REPLACE\_BRICK      & REPLACE\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_REMOVE\_BRICK       & REMOVE\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_LOG\_ROTATE         & LOG FILENAME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SET\_VOLUME         & SET VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SYNC\_VOLUME        & SYNC\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_RESET\_VOLUME       & RESET\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_FSM\_LOG            & FSM\_LOG
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GSYNC\_SET          & GSYNC\_SET
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_PROFILE\_VOLUME     & STATS\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_QUOTA               & QUOTA
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GETWD               & GETWD
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_STATUS\_VOLUME      & STATUS\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_MOUNT               & MOUNT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_UMOUNT              & UMOUNT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_HEAL\_VOLUME        & HEAL\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_STATEDUMP\_VOLUME   & STATEDUMP\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_LIST\_VOLUME        & LIST\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_CLRLOCKS\_VOLUME    & CLEARLOCKS\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_COPY\_FILE          & COPY\_FILE
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SYS\_EXEC           & SYS\_EXEC
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SNAP                & SNAP
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_BARRIER\_VOLUME     & BARRIER\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GET\_VOL\_OPT       & GET\_VOL\_OPT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_BITROT              & BITROT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GET\_STATE          & GET\_STATE
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_RESET\_BRICK        & RESET\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_TIER                & TIER
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_REMOVE\_TIER\_BRICK & REMOVE\_TIER\_BRICK
                & ᅟDesc \\ \hline
        \end{tabular}

        \caption{RPC Services - CLI}
        \label{tab:cli-rpc-services}
    \end{table}
\end{center}
\end{frame}

I want to place this large table across multiple frames but when I build my script with this code, it shows one empty frame and then this table that not breaks multiple frames.

I tried to set '[allowframebreaks]' but which is not applied.

Isn't there anything I have get to try?

Best Answer

Use package longtable and replace tabular by longtable. See the linked docs for further detail.

\documentclass{beamer}
\usepackage{array}
\usepackage{longtable}
\newcolumntype{L}[1]{>{\flushleft\arraybackslash}p{#1}}
\begin{document}

\begin{frame}[allowframebreaks]{CLI Protocol}
\begin{center}
    \footnotesize

    \begin{table}
        \begin{longtable}{|>{\bfseries \ttfamily}c|>{\ttfamily}c|L{1.5cm}|} \hline
            \multicolumn{1}{|c|}{\bfseries Definition}
                & \multicolumn{1}{c|}{\bfseries Protocol}
                & \multicolumn{1}{c|}{\bfseries Desc} \\ \hline
            GLUSTER\_CLI\_PROBE               & CLI\_PROBE
                & Desc \\ \hline
            GLUSTER\_CLI\_CREATE\_VOLUME      & CLI\_CREATE\_VOLUME
                & Desc \\ \hline
            GLUSTER\_CLI\_DEFRAGE\_VOLUME     & CLI\_DEFRAG\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_DEPROBE             & FRIEND\_REMOVE
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_LIST\_FRIENDS       & LIST\_FRIENDS
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_UUID\_RESET         & UUID\_RESET
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_UUID\_GET           & UUID\_GET
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_START\_VOLUME       & START\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_STOP\_VOLUME        & STOP\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_DELETE\_VOLUME      & DELETE\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GET\_VOLUME         & GET\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_ADD\_BRICK          & ADD\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_ATTACH\_TIER        & ATTACH\_TIER
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_REPLACE\_BRICK      & REPLACE\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_REMOVE\_BRICK       & REMOVE\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_LOG\_ROTATE         & LOG FILENAME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SET\_VOLUME         & SET VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SYNC\_VOLUME        & SYNC\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_RESET\_VOLUME       & RESET\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_FSM\_LOG            & FSM\_LOG
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GSYNC\_SET          & GSYNC\_SET
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_PROFILE\_VOLUME     & STATS\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_QUOTA               & QUOTA
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GETWD               & GETWD
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_STATUS\_VOLUME      & STATUS\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_MOUNT               & MOUNT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_UMOUNT              & UMOUNT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_HEAL\_VOLUME        & HEAL\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_STATEDUMP\_VOLUME   & STATEDUMP\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_LIST\_VOLUME        & LIST\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_CLRLOCKS\_VOLUME    & CLEARLOCKS\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_COPY\_FILE          & COPY\_FILE
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SYS\_EXEC           & SYS\_EXEC
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_SNAP                & SNAP
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_BARRIER\_VOLUME     & BARRIER\_VOLUME
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GET\_VOL\_OPT       & GET\_VOL\_OPT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_BITROT              & BITROT
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_GET\_STATE          & GET\_STATE
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_RESET\_BRICK        & RESET\_BRICK
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_TIER                & TIER
                & ᅟDesc \\ \hline
            GLUSTER\_CLI\_REMOVE\_TIER\_BRICK & REMOVE\_TIER\_BRICK
                & ᅟDesc \\ \hline
        \end{longtable}

        \caption{RPC Services - CLI}
        \label{tab:cli-rpc-services}
    \end{table}
\end{center}
\end{frame}
\end{document}
Related Question