如何使用 scrartcl 在标题中插入节和第一个小节?

如何使用 scrartcl 在标题中插入节和第一个小节?

我有一份scartcl文档,我想添加页眉,使部分与左侧对齐,页面的第一个子部分与右侧对齐。页眉不应为斜体。我应该怎么做?

更新

根据以下答案问题并使用scrpage2我发现以下内容:

\documentclass{scrartcl}

\usepackage[autooneside]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\automark{section}
\renewcommand\subsectionmark[1]{\markright{\MakeMarkcase {\thesubsection\hskip .5em\relax#1}}}
\rohead{\ifnum\pdfstrcmp\botmark=0 \rightmark\else\leftmark{} --- \rightmark\fi}

\usepackage{lipsum}

\begin{document}

\section{Section}
\subsection{Subsection1}
\lipsum
\subsection{Subsection2}
\lipsum

\end{document}

我仍然有三个问题:* 页眉是斜体* 部分未在右侧对齐* 在第一页上,部分显示两次,而不是部分和小节。

有人可以帮我吗?

解决方案:这是我用过的埃塞克斯回答,谢谢!

\documentclass[headsepline]{scrartcl}
\usepackage[
  autooneside=false,% use left and right marks with a onesided document
  automark% set \leftmark and \rightmark automatically by \section and \subsection
]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\leftmark}% section on the inner (oneside: right) side
\ohead{\ifstr{\leftmark}{\rightmark}{}{\rightmark}}% subsection on the outer (oneside: left) side
\addtokomafont{pagehead}{\upshape}% header upshape instead italic
\cfoot{\thepage}
\addtokomafont{pagefoot}{\upshape}% header upshape instead italic

\usepackage{lipsum}

\begin{document}
\section{Section}
\subsection{Subsection1}
\lipsum
\subsection{Subsection2}
\lipsum
\end{document}

答案1

建议scrlayer-scrpage与KOMA-Script类一起使用。

\documentclass{scrartcl}
\usepackage[
  autooneside=false,% use left and right marks with a onesided document
  automark% set \leftmark and \rightmark automatically by \section and \subsection
]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\leftmark}% section on the inner (oneside: right) side
\ohead{\rightmark}% subsection on the outer (oneside: left) side
\addtokomafont{pagehead}{\upshape}% header upshape instead italic

\usepackage{lipsum}

\begin{document}
\section{Section}
\subsection{Subsection1}
\lipsum
\subsection{Subsection2}
\lipsum
\end{document}

解决你的第一个和第二个问题:

在此处输入图片描述

但第三个仍然存在:

在此处输入图片描述


要理解这个问题:

在您的示例中\section,并\subsection设置一个二分标记:\section将右侧部分和左侧部分设置为当前部分条目。\subsection将右侧部分设置为当前小节并保存左侧部分不变。

标记有三种类型:\botmark是页面上的最后一个有效标记、\firstmark是页面上设置的第一个标记以及\topmark是最后一页的内容\botmark。如果页面上没有新的标记\botmark,并且\firstmark的内容与 相同\topmark

请注意\leftmark使用\botmark\rightmark使用\firstmark

在您的示例中,第 1 页上的第一个标记由设置,\section{Section}因此此页面上第一个标记的右侧部分也是“部分”。


如果标题中的左侧条目与右侧条目相同,则可以删除它:

\ohead{\ifstr{\leftmark}{\rightmark}{}{\rightmark}}

在此处输入图片描述

或者使用\rightbotmarkif\leftmark\rightmark相等:

\ohead{\ifstr{\leftmark}{\rightmark}{\rightbotmark}{\rightmark}}

在此处输入图片描述

但是,这些页面上的最后一个子部分会被使用。此外,您的问题并没有真正得到解决:

\documentclass{scrartcl}
\usepackage[
  autooneside=false,
  automark
]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\leftmark}
\ohead{\ifstr{\leftmark}{\rightmark}{\rightbotmark}{\rightmark}}
\addtokomafont{pagehead}{\upshape}

\usepackage{lipsum}

\begin{document}
\section{Section1}
\subsection{Subsection1}
\lipsum
\section{Section2}
\lipsum
\end{document}

在此处输入图片描述

在此处输入图片描述

现在您可以\righttopmark在此类页面上使用

\documentclass{scrartcl}

\usepackage[autooneside=false,automark]{scrlayer-scrpage}
\clearpairofpagestyles
\ihead{\leftmark}
\ohead{%
  \ifstr{\leftmark}{\rightmark}
    {\ifstr{\leftmark}{\rightbotmark}
      {\righttopmark}
      {\rightbotmark}}
    {\rightmark}
  }
\addtokomafont{pageheadfoot}{\upshape}

\usepackage{lipsum}
\begin{document}
\section{Section1}
\subsection{Subsection1}
\lipsum
\section{Section2}
\lipsum
\end{document}

要得到

在此处输入图片描述

但我认为这没什么用。

如果使用文章类,我建议仅设置标题中的部分。

相关内容