[Tex/LaTex] Dashed hline in longtabu (arydshln conflicts, does not work?)

arydshlnincompatibilitylongtabletablestabu

I have a large table with the following requirements:

  • Spans multiple pages (currently using longtable)
  • The last column's text must wrap (using tabu's longtabu environment as tabularx does not support multiple pages)

I am trying to add dashed horizontal lines like arydshln's \hdashline.
The arydshln documentation indicates that some care must be taken when loading with longtable, but even when it is loaded after the table packages, it still will not compile. This question indicates that the arydshln package apparently conflicts with tabu, but doesn't solve the problem as their table is only one page and can thus be switched to tabularx.

How can I can I create dashed lines in a multi-page table with one column whose text wraps?

A smaller MWE is here, the lipsum paragraphs are a bit longer than realistic, but get the point across:

\documentclass{article}
\usepackage[layout=letterpaper,margin=1in]{geometry}
\usepackage{lipsum}
\usepackage{blindtext}

\usepackage{longtable}
\usepackage{tabu}
%\usepackage{arydshln}

\begin{document}

\begin{longtabu} to \linewidth {c c l X}
\rowfont\bfseries Prefix & Address & Data Field & Description \\ \hline
\endhead
\tt 1000 & \tt 0000 & 32-bit Data & \small\lipsum[1] \\
\tt 1000 & \tt 0001 & 32-bit Data & ... \\
\tt 1000 & \tt 0010 & 32-bit Data & ... \\
\tt 1000 & \tt 0011 & 32-bit Data & ... \\
\tt 1000 & \tt 0100 & 32-bit Data & ... \\
\tt 1000 & \tt 0101 & 32-bit Data & ... \\
\tt 1000 & \tt 1XX0 & 32-bit Data & \small\lipsum[1] \\
\hline % <--- Would like this to be dashed
\tt 1010 & \tt 1000 & 32-bit DMA Data & \small\lipsum[1] \\
\tt 1010 & \tt 1010 & 32-bit Data & ... \\
\tt 1010 & \tt 1011 & 32-bit Data & ... \\
\tt 1010 & \tt 1100 & DMA Control Message$\dagger$ & \small\lipsum[1] \\
\tt 1010 & \tt 1100 & 32-bit Data & ... \\
\hline % <--- Would like this to be dashed
\tt 1011 & \tt 0010 & 32-bit Data & ... \\
\end{longtabu}

\end{document}

MWE

Best Answer

You can use \tabucline[<options>]:

\documentclass{article}
\usepackage[layout=letterpaper,margin=1in]{geometry}
\usepackage{lipsum}
\usepackage{blindtext}

\usepackage{longtable}
\usepackage{tabu}

\begin{document}

\begin{longtabu} to \linewidth {c c l X}
\rowfont\bfseries Prefix & Address & Data Field & Description \\ \hline
\endhead
\tt 1000 & \tt 0000 & 32-bit Data & \small\lipsum[1] \\
\tt 1000 & \tt 0001 & 32-bit Data & ... \\
\tt 1000 & \tt 0010 & 32-bit Data & ... \\
\tt 1000 & \tt 0011 & 32-bit Data & ... \\
\tt 1000 & \tt 0100 & 32-bit Data & ... \\
\tt 1000 & \tt 0101 & 32-bit Data & ... \\
\tt 1000 & \tt 1XX0 & 32-bit Data & \small\lipsum[1] \\
\tabucline[1pt on 3pt]
\tt 1010 & \tt 1000 & 32-bit DMA Data & \small\lipsum[1] \\
\tt 1010 & \tt 1010 & 32-bit Data & ... \\
\tt 1010 & \tt 1011 & 32-bit Data & ... \\
\tt 1010 & \tt 1100 & DMA Control Message$\dagger$ & \small\lipsum[1] \\
\tt 1010 & \tt 1100 & 32-bit Data & ... \\
\tabucline[1pt on 3pt]
\tt 1011 & \tt 0010 & 32-bit Data & ... \\
\end{longtabu}

\end{document}

enter image description here

Related Question