需要巫师!

需要巫师!

colchunk是否可以在环境中更改行距parcolumns?我尝试了以下操作,但没有成功:

\documentclass{article}
\usepackage{parcolumns}       
\begin{document}

\renewcommand{\baselinestretch}{1.5}\normalsize

\begin{parcolumns}[nofirstindent]{2}
\colchunk[1]{bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla}
\colchunk[2]{\renewcommand{\baselinestretch}{1.1}\footnotesize This works not. This works not. This works not. This works not. This works not. This works not. This works not. This works not. This works not. This works not. \par}
\colplacechunks
\end{parcolumns}

{\renewcommand{\baselinestretch}{1.1}\footnotesize This works fine. This works fine. This works fine. This works fine. This works fine. This works fine. This works fine. This works fine. This works fine. This works fine. \par}

\end{document}

答案1

该软件包所做的是逐行拆分每一列,然后逐行重新组装页面,用列中的行构建每一行,因此最终结果是均匀的行距,并且原始列设置中的行距必然会丢失

如果您不这样做,那么如果您想允许在段落中间的任意点进行分页,那么您必须付出更多的努力,因为如果列具有不同的行距,通常可能没有任何可行的分页点。

因此,虽然可以设计一个允许不同间距的并行标记系统,但这可能parcolumns不应该是您的起点,因为您必须更改几乎整个包。


看来 OP 想要不同大小的列。看来paracol只要您不要对浮动环境太过挑剔(这需要限制为相同宽度的列),该软件包就可以支持这一点

在此处输入图片描述

\documentclass{article}
\usepackage{paracol, blindtext, setspace}
\begin{document}

% EDIT: Space between columns:
\setlength{\columnsep}{24pt}
\renewcommand{\baselinestretch}{1.5}\normalsize

\begin{paracol}{2}
\showthe\columnwidth
\advance\columnwidth 5em \hsize\columnwidth
  \blindtext
\switchcolumn
\advance\columnwidth-10em \hsize\columnwidth
\begin{spacing}{1}
  \blindtext
\end{spacing}

\end{paracol}

\begin{paracol}{2}
\showthe\columnwidth
\advance\columnwidth 5em \hsize\columnwidth
  a a a a a a a\blindtext
\switchcolumn
\advance\columnwidth-10em \hsize\columnwidth
\begin{spacing}{1}
  b b b b b b b \blindtext
\end{spacing}

\end{paracol}
\end{document} 

答案2

您说得对,它不适用于 parcolumn。我没有使用 parallel-package 进行检查,但是,使用 paracol-package 时,它​​的工作方式如下:

\documentclass{article}
\usepackage{paracol, blindtext, setspace}
\begin{document}

% EDIT: Space between columns:
\setlength{\columnsep}{24pt}
\renewcommand{\baselinestretch}{1.5}\normalsize

\begin{paracol}{2}
  \blindtext
\switchcolumn
%\renewcommand{\baselinestretch}{1}%
\begin{spacing}{1}
  \blindtext
\end{spacing}

\end{paracol}
\end{document} 

需要巫师!

正如下面的评论所示,没有简单的方法可以改变列的宽度!paracol 的维护者已经广泛记录了该实现,但我不明白。关于这一点,columnwidth他在第 2.1.3 节中说道:

\hsize 是 TEX 的基本寄存器,用于保存正在构建的页面或列页面的宽度。\paracol 将其设置为 \columnwidth,而 \pcol@mctext 和 \endparacol 将其设置为 \textwidth。

啊,哼,什么?还有人能帮我们吗?

答案3

Keks Dose 发布的答案在 LuaLaTeX 或 LaTeX(dvi 或 pdf)上对我不起作用。右列变窄(就像您期望通过缩小 来实现的一样\columnwidth),但实际上并没有向右移动,因此输出与左列重叠。我设法使用\leftskip和使其工作,\rightskip而不是\columnwidth直接调整图元。

每次使用时您都必须调用\leftskip和宏,除非它们都设置为零,否则您将无法获得正确的结果。\rightskip\switchcolumn

下面发布了一个更加简化的示例。

\documentclass{article}
\usepackage{paracol, blindtext}

\setlength{\columnsep}{2em}

\begin{document}
  \begin{paracol}{2}

    \leftskip=0em \rightskip=-5em
      WIDENED LEFT COLUMN \blindtext

    \switchcolumn

    \leftskip=5em \rightskip=0em
      NARROWED RIGHT COLUMN \blindtext

    \switchcolumn* % To keep paragraphs vertically aligned

    \leftskip=0em \rightskip=0em
      NORMAL LEFT COLUMN \blindtext

    \switchcolumn

    \leftskip=0em \rightskip=0em
      NORMAL RIGHT COLUMN \blindtext

  \end{paracol}    
\end{document}

我本来想进行编辑或发表评论,但我的声誉不够。:\

相关内容