Anzeige:
Ergebnis 1 bis 9 von 9

Thema: \hfill am Zeilenende

  1. #1
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468

    \hfill am Zeilenende

    Hallo!
    Ich möchte einen Zusatz ans Ende der letzten Zeile setzen.
    Wenn der Zusatz dort Platz hat, funktioniert mit \hfill alles gut. Wenn nicht, kommt der Zusatz an den Anfang der nächsten Zeile, und die letzte Zeile davor wird bis zum rechten Rand auseinander gezogen (sie gilt dann wohl nicht als die letzte). Nun dachte ich, man könnte das Zeilenende mit \hspace*\fill füllen, dann kommt aber nur der Zusatz ans Ende der nächsten Zeile. Die vorhergehende Zeile wird trotzdem auseinandergezogen.
    Gibt es eine Möglichkeit, zu erreichen, dass die letzte Zeile keinen Randausgleich erfährt, ohne \flushleft oder \raggedright global zu benutzen, was weder in einer \verse-Umgebung (wo die eine rand"ausgeglichene" Zeile am hässlichsten aussieht) noch in einem Blocksatztext gut funktioniert?


    [CODE]\documentclass{scrbook}
    %\usepackage {hyperref}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}

    \usepackage[ngerman]{babel}

    %\KOMAoptions{DIV=13}

    \makeatletter

    \renewcommand{\familydefault}{cmss}


    \begin{document}

    Die Lichtgeschwindigkeit ist konstant. \hfill Einstein

    Die Lichtgeschwindigkeit ist konstant. \hspace*\fill Einstein

    Die Lichtgeschwindigkeit ist konstant. \\ \hfill Einstein

    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.
    \hfill Spr.~11,2a.7a

    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.
    {\raggedright\hfill Spr.~11,2a.7a}

    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.
    \hspace*\fill Spr.~11,2a.7a

    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.
    \\ \hfill Spr.~11,2a.7a

    \end{document}[\CODE]

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Das steht schon im TeXbook. Im Wesentlichen brauchst du
    \mbox{}\nolinebreak\hfill und dann noch ein paar Feinheiten für Spezialfälle.


    Code:
    \newcommand\ontheright[1]{{\unskip\nobreak\hfill\penalty50\ 
      \mbox{}\nobreak\hfill#1\parfillskip=0pt \finalhyphendemerits=0\par}}
    
    ....
    \ontheright{Einstein}

  3. #3
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Wenn ich Dich recht verstehe, suchst Du etwas wie:
    Code:
    \documentclass{scrbook}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage[utf8]{inputenc}
    
    \usepackage[ngerman]{babel}
    
    \newcommand*{\hfillplus}{\hfill\linebreak[3]\hspace*{\fill}}
    
    
    \begin{document}
    
    Die Lichtgeschwindigkeit ist konstant. \hfillplus Einstein
    
    
    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.\hfillplus
    Spr.~11,2a.7a
    
    \end{document}

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Wow, das ist super! Vielen Dank!

  5. #5
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Also mit super meinte ich jetzt Ulrikes Vorschlag. Der ist zwar kompliziert (allein wäre ich da nie drauf gekommen), aber er macht alles, was ich will.

    Bei Schweinebackes Vorschlag ist das Zeilenende immer noch am rechten Rand ausgerichtet, wie man sieht, wenn man mit \renewcommand{\familydefault}{cmss} wieder alles in sans-serif macht oder die Zeile ein bisschen verkürzt und dann vergleicht, wie lang dieselbe Zeile vor \\ bleibt.
    Soweit ich weiß, macht \linebreak auch sowieso einen Randausgleich. Wenn man keinen haben will, müsste man \newline schreiben, aber das geht soweit ich weiß nicht fakultativ.

  6. #6
    Registrierter Benutzer Avatar von lockstep
    Registriert seit
    31.08.2008
    Beiträge
    1.487
    Ich würde Ulrikes Vorschlag geringfügig abwandeln (\mbox{\quad} statt \mbox{}), um einen "Respektabstand" zwischen Zitat und Quelle sicherzustellen.

    Code:
    \documentclass[fontsize=16pt,parskip=half]{scrbook}
    
    \usepackage[latin9]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[ngerman]{babel}
    
    \areaset{11.7cm}{21cm}
    
    \renewcommand{\familydefault}{cmss}
    
    \newcommand\ontheright[1]{{\unskip\nobreak\hfill\penalty50\ 
      \mbox{}\nobreak\hfill#1\parfillskip=0pt \finalhyphendemerits=0\par}}
    
    \newcommand\ontherightii[1]{{\unskip\nobreak\hfill\penalty50\ 
      \mbox{\quad}\nobreak\hfill#1\parfillskip=0pt \finalhyphendemerits=0\par}}
    
    \begin{document}
    
    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.\ontheright{Spr.~11,2a.7a}
    
    Der Weisen Zunge bringt gute Erkenntnis; wer Zurechtweisung annimmt, der ist klug.\ontherightii{Spr.~11,2a.7a}
    
    \end{document}
    lockstep
    Geändert von lockstep (01-04-2010 um 15:22 Uhr) Grund: Tippfehler beseitigt
    idxlayout - Konfigurierbares Index-Layout, kompatibel mit KOMA-Script und memoir

  7. #7
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Danke lockstep!

    Ich wusste noch nicht mal, dass man solche Sachen wie \mbox{} überhaupt in eine Makrodefinition schreiben kann.

  8. #8
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Zitat Zitat von rstuby Beitrag anzeigen
    Bei Schweinebackes Vorschlag ist das Zeilenende immer noch am rechten Rand ausgerichtet
    Mit
    Code:
    \newcommand*{\hfillplus}{\hspace*{\fill}\linebreak[3]\hspace*{\fill}}
    funktioniert es.

  9. #9
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Ja, genau so was hatte ich gemeint!

    Und frohe Ostern! :-)

Lesezeichen

Berechtigungen

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