防止在长表 - 表格混合中分页

防止在长表 - 表格混合中分页

我非常喜欢这个网站设计的混合longtable环境tabulary,因此我开始专门使用它。

参考:

并且

我希望它能作为一个软件包正式发布。我可能还应该提到,我不熟悉 TeX 内在函数,所以不知道下面的代码是如何工作的,我只是把它复制粘贴在一起。

现在来谈谈问题。我需要使用多行。它建议使用 来防止多行行的分页符\\*。但是,它仍然在第一行之后中断(并且 \nopagebreak也无济于事)。

   \documentclass[papersize,paper=a4]{scrreprt}
\usepackage{longtable}
\usepackage{multirow}
\usepackage{tabulary}
%after gathering tthe code together
\makeatletter
\newcommand*\TY@cap@gobble[2][]{\\}% from ltxtable (adjusted)
\def\ltabulary{%
    \def\caption{% from ltxtable (adjusted)
        \@ifstar\TY@cap@gobble\TY@cap@gobble}
    \def\endfirsthead{\\}%
    \def\endhead{\\}%
    \def\endfoot{\\}%
    \def\endlastfoot{\\}%
    \def\tabulary{%
        \def\TY@final{%
            \def\endfirsthead{\LT@end@hd@ft\LT@firsthead}%
            \def\endhead{\LT@end@hd@ft\LT@head}%
            \def\endfoot{\LT@end@hd@ft\LT@foot}%
            \def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}%
            \longtable}%
        \let\endTY@final\endlongtable
        \TY@tabular}%
    \dimen@\columnwidth
    \advance\dimen@-\LTleft
    \advance\dimen@-\LTright
    \tabulary\dimen@}
\def\endltabulary{\endtabulary}
\makeatother
\makeatletter
\def\@cline#1-#2\@nil{%
    \omit
    \@multicnt#1%
    \advance\@multispan\m@ne
    \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
    \@multicnt#2%
    \advance\@multicnt-#1%
    \advance\@multispan\@ne
    \leaders\hrule\@height\arrayrulewidth\hfill
    \cr
    \noalign{\nobreak\vskip-\arrayrulewidth}}
\makeatother

\begin{document}
\vspace*{8cm}

\setlength{\tymin}{2.8cm}
\begin{ltabulary}{|L|L|L|L|}

    \caption{Befehle und Parameter des UART-Protokolls\label{tab:protokoll}}\\
    \hline 
    \textbf{Befehl} &\textbf{erster Parameter} &\textbf{zweiter Parameter}& \textbf{Funktion des Anerkennungswerts}  \endhead\hline 
    \multirow{5}{=}{\texttt{0}: Steuerung der Verarbeitungsmodulen}&\texttt{0}: Schaltet die externe Steuerung ab und aktiviert die interne Steuerung beginnend mit dem Module angegeben im zweiten Parameter.&\multirow{3}{=}{Nummer des Moduls an dem den Befehl ausgeführt werden soll }&\multirow{3}{=}{Der Anerkennungswert wird zurück gesendet sobald der Befehl ausgeführt wurde.}\\*\cline{2-2}
    &\texttt{1}: Aktiviert ein Modul extern.&&\\*\cline{2-2}
    &\texttt{2}: Wie \texttt{1}, aber Mikrocontroller wartet dann, bis der Modul seine  Aufgabe erledigt, bevor  den Anerkennungswert zu senden&&\\*\cline{2-3}
    &\texttt{3}: Mikrocontroller sendet den Anerkennungswert, sobald der aktive Modul seine  Aufgabe erledigt. Dies ist primär dafür gedacht, wenn der FPGA auf die interne Steuerung eingestellt ist&\multirow{2}{=}[-1cm]{Der zweite Parameter wird ignoriert. }&\\*\cline{2-2 }
    &\texttt{4}: Die Verarbeitungsmodule werden in Reset-Zustand versetzt. Er wird durch die Parameterwert \texttt{0-2} deaktiviert.&&\\\hline
\end{ltabulary}
\end{document}

我使用最新的 MikTex 和 lualatex

相关内容