使用当前文件名 (\currfilename) 格式化 Koma-script 章节

使用当前文件名 (\currfilename) 格式化 Koma-script 章节

我使用 Koma-script 进行章节格式化,如下图和 MNWE 中所示。

我发现有一个有趣的图书馆curr文件可以检索编译源文本的文件的名称。我正在尝试实现将小字体的文件名放在左上角的灰色方块中。我的代码很笨拙。

我还尝试使用以下代码采用不同的方法将文件名放入标题中:

\pagestyle{scrheadings}  
\chead{\currfilename}

但万一章节名称太长,文本就会重叠。

使用 \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}

在此处输入图片描述

相关内容