标题部分和小节

标题部分和小节

我想将标题中的部分放在奇数页(右侧)的左侧标题中,将子部分放在偶数页(左侧)的右侧标题中(除非没有子部分,在这种情况下我希望在两个地方都放置该部分)。谢谢

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{sidenotes}
\usepackage{graphicx}
\usepackage{float}
\usepackage{esint}
\usepackage{lipsum}
\usepackage{booktabs}
\usepackage{wrapfig}
\usepackage{multirow}
\usepackage{enumitem}
% \usepackage{parskip}
\usepackage{emptypage}
\usepackage{subcaption}
\usepackage{fontawesome,blindtext}
\usepackage{multicol}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{amsmath, amsfonts, mathtools, amsthm, amssymb}
\usepackage{mathrsfs}
\usepackage{marginnote}
\usepackage{placeins}
\usepackage{cancel}
\usepackage{bm}
% horizontal rule
\newcommand\hr{
    \noindent\rule[0.5ex]{\linewidth}{0.5pt}
}



\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{plain}{%
    \fancyhf{} % 
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\subsectionmark}[1]{\markright{\thesubsection. #1}}
\fancyhf{}
\fancyhead[LEH,ROH]{\small\bfseries\thepage} %numeri pagina m.est.
\fancyhead[REH]{\bfseries\small\nouppercase{\thesubsection.}} %capitoli m.int.sx
\fancyhead[LOH]{\bfseries\small\nouppercase{\rightmark}} %sezioni m.int.dx
\fancyfoot[C]{\bfseries\nouppercase{\leftmark}}
\makeatletter








\begin{document}
\tableofcontents
\chapter{Hello}
\section{section}
\lipsum\lipsum\lipsum\lipsum\lipsum\lipsum 

\chapter{Hello2}
\section{section}
\subsection{subsec}
\lipsum\lipsum\lipsum\lipsum\lipsum\lipsum 
\end{document}

答案1

这个问题有点令人困惑,因为您说“右侧部分和左侧子部分”。我认为您的意思是您希望奇数页(右侧)左侧页眉中的部分和偶数页(左侧)右侧页眉中的子部分(除非没有子部分,在这种情况下您希望两个位置都有部分)。

如果我误解了,我想改变起来很容易。

虽然可能使用内置标记机制来做到这一点(不确定),因为您还需要章节标记(在底部),但我认为您还需要加载fancyhdr的配套extramarks包,这样您就有两个以上的标记可以使用。

\extramarks这定义了一个类似于\markboth但针对不同命名标记(leftxmark, )的命令rightxmark

\sectionmark这里我建议在和命令中设置右附加标记\subsectionmark,然后\lastrightxmark在偶数页右侧的页眉中使用。它将使用最后给出的右附加标记,因此如果在节之后没有给出小节命令,则将应用该节的标记,但如果给出了小节标题,则将应用该小节的标记。

这是我建议的代码。

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, mathtools, amsthm, amssymb}
\usepackage{textcomp}
\usepackage{sidenotes}
\usepackage{graphicx}
\usepackage{float}
\usepackage{esint}
\usepackage{lipsum}
\usepackage{booktabs}
\usepackage{wrapfig}
\usepackage{multirow}
\usepackage{enumitem}
% \usepackage{parskip}
\usepackage{emptypage}
\usepackage{subcaption}
\usepackage{fontawesome,blindtext}
\usepackage{multicol}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{mathrsfs}
\usepackage{marginnote}
\usepackage{placeins}
\usepackage{cancel}
\usepackage{bm}
% horizontal rule
\newcommand\hr{
    \noindent\rule[0.5ex]{\linewidth}{0.5pt}
}


\usepackage{fancyhdr,extramarks}
% plain style for first page of chapters
\fancypagestyle{plain}{%
    \fancyhf{} % 
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}
}

% fancy style elsewhere
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhf{}
% page numbers, even pages left, odd pages right
\fancyhead[LEH,ROH]{\small\bfseries\thepage} %numeri pagina m.est.
% use the extra mark (could be section or subsection) on right of even pages
\fancyhead[REH]{\bfseries\small\nouppercase{\lastrightxmark}} %capitoli m.int.sx
% use the left mark (section) on left of odd pages
\fancyhead[LOH]{\bfseries\small\nouppercase{\rightmark}} %sezioni m.int.dx
% chapter in footer center
\fancyfoot[C]{\bfseries\nouppercase{\leftmark}}

% marking commands

% subsections change the right extra mark
\renewcommand{\subsectionmark}[1]{%
    \extramarks{}{#1\ \thesubsection}
}
% sections change the right mark, and right extra mark
\renewcommand{\sectionmark}[1]{%
    \markright{\thesection\ #1}
    \extramarks{}{#1\ \thesection}
}
% chapters set left mark and reset others
\renewcommand{\chaptermark}[1]{%
    \markboth{\chaptername\ \thechapter. #1}{}
    \extramarks{}{}
}

\begin{document}
\tableofcontents
\chapter{First Chapter}
\section{section without subsection}
\lipsum[1-20]

\chapter{Second Chapter}
\section{section with subsection}
\subsection{my subsection}
\lipsum[21-40]

\end{document}

在没有小节的章节中,您可以在偶数页上获得章节标题和编号:

无小节

在包含小节的章节中,您可以找到小节标题和编号。

包含小节

如果我理解正确的话我想这就是你想要的。

无关,但我还将 ams 包移到了列表中的上部,以避免出现多次定义同一命令的问题,并删除了 amsfonts(因为 amssymb 无论如何都会加载它)。我还删除了 stray \makeatletter,它没有做任何有用的事情,没有 就不好了\makeatother

编辑:如果您希望小节编号位于标题左侧,而不是像我一样始终位于外面,则可以使用:

% subsections change the right extra mark
\renewcommand{\subsectionmark}[1]{%
    \extramarks{}{\thesubsection\ #1}
}
% sections change the right mark, and right extra mark
\renewcommand{\sectionmark}[1]{%
    \markright{\thesection\ #1}
    \extramarks{}{\thesection\ #1}
}

在所有这些命令中,代表标题的位置,以(例如)#1开头的命令代表数字。\the\thesubsection

相关内容