如何解决使用fancyhdr设计的页脚中小页中的Raggedleft
目标是设计一份双面报告。在左页的页脚应该是外边缘的页码(右对齐),然后是一条垂直线,然后是章节名称(左对齐)。在右边的页面上应该是章节名称(右对齐)、一条垂直线,最后是页码(左对齐)。右页设计适用于所有对齐方式,而在左页上,页码对齐失败,即粗体设置不起作用。
这是我的编码方式:
\documentclass[a4paper,twoside,openright]{report}
\usepackage[top=2cm,bottom=4cm,inner=3cm,outer=2cm,footskip=2cm]{geometry}
\usepackage{fancyhdr}
\usepackage{blindtext}
\def\vfootline{\begingroup\rule[-990pt]{0.5pt}{1000pt}\endgroup}
\fancyfootoffset{15.5pt}
\renewcommand\headrulewidth{0pt}
\fancypagestyle{dummy}{
\fancyhead{}
\fancyfoot{}
\fancyfoot[LE]{
\begin{minipage}[b]{0cm}
\raggedleft\thepage
\end{minipage}
\hspace*{10pt}
\vfootline
\hspace*{10pt}
\leftmark
}
\fancyfoot[RO]{
\roboto
\rightmark
\hspace*{10pt}
\vfootline
\hspace*{10pt}
\begin{minipage}[b]{0cm}
\raggedright\thepage
\end{minipage}
}
}
% document
\begin{document}
\pagenumbering{roman}
\pagestyle{dummy}
\Blinddocument
\end{document}
我选择了罗马数字,因为它们能更好地说明问题。请看一下对齐方式:
感谢每一个提示或解决方案。提前致谢!
最好的, 托尼
解决方法
小页面内文本的左/右对齐只有在它们的宽度足以容纳内容时才有意义。
\documentclass[a4paper,twoside,openright]{report}
\usepackage[top=2cm,bottom=4cm,inner=3cm,outer=2cm,footskip=2cm]{geometry}
\usepackage{fancyhdr}
\usepackage{blindtext}
\def\vfootline{\begingroup\rule[-990pt]{0.5pt}{1000pt}\endgroup}
\fancyfootoffset{15.5pt}
\renewcommand\headrulewidth{0pt}
\fancypagestyle{dummy}{
\fancyhead{}
\fancyfoot{}
\fancyfootoffset[OR]{1.85cm}%
\fancyfoot[OR]{%
{\ }%
% \roboto%
{%
\rightmark%
}%
\hspace*{10pt}
{%
\rule[-90pt]{1.25pt}{100pt}%
}%
\hspace*{10pt}%
\begin{minipage}[b]{1.5cm}%
\thepage%
\end{minipage}%
}
\fancyfootoffset[EL]{1.85cm}%
\fancyfoot[EL]{%
% \roboto
\begin{minipage}[b]{1.5cm}%
\raggedleft%
\thepage%
\end{minipage}%
\hspace*{10pt}%
{%
\rule[-90pt]{1.25pt}{100pt}%
}%
\hspace*{10pt}%
{%
\leftmark%
}%
}%
}
% document
\begin{document}
\pagenumbering{roman}
\pagestyle{dummy}
\Blinddocument
\end{document}
或者,您可以使用 \makebox
代替 minipages:
\documentclass[a4paper,footskip=2cm]{geometry}
\usepackage{fancyhdr}
\usepackage{blindtext}
\def\vfootline{\begingroup\rule[-990pt]{0.5pt}{1000pt}\endgroup}
\fancyfootoffset{15.5pt}
\renewcommand\headrulewidth{0pt}
\fancypagestyle{dummy}{
\fancyhead{}
\fancyfoot{}
\fancyfoot[LE]{
\makebox[0pt][r]{\thepage}
\hspace*{10pt}
\vfootline
\hspace*{10pt}
\leftmark
}
\fancyfoot[RO]{
% \roboto
\rightmark
\hspace*{10pt}
\vfootline
\hspace*{10pt}
\makebox[0pt][l]{\thepage}
}
}
% document
\begin{document}
\pagenumbering{roman}
\pagestyle{dummy}
\Blinddocument
\end{document}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。