当使用“fancyhdr”和“todonotes”时,文本会移至标题中

当使用“fancyhdr”和“todonotes”时,文本会移至标题中

我目前正在用 Latex(Lyx)编写 KOMA 文章文档,发现以下问题:

为了在 pdf 中显示注释,我尝试了 pdfcomment 包和 todonotes 包。不幸的是,当将这两个包中的一个与 fancyhdr 一起使用时,必要的文本偏移量被忽略,因此文本会写在标题上。

没有评论包就完全没有问题。

这个问题已经知道了吗? 有解决办法吗?

先感谢您。

编辑:

我只是尝试创建一个最小的示例(从 Lyx 导出 Latex),因为我意识到,即使使用 fancyhdr 包,我也只能在第一部分看到转变:

%% LyX 2.1.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\usepackage{float}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.

\usepackage{fancyhdr}

\pagestyle{fancy} 
\fancyhf{} 

\fancyhead[L]{\parbox{9cm}{\flushleft \bfseries Test\\ \scriptsize Test} \\ \vspace*{0.15cm} \mdseries \scriptsize Test} 
\renewcommand{\headrulewidth}{0.4pt} 

\makeatother

\usepackage{babel}
\begin{document}

\section{Intro}

TEST TEST TEST

\newpage{}

\section{Second}

TEST TEST TEST
\end{document}

答案1

以下是一个适合 KOMA 的方法,使用方式如下scrlayer-scrpage

\documentclass[headheight=55pt,headsepline]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\usepackage{scrlayer-scrpage}
\ihead{%
  \parbox{9cm}{%
    \begin{flushleft}
    \bfseries Test\\
    \scriptsize Test\\\vspace*{0.15cm}
    \mdseries \scriptsize Test
    \end{flushleft}%
  }%
}
\pagestyle{scrheadings}
\begin{document}

\section{Intro}

TEST TEST TEST

\newpage

\section{Second}

TEST TEST TEST
\end{document}

标题适合

请注意,fancyhdr和都scrlayer-scrpage很好地说明了为什么阅读控制台输出和/或日志文件至关重要。如果指定的内容不适合分配的空间,这两个包都会提供警告消息。例如,它们会告诉您标题的当前高度是多少以及需要的高度是多少。scrlayer-scrpage还为您提供了设置相关选项所需的语法。(fancyhdr无法执行此操作,因为它无法假设您如何布局页面 - 直接、使用geometry或使用其他东西,而scrlayer-scrpage做出可反驳但合理的假设,即您正在使用 KOMA 或 typearea 并且不会覆盖它。)

答案2

如果您检查代码中收到的警告,您会发现一条警告告诉您太低\headheight了。因此您需要将其设置为适当的值,例如:

\setlength{\headheight}{44pt}

然后覆盖就消失了。

请查看更正后的、稍微简化的 MWE:

\documentclass[ngerman]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}

\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

%\makeatletter % <================================================ Why??
\usepackage{fancyhdr}
\pagestyle{fancy} 
\fancyhf{} 

\fancyhead[L]{\parbox{9cm}{\flushleft \bfseries Test\\ \scriptsize Test} \\ \vspace*{0.15cm} \mdseries \scriptsize Test} 
\renewcommand{\headrulewidth}{0.4pt} 
\setlength{\headheight}{44pt} % <================================= to avoid warning and overwriting
%\makeatother % <================================================== Why??


\begin{document}

\section{Intro}

TEST TEST TEST

\newpage{}

\section{Second}

TEST TEST TEST
\end{document}

结果如下:

在此处输入图片描述

但最好只使用 KOMA-Script 来执行此操作。请参阅以下 MWE:

\documentclass[ngerman]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{babel}

\usepackage[headsepline]{scrlayer-scrpage}
\pagestyle{scrheadings} 
\ihead{\bfseries Test\\ \scriptsize Test \\ \vspace*{0.15cm} \mdseries \scriptsize Test}
\chead{}
\ohead{}
\ifoot{}
\cfoot{\pagemark} % pagenumber
\ofoot{} 
\setlength{\headheight}{37pt}


\begin{document}

\section{Intro}

TEST TEST TEST

\newpage{}

\section{Second}

TEST TEST TEST
\end{document}

结果如下:

在此处输入图片描述

相关内容