You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用fancyhdr包无法隐藏页眉横线的技术求助

搞定LaTeX页眉横线顽固残留的问题

嘿,我懂你这种明明按常规方法操作却搞不定的烦躁!你已经试过\renewcommand{\headrule}{}但页眉横线还顽固存在,大概率是因为你用的页眉页脚宏包不同,或者有其他宏包悄悄覆盖了你的设置。下面分几种最常见的情况给你针对性解决方案:

情况1:用的是fancyhdr宏包(最常用的页眉工具)

如果你是靠fancyhdr来设置页眉页脚,那正确的去横线姿势不是重定义\headrule,而是把页眉线的宽度设为0。给你个完整的示例代码,既能在右上角放页码,又能彻底干掉横线:

\usepackage{fancyhdr}
\pagestyle{fancy}
% 把页码放在右上角
\fancyhead[R]{\thepage}
% 清空左边、中间的页眉内容,避免自动填充章节标题
\fancyhead[L]{}
\fancyhead[C]{}
% 关键:把页眉线宽度设为0,直接让它消失
\renewcommand{\headrulewidth}{0pt}

要是你的文档里章节标题会自动跑到页眉里,那再加两行清空章节标记的代码,防止横线被重新触发:

\renewcommand{\chaptermark}[1]{\markboth{}{}}
\renewcommand{\sectionmark}[1]{\markright{}}

情况2:用的是KOMA系列文档类(比如scrreprt/scrbook

如果你用的是KOMA-script的文档类,它有自己专属的页眉页脚设置逻辑,不能直接用fancyhdr的命令。分新旧版本给你代码:

新版KOMA(用scrlayer-scrpage

\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
% 右上角放页码
\ohead{\pagemark}
% 把页眉线宽度设为0
\setheadsepline{0pt}

旧版KOMA(用scrpage2

\usepackage{scrpage2}
\pagestyle{scrheadings}
\ohead{\thepage}
\clearscrheadfoot
\setheadsepline{0pt}

情况3:没加载任何页眉宏包,用的是LaTeX默认样式

要是你没装任何页眉相关宏包,用的是默认的headings样式,那可以直接重定义页眉线宽度,或者干脆自定义一个只显示页码的页面样式:

快速去横线

\pagestyle{headings}
\makeatletter
\renewcommand{\headrulewidth}{0pt}
\makeatother

自定义仅显示页码的样式(更彻底)

\makeatletter
\def\ps@mystyle{%
  \let\@oddhead\@empty  % 清空奇数页页眉
  \let\@evenhead\@empty % 清空偶数页页眉
  \def\@oddfoot{\hfil\thepage\hfil} % 奇数页页码居中(或者改位置)
  \def\@evenfoot{\hfil\thepage\hfil} % 偶数页页码居中
  \let\@mkboth\@gobbletwo % 清空章节标记
  \let\sectionmark\@gobble
  \let\subsectionmark\@gobble
}
\makeatother
\pagestyle{mystyle}

最后给个排查小技巧

要是还是不行,先把文档里的宏包精简到最少,只保留必要的,逐步加回去排查——说不定是某个宏包(比如biblatex或者模板自带的类)悄悄覆盖了你的页眉设置。另外,记得把你的页眉设置放在所有宏包加载之后,避免被后续的宏包给冲掉。

内容的提问来源于stack exchange,提问作者johnabs

火山引擎 最新活动