Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Zeilenumbruch innerhalb runden Klammen verhindern

  1. #1
    Registrierter Benutzer
    Registriert seit
    04.03.2012
    Beiträge
    25

    Zeilenumbruch innerhalb runden Klammen verhindern

    In meinem Text habe ich viele runde Klammern verwendet
    (mit verschiedenen Angaben in den Klammern).

    Nun möchte ich global, in der Präambel definieren, dass alle Kombinationen gekennzeichnet durch geöffnete und geschlossene runde Klammern "(wortA wortB)" auch wirklich nur auf exakt einer Zeile steht. (also dass nicht mehr der eine
    Teil der Klammer auf der einen Zeile und der nächste Teil auf der nächsten Zeile steht)

    Der Inhalt in den runden Klammern ist ganz verschieden, daher möchte ich das global definieren. Geht das?

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Verwende die runden Klammen nicht direkt, sondern definiere einen Befehl, der den Text zusammen mit den runden Klammern in eine \mbox packt:
    Code:
    \documentclass{article}
    \newcommand*{\einschub}[1]{\mbox(#1)}
    \begin{document}
    Hier kommt ein \einschub{das ist der Einschub}, der nicht umbrochen wird.
    \end{documet}
    ABER: Dir sollte klar sein, dass ein solcher Text dazu führt, dass das Dokument nicht mehr sinnvoll umbrochen werden kann. Das wird zu vieln overfull und underfull \hbox Meldungen führen. Auch sind die Wortabstände innerhalb \mbox unveränderlich.

  3. #3
    Registrierter Benutzer
    Registriert seit
    04.03.2012
    Beiträge
    25
    In meinem Text stehen gut 200 runde Klammern in denen jeweils ca. zwei Wörter stehen. Gibt es eine Möglichkeit, dass LaTex direkt erkannt dass "(" und ")" auf eine Zeile gehören?

    Ich arbeite mit Lyx daher ist es nicht so einfach lokal LaTex-Befehlen zu schreiben (das geht mit Ctrl+L; weiss aber nicht ob man "(" durch ein "Ctrl+L \einschub{" mit ALLE ERSETZEN kann).

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.859
    Zitat Zitat von ubiquitin Beitrag anzeigen
    In meinem Text stehen gut 200 runde Klammern
    das sind denn ja nur rund hundert Kammerpaare...
    Zitat Zitat von ubiquitin Beitrag anzeigen
    Gibt es eine Möglichkeit, dass LaTex direkt erkannt dass "(" und ")" auf eine Zeile gehören?
    man könnte `(' zu einem aktiven Zeichen machen und entsprechend definieren, etwa
    Code:
    \documentclass{article}
    \newcommand*\lparen{(}
    \newcommand*\rparen{)}
    \catcode`\(=\active
    \def(#1){\mbox{\lparen#1\rparen}}
    \begin{document}
    Hier kommt ein (das ist der Einschub), der nicht umbrochen wird.
    \end{document}
    Sei Dir dabei aber bewusst, daß damit ein `(a(b))' nicht zulässig ist -- das Makro `(' vor `a' sieht das auf `b' folgende `)' als Argumentende, damit geht das `(' direkt vorm `b' quasi leer aus ... anders ausgedrückt: runde Klammern sind mit dieser Methode nicht (mehr) schachtelbar.
    Welchen Einfluss das Teil auf den Mathemodus haben mag, hab ich gar nicht erst getestet.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    picture-Umgebungen funktionieren damit auch nicht mehr und die werden intern von diversen Paketen verwendet.

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •