mehrere cmidrule mit eigenem befehl erzeugt leerzeile
Verfasst: Mi 14. Mär 2012, 14:48
Hallo
Ich verwende mehrfach den befehl \cmidrule aus boktabs um spalten voneinander abzugrenzen. Dazu wollte ich mir einen eigenen Befehl definieren, welcher mit das hier abnimmt:
Das ist mir mit einigem googeln dann auch gelungen. Der von mir erstellte befehl erzeugt aber leider jeweils noch eine unerwünschte leerzeile in der Tabelle. Kann mir jemand einen tipp geben wie ich die wegkriege?
Vollständiges, funktionierendes Minimalbeispiel:
Ich verwende mehrfach den befehl \cmidrule aus boktabs um spalten voneinander abzugrenzen. Dazu wollte ich mir einen eigenen Befehl definieren, welcher mit das hier abnimmt:
\cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(lr){3-3}\cmidrule(l){4-4}
Vollständiges, funktionierendes Minimalbeispiel:
\documentclass[listof=totoc,oneside, 12pt, a4paper, titlepage, onecolumn, parskip=half]{scrreprt} \usepackage[ngerman]{babel} \usepackage{tabularx} \usepackage{booktabs} \usepackage{ifthen} % Script für mehrere cmidrules \makeatletter \newcount\colNo \def\addtoks#1#2#3{\toks@=\expandafter{\the\toks@\cmidrule[#3](#2){#1-#1}}} \newcommand\smidrule[2][\lightrulewidth]{% \ifnum#2=1 \expandafter\addtoks\expandafter{\the\colNo}{}{#1}% \else \toks@={\tabularnewline}% \colNo=0\relax \loop\ifnum\colNo<#2\relax \advance\colNo by 1 \ifnum\colNo=1% Erste Zeile \expandafter\addtoks\expandafter{\the\colNo}{r}{#1}% \else% \ifnum\colNo=#2 %Letzte Zeile \expandafter\addtoks\expandafter{\the\colNo}{l}{#1}% \else% Mittlere Zeile \expandafter\addtoks\expandafter{\the\colNo}{lr}{#1}% \fi% \fi% \repeat% \the\toks@% \fi% } \makeatother \begin{document} \begin{tabularx}{\textwidth}{XX} \toprule{} Col1 & Col2 \\ \smidrule[0.15em]{2} Lorem Ipsum & 12 \\ \bottomrule \end{tabularx} \end{document}