我使用 Koma-script 进行章节格式化,如下图和 MNWE 中所示。
我发现有一个有趣的图书馆curr文件可以检索编译源文本的文件的名称。我正在尝试实现将小字体的文件名放在左上角的灰色方块中。我的代码很笨拙。
我还尝试使用以下代码采用不同的方法将文件名放入标题中:
\pagestyle{scrheadings}
\chead{\currfilename}
但万一章节名称太长,文本就会重叠。
MNWE:
\documentclass[chapterprefix=on]{scrbook}
\usepackage{blindtext}
\usepackage{graphicx} % command \scalebox{}{}
\usepackage{xcolor}
\usepackage[headsepline]{scrlayer-scrpage}
\addtokomafont{chapterprefix}{\currfilename\color{red}\raggedleft}
\setkomafont{chapter}{\color{black}\fontsize{18}{22}\selectfont}
% how to insert the actual or current filename:
% https://stackoverflow.com/questions/5549803/
\usepackage{currfile}
\renewcommand*{\chapterformat}{%
\mbox{\chapappifchapterprefix{\nobreakspace}%
\scalebox{2}{\thechapter\autodot}\enskip}
}
\makeatletter
\renewcommand{\chapterlineswithprefixformat}[3]{%
\colorbox{gray}{%
\parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%
\raggedchapter
#2#3%
}%
}%
}
\makeatother
\pagestyle{scrheadings}
\chead{\currfilename}
\begin{document}
\blinddocument
\end{document}
答案1
\addtokomafont
在和的第二个参数中仅使用字体命令\setkomafont
。
\documentclass[chapterprefix=on]{scrbook}
\usepackage{lmodern}% <- scalable font
\usepackage{blindtext}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage[headsepline]{scrlayer-scrpage}% -> sets page style scrheadings automatically
\addtokomafont{chapterprefix}{\color{red}}% <- changed: use only font commands!
\setkomafont{chapter}{\color{black}\fontsize{18}{22}\selectfont}
% how to insert the actual or current filename: \currfilename
% https://stackoverflow.com/questions/5549803/
\usepackage{currfile}
\renewcommand*{\chapterformat}{%
\mbox{\chapappifchapterprefix{\nobreakspace}%
\scalebox{2}{\thechapter\autodot}\enskip}
}
\makeatletter
\renewcommand{\chapterlineswithprefixformat}[3]{%
\colorbox{gray}{%
\parbox{\dimexpr\linewidth-2\fboxrule-2\fboxsep}{%
\raggedchapter
\smash{\small\raisebox{-\ht\strutbox}{\currfilename}}\\% <- added
{\raggedleft#2}#3% <- changed
}%
}%
}
\makeatother
\chead{\currfilename}
\begin{document}
\blinddocument
\end{document}