Wie alle Gliederungsebenen um eine Stufe nach oben verschieben (mit Minimalbeispiel)

17 views
Skip to first unread message

Markus Gail

unread,
May 22, 2021, 7:05:44 AMMay 22
to
Hallo!

Ich bekomme regelmäßig für ein Buchprojekt Textteile, die automatisiert
erzeugt werden.

Dummerweise sind sie eine Gliederungsstufe zu niedrig angesetzt: Es beginnt
mit \section bis \subsubsection.

Ich brauche \chapter bis \subsection.

Wie bekomme ich das hin, wenn ich das Problem innerhalb von LaTeX lösen
muß?

Das nachfolgende Minimalbeispiel bringt dummerweise alle Gliederungsebenen
auf \chapter.

Vielen Dank im voraus!

Gruß
M.


\documentclass[11pt]{scrbook}

\renewcommand{\section}[1]{\chapter{#1}} % Für scrbook alles eine Stufe
höher
\renewcommand{\subsection}[1]{\section{#1}} % Für scrbook alles eine Stufe
höher
\renewcommand{\subsubsection}[1]{\subsection{#1}} % Für scrbook alles eine
Stufe höher

\begin{document}

\tableofcontents

\section{Lorem ipsum}

\subsection{Dolor sit amet}

\subsubsection{Consectetuer adipiscing elit}

\end{document}


Axel Berger

unread,
May 22, 2021, 8:20:28 AMMay 22
to
Markus Gail wrote:
> Wie bekomme ich das hin, wenn ich das Problem innerhalb von LaTeX lösen
> muß?
> Das nachfolgende Minimalbeispiel bringt dummerweise alle Gliederungsebenen
> auf \chapter.

Du mußt mit \let Kopien der Originalbefehle anlegen, die dann von von
der Neudefinition nicht rekursiv durchlaufen werden.


--
/¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067
\ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069
 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de
/ \ Mail | -- No unannounced, large, binary attachments, please! --

Olaf Meltzer

unread,
May 22, 2021, 8:29:59 AMMay 22
to
Am 22.05.21 um 13:05 schrieb Markus Gail:

> Ich bekomme regelmäßig für ein Buchprojekt Textteile, die automatisiert
> erzeugt werden.
>
> Dummerweise sind sie eine Gliederungsstufe zu niedrig angesetzt: Es beginnt
> mit \section bis \subsubsection.
>
> Ich brauche \chapter bis \subsection.

Falls Du Dich bisher noch nicht mit dem Editor Emacs (mit AucTex und
RefTeX) befreunden konntest, wäre jetzt die passende Gelegenheit dazu.

Angewendet auf Dein Minimalbeispiel (unter Verzicht auf die
\renewcommand) wird Dein Wunsch wie folgt erfüllt.

Menü Ref --> Parse Document --> Entire Document
Menü Ref --> Table of Contents

Im dadurch hervorgerufenen Buffer TOC alles markieren (^C-Pos1 ^C-Space
^C-Ende). ^C steht hier für "Strg-Taste".

Menü TOC --> Edit --> Promote

Dadurch werden sämtliche Abschnitte eine Ebene "befördert".

Gruß -- Olaf Meltzer




Patrick Flügel

unread,
May 22, 2021, 9:54:22 AMMay 22
to
Am 22.05.21 um 13:05 schrieb Markus Gail:
> Dummerweise sind sie eine Gliederungsstufe zu niedrig angesetzt: Es beginnt
> mit \section bis \subsubsection.
> Ich brauche \chapter bis \subsection.
> Wie bekomme ich das hin, wenn ich das Problem innerhalb von LaTeX lösen
> muß?

Warum nur innerhalb von LaTeX lösen? Das einfachste wäre es, die
betreffenden Textteile in einem Editor zu öffnen und dann stufenweise
zunächst "\section" durch "\chapter", anschließend "\subsection" durch
"\section" und zum Schluß "\subsubsection" durch "\subsection" zu
ersetzen. In einem geeigneten Editor, z.B. Vim, kann man diesen Vorgang
sogar als Makro abspeichern und braucht dann nur einen Makroaufruf pro
zu änderndem Textteil.

VG
Patrick Flügel

Markus Gail

unread,
May 22, 2021, 10:04:31 AMMay 22
to
On 22. May 2021 at 15:54:19 CEST, "Patrick Flügel"
Weil der Text immer wieder in neuen Versionen reinkommt, die mit minimalem
Aufwand (= Abspeichern im richtigen Ordner) eingebunden werden sollen, ohne
daß ich irgendwas von Hand dran rumfummeln muß.

Trotzdem danke für die Rückmeldung!

M.


Ulrike Fischer

unread,
May 22, 2021, 10:26:54 AMMay 22
to
Am Sat, 22 May 2021 11:05:43 -0000 (UTC) schrieb Markus Gail:

> Hallo!
>
> Ich bekomme regelmäßig für ein Buchprojekt Textteile, die automatisiert
> erzeugt werden.
>
> Dummerweise sind sie eine Gliederungsstufe zu niedrig angesetzt: Es beginnt
> mit \section bis \subsubsection.
>
> Ich brauche \chapter bis \subsection.
>
> Wie bekomme ich das hin, wenn ich das Problem innerhalb von LaTeX lösen
> muß?
>

\let\subsubsection\subsection
\let\subsection\section
\let\section\chapter




--
Ulrike Fischer
https://www.troubleshooting-tex.de/

Axel Berger

unread,
May 22, 2021, 1:45:50 PMMay 22
to
Markus Gail wrote:
> Weil der Text immer wieder in neuen Versionen reinkommt, die mit minimalem
> Aufwand (= Abspeichern im richtigen Ordner) eingebunden werden sollen, ohne
> daß ich irgendwas von Hand dran rumfummeln muß.

Verständlich. Du schriebst aber auch:

> für ein Buchprojekt Textteile,

Vielleicht wäre das ein Punkt zum Eingreifen. Grundsätzlich neige ich
auch dazu, bevorzugt im Editor zu arbeiten. Andererseits ist die
TeX-Lösung in diesem Fall übersichtlich und einfach.

Olaf Meltzer

unread,
May 23, 2021, 5:36:09 AMMay 23
to
Am 22.05.21 um 13:05 schrieb Markus Gail:

> Ich bekomme regelmäßig für ein Buchprojekt Textteile, die automatisiert
> erzeugt werden.
>
> Dummerweise sind sie eine Gliederungsstufe zu niedrig angesetzt: Es beginnt
> mit \section bis \subsubsection.
>
> Ich brauche \chapter bis \subsection.
>
> Wie bekomme ich das hin, wenn ich das Problem innerhalb von LaTeX lösen
> muß?

Der eingangs erwähnte Automatismus selbst ließe sich nicht entsprechend
anpassen? Vermutlich nicht. Dann bliebe ohne Manipulation der Fremdtexte
etwa folgendes Konstrukt, das auf Ulrikes Vorschlag aufbaut.

Du könntest jeden der Fremdtexte mit \include{} einbeziehen, indem Du
vorher die originalen Gliederungsbefehle sichertest und -- bevor es im
Rahmendokument weiterginge -- wiederherstelltest. Das sähe in etwa wie
folgt aus.

\let\ORIGsubsubsection\subsubsection
\let\ORIGsubsection\subsection
\let\ORIGsection\section


\let\subsubsection\subsection
\let\subsection\section
\let\section\chapter

\include{fremdbeitrag_1}

\include{fremdbeitrag_2}

\let\subsubsection\ORIGsubsubsection
\let\subsection\ORIGsubsection
\let\section\ORIGsection

Gruß -- Olaf Meltzer
Reply all
Reply to author
Forward
0 new messages