我正在研究一本哲学手稿的学术版,并寻找一种方法让 fancyhdr 显示原始 MS 的分页符。
在文本中,我在分页符的位置放置了“|”,现在 - 尽管我很天真 - 我正在寻找一个命令来(手动)在页眉中放置像“1|2”这样的信息(偶数页放在右边,奇数页放在左边)。
我希望我的英语不是太差,并且我确实表达得足够清楚。
答案1
使用\mymark
命令将规则放置在文本中,并将所需的文本放置在页眉中;例如,\mymark{7}{8}
在文档正文中放置一条规则,并将其放置 7|8
在页眉中(如果第二个数字始终是第一个加一,则可以稍微简化定义,但这在问题中并不清楚):
\documentclass[twoside]{article}
\usepackage[a6paper]{geometry} % just for the example
\usepackage{fancyhdr}
\def\mymark{}
\fancyhf{}
\fancyhead[RE,LO]{\mymark}
\fancyfoot[c]{\thepage}
\pagestyle{fancy}
\newcommand\MyBreak[2]{%
\renewcommand\mymark{\footnotesize#1\,\rule{0.4pt}{1.6ex}\,#2}~\rule[-.3ex]{1pt}{2ex}}
\newcommand\Text{this is just some text for the example} % just to generate text for the example
\begin{document}
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\MyBreak{1}{2}\ \Text\ \Text
\clearpage
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\MyBreak{4}{5}\ \Text\ \Text
\end{document}
第一页的图片:
第二页的图片:
变体;\MyBreak
现在有一个强制参数和一个可选参数。如果以 的形式使用\MyBreak{}
(强制参数为空),它只会从标题中删除文本;否则,以 的形式使用,它会\MyBreak{<number>}
在文本中打印一条规则,并以 的形式打印标题<number>|<number>+1
。如果字符u
在可选参数中使用,如\MyBreak[u]{<number>}
,则标题将仅包含<number>
;如果字符t
在可选参数中使用,如\MyBreak[t]{<number>}
,则标题将包含<number>|<number>+1|<number>+2
请参见以下示例;\MyRule
提供了一个附加命令,用于在文本中简单地绘制垂直规则而不生成标记:
\documentclass[twoside]{book}
\usepackage[a6paper]{geometry} % just for the example
\usepackage{fancyhdr}
\def\mymark{}
\fancyhf{}
\fancyhead[RE,LO]{\mymark}
\fancyfoot[c]{\thepage}
\pagestyle{fancy}
\newcommand\MyRule{~\rule[-.3ex]{1pt}{2ex}}
\newcommand\MyBreak[2][]{%
\ifx#1u\relax
\renewcommand\mymark{\footnotesize#2}%
\else
\ifx#1t\relax
\renewcommand\mymark{\footnotesize#2\,\rule{0.4pt}{1.6ex}\,\number\numexpr#2+1\,\rule{0.4pt}{1.6ex}\,\number\numexpr#2+2\relax}~\rule[-.3ex]{1pt}{2ex}%
\else
\if\detokenize{#2}\relax\relax
\renewcommand\mymark{}%
\else
\renewcommand\mymark{\footnotesize#2\,\rule{0.4pt}{1.6ex}\,\number\numexpr#2+1\relax}~\rule[-.3ex]{1pt}{2ex}%
\fi
\fi
\fi
}
\newcommand\Text{this is just some text for the example} % just to generate text for the example
\begin{document}
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\MyBreak{3}\ \Text\ \Text
\clearpage
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\MyBreak[u]{4}\ \Text\ \Text
\clearpage
\MyBreak{}
\Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\ \Text\
\clearpage
\Text\ \Text\ \Text\ \Text\MyBreak[t]{7} \Text\ \Text\ \Text\ \Text\MyRule\ \Text\ \Text\ \Text\ \Text\ \Text\
\end{document}
答案2
\documentclass[twoside]{article}
\usepackage[a4paper,margin=1in,heightrounded,headheight=16pt]{geometry}
\usepackage{fancyhdr} % put things headers and footers and we plan misuse it ;)
\usepackage{lipsum} % for sample text
\usepackage{lastpage} % Will get last page number for you
%
\fancypagestyle{mypage}{%
\fancyhf{}
\fancyhead[LO]{Page \thepage\ \rule[-1ex]{.5pt}{3.5ex} \pageref{LastPage}}
\fancyhead[RE]{Page \thepage\ \rule[-1ex]{.5pt}{3.5ex} \pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\begin{document}
\pagestyle{mypage} % activate page style
\lipsum[1-25]
\end{document}