我习惯fancyhdr
在标题部分显示字典中的第一个和最后一个词条。问题是字典中的词条可能包含特殊符号(见示例图片)),我不希望这些符号出现在标题行中。如何在标题行中显示不带符号的词条?
以下是最小示例:
\documentclass[twocolumn]{book}
\usepackage[margin=2cm]{geometry}
\usepackage[icelandic, czech, english]{babel}
\usepackage[utf8x,utf8]{inputenc}
\usepackage[T1]{fontenc}
\newcommand{\entry}[2]{\hangpara{2em}{1}\textsf{\textbf{#1}}\
#2\markboth{#1}{#1}\par}\nopagebreak[4]
\usepackage{fix2col,hanging}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{dictstyle}{%
\fancyhf{}
\fancyhead[LE,RO]{\textsf{\textbf{\rightmark\ -- \leftmark}}}
\fancyhead[LO,RE]{\textsf{\textbf{\thepage}}}
}
\begin{document}
\pagestyle{dictstyle}
\entry{kímni··gáf|a}{meaning}
\end{document}
答案1
您可以定义一个可选参数,\entry
该参数始终用于不带符号的单词:
\entry[word without symbols]{word with symbols}{meaning}
\entry{word without symbols}{meaning}
\documentclass[twocolumn]{book}
\usepackage[margin=2cm]{geometry}
\usepackage[icelandic, czech, english]{babel}
\usepackage[utf8x,utf8]{inputenc}
\usepackage[T1]{fontenc}
\newcommand\entry[3][]{\hangpara{2em}{1}\textsf{\textbf{#2}}\
#3\ifx\relax#1\relax\markboth{#2}{#2}\else\markboth{#1}{#1}\fi
\par}\nopagebreak[4]
\usepackage{fix2col,hanging}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{dictstyle}{%
\fancyhf{}
\fancyhead[LE,RO]{\textsf{\textbf{\rightmark\ -- \leftmark}}}
\fancyhead[LO,RE]{\textsf{\textbf{\thepage}}}
}
\begin{document}
\pagestyle{dictstyle}
\entry[kímnigáfa]{kímni··gáf|a}{meaning}
\entry{word without symbols}{meaning}
\entry[word without symbols]{word$\cdot$symbols}{meaning}
\clearpage
\entry[word without symbols]{word:symbols}{meaning}
\entry{word}{meaning}
\end{document}