页边空白处还有另一段正文

页边空白处还有另一段正文

我看到一本书,除了正文外,还有来自其他书本挤在底部边缘。我想知道这是否可以使用 LaTeX 来实现?更具体地说,我想知道是否可以有两个单独的文本并产生输出,使得一个文本位于页面的主要内容区域,另一个文本位于边缘?请注意,两个文本可能不适合放在一页上,而需要跨多页。

答案1

A非常粗略的方法,将另一本书的材料收集在一个垂直的盒子里,并利用\vsplit分割盒子的顶部并将其放在正文的左侧。诚然,结果并不好,但也许可以对其进行完善。

\documentclass{article}
\textwidth=200pt\relax %??
\usepackage{xgalley,xparse}
\usepackage{lipsum}

\ExplSyntaxOn\makeatletter
\box_new:N \l_otext_tmpa_box
\box_new:N \g_otext_box
\dim_new:N \g_otext_prevdepth_dim
\skip_new:N \l_otext_sep_skip
\skip_set:Nn \l_otext_sep_skip { 20 pt }
\dim_new:N \g_otext_side_width_dim
\dim_gset:Nn \g_otext_side_width_dim { 100 pt }
\NewDocumentEnvironment{otext}{}
  {
    \vbox_gset:Nw \g_otext_box
      \color_group_begin:
        \vbox_unpack_clear:N \g_otext_box
        \dim_gset_eq:NN \tex_prevdepth:D \g_otext_prevdepth_dim
        \dim_set_eq:NN \l_galley_width_dim \g_otext_side_width_dim
        \galley_level:
        \bool_gset_false:N \g_galley_omit_next_indent_bool
        \raggedleft
  }
  {
      \color_group_end:
      \dim_gset_eq:NN \g_otext_prevdepth_dim \tex_prevdepth:D
    \vbox_set_end:
  }
% Patch \output.
\tl_set:Nx \l_tmpa_tl { \the\output }
\tl_put_left:Nn \l_tmpa_tl
  {
    \vbox_set_split_to_ht:NNn \l_otext_tmpa_box \g_otext_box
      { \box_ht:N \@cclv + \box_dp:N \@cclv }
    \vbox_set:Nn \@cclv
      {
        \hbox:n
          {
            \box_use_drop:N \l_otext_tmpa_box
            \skip_horizontal:N \l_otext_sep_skip
            \box_use_drop:N \@cclv
          }
      }
  }
\exp_args:No \output \l_tmpa_tl
\makeatother\ExplSyntaxOff

\begin{document}
\raggedright

\begin{otext}
  \section{Paragraphs 1 and 2}
  \lipsum[1-2]
\end{otext}

\begin{otext}
  \section{Paragraphs 3 and 4}
  \lipsum[3-4]
\end{otext}

\section{Paragraphs 11 to 13}
\lipsum[11-13]

\begin{otext}
  \section{Paragraphs 5 to 7}
  \lipsum[5-7]
\end{otext}

\section{Paragraphs 14 to 27}
\lipsum[14-27]

\end{document}

答案2

您可以使用\marginpar将第二本书放在页边空白处。我准备了一个示例,其中显示了一个图形、一个表格和一些文本。sidefiguresidetable环境取自侧记包。可以将整本书放在页边空白处。

有两个问题需要解决:如何同步“两本书”,即分页符在哪里,如果第一本书适合页面,但页边距中的书不适合,会发生什么情况。甚至可以将第二本书浮动在页边距中,比如说一个章节。您可以使用该包来实现这一点。如果您想尝试这样做,请先将第二本书的完整章节放在页边距中,然后再放第一本书。您可能还marginfix必须使用该包。morefloats

第二件事是编号。图表应该如何编号?单独用前缀、随后还是其他方式?

请更改宏中的文件名\includegraphics来尝试示例。

此外,事实证明marginfix需要第二个文档中的段落,一次一个。因此,\marginpar{\lipsum[1-2]}它想要\marginpar{\lipsum[1]}\marginpar{\lipsum[2]}

\documentclass[]{article}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{morefloats}
\usepackage{marginfix}

\usepackage[paperwidth=170mm, paperheight=240mm, left=40pt, top=40pt, textwidth=220pt, marginparsep=20pt, marginparwidth=160pt, textheight=560pt, footskip=40pt]{geometry}

\makeatletter
\newsavebox{\@sidenotes@sidefigurebox}
\newenvironment{sidefigure}[1][]%
{\begin{lrbox}{\@sidenotes@sidefigurebox}%
\begin{minipage}{\marginparwidth}%
\captionsetup{type=figure}}%
{ \end{minipage}%
\end{lrbox}%
\marginpar{\usebox{\@sidenotes@sidefigurebox}}}
\newsavebox{\@sidenotes@sidetablebox}
\newenvironment{sidetable}[1][]%
{\begin{lrbox}{\@sidenotes@sidetablebox}%
\begin{minipage}{\marginparwidth}%
\captionsetup{type=table}}%
{ \end{minipage}%
\end{lrbox}%
\marginpar{\usebox{\@sidenotes@sidetablebox}}}
\makeatother

\begin{document}
%% this is document 2
\marginpar{\lipsum[4]}

\begin{sidefigure}
\includegraphics{broken_loop}
\caption{This is the caption}
\label{alabel}
\end{sidefigure}


\begin{sidetable}
  \centering
 % \fontfamily{ppl}\selectfont
  \begin{tabular}{lllll}
    \toprule
     Hg&Sn&Pb&Cd&Tl \\
    \midrule
    0.50&0.47&0.48&0.5&0.5\\
    \bottomrule
  \end{tabular}
\caption{A table}
\end{sidetable}

\marginpar{\lipsum[2]}

\marginpar{\lipsum[3]}
\marginpar{\lipsum[4]}
\marginpar{\lipsum[5]}
\marginpar{\lipsum[6]}

%% this is document 1

\lipsum[1-9]


\end{document}

答案3

您可以使用脚注来执行此操作。如果您将其他文本挤在页面底部,您可能也不会有额外的脚注,或者您可以尝试使用允许多个脚注的软件包之一。(必须承认我没有尝试过这个......)或者您可以使用边注。看看这个:

\documentclass{article}

\usepackage[latin]{babel}
\usepackage{blindtext}

% Don't print a footnote number:
\let\thefootnote\relax

% Reserve 40 % of a page for the squeezed contents:
\setlength{\dimen\footins}{0.4\textheight}

% Let footnotes break across pages without penalities:
\interfootnotelinepenalty=0

\begin{document}
  \footnotetext{\blindtext[40]}
  \Blinddocument
  % If the squeezed text is longer than the main part, allow it to fill the
  % entire page:
  \setlength{\dimen\footins}{\textheight}
\end{document}

相关内容