Skip to content

\polyglotpages{RL} is not the same as \diglotSwaptrue #1243

Description

@davidg-sil

Currently code to set \diglotSwaptrue (based on document/diglotswapside) seems to be commented out.

There are various distinct sequences in a diglot (polyglot):
merge order, processing order (when trials are run, etc), layout order and header order.
Historically, these were all originally L,R, [A...], but that has changed over time. The column processing order can affect various things, such as which column's inserts appear first if they both target the same insert destination, and similarly which notes appear first when merged notes are in use. Normally it is better to process the insert-containing column first.

  • Merge order is (always) in the historic order: L,R, [A...]. There is no known reason to change this, as the current code should slurps up contents in a given chunk without caring about the sequence.
  • \polyglotpages{ ... } defines the column processing sequence, which is then used to define standard and reversed display orders.
  • \diglotSwaptrue uses reversed display order instead of standard.
  • \diglotInnerOuter uses standard and reversed display orders on odd/even pages (or even/odd, if diglotSwaptrue is in force).
  • The header code takes account of the diglotInnerOuter and diglotSwap booleans, but assumes historic order.

\polyglotpages{RL} instead of \polyglotpages{LR} changes the column processing sequence and column layout, leaving the header layout untouched, resulting in misplaced 'centre' marks, and thus it would be incorrect to automatically switch RL -> LR and enable \diglotSwap

On the TeX side, the header layout code urgently needs to be rewritten to avoid assumptions about which column is where. On the python side, diglotSwap should be accessible and active.

Metadata

Metadata

Assignees

No one assigned

    Labels

    PythonThis issue needs work on the Python code, no XeTeX involved.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions