chaptertitle 名称和章节号在同一行,但在页面的不同边缘

chaptertitle 名称和章节号在同一行,但在页面的不同边缘

这就是我要的:

简介 <--- 位于页面最右侧---> 第 1 章

但问题是,我在双面文档中有一个 5 厘米宽的边距注释空间。book如果有帮助的话,我正在和全班同学一起努力……

答案1

另一个解决方案是titlesec,它也适用于多行标题:

\documentclass[twoside]{book}

\usepackage[right=5cm, showframe]{geometry}
\usepackage[x11names]{xcolor}
\usepackage[explicit]{titlesec}

\titleformat{\chapter}{\Huge\bfseries}{\rlap{\hspace*{\dimexpr\textwidth + \marginparsep}\color{IndianRed3}\chaptername{} \thechapter}}{0pt}{#1}

\usepackage{lipsum}

\begin{document}
\mainmatter
\chapter{Introduction}

\lipsum[1-3]

\setcounter{chapter}{8}
\chapter{Another chapter. \\Yet another chapter.}

\lipsum[4-6]


\end{document} 

在此处输入图片描述

答案2

我认为如果你手动重新定义,你会最灵活\@makechapterhead。(我会在完整代码之前添加一条注释,说明原因。)

两个 parbox,第一个和你的右边距一样宽\textwidth,第二个和你的右边距一样宽(5cm),并排包裹成一个\hbox应该可以完成工作

\hbox{%
  \parbox[t]{\the\textwidth}{\Huge\bfseries\raggedright#1}
  \parbox[t]{5cm}{\huge\bfseries\raggedleft\@chapapp\space \thechapter}
}

输出草稿

如您所见,“第 1 章”被推到了边缘。但是,我建议将第二个设置\parbox为比右边距略小。我在最终解决方案中使用了 4.5 厘米。此外,我会在第一个的宽度上添加一点偏移\parbox,因此最终的重新定义\@makechapterhead为:

\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter
        \dimen0=\dimexpr\textwidth-2em\relax
        \hbox{%
          \parbox[t]{\the\textwidth}{\Huge\bfseries\raggedright#1}
          \parbox[t]{4.5cm}{\huge\bfseries\raggedleft\@chapapp\space \thechapter}
        }
        \par\nobreak
      \fi
    \fi
    \interlinepenalty\@M
    \vskip 40\p@
  }
}

输出最终

现在谈几点看法:

  • 您需要 e-TeX 扩展来编译代码。默认情况下,它应该在您的发行版中。我只是为了完整性而提到它。
  • 使用此解决方案,您可以设置marginparwidth而不干扰章节编号(参见最后一张图片)。
  • 您可以处理很长的章节标题(参见最后一张图片)。

极端情况

完整代码如下:

\documentclass[twoside]{book}
\usepackage{lipsum}
\usepackage[right=5cm,marginparwidth=2.5cm,marginparsep=2em]{geometry}
\usepackage{marginnote}

\makeatletter
\def\@makechapterhead#1{%
  \vspace*{50\p@}%
  {\parindent \z@ \normalfont
    \ifnum \c@secnumdepth >\m@ne
      \if@mainmatter
        \dimen0=\dimexpr\textwidth-2em\relax
        \hbox{%
          \parbox[t]{\the\dimen0}{\Huge\bfseries\raggedright#1}
          \parbox[t]{4.5cm}{\huge\bfseries\raggedleft\@chapapp\space \thechapter}
        }
        \par\nobreak
      \fi
    \fi
    \interlinepenalty\@M
    \vskip 40\p@
  }
}
\makeatother

\begin{document}
\chapter{Long long long long long long long Introduction}

\marginnote{Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.}
\lipsum
\end{document}

相关内容