这是使用以下第一个评论中给出的链接来自动化字典的解决方案。
有两个问题需要解决:
- 当一个定义在一个页面上开始,而在另一页面上结束,标题中的单词就不是好的单词。在下面的例子中,看看
1
最后一个单词必须是adhesive
而不是 的页面adhesion
,以及 页面中的2
第一个单词必须是adjacent
而不是adhesive
。有办法解决这个问题吗? - 其次,我希望将该部分的字母 A 居中以便进行
\textbf{\textsf{...}}
格式化。
这是我想要改进的代码。
% Sources : % 1) http://tex.stackexchange.com/questions/30392/how-could-one-setup-a-layout-for-a-dictionary-if-possible % 2) http://tex.stackexchange.com/questions/26122/indexing-an-interval-of-words-on-top-of-every-page \documentclass[twoside]{article} \usepackage{multicol} \usepackage{ifthen} \usepackage{fancyhdr} \usepackage{enumerate} \usepackage{lipsum} % Empty \sectionmark \renewcommand{\sectionmark}[1]{} \fancyhead[L]{\textsf{\rightmark}} \fancyhead[R]{\textsf{\leftmark}} \fancyfoot[C]{\textbf{\textsf{\thepage}}} % Entry command : \dict{<word>}{<gender>}{<text>} \newcommand{\dict}[3]{% \par\vspace{0.25\baselineskip} % \textbf{\textsf{#1}} \textit{#2} #3 % \markboth{#1}{#1} } \pagestyle{fancy} \begin{document} \section*{A} \begin{multicols}{2} \dict{adequate}{n}{\lipsum[1]} \dict{adhere}{n}{\lipsum[2]} \dict{adherence}{n}{\lipsum[3]} \dict{adhesion}{n}{\lipsum[4]} \dict{adhesive}{n}{\lipsum[5]} \dict{adjacent}{n}{\lipsum[6]} \dict{adjective}{n}{\lipsum[1]} \dict{adjoin}{n}{\lipsum[2]} \dict{adjourn}{n}{\lipsum[3]} \dict{adjournment}{n}{\lipsum[4]} \dict{adjunt}{n}{\lipsum[5]} \dict{adjust}{n}{\lipsum[6]} \end{multicols} \end{document}
- 当一个定义在一个页面上开始,而在另一页面上结束,标题中的单词就不是好的单词。在下面的例子中,看看
找到的解决方案如下,即使还有一个令人不安的行为,即使它是合乎逻辑的:在以下代码输出的最后一页,
zero
出现在两个标题中......% Sources : % 1) http://tex.stackexchange.com/questions/30392/how-could-one-setup-a-layout-for-a-dictionary-if-possible % 2) http://tex.stackexchange.com/questions/26122/indexing-an-interval-of-words-on-top-of-every-page % 3) http://tex.stackexchange.com/questions/30947/how-to-automate-a-dictionary-sorting-headers/31017#31017 \documentclass[twoside]{article} \usepackage{multicol} \usepackage{fancyhdr} \usepackage[bf,sf,center]{titlesec} % Headers and footers \fancyhead[L]{\textsf{\rightmark}} \fancyhead[R]{\textsf{\leftmark}} \fancyfoot[C]{\textbf{\textsf{\thepage}}} \renewcommand{\headrulewidth}{1.4pt} \renewcommand{\footrulewidth}{1.4pt} % Entry command : \dict{<word>}{<gender>}{<text>} \newcommand{\dict}[3]{% \markboth{#1}{#1}% \par\vspace{0.25\baselineskip}% \textbf{\textsf{#1}} \textit{- #2 -} #3% } \pagestyle{fancy} % For testing \usepackage{lipsum} \begin{document} \section*{A} \begin{multicols}{2} \dict{adequate}{n}{\lipsum[1]} \dict{adhere}{n}{\lipsum[2]} \dict{adherence}{n}{\lipsum[3]} \dict{adhesion}{n}{\lipsum[4]} \dict{adhesive}{n}{\lipsum[5]} \dict{adjacent}{n}{\lipsum[6]} \dict{adjective}{n}{\lipsum[1]} \dict{adjoin}{n}{\lipsum[2]} \dict{adjourn}{n}{\lipsum[3]} \dict{adjournment}{n}{\lipsum[4]} \dict{adjunt}{n}{\lipsum[5]} \dict{adjust}{n}{\lipsum[6]} \end{multicols} \section*{M} \begin{multicols}{2} \dict{main}{n}{\lipsum[3]} \dict{material}{n}{\lipsum[1]} \dict{mathematic}{n}{\lipsum[2]} \dict{more}{n}{\lipsum[2]} \end{multicols} \section*{Z} \begin{multicols}{2} \dict{zebra}{n}{\lipsum \lipsum \lipsum} \dict{zero}{n}{\lipsum[4]} \end{multicols} \end{document}
答案1
关于您的第一个问题(错误的标题条目):在您的\dict
宏中,使用\markboth
前排版条目文本。
\newcommand{\dict}[3]{%
\markboth{#1}{#1}%
\par\vspace{0.25\baselineskip}%
\textbf{\textsf{#1}} \textit{#2} #3%
}
关于你的第二个问题(格式化章节标题):例如,使用
\usepackage[bf,sf,center]{titlesec}