Разметка параллельных столбцов в LaTeX? - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь расположить абзацы следующим образом: 1. Во введении у меня будут абзацы во всех столбцах. 2. Затем следуйте двум колонкам с противоположными мнениями параллельно. Он отличается от двухколоночного макета тем, что эти два столбца будут параллельными и что содержимое слева всегда будет оставаться слева, справа всегда справа на нескольких страницах. Даже если аргумент левого столбца короче, аргумент правого столбца не должен находиться в левом столбце.

Вот пример в HTML: https://www.biblegateway.com/passage/?search=1+Corinthians+15&version=CCB;KJ21 Используется для сравнения разных переводов.

Ниже приведена моя попытка добиться эффекта.

\documentclass{report}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\section{Introduction}
Here are the normal paragraph crossing colmuns.

\blindtext

\begin{minipage}[t]{0.5\textwidth}
  \section{Argument on the Left}
  Because I am on the left, so must I be not right?

\end{minipage}\begin{minipage}[t]{0.5\textwidth}
  \section{Argument on the Right}
  Because I am on the right, so I must be right!

  \blindtext
\end{minipage}
\end{document}

Эффект почти достигнут, за исключением того, что между двумя столбцами нет зазора.

Вот скриншот с результатом: enter image description here

Что было бы лучшим решением?

Как можно добиться того же в орг-режиме с экспортом в PDF (через LaTex)?

1 Ответ

1 голос
/ 21 апреля 2019

Чтобы разделить столбцы, достаточно использовать мини-страницы меньшего размера и добавить пробел между ними. Министраницы - это коробки, и вы можете использовать фиксированное пространство (с помощью ~~~ или \ hspace {}), но лучше резиновый пробел \ hfill.

\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\section{Introduction}
Here are the normal paragraph crossing colmuns.

\blindtext

\noindent\begin{minipage}[t]{0.48\textwidth}
  \section{Argument on the Left}
  Because I am on the left, so must I be not right?
\end{minipage}%
\hfill%
\begin{minipage}[t]{0.48\textwidth}
  \section{Argument on the Right}
  Because I am on the right, so I must be right!

  \blindtext
\end{minipage}
\end{document}

enter image description here

\noindent позволяет избежать обычного интервала между абзацами, а \hfill "выдвигает левую и правую границу министраницы.

Но это не лучшее решение. У вас будут проблемы с правильной обработкой разрывов страниц, и есть определенный пакет, который делает именно то, что вы хотите.

Пакет paracol определяет параллельную среду с 2 (или более) столбцами и предоставляет способ их «синхронизации» путем переключения между столбцами. Он заботится о разрывах страниц и, безусловно, то, что вы хотите.

Вот пример с параколом

\documentclass{report}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{paracol}
\begin{document}
\section{Introduction}
Here are the normal paragraph crossing colmuns.

\blindtext

\begin{paracol}{2}
  \section{Argument on the\\ Left}
  Because I am on the left, so must I be not right?

  \switchcolumn
  \section{Argument on the\\ Right}
  Because I am on the right, so I must be right!

  \blindtext
\end{paracol}
\end{document}

enter image description here

Как видите, нумерация разделов согласована между столбцами, но есть много способов настроить пакет, если вы предпочитаете нет. Посмотрите документацию Также обратите внимание, что мне пришлось добавить разрыв строки вручную, чтобы заголовки разделов были правильно отформатированы, но это незначительный недостаток.

Что касается org-mode, я им пользуюсь, но у меня нет опыта работы с экспортом, и я не могу вам помочь. Но с гибкостью paracol вы можете найти способ определять макросы, которые делают то, что вам нужно. Возможно, если вы предоставите экспорт в режиме орг, люди могут попытаться найти решение.

...