我想用双栏页面布局来设计一本词典,但是在设置页面页眉格式时出现了一些意想不到的问题。与页眉相关的问题描述如下:
- 如何删除每个左栏页面开头的列标题?图像如下:
- 如何将偶数页的右侧页眉和奇数页的左侧页眉提升到更高的位置?请参阅下面的图片:
- 如何在输出的 PDF 文档中添加书签(切换到每个词组开头的每个大写字母,例如
A
、B
、C
等)。确切地说,当我通过 Acrobat Adobe Pro 打开输出时,我在左侧找不到书签。我已经加载了该包hyperref
,但是它不起作用。
最小的工作示例是:
\documentclass[twoside,10pt,twocolumn]{book}
\usepackage{lipsum}
\usepackage{adforn}
\usepackage[top=2.0cm, bottom=3.5cm, left=2cm, right=2cm]{geometry}%default top=1.5cm
\usepackage{fancyhdr}
\usepackage[french, english]{babel}
\usepackage[utf8x,utf8]{inputenc}
\usepackage{color}
\definecolor{marron}{RGB}{60,30,10}
\definecolor{darkblue}{RGB}{0,0,80}
\definecolor{lightblue}{RGB}{80,80,80}
\definecolor{darkgreen}{RGB}{0,80,0}
\definecolor{darkgray}{RGB}{0,80,0}
\definecolor{darkred}{RGB}{80,0,0}
\definecolor{shadecolor}{rgb}{0.97,0.97,0.97}
\usepackage[T1]{fontenc}
\usepackage{hanging}
\usepackage{tikz}
\usetikzlibrary{calc}
%---------------------------------------------------------------------------------------------%
\usepackage{fourier-orns}
\newcommand{\ornpar}{\noindent \textcolor{darkgray}{ \raisebox{-1.9pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafright \decofourleft \decothreeleft \aldineright \decotwo \floweroneleft \decoone}}}%even-footer part
\newcommand{\ornimpar}{\textcolor{darkgray}{\raisebox{-1.9pt}[10pt][10pt]{\decoone \floweroneright \decotwo \aldineleft \decothreeright \decofourright \leafleft} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafleft}}}%odd-footer part
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\newcommand\entry[4][]{\hangpara{2em}{1}{\fontfamily{phv}\selectfont{\textbf{{#2}}}}\ #4\
#3 \ifx\relax #1 \relax \markboth{#2}{#2}\else\markboth{#1}{#1}\fi
\vspace*{5pt}\par} \nopagebreak[4]%entry of dictionary
\newcommand*{\dictchar}[1]{\centerline{\LARGE\textbf{#1}}\vspace*{10pt}\par}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
% use fancyhdr or whatever you want to add
% the boxes to the header to make them appear
% on every page
% new counter to hold the current number of the
% letter to determine the vertical position
\newcounter{letternum}
% newcounter for the sum of all letters to get
% the right height of a box
\newcounter{lettersum}
\setcounter{lettersum}{26}
% some margin settings
\newlength{\thumbtopmargin}
\setlength{\thumbtopmargin}{1cm}
\newlength{\thumbbottommargin}
\setlength{\thumbbottommargin}{3cm}
% calculate the box height by dividing the page height
\newlength{\thumbheight}
\pgfmathsetlength{\thumbheight}{%
(\paperheight-\thumbtopmargin-\thumbbottommargin)%
/%
\value{lettersum}
}
% box width
\newlength{\thumbwidth}
\setlength{\thumbwidth}{1.5cm}
% style the boxes
\tikzset{
thumb/.style={
fill=black!50!red,
text=white,
minimum height=\thumbheight,
text width=\thumbwidth,
outer sep=0pt,
font=\sffamily\bfseries,
}
}
\newcommand{\oddthumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north east,] at ($%
(current page.north east)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
\newcommand{\eventhumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north west,] at ($%
(current page.north west)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
% create a new command to set a new lettergroup
\newcommand{\lettergroup}[1]{%
\fancypagestyle{chapterstart}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\chead{\oddthumb{#1}}% chapters start only on odd pages
\cfoot{\thepage}
}
\fancyhead[LO]{\fontfamily{phv}\selectfont{\textbf{\rightmark}}\oddthumb{#1}}%
\fancyhead[RE]{\fontfamily{phv}\selectfont{\textbf{\leftmark}}\eventhumb{#1}}%
% step the counter of the letters
\stepcounter{letternum}%
}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\makeatletter%headrule
\def\headrule{ {\color{darkgray}\raisebox{-2.1pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{~~~\decofourleft \decotwo \decofourright~~~} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{ \leafleft}} }
\makeatother
% \renewcommand\headrule{ {\color{darkgray}\raisebox{-2.1pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{~~~\decofourleft \decotwo \decofourright~~~} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{ \leafleft}} }
% % \renewcommand\headrule{{\leafright} \hrulefill
% % \raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright\quad}{\hrulefill}\leafleft}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\fancypagestyle{basicstyle}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[LE,RO]{\textbf{\chaptitle}}
\fancyhead[LO,RE]{\textbf{\thepage}}
\fancyfoot[LE,RO]{\thepage}}
\fancypagestyle{dictstyle}{%
\fancyhf{}
%\renewcommand{\headrulewidth}{0pt}
\fancyhead[LE,LO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{0.8em}{\rightmark}}}}}%[LE,LO]
\fancyhead[CO,CE]{\headrule}%\thepage
\fancyhead[RE,RO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{0.8em}{\leftmark}}}}}%[RE,RO]
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[LO]{
\ornimpar \\ \hfill \textcolor{darkgray}{\large \leafNE ~~~ \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} }
}%奇数面的footer
\fancyfoot[RE]{\ornpar \\ \textcolor{darkgray}{\large \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} ~~~ \reflectbox{\leafNE}} \hfill}
}%偶数面的footer, \fancyfoot[RE]{\ornpar \\ \large \sffamily\bf \textcolor{darkgray}{\thepage ~~~ \reflectbox{\leafNE}} \hfill}}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0pt}
%---------------------------------------------------------------------------------------------%
\usepackage{hyperref}
%\pagestyle{basicstyle}
%----------------------------------------------------------------------------------------------%
\begin{document}
%\maketitle
\begin{titlepage}
\centering\Huge \adforn{26}\adforn{21}\quad\adforn{11}\quad\adforn{49}\adforn{54}
\vspace*{2em}{\centering\bf %9em, \usefont{OT1}{cmr}{m}{it}
\texttt{\textbf{My Own Dictionary}}\par}
\vspace{2em}
{\hfill\centering \large{The Author}\hfill} %\hfill \itshape A story of love, hate and fame
\end{titlepage}
\newpage
%\adforn{21}\quad\adforn{11}\quad\adforn{49}
%----------------------------------------------------------------------------------------------%
\fancyhf{}
\pagestyle{dictstyle}
\lettergroup{A}
\dictchar{A}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\entry[philosophy]{philosophy} {Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, \emph{plac- erat ac}}{/yinfu/}
\entry[Math]{Math}{Lorem ipsum dolor sit amet}{/yinfu/}
\entry[Physics]{Physics}{\lipsum[1-2]}{/yinfu/}
\entry[Nature]{Nature}{\lipsum}{/yinfu/}
\clearpage
\lettergroup{B}
\dictchar{B}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\lettergroup{C}
\dictchar{C}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\end{document}
附言:我的 Tex 基于@Fran 提供的两个精美示例这里
以及 @chejnik 于这里
欢迎提出任何建议,并提前致谢。
下图是@Biki Teron 的代码的输出。
现在,我可以借助以下改进的 Tex cod 解决原始帖子中的第二个问题:
\documentclass[twoside,10pt,twocolumn]{book}
\usepackage{lipsum}
\usepackage{adforn}
\usepackage[top=2.0cm, bottom=3.5cm, left=2cm, right=2cm]{geometry}%default top=1.5cm
\usepackage{fancyhdr}
\usepackage[icelandic, czech, english]{babel}
\usepackage[utf8x,utf8]{inputenc}
\usepackage{color}
\definecolor{marron}{RGB}{60,30,10}
\definecolor{darkblue}{RGB}{0,0,80}
\definecolor{lightblue}{RGB}{80,80,80}
\definecolor{darkgreen}{RGB}{0,80,0}
\definecolor{darkgray}{RGB}{0,80,0}
\definecolor{darkred}{RGB}{80,0,0}
\definecolor{shadecolor}{rgb}{0.97,0.97,0.97}
\usepackage[T1]{fontenc}
\usepackage{hanging}
\usepackage{tikz}
\usetikzlibrary{calc}
%---------------------------------------------------------------------------------------------%
\usepackage{fourier-orns}
\newcommand{\ornpar}{\noindent \textcolor{darkgray}{ \raisebox{-1.9pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafright \decofourleft \decothreeleft \aldineright \decotwo \floweroneleft \decoone}}}
\newcommand{\ornimpar}{\textcolor{darkgray}{\raisebox{-1.9pt}[10pt][10pt]{\decoone \floweroneright \decotwo \aldineleft \decothreeright \decofourright \leafleft} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafleft}}}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\newcommand\entry[4][]{\hangpara{2em}{1}{\fontfamily{phv}\selectfont{\textbf{{#2}}}}\ #4\
#3 \ifx\relax #1 \relax \markboth{#2}{#2}\else\markboth{#1}{#1}\fi
\vspace*{5pt}\par} \nopagebreak[4]
\newcommand*{\dictchar}[1]{\centerline{\LARGE\textbf{#1}}\vspace*{10pt}\par}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
% use fancyhdr or whatever you want to add
% the boxes to the header to make them appear
% on every page
% new counter to hold the current number of the
% letter to determine the vertical position
\newcounter{letternum}
% newcounter for the sum of all letters to get
% the right height of a box
\newcounter{lettersum}
\setcounter{lettersum}{26}
% some margin settings
\newlength{\thumbtopmargin}
\setlength{\thumbtopmargin}{1cm}
\newlength{\thumbbottommargin}
\setlength{\thumbbottommargin}{3cm}
% calculate the box height by dividing the page height
\newlength{\thumbheight}
\pgfmathsetlength{\thumbheight}{%
(\paperheight-\thumbtopmargin-\thumbbottommargin)%
/%
\value{lettersum}
}
% box width
\newlength{\thumbwidth}
\setlength{\thumbwidth}{1.5cm}
% style the boxes
\tikzset{
thumb/.style={
fill=black!50!red,
text=white,
minimum height=\thumbheight,
text width=\thumbwidth,
outer sep=0pt,
font=\sffamily\bfseries,
}
}
\newcommand{\oddthumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north east,] at ($%
(current page.north east)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
\newcommand{\eventhumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north west,] at ($%
(current page.north west)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
% create a new command to set a new lettergroup
\newcommand{\lettergroup}[1]{%
\fancypagestyle{chapterstart}{%
\fancyhf{}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\chead{\oddthumb{#1}}% chapters start only on odd pages
\cfoot{\thepage}
}
%\renewcommand{\headrulewidth}{0pt}
%\fancyhead{}
\fancyhead[LO]{ \raisebox{1em}{ \fontfamily{phv} \selectfont{\textbf{\rightmark}} } \oddthumb{#1}}
\fancyhead[RE]{ \raisebox{1em}{ \fontfamily{phv} \selectfont{\textbf{\leftmark}} } \eventhumb{#1}}
\fancyhead[LE]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{1em}{\rightmark}}}}}
\fancyhead[CO,CE]{\headrule}
\fancyhead[RO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{1em} {\leftmark}}}}}
% step the counter of the letters
\stepcounter{letternum}%
}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\makeatletter%标题的headrule
\def\headrule{ { \color{darkgray} \raisebox{-2.1pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{~~~\decofourleft \decotwo \decofourright~~~} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{ \leafleft} } }
\makeatother
% \renewcommand\headrule{ {\color{darkgray}\raisebox{-2.1pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{~~~\decofourleft \decotwo \decofourright~~~} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{ \leafleft}} }
% % \renewcommand\headrule{{\leafright} \hrulefill
% % \raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright \quad}{\hrulefill}\leafleft}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\fancypagestyle{basicstyle}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[LE,RO]{\textbf{\chaptitle}}
\fancyhead[LO,RE]{\textbf{\thepage}}
\fancyfoot[LE,RO]{\thepage}}
\fancypagestyle{dictstyle}{%
\fancyhf{}
% \fancyhead[LE,LO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{1em} {\rightmark}}}}}
% \fancyhead[CO,CE]{\headrule}%\thepage,\headrule
% \fancyhead[RE,RO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{1em} {\leftmark}}}}}
\renewcommand{\headrulewidth}{0pt}
\fancyhead{}
\fancyfoot[LO]{
\ornimpar \\ \hfill \textcolor{darkgray}{\large \leafNE ~~~ \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} } }
\fancyfoot[RE]{\ornpar \\ \textcolor{darkgray}{\large \raisebox{-0.35em} {\textsf{\textbf{\thepage}}} ~~~ \reflectbox{\leafNE}} \hfill }
}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0pt}
%---------------------------------------------------------------------------------------------%
\usepackage{hyperref}
%\pagestyle{basicstyle}
%----------------------------------------------------------------------------------------------%
\begin{document}
%\maketitle
\begin{titlepage}
\centering\Huge \adforn{26}\adforn{21}\quad\adforn{11}\quad\adforn{49} \adforn{54}
\vspace*{2em}\centering\bf
\texttt{My Dictionary}\par
\vspace{2em}
{\hfill\centering \large{The Author}\hfill}
\end{titlepage}
\newpage
%\adforn{21}\quad\adforn{11}\quad\adforn{49}
%----------------------------------------------------------------------------------------------%
\twocolumn
\fancyhf{}
\pagestyle{dictstyle}%dictstyle
\lettergroup{A}
\dictchar{A}
% \hyperlink{A}{\dictchar{A}}
\entry[headwords]{headwords}{translations}{\textsf{/yinfu/}}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\entry[philosophy]{philosophy} {Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, \emph{plac- erat ac}}{/yinfu/}
\entry[Math]{Math}{Lorem ipsum dolor sit amet}{/yinfu/}
\entry[Physics]{Physics}{\lipsum[1-2]}{/yinfu/}
\entry[Nature]{Nature}{\lipsum}{/yinfu/}
\clearpage
\lettergroup{B}
\dictchar{B}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\lettergroup{C}
\dictchar{C}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\end{document}
答案1
\documentclass[twoside,10pt,twocolumn]{book}
\usepackage{lipsum}
\usepackage{adforn}
\usepackage[top=2.0cm, bottom=3.5cm, left=2cm, right=2cm]{geometry}%default top=1.5cm
\usepackage{fancyhdr}
\usepackage[french, english]{babel}
\usepackage[utf8x,utf8]{inputenc}
\usepackage{color}
\definecolor{marron}{RGB}{60,30,10}
\definecolor{darkblue}{RGB}{0,0,80}
\definecolor{lightblue}{RGB}{80,80,80}
\definecolor{darkgreen}{RGB}{0,80,0}
\definecolor{darkgray}{RGB}{0,80,0}
\definecolor{darkred}{RGB}{80,0,0}
\definecolor{shadecolor}{rgb}{0.97,0.97,0.97}
\usepackage[T1]{fontenc}
\usepackage{hanging}
\usepackage{tikz}
\usetikzlibrary{calc}
%---------------------------------------------------------------------------------------------%
\usepackage{fourier-orns}
\newcommand{\ornpar}{\noindent \textcolor{darkgray}{ \raisebox{-1.9pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafright \decofourleft \decothreeleft \aldineright \decotwo \floweroneleft \decoone}}}%even-footer part
\newcommand{\ornimpar}{\textcolor{darkgray}{\raisebox{-1.9pt}[10pt][10pt]{\decoone \floweroneright \decotwo \aldineleft \decothreeright \decofourright \leafleft} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafleft}}}%odd-footer part
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\newcommand\entry[4][]{\hangpara{2em}{1}{\fontfamily{phv}\selectfont{\textbf{{#2}}}}\ #4\
#3 \ifx\relax #1 \relax \markboth{#2}{#2}\else\markboth{#1}{#1}\fi
\vspace*{5pt}\par} \nopagebreak[4]%entry of dictionary
\newcommand*{\dictchar}[1]{\centerline{\LARGE\textbf{#1}}\vspace*{10pt}\par}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
% use fancyhdr or whatever you want to add
% the boxes to the header to make them appear
% on every page
% new counter to hold the current number of the
% letter to determine the vertical position
\newcounter{letternum}
% newcounter for the sum of all letters to get
% the right height of a box
\newcounter{lettersum}
\setcounter{lettersum}{26}
% some margin settings
\newlength{\thumbtopmargin}
\setlength{\thumbtopmargin}{1cm}
\newlength{\thumbbottommargin}
\setlength{\thumbbottommargin}{3cm}
% calculate the box height by dividing the page height
\newlength{\thumbheight}
\pgfmathsetlength{\thumbheight}{%
(\paperheight-\thumbtopmargin-\thumbbottommargin)%
/%
\value{lettersum}
}
% box width
\newlength{\thumbwidth}
\setlength{\thumbwidth}{1.5cm}
% style the boxes
\tikzset{
thumb/.style={
fill=black!50!red,
text=white,
minimum height=\thumbheight,
text width=\thumbwidth,
outer sep=0pt,
font=\sffamily\bfseries,
}
}
\newcommand{\oddthumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north east,] at ($%
(current page.north east)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
\newcommand{\eventhumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north west,] at ($%
(current page.north west)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
% create a new command to set a new lettergroup
\newcommand{\lettergroup}[1]{%
\fancypagestyle{chapterstart}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\chead{\oddthumb{#1}}% chapters start only on odd pages
\cfoot{\thepage}
}
\fancyhead[LO]{\fontfamily{phv}\selectfont{\textbf{\rightmark}}\oddthumb{#1}}%
\fancyhead[RE]{\fontfamily{phv}\selectfont{\textbf{\leftmark}}\eventhumb{#1}}%
% step the counter of the letters
\stepcounter{letternum}%
}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\makeatletter%headrule
\def\headrule{ {\color{black}\raisebox{3.1pt}{\leafright} \raisebox{1ex}{\rule{7.2cm}{1pt}} \raisebox{3.1pt}{~~~\decofourleft \decotwo \decofourright~~~} \raisebox{1ex}{\rule{7.2cm}{1pt}} \raisebox{3.1pt}{ \leafleft}} }
\makeatother
% \renewcommand\headrule{ {\color{darkgray}\raisebox{-2.1pt}[10pt][10pt]{\leafright} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{~~~\decofourleft \decotwo \decofourright~~~} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{ \leafleft}} }
% % \renewcommand\headrule{{\leafright} \hrulefill
% % \raisebox{-2.1pt}[10pt][10pt]{\quad\decofourleft\decotwo\decofourright\quad}{\hrulefill}\leafleft}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\fancypagestyle{basicstyle}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[LE,RO]{\textbf{\chaptitle}}
\fancyhead[LO,RE]{\textbf{\thepage}}
\fancyfoot[LE,RO]{\thepage}}
\fancypagestyle{dictstyle}{%
\fancyhf{}
%\renewcommand{\headrulewidth}{0pt}
\fancyhead[LE,LO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{-0.4em}{\rightmark}}}}}%[LE,LO]
%\fancyhead[CO,CE]{\headrule}%\thepage
\fancyhead[RE,RO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{-0.4em}{\leftmark}}}}}%[RE,RO]
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[LO]{
\ornimpar \\ \hfill \textcolor{darkgray}{\large \leafNE ~~~ \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} }
}%奇数面的footer
\fancyfoot[RE]{\ornpar \\ \textcolor{darkgray}{\large \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} ~~~ \reflectbox{\leafNE}} \hfill}
}%偶数面的footer, \fancyfoot[RE]{\ornpar \\ \large \sffamily\bf \textcolor{darkgray}{\thepage ~~~ \reflectbox{\leafNE}} \hfill}}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0pt}
%---------------------------------------------------------------------------------------------%
\usepackage{hyperref}
%\pagestyle{basicstyle}
%----------------------------------------------------------------------------------------------%
\begin{document}
%\maketitle
\begin{titlepage}
\centering\Huge \adforn{26}\adforn{21}\quad\adforn{11}\quad\adforn{49}\adforn{54}
\vspace*{2em}{\centering\bf %9em, \usefont{OT1}{cmr}{m}{it}
\texttt{\textbf{My Own Dictionary}}\par}
\vspace{2em}
{\hfill\centering \large{The Author}\hfill} %\hfill \itshape A story of love, hate and fame
\end{titlepage}
\newpage
%\adforn{21}\quad\adforn{11}\quad\adforn{49}
%----------------------------------------------------------------------------------------------%
\fancyhf{}
\pagestyle{dictstyle}
\lettergroup{A}
\dictchar{A}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\entry[philosophy]{philosophy} {Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, \emph{plac- erat ac}}{/yinfu/}
\entry[Math]{Math}{Lorem ipsum dolor sit amet}{/yinfu/}
\entry[Physics]{Physics}{\lipsum[1-2]}{/yinfu/}
\entry[Nature]{Nature}{\lipsum}{/yinfu/}
\clearpage
\lettergroup{B}
\dictchar{B}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\lettergroup{C}
\dictchar{C}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\end{document}
我在Texlive-2017中使用Texmaker-4.1.1进行的编译
答案2
我调整了代码,最终解决了页眉格式化的问题。如果我们没有通过命令renewcommand
或内部的 Tex 定义来定义一个全局的装饰页眉规则\makeatleter \define\headrule{...}\makeatother
,那么这个装饰页眉规则将不会作为左列页眉出现。这样就解决了第二个问题。另一方面,我们可以通过命令来控制整个页面(包含两列)的左页眉和右页眉的升降\raisebox{\leftmark or \rightmark}
。这样就解决了第一个问题。我改进后的 Tex 代码如下:
\documentclass[twoside,10pt,twocolumn]{book}
\usepackage{lipsum}
\usepackage{adforn}
\usepackage[top=2.0cm, bottom=3.5cm, left=2cm, right=2cm]{geometry}%
\usepackage{fancyhdr}
\usepackage[icelandic, czech, english]{babel}%
\usepackage[utf8x,utf8]{inputenc}
\usepackage{color}
\definecolor{marron}{RGB}{60,30,10}
\definecolor{darkblue}{RGB}{0,0,80}
\definecolor{lightblue}{RGB}{80,80,80}
\definecolor{darkgreen}{RGB}{0,80,0}
\definecolor{darkgray}{RGB}{0,80,0}
\definecolor{darkred}{RGB}{80,0,0}
\definecolor{shadecolor}{rgb}{0.97,0.97,0.97}
\usepackage[T1]{fontenc}
\usepackage{hanging}
\usepackage{tikz}
\usetikzlibrary{calc}
%---------------------------------------------------------------------------------------------%
\usepackage{fourier-orns}
\newcommand{\ornpar}{\noindent \textcolor{darkgray}{ \raisebox{-1.9pt} [10pt][10pt]{\leafright} \hrulefill \raisebox{-1.9pt}[10pt][10pt] {\leafright \decofourleft \decothreeleft \aldineright \decotwo \floweroneleft \decoone}}}%
\newcommand{\ornimpar}{\textcolor{darkgray}{\raisebox{-1.9pt}[10pt][10pt]{\decoone \floweroneright \decotwo \aldineleft \decothreeright \decofourright \leafleft} \hrulefill \raisebox{-1.9pt}[10pt][10pt]{\leafleft}}}%
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\newcommand\entry[4][]{\hangpara{2em}{1} {\fontfamily{phv}\selectfont{\textbf{{#2}}}}\ #4\
#3 \ifx\relax #1 \relax \markboth{#2}{#2}\else\markboth{#1}{#1}\fi
\vspace*{5pt}\par} \nopagebreak[4]%
\newcommand*{\dictchar}[1]{\centerline{\LARGE\textbf{#1}}\vspace*{10pt}\par}%
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
% use fancyhdr or whatever you want to add
% the boxes to the header to make them appear
% on every page
% new counter to hold the current number of the
% letter to determine the vertical position
\newcounter{letternum}
% newcounter for the sum of all letters to get
% the right height of a box
\newcounter{lettersum}
\setcounter{lettersum}{26}
% some margin settings
\newlength{\thumbtopmargin}
\setlength{\thumbtopmargin}{2.06cm}%1cm
\newlength{\thumbbottommargin}
\setlength{\thumbbottommargin}{3cm}
% calculate the box height by dividing the page height
\newlength{\thumbheight}
\pgfmathsetlength{\thumbheight}{%
(\paperheight-\thumbtopmargin-\thumbbottommargin)%
/%
\value{lettersum}
}
% box width
\newlength{\thumbwidth}
\setlength{\thumbwidth}{1.5cm}
% style the boxes
\tikzset{
thumb/.style={
fill=black!50!red,
text=white,
minimum height=\thumbheight,
text width=\thumbwidth,
outer sep=0pt,
font=\sffamily\bfseries,
}
}
\newcommand{\oddthumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north east,] at ($%
(current page.north east)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
\newcommand{\eventhumb}[1]{%
% see pgfmanual.pdf for more information about this part
\begin{tikzpicture}[remember picture, overlay]
\node [thumb,text centered,anchor=north west,] at ($%
(current page.north west)-%
(0,\thumbtopmargin+\value{letternum}*\thumbheight)%
$) {#1};
\end{tikzpicture}
}
% create a new command to set a new lettergroup
\newcommand{\lettergroup}[1]{%
\fancypagestyle{chapterstart}{%
\fancyhf{}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\chead{\oddthumb{#1}}% chapters start only on odd pages
\cfoot{\thepage}
}
%\renewcommand{\headrulewidth}{0pt}
%\fancyhead{}
\fancyhead[LO]{ \raisebox{1em}{ \fontfamily{phv} \selectfont{\textbf{\rightmark}} } \oddthumb{#1}}%
\fancyhead[RE]{ \raisebox{1em}{ \fontfamily{phv} \selectfont{\textbf{\leftmark}} } \eventhumb{#1}}
\fancyhead[LE]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{1em}{\rightmark}}}}}
\fancyhead[CO,CE]{\color{darkgray} \raisebox{-2.1pt}[10pt][10pt] {\leafright} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{~~~\decofourleft \decotwo \decofourright~~~} \hrulefill \raisebox{-2.1pt}[10pt][10pt]{ \leafleft}}
\fancyhead[RO]{{\fontfamily{phv}\selectfont{\textbf{\raisebox{1em}{\leftmark}}}}}
% step the counter of the letters
\stepcounter{letternum}
}
%---------------------------------------------------------------------------------------------%
%---------------------------------------------------------------------------------------------%
\fancypagestyle{basicstyle}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhead[LE,RO]{\textbf{\chaptitle}}
\fancyhead[LO,RE]{\textbf{\thepage}}
\fancyfoot[LE,RO]{\thepage}}
\fancypagestyle{dictstyle}{%
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead{}
\fancyfoot[LO]{
\ornimpar \\ \hfill \textcolor{darkgray}{\large \leafNE ~~~ \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} } }
\fancyfoot[RE]{\ornpar \\ \textcolor{darkgray}{\large \raisebox{-0.35em}{\textsf{\textbf{\thepage}}} ~~~ \reflectbox{\leafNE}} \hfill }
}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{0pt}
%---------------------------------------------------------------------------------------------%
\usepackage[bookmarks=true]{hyperref}
%\pagestyle{basicstyle}
%----------------------------------------------------------------------------------------------%
\begin{document}
%\maketitle
\begin{titlepage}
\centering\Huge \adforn{26}\adforn{21}\quad\adforn{11}\quad\adforn{49}\adforn{54}
\vspace*{2em}\centering\bf
\texttt{My Dictionary}\par
\vspace{2em}
{\hfill\centering \large{The Author}\hfill}
\end{titlepage}
\newpage
%----------------------------------------------------------------------------------------------%
\pagestyle{dictstyle}%dictstyle
\lettergroup{A}
\dictchar{A}
% \hyperlink{A}{\dictchar{A}}
\entry[headwords]{headwords}{translations}{\textsf{/yinfu/}}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\entry[philosophy]{philosophy} {Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, \emph{plac- erat ac}} {/yinfu/}
\entry[Math]{Math}{Lorem ipsum dolor sit amet}{/yinfu/}
\entry[Physics]{Physics}{\lipsum[1-2]}{/yinfu/}
\entry[Nature]{Nature}{\lipsum}{/yinfu/}
\clearpage
\lettergroup{B}
\dictchar{B}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\lettergroup{C}
\dictchar{C}
\entry[headwords]{headwords}{translations}{/yinfu/}
\entry[headwords2]{headwords2}{translations2}{/yinfu/}
\clearpage
\end{document}
照片显示如下: