朋友们,我很好奇如何在 LaTeX 中执行以下操作:
字典每页顶部有两个单词,表示在该特定页面上可以找到的单词间隔,例如,
在图中,分析师指的是下限(第一个词),以及附属的指的是上限(此页的最后一个词)。
我想知道如何在 LaTeX 中实现类似的东西。假设我们有以下文档:
\documentclass{article}
\usepackage{multicol}
\usepackage{enumerate}
\usepackage{lipsum}
\begin{document}
\begin{multicols}{2}
\begin{description}
\item[adequate] \lipsum[1]
\item[adhere] \lipsum[2]
\item[adherence] \lipsum[3]
\item[adhesion] \lipsum[4]
\item[adhesive] \lipsum[5]
\item[adjacent] \lipsum[6]
\item[adjective] \lipsum[1]
\item[adjoin] \lipsum[2]
\item[adjourn] \lipsum[3]
\item[adjournment] \lipsum[4]
\item[adjunt] \lipsum[5]
\item[adjust] \lipsum[6]
\end{description}
\end{multicols}
\end{document}
对于此页面,我希望同时看到足够的和粘合剂在页面顶部(分别是页面上的第一项和最后一项)。其余页面也适用同样的规则。更新:我应该提到,我很好奇如何通过一种“自动”方式来选择在页眉中设置哪些单词。=)
有任何想法吗?
答案1
以下是根据fancyhdr
文档:
\documentclass[twoside]{article}
\usepackage{multicol}
\usepackage{ifthen}
\usepackage{fancyhdr}
\usepackage{enumerate}
\usepackage{lipsum}
% empty \sectionmark
\renewcommand{\sectionmark}[1]{}
% create a command to create marks and collapse them if they are identical
\newcommand{\mymarks}{%
\ifthenelse{\equal{\leftmark}{\rightmark}}
{\rightmark} % if equal
{\rightmark--\leftmark}} % if not equal
\fancyhead[LE,RO]{\mymarks}
\fancyhead[LO,RE]{\thepage}
% define a wrapper on the description environment to add the marks
% this part is quick and dirty; it would be better to define one's own
% environment to do this, but the basic idea is the same: you need
% to add the \markboth command to each dictionary entry
\def\ditem[#1]{\markboth{#1}{#1}\item[#1]}
\pagestyle{fancy}
\begin{document}
\begin{multicols}{2}
\begin{description}
\ditem[adequate] \lipsum[1]
\ditem[adhere] \lipsum[2]
\ditem[adherence] \lipsum[3]
\ditem[adhesion] \lipsum[4]
\ditem[adhesive] \lipsum[5]
\ditem[adjacent] \lipsum[6]
\ditem[adjective] \lipsum[1]
\ditem[adjoin] \lipsum[2]
\ditem[adjourn] \lipsum[3]
\ditem[adjournment] \lipsum[4]
\ditem[adjunt] \lipsum[5]
\ditem[adjust] \lipsum[6]
\end{description}
\end{multicols}
\end{document}