我可以使用 fancyhdr 字典样式标题标记 longtable 的第一个和最后一个元素吗?

我可以使用 fancyhdr 字典样式标题标记 longtable 的第一个和最后一个元素吗?

在成功使用 fancyhdr 标记每页的第一个和最后一个单词后,我尝试将其应用于 longtable 中的字典。但是,它似乎不起作用。有什么阻止我在标题中标记表格元素吗?

下面的示例是对工作tex 的修改,其中\dictentry{word}{definition}{grammar}运行完美,但应用于表格单元格时则不行。

\documentclass[12pt, a4paper, twoside]{article}

\usepackage[margin=2.5cm, bindingoffset=1cm, headheight=15pt]{geometry}

\usepackage{longtable}
\usepackage{array}
\renewcommand*{\arraystretch}{1.4}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,LO]{\small{\textbf{\rightmark}}}
\fancyhead[RE,RO]{\small{\textbf{\leftmark}}}
\fancyfoot[C]{}
\fancyfoot[LE]{\small\thepage}
\fancyfoot[RO]{\small\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}

\newcommand\dictentry[1]{
    \large
    #1
    \markboth{#1}{#1}
}


\setlength{\parindent}{0pt}

\newcommand{\thinit}[1]{\multicolumn{1}{|c|}{\textbf{#1}}}
\newcommand{\thnoninit}[1]{\multicolumn{1}{c|}{\textbf{#1}}}

\tolerance=8000

\begin{document}
    \begin{titlepage}
        \begin{center}
            \vspace*{3cm}
            
            {Anenex X:}
            
            \vspace{0.5cm}
            
            {List of elements}
            
            \vfill
        \end{center}
    \end{titlepage}

    \begin{longtable}{
        |>{\raggedleft\arraybackslash}p{4.28cm}|
        p{4.5cm}|
        p{2.2cm}|
    }
        \hline
        \thinit{Entry:} & \thnoninit{Definition:} & \thnoninit{Grammar:}
        \\ \hline
        \endhead

        \dictentry{\textbf{word 1}} & \emph{some definition} & {grammar}
        \\ \hline

        \dictentry{\textbf{word 2}} & \emph{some definition} & {grammar}
        \\ \hline

    \end{longtable}
\end{document}

答案1

我的建议是不要使用 longtable,因为它似乎会破坏标记,即使你从 中取出它们也是如此\parbox。所以我只需在一行中单独设置每个条目即可tabular。每页上的标题都可以用 添加\afterpage

另外,我建议不要使用水平线和垂直线。我认为这会给出更清晰的布局。但为了贴近您的示例,我在这里给出了一个使用线条的解决方案。

我已将演示中的页面高度调低,这样我就不必给出一长串的单词。

\documentclass[12pt,twoside]{article}

\usepackage[margin=2.5cm, bindingoffset=1cm, headheight=15pt, paperwidth=20cm, paperheight = 10cm]{geometry}

\usepackage{afterpage}
\usepackage{longtable}
\usepackage{array}
\renewcommand*{\arraystretch}{1.4}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,LO]{\small{\textbf{\rightmark}}}
\fancyhead[RE,RO]{\small{\textbf{\leftmark}}}
\fancyfoot[C]{}
\fancyfoot[LE]{\small\thepage}
\fancyfoot[RO]{\small\thepage}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}

\setlength{\parindent}{0pt}

\newcommand{\thinit}[1]{{\centering\textbf{#1}}}

\tolerance=8000

% Header stuff

\newcommand{\Header}{%
  \begin{tabular}{|>{\raggedleft\arraybackslash}p{4.28cm}|p{4.5cm}|p{2.2cm}|}
    \hline
    \thinit{Entry:} & \thinit{Definition:} & \thinit{Grammar:} \\
%    \thinit{Entry:} & \thinit{Definition:} & \thinit{Grammar:}\\ 
    \hline
  \end{tabular}
}

% \afterpage stuff

\newcommand{\APcommand}{\Header\setAP}
\newcommand{\setAP}{\afterpage{\APcommand}}
\newcommand{\clearAP}{\renewcommand{\APcommand}{}}

% Enntries

\newcommand{\entry}[3]{%
  \begin{tabular}{|>{\raggedleft\arraybackslash}p{4.28cm}|p{4.5cm}|p{2.2cm}|}
    \large \textbf{#1} & \emph{#2} & #3 \\
    \hline
  \end{tabular}%
  \markboth{#1}{#1}%
  \\[-2ex]
}

\begin{document}
    \begin{titlepage}
        \begin{center}
            \vspace*{3cm}
            
            {Anenex X:}
            
            \vspace{0.5cm}
            
            {List of elements}
            
            \vfill
        \end{center}
    \end{titlepage}

\newpage

    \APcommand

    \entry{word1}{some definition}{grammar} 

    \entry{word2}{some definition}{grammar} 

    \entry{word3}{some definition}{grammar} 

    \entry{word4}{some definition}{grammar} 

    \entry{word5}{some definition}{grammar} 

    \entry{word6}{some definition}{grammar} 

    \entry{word7}{some definition}{grammar} 

    \entry{word8}{some definition}{grammar} 

    \entry{word9}{some definition}{grammar} 

    \entry{word10}{some definition}{grammar}

    \entry{word11}{some definition}{grammar}

    \entry{word12}{some definition}{grammar}

    \clearAP

\end{document}

在此处输入图片描述

相关内容