正确对齐页边距中的章节标题

正确对齐页边距中的章节标题

这是第一段在页边的章节标题后缩进,但我无法在那里投票、评论或接受答案,因为它是在访客帐户下进行的,并未链接到此帐户。

使用回忆录类时将章节标题放在外边距会导致第一段出现微小缩进,即使关闭了段落缩进并打开了段落间跳行功能。Gonzalo Medina 的答案(更改\setaftersecskip1sp)解决了该问题,即使没有负缩进技巧,但它引入了另一个问题:章节标题不再与章节的第一段一致对齐。有时标题的顶部与段落的顶部对齐,有时底部与段落第一行的基线对齐,有时位于两个段落之间。此外,有时段落之间的线似乎太窄(不是完整的行高)。

Gonzalo 还在\marginpar我的示例中进行了更改\marginnotes,并将该包添加到了序言中。这似乎解决了问题的第一部分,但节/子节更改之间的行距似乎仍然不对。还有其他方法可以解决这个问题吗?

(我还没有办法编辑问题/答案,但如果有人可以将这个问题与其他问题合并,那就好了。)

\documentclass[12pt,a5]{memoir}
\usepackage{lipsum}

\semiisopage%  a default margin layouts

% fix margin notes

\setmarginnotes{3em}{0.2\textwidth}{2\onelineskip}

%% No numbered sections

\setcounter{secnumdepth}{0}

%% Section Names in margin

\newcommand{\marginhead}[1]{%
  \marginpar{\bfseries\centering #1}}

%% set section, subsection and subsubsection headers
%% all the same, small bold text

\setsecindent{0em}
\setaftersecskip{0em}
\setsecheadstyle{\small\marginhead}

\setsubsecindent{0em}
\setaftersubsecskip{0em}
\setsubsecheadstyle{\small\marginhead}

% etc.

%% Paragraph styles
%%
%% no indent, skip line instead

\abnormalparskip{\baselineskip}
\setlength{\parindent}{0pt}

\checkandfixthelayout

\begin{document}

\section{First Section}
\lipsum[1]
\subsection{First Subsection}
\lipsum[1]
\section{Second Section}
\lipsum[1]

\end{document}

答案1

在我的实际项目中,它比 MWE 长得多,对齐问题更加严重,而且一些章节标题被放在了错误的边距中,并被页面边缘切断。但我似乎找到了一个解决方案,基于另一个问题,如何保持标题与文本一致

我所做的是同时使用了 Gonsalo Medina 的解决方案(包括替换)\marginnote和,\needspace如下所示:

\newcommand{\marginhead}[1]{%
  \needspace{4em}\marginnote{\bfseries\centering #1}}

\setsecindent{0em}
\setbeforesecskip{-2em}
\setaftersecskip{1sp}
\setsecheadstyle{\small\marginhead}

等等,用于小节和小小节的定义。我必须测试几个值,然后\needspace才能找到一个可以把标题放在边距中而不会弄乱一两个的值。

边注\input:我还发现,当用于模块化文档时,除非节标题与节中的第一段位于同一文件中,否则该解决方案不起作用。因此,我可以:

\section{Title One}
First paragraph goes here.

\input{./tex/module1.tex}

或者,我想,将其放在\section第一段module1.tex中,但如果它是页面上的第一件事,则将它们分开会导致标题混乱。

相关内容