![chaptertitle 名称和章节号在同一行,但在页面的不同边缘](https://linux22.com/image/315976/chaptertitle%20%E5%90%8D%E7%A7%B0%E5%92%8C%E7%AB%A0%E8%8A%82%E5%8F%B7%E5%9C%A8%E5%90%8C%E4%B8%80%E8%A1%8C%EF%BC%8C%E4%BD%86%E5%9C%A8%E9%A1%B5%E9%9D%A2%E7%9A%84%E4%B8%8D%E5%90%8C%E8%BE%B9%E7%BC%98.png)
这就是我要的:
简介 <--- 位于页面最右侧---> 第 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}