在成功使用 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}