Discussion:
Wie alle Gliederungsebenen um eine Stufe nach oben verschieben (mit Minimalbeispiel)
(zu alt für eine Antwort)
Markus Gail
2021-05-22 11:05:43 UTC
Permalink
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
2021-05-22 12:21:44 UTC
Permalink
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
2021-05-22 12:29:55 UTC
Permalink
Post by 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
2021-05-22 13:54:19 UTC
Permalink
Post by 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
2021-05-22 14:04:30 UTC
Permalink
On 22. May 2021 at 15:54:19 CEST, "Patrick Flügel"
Post by Patrick Flügel
Post by 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.
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.
Axel Berger
2021-05-22 17:47:04 UTC
Permalink
Post by Markus Gail
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ß.
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.
--
/¯\ 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! --
Ulrike Fischer
2021-05-22 14:26:51 UTC
Permalink
Post by 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/
Olaf Meltzer
2021-05-23 09:36:06 UTC
Permalink
Post by 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

Loading...