如何在页眉中显示未打印的文本?

如何在页眉中显示未打印的文本?

我习惯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}

相关内容