布局中带有页边标题和页边注

布局中带有页边标题和页边注

问题总结如下!

我想将一些旧的(阅读:丑陋的自编码 html)教程转换为 pdf。它们仍然被人们阅读,所以我认为这是值得的。其他原因:

  • 读者不断要求提供可打印的版本,以供阅读;

  • 他们希望将其打印出来以做笔记和绘图(我也可以将其解释为重新措辞的要求,但我不会这样做。);

  • 我想运用我所学到的关于排版的知识。

我的方法首先是满足个人笔记的空间需求。它们可能会进入页边距,因为页边距通常会提供一些空间。教程面向该主题的初学者,许多内容极其简化。这就需要内联注释、脚注或边注。我希望读者的个人笔记有较宽的页边距,我也希望将页边距用于教程中的注释。

现在边距变宽了,我也可以在边距中放置图表和表格标题(我需要两者!),这就是我遇到的问题。我尝试了 Will Robertson 的建议此问答,但边注被放置在上面文本。下面的代码是他的,但变成了 MWE:

\documentclass{article}

\usepackage{lipsum}

\makeatletter
\newcommand\margincaption[1]{%
  \par
  \setbox\@tempboxa=\hbox{\parbox{\marginparwidth}{\caption{#1}}}
  \@tempdima=\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax
  \par\null\hfill\usebox\@tempboxa\par
  \vspace*{\dimexpr-\@tempdima-\baselineskip\relax}
}
\makeatother

\begin{document}

\lipsum[1]
\begin{figure}[tp]
\rule{\textwidth}{1em}
\margincaption{A black long line with lots of explanation so it fills up some space.}
\end{figure}
\lipsum[2]
\end{document}

我曾尝试使用 ConTeXt 来实现这一点,但字幕设置rightmargin根本没有产生任何字幕。我询问了邮件列表,但我的印象是使用 pdfLaTeX(或 XeTeX 或 luaLaTeX)也可能实现这一点。

当我需要包含较长的示例代码行时,又出现了另一个问题。边距很宽,因此主文本区域比平时窄,这可能会导致冲突。无论如何,有没有办法包含过长的行而不生成过满的水平盒警告?不过这是一个小问题 - 长行被打破。

  • 如何在页边空白处放置图表和表格标题?

  • 我怎样才能包含延伸到边缘的单线而不产生冲突?

  • 如果您觉得我的布局方法不合适,您是否有我可以尝试的绝妙主意?

答案1

正如其他人所说,您可以使用tufte-book文档类。它提供侧注区域中的标题以及 fullwidth横跨主文本块和侧注区域的环境。

\documentclass{tufte-book}
\usepackage{lipsum}

\begin{document}

\lipsum[1]
\begin{figure}[!ht]
  \centering
  \rule{4cm}{2cm}
  \caption{A black rectangle with lots of text so it fills up some space.}
\end{figure}
\lipsum[1]
\begin{table}[!ht]
  \centering
  \rule{4cm}{2cm}
  \caption{A black rectangle with lots of text so it fills up some space.}
\end{table}
\begin{fullwidth}
\lipsum[1]
\end{fullwidth}

\end{document}

如果您不想使用该类tufte-book,那么您可以将标准类之一(bookreport)与geometry包一起使用以更改页面布局,floatrow在页边距中添加标题的包以及changepage更改部分文档页边距的包:

\documentclass{book}
\usepackage[margin=4cm,marginparwidth=3cm]{geometry}
\usepackage{floatrow}
\usepackage{changepage}
\usepackage{lipsum}

\floatsetup{margins=hangleft,capposition=beside,
capbesideposition={top,left},floatwidth=\textwidth}

\begin{document}

\lipsum[1]
\begin{figure}[!ht]
  \centering
  \rule{4cm}{2cm}
  \caption{A black rectangle with lots of text so it fills up some space.}
\end{figure}
\lipsum[1]
\begin{table}[!ht]
  \centering
  \rule{4cm}{2cm}
  \caption{A black rectangle with lots of text so it fills up some space.}
\end{table}
\begin{adjustwidth}{-3cm}{}
\lipsum[1]
\end{adjustwidth}

\end{document}

scrbook您还可以考虑使用 KOMA-Script 包( 、scrreprt)或文档类中的一个类memoir,并根据您的需要进行调整。

答案2

这是对你最后一个问题的回答:

如果您觉得我的布局方法不合适,您是否有我可以尝试的绝妙主意?

或许凝缩乳胶是给你的。以下是一份讲义的示例. 确保页边空白处包含图表和注释。

您可能还感兴趣经典论文及其衍生物古典艺术,它们具有与簇绒乳胶相似的特性。同样适用于乌格达尔。查看链接查看其外观的示例。

答案3

你可以试试

凯撒书屋

给出的旁注包裹。

http://www.ctan.org/tex-archive/macros/latex/contrib/sidenotes

答案4

看一下 floatrow 包。

https://www.ctan.org/pkg/floatrow

相关内容