在尝试使用facnyhdr更改页眉页脚的样式时,希望可以将页眉的横线长度根据各个section的实际长度动态调整,而我只找到`%renewcommand{headwidth}{<length>}这样一个宏,不太确定能否动态决定页眉横线的长度。
效果如下图
MWE
\documentclass[12pt]{ctexart}
\usepackage{amsmath}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{lipsum}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\thepage}{\roman{page}}
\fancyhead[L]{\leftmark}
\fancyfoot[C]{第 \thepage 页,共 \pageref{LastPage} 页}
\begin{document}
\section{如何入门\LaTeX{}}
\lipsum[2-6]
\section{如何进一步学习\LaTeX{}Long Long Long Long Long Long}
\lipsum[2-6]
\section{如何系统性学习\LaTeX{}}
\lipsum[2-6]
\section{如何入坑\LaTeX{}}
\lipsum[2-6]
\section{如何放弃\LaTeX{}Long Long Long Long}
\lipsum[2-6]
\end{document}
\newlength{\leftmarkwidth}
\renewcommand{\headrule}{%
\settowidth{\leftmarkwidth}{\leftmark}%
\vspace*{-.5\baselineskip}%
\vrule width \leftmarkwidth height .5pt\relax%
}
\documentclass[12pt]{ctexart}
\usepackage{amsmath}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{lipsum}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\thepage}{\roman{page}}
\newlength{\leftmarkwidth}
\renewcommand{\headrule}{%
\settowidth{\leftmarkwidth}{\leftmark}%
\vspace*{-.5\baselineskip}%
\vrule width \leftmarkwidth height .5pt\relax%
}
\fancyhead[L]{\leftmark}
\fancyfoot[C]{第 \thepage 页,共 \pageref{LastPage} 页}
\begin{document}
\section{如何入门\LaTeX{}}
\lipsum[2-6]
\section{如何进一步学习\LaTeX{}Long Long Long Long Long Long}
\lipsum[2-6]
\section{如何系统性学习\LaTeX{}}
\lipsum[2-6]
\section{如何入坑\LaTeX{}}
\lipsum[2-6]
\section{如何放弃\LaTeX{}Long Long Long Long}
\lipsum[2-6]
\end{document}