Sie sind hier

Registerhaltiger Zweispaltensatz

Hallo zusammen,

wir hatten hier an anderer Stelle schon mal am Rande über registerhaltigen, zweispaltigen Satz eines Artikels gesprochen. Gibt es da inzwischen eine Lösung? Oder ist eine in Sicht?

Ich wäre mit einem festen Raster und ggf. verschieden langen Spalten völlig zufrieden. Die Schriftgröße in den Überschriften müsste aber variieren dürfen. Zudem habe ich teilweise abgesetzte Formeln. Da müsste man dann den Abstand über und unter der Formel so dehnen, dass die Folgezeile wieder registerhaltig ist.

Das Paket gridset ist mir bekannt, aber es leistet ja eben beispielsweise noch nicht den o.g. Ausgleich bei abgesetzten Formeln.

Wenn jemand etwas weiß, wäre ich dankbar für einen Hinweis. Ein klares "Nein" hilft mir auch.

Gruß
Matthias

Bild von Markus Kohm

Es erfordert eigentlich grundsätzlich Handarbeit. Schon für die Automatisierung der Überschriften müsste man erste einmal neue Schnittstellen schaffen. Will man dann noch Schusterjungen und Hurenkinder vermeiden, wird es kaum ohne manuelle Eingriffe gehen.

Generell müsste man alle Elemente, deren Gesamthöhe nicht vorab auf ganze Zeilen festgelegt ist, in eine Box packen, ausmessen und dann Abstand davor und danach verteilen. Wenn dann auch noch innerhalb dieser Elemente selbst ein Seiten- bzw. ein Spaltenumbruch erlaubt sein soll, wird es wirklich aufwändig und führt wieder zu anderen Problemen.

Wenn gar ein Paket wie multicol dazu kommt, dass eine vollkommen andere Output-Routine mit schwer durchschaubaren Umbruchentscheidungen mit bringt, dann wird es irgendwie auch zu einem kleinen Glücksspiel. So funktioniert mein Experiment gridset dann beispielsweise überhaupt nicht mehr.

Man kann also nur einige Dinge automatisieren. Andere benötigen weiterhin Handarbeit.

Und um ganz ehrlich zu sein: Mir selbst fehlt vollkommen der Anreiz, extrem viel Zeit (mit wenig ist es kaum getan) in dieses Problem zu investieren.

Hallo Markus,

vielen Dank für die (wie immer!) blitzschnelle Antwort! Auf multicol könnte ich gut verzichten und stattdessen die Klassenoption für zweispaltigen Satz verwenden. Die anderen Hürden scheinen aber wirklich nicht leicht zu nehmen sein, so dass der Schönheitsfehler vermutlich wird bleiben müssen.

Würde etwas dagegen sprechen, Befehle für die Gliederung wie \section usw. im Einzeldokument per \renewcommand hart zu ändern, wenn man sich einmal auf Schriftgröße, Satzspiegel usw. festgelegt und die vertikalen Abstände manuell entsprechend berechnet hat?

Bild von Markus Kohm

Es steckt ja eine ganze Menge hinter diesen Befehlen. Hier sei nur auf Dinge wie \setchapterpreamble, optionale Argumente, Label-Referenz, Verzeichniseinträge, Umbruchbeeinflussung für die nächsten Textzeilen etc. hingewiesen. Das alles zu berücksichtigen. Wobei die Überschriften vermutlich noch der eher leichte Teil sein werden. Mal von Kapitelüberschriften abgesehen, dürfte etwas wie:

\newlength{\rasterline}\setlength{\rasterline}{\baselineskip}
\renewcommand\section{%
  \@startsection{section}{\sectionnumdepth}{\z@}%
  {-2\rasterline}%
  {\rasterline}%
  {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
    \setlength{\parfillskip}{\z@ plus 1fil}\fi
    \raggedsection\normalfont\sectfont\nobreak\size@section\resizetorasterlines}%
}
\newcommand{\resizetorasterlines}[1]{%
  \begingroup
    \setbox\@tempboxa\vbox{#1}%
    \normalsize% wegen Verwendung von \strutbox
    \@tempdima\ht\@tempboxa
    \advance\@tempdima by -\ht\strutbox
    \divide\@tempdima by \baselineskip
    \multiply\@tempdima by \baselineskip
    \advance\@tempdima by \ht\strutbox
    \ifdim \@tempdima <\ht\@tempboxa
      \advance\@tempdima by\baselineskip
    \fi
    \@tempdimb\dp\@tempboxa
    \advance\@tempdimb by -\dp\strutbox
    \divide\@tempdimb by \baselineskip
    \multiply\@tempdimb by \baselineskip
    \advance\@tempdimb by \dp\strutbox
    \ifdim \@tempdimb <\dp\@tempboxa
      \advance\@tempdimb by\baselineskip
    \fi
    \ht\@tempboxa\@tempdima
    \dp\@tempboxa\@tempdimb
    \usebox\@tempdboxa
  \endgroup
}

eventuell grob in die richtige Richtung gehen. Wobei der Ansatz noch seeeeehhhhr primitiv (und auch nicht getestet) ist. Genau genommen, müsste man den zusätzlich eingefügten Abstand nach irgendwelchen Regeln auf Höhe und Tiefe verteilen. Außerdem ist die Verwendung von \strutbox und \baselineskip an der Stelle nicht wirklich gut. Wie gesagt: Um es richtig zu machen, müsste man einiges an Zeit investieren.

Für die Gliederungsebenen, die als Spitzmarken gesetzt werden, funktioniert obiges natürlich erst recht nicht.

Comments for "Registerhaltiger Zweispaltensatz" abonnieren