longtable 的左对齐 - 不需要的最小缩进

longtable 的左对齐 - 不需要的最小缩进

我有一个longtable,尽管我已将 LTleft 设置为零,但还是有一点点缩进。表格“Gedichttitel ..”的标题行与上面的文本不对齐!

在此处输入图片描述

到目前为止,阅读其他可能相关的问题没有帮助;例如,似乎@在这种情况下可能有用,但我无法理解它的用途,也找不到文档(数组包的文档对我来说似乎太技术性了)。

MVE 是:

\documentclass{scrbook}
\KOMAoptions{paper=     %161mm:239mm, % increased size to avoid resizing
    6.14in:9.21in,   %format of proof 
    BCOR=8mm,twoside,
    headinclude=false, footinclude=false, 
    headings=normal,
    titlepage=true,
    DIV=13,  % textbuecher 11 % textwidth 117
    fontsize=11pt,
}
\usepackage[german]{babel}  

\usepackage{booktabs,array,microtype, longtable}
\usepackage[automark,headsepline]{scrlayer-scrpage}

\setlength\LTleft{0pt}
\setlength\LTright\fill

\begin{document}

\newcommand{\dohang}{\hangindent1em\hangafter1 }


\section{Titel der Gedichte - Titels of Poems}

Da Gedichttitel manchmal im Laufe der Zeit verändert werden 

\begin{longtable}{>{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{0.7\textwidth} 
        p{0.15\textwidth}
        p{0.05\textwidth} 
        p{0.1\textwidth}}
    Gedichttitel - erste Zeile & Anzahl Zeilen & Buch  & Nummer \\\\
    \endhead 

Abendblick vom Hochstein &  16 &   1 &   1 \\
Abschied &  17 &   1 &  56 \\
Als ich zum ersten Male diesen Narren &  14 &   1 &  30 \\
Als König Salomo beim Tempelbau &  14 &   1 &  50 \\

\end{longtable}

\end{document}

需要进行哪些更改才能使表格与文本完全对齐?

答案1

@{}在第一列定义之前添加:

\documentclass{scrbook}
\KOMAoptions{paper=     %161mm:239mm, % increased size to avoid resizing
    6.14in:9.21in,   %format of proof 
    BCOR=8mm,twoside,
    headinclude=false, footinclude=false, 
    headings=normal,
    titlepage=true,
    DIV=13,  % textbuecher 11 % textwidth 117
    fontsize=11pt,
}
\usepackage[german]{babel}  

\usepackage{booktabs,array,microtype, longtable}
\usepackage[automark,headsepline]{scrlayer-scrpage}

\setlength\LTleft{0pt}
\setlength\LTright\fill

\begin{document}

\newcommand{\dohang}{\hangindent1em\hangafter1 }


\section{Titel der Gedichte - Titels of Poems}

Da Gedichttitel manchmal im Laufe der Zeit verändert werden 

\begin{longtable}{%
    @{}
    >{\everypar{\dohang}\dohang\raggedright\arraybackslash}
    p{0.64\textwidth} 
  r
  r
  r
  @{}
}
    Gedichttitel - erste Zeile & \multicolumn{1}{p{0.12\textwidth}}{Anzahl Zeilen} & Buch  & Nr. \\\\
    \endhead 

Abendblick vom Hochstein &  16 &   1 &   1 \\
Abschied &  17 &   1 &  56 \\
Als ich zum ersten Male diesen Narren &  14 &   1 &  30 \\
Als König Salomo beim Tempelbau &  14 &   1 &  50 \\

\end{longtable}

\end{document}

在此处输入图片描述

答案2

解决方案如下xltabular

\documentclass{scrbook}
\KOMAoptions{paper=     %161mm:239mm, % increased size to avoid resizing
    6.14in:9.21in,   %format of proof 
    BCOR=8mm,twoside,
    headinclude=false, footinclude=false, 
    headings=normal,
    titlepage=true,
    DIV=13,  % textbuecher 11 % textwidth 117
    fontsize=11pt,
}
\usepackage[german]{babel}  
\usepackage{booktabs,array,microtype,xltabular}
\usepackage[automark,headsepline]{scrlayer-scrpage}
\newcommand{\dohang}{\hangindent1em\hangafter1 }

\begin{document}

\section{Titel der Gedichte - Titels of Poems}

Da Gedichttitel manchmal im Laufe der Zeit verändert werden 

\begin{xltabular}{\linewidth}{@{}
  >{\everypar{\dohang}\dohang\raggedright\arraybackslash}X 
  c c c 
  @{}}
Gedichttitel - erste Zeile & \shortstack{Anzahl\\Zeilen} & Buch  & Nummer \\\\
\endhead 
Abendblick vom Hochstein &  16 &   1 &   1 \\
Abschied &  17 &   1 &  56 \\
Als ich zum ersten Male diesen Narren &  14 &   1 &  30 \\
Als König Salomo beim Tempelbau &  14 &   1 &  50 \\
\end{xltabular}

\end{document}

在此处输入图片描述

答案3

您还可以使用包构建表卡路里。但是,该\dohang命令需要修改卡路里左对齐单元格。您需要将文本封装在parbox与列宽相同的宽度中。因此,我定义了一个新命令,,\colbox其中还包括dohangraggedright命令。 parbox 的宽度使用与计算列宽时相同的公式计算,减去左右填充(侧边距):

\newcommand{\colbox}[1]{\parbox{\dimexpr(\columnwidth)/32*19-\cals@paddingL-\cals@paddingR\relax}{\raggedright\dohang #1}}

每个单元格都column 1需要进行此修改。如果您不同意表头( )后面的规则midrule,可以轻松将其删除。

\documentclass{scrbook}
\KOMAoptions{paper=     %161mm:239mm, % increased size to avoid resizing
    6.14in:9.21in,   %format of proof 
    BCOR=8mm,twoside,
    headinclude=false, footinclude=false, 
    headings=normal,
    titlepage=true,
    DIV=13,  % textbuecher 11 % textwidth 117
    fontsize=11pt,
}
\usepackage[german]{babel}  

\usepackage{microtype, cals}
\usepackage[automark,headsepline]{scrlayer-scrpage}

\let\nc=\nullcell                                                  % CALS Shortcuts
\let\sc=\spancontent


\newcommand{\dohang}{\hangindent1em\hangafter1 }
\makeatletter
\newcommand{\colbox}[1]{\parbox{\dimexpr(\columnwidth)/32*19-\cals@paddingL-\cals@paddingR\relax}{\raggedright\dohang #1}}
\makeatother
\begin{document}

\section{Titel der Gedichte -- Titels of Poems}

Da Gedichttitel manchmal im Laufe der Zeit verändert werden
\bigskip

\begin{calstable}[l]  % Left aligned CALS tabular

% Calculate the column width
\colwidths{{\dimexpr(\columnwidth)/32*17\relax}
            {\dimexpr(\columnwidth)/32*5\relax}
            {\dimexpr(\columnwidth)/32*5\relax}
            {\dimexpr(\columnwidth)/32*5\relax}
    }

% The tabular fills the text area if sum of all columns is 32

% Set up the tabular
\makeatletter
\def\cals@framers@width{0pt}   % Outside frame rules
\def\cals@framecs@width{0pt}
\def\cals@bodyrs@width{0.6pt}  % Rule between header and tabular body
\def\cals@cs@width{0pt}             % Inside vertical rules
\def\cals@rs@width{0pt}              % Inside horizontal rules

\def\lp{\ifdim\cals@paddingL=0.0pt\relax    % Left padding switch (off-on)
    \cals@setpadding{Ag}
\else \setlength{\cals@paddingL}{0pt}\fi}

\def\rp{\ifdim\cals@paddingR=0.0pt\relax    % Right padding switch (off-on)
    \cals@setpadding{Ag}
\else \setlength{\cals@paddingR}{0pt}\fi}


% R1H1
\thead{%           The first row are heading and vill be repeated on every page
\brow
    \lp\alignL\cell{\vfill\colbox{Gedichttitel -- erste Zeile}}\lp
    \alignR\cell{\vfill Anzahl Zeilen}
    \alignR\cell{\vfill Buch}
    \rp\alignR\cell{\vfill Nummer}\rp
\erow
}
\tfoot{\lastrule\nointerlineskip
\strut\par}
%R2B1
\brow
    \lp\alignL\cell{\colbox{Abendblick vom Hochstein}}\lp
    \alignR\cell{16}
    \alignR\cell{1}
    \rp\alignR\cell{1}\rp
\erow
%R3B2
\brow
    \lp\alignL\cell{\colbox{Abschied}}\lp
    \alignR\cell{17}
    \alignR\cell{1}
    \rp\alignR\cell{56}\rp
\erow
%R4B3
\brow
    \lp\alignL\cell{\colbox{Als ich zum ersten Male diesen Narren}}\lp
    \alignR\cell{14}
    \alignR\cell{1}
    \rp\alignR\cell{30}\rp
\erow
%R5B4
\brow
    \lp\alignL\cell{\colbox{Als König Salomo beim Tempelbau}}\lp
    \alignR\cell{14}
    \alignR\cell{1}
    \rp\alignR\cell{50}\rp
\erow

\makeatletter
\end{calstable}\par

\end{document}

在此处输入图片描述

相关内容