longtable - 如何将页面上的第一个元素放入标题中

longtable - 如何将页面上的第一个元素放入标题中

我有一个很长的 longtable(>100 页),有 4 列,代表一些文学文本的索引。索引数据是通过编程生成的,我删除了除第一次出现之外的所有第一个(索引元素)。有些情况下,一个索引元素会跟随多行,因此有些页面根本没有显示索引元素。

该页面应如下所示:

Header A-Entry 

        value1  value2 .. which is the continuation of A-entry
        value3  value4
        ... many more A-entry lines till a new index entry
B-entry value5 value6 
        value7 value8 
C-entry ...

我认为有三种解决方案:

  1. 在页眉中显示当前(即最后看到的)索引条目。
  2. 当乳胶函数在页面内重复第一列中的索引时,删除该索引。
  3. 将当前(即最后看到的)索引放在 longtable 的标题中。

我已经看到 问题解决方案使用struts但未找到任何其他文档。这是解决我的问题的途径吗?

我当前的解决方案(按照收到的建议)是:

\documentclass{article}
\usepackage[german]{babel}  
\usepackage{booktabs,array,microtype, longtable}
\usepackage{alltt}  % to use input with commands 
\usepackage{fontspec}
\newfontfamily{\tablefont}{ebgaramond}
\usepackage{lmodern} % to avoid scalable font error
\usepackage[automark,headsepline,plainheadsepline]{scrlayer-scrpage}

\begin{document}

\newcommand{\dohang}{\hangindent1em\hangafter1 }
     \begin{scriptsize}\tablefont
        \mark{ AAA3mal}
        \begin{longtable}{@{}
                l
                >{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{18mm} 
                >{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{55mm} 
                >{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{26mm}
                 p{9mm}}
            {} & Lemma & Gedichtzeile & Gedichttitel & Index \\\\
            \endfirsthead

      \markboth{Trankst}{Trankst}&Trankst & Trankst du begierig, durst'ger Greis! & Am Sarg eines & 7:1-12\\
       \markboth{traulich}{traulich}&traulich & Wo, traulich sich dran schmiegend, es & Im Schnee & 1:1-13\\
       \markboth{träumend}{träumend}&träumend & Welche träumend drinnen schliefen & Himmelsleiter & 5:2-1\\
       \markboth{Türe}{Türe}&Türe & Hockt vor der Tür und flickt die alten Schuh. & Wie glänzt der helle &
        \end{longtable}
    \end{scriptsize}
\end{document}

该解决方案之所以有效,是因为我已经(以编程方式)生成了数据行以形成索引,并在没有条目 XXX 开始时向每行添加 a\markboth{XXX}{XXX}&或 just &。其次,我添加了一个类型为“l”且标题为“{}”的空列,因为“p”列不会触发该\mark命令。它可以工作,但不能与更简单的一起使用\mark

答案1

我收到了建议并找到了其他提示;模板“dictionary.tex”特别有用。使用 KOMAscript scrbook 的解决方案非常简单,只需 3 行:

 \usepackage[automark,headsepline,plainheadsepline]{scrlayer-scrpage}
    \rehead{\leftmark}  \rohead{\leftmark}
    \lehead{\rightmark}     \lohead{\rightmark}

诀窍是将右标题设置为 \leftmark (最后一个看到的),将左标题设置为 \rightmark (第一个看到的)。

作为完整的 MWE:

\documentclass{scrbook}

\usepackage{booktabs,array,microtype, longtable}

\usepackage[automark,headsepline,plainheadsepline]{scrlayer-scrpage}
\rehead{\leftmark}  \rohead{\leftmark}
\lehead{\rightmark}     \lohead{\rightmark}


\begin{document}

\newcommand{\dohang}{\hangindent1em\hangafter1 }
        \begin{longtable}{@{}
                l
                >{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{18mm} 
                >{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{55mm} 
                >{\everypar{\dohang}\dohang\raggedright\arraybackslash}p{26mm}
                 p{9mm}}
            {} & Lemma & Gedichtzeile & Gedichttitel & Index \\\\
            \endfirsthead

%           \input{index}           
\markboth{Abendsäuseln}{Abendsäuseln}&Abendsäuseln & Eingelullt von Abendsäuseln, & Himmelsleiter & 5:1-3\\
\markboth{abgedorrt}{abgedorrt}&abgedorrt & Doch endlich abgedorrt! & Am Sarg eines & 7:1-3\\
\markboth{alt}{alt}&alt & Hockt vor der Tür und flickt die alten Schuh. & Wie glänzt der helle & 2:1-14\\
\markboth{alt}{alt}& & So ist die alte Eiche & Am Sarg eines & 7:1-2\\
\markboth{anfüllen}{anfüllen}&anfüllen & Angefüllt wird jedes Tal, & Am Himmelfahrtstage & 4:1-6\\
\markboth{Auge}{Auge}&Auge & Und ein Spielen vor den Augen & Himmelsleiter & 5:1-7\\
\markboth{ausklingen}{ausklingen}&ausklingen & Ein ausgeklungen Gotteswort. & Am Sarg eines & 7:1-6\\
\markboth{außenßen}{außenßen}&außenßen & Kein Neider schilt's, nicht aussen und nicht innen. & Jeder Schein trügt & 6:1-4\\
\markboth{aussterben}{aussterben}&aussterben & Ausgestorben scheint die Stadt, & Am Himmelfahrtstage & 4:1-1\\
\markboth{begeben}{begeben}&begeben & Sich hinaus begeben hat & Am Himmelfahrtstage & 4:1-4\\
\markboth{begierig}{begierig}&begierig & Trankst du begierig, durst'ger Greis! & Am Sarg eines & 7:1-12\\
\markboth{beginnen}{beginnen}&beginnen & Da begann von Licht und Blumen & Himmelsleiter & 5:1-5\\
\markboth{Berg}{Berg}&Berg & Auf die Hügel, auf die Berge, & Am Himmelfahrtstage & 4:1-5\\
\markboth{bescheiden}{bescheiden}&bescheiden & Dem warm ein Herz beschieden ist, & Im Schnee & 1:1-11\\
\markboth{blühende}{blühende}&blühende & Verschwunden ist die blühende & Im Schnee & 1:1-5\\
\markboth{Blume}{Blume}&Blume & Da begann von Licht und Blumen & Himmelsleiter & 5:1-5\\
\markboth{Blume}{Blume}& & Kosend durch die Blumen liefen. & Himmelsleiter & 5:2-3\\
\markboth{brennen}{brennen}&brennen & Das heimlich loht und brennt! & Im Schnee & 1:1-12\\
\markboth{Bund}{Bund}&Bund & Und den Bund mit ihm erneut, & Am Himmelfahrtstage & 4:1-3\\
        \end{longtable}
\end{document}

相关内容