XeLaTex, Beamer/Flattersatz und Wortumbruch/Silbentrennung.

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: XeLaTex, Beamer/Flattersatz und Wortumbruch/Silbentrennung.

Lösung: manuelle Trennung

von Robert T. » Di 5. Apr 2016, 15:24

Hallo Besserwisser,

ich hatte Dein obiges Beispiel ohne \RaggedRightRightskip=0pt plus 4em durchlaufen lassen und dann erfolgte im zweiten Fall keine Silbentrennung.

Dieser Befehl hat aber Auswirkungen auf alle Folien, das meinte ich mit grundlegende Änderung. (Im Beispiel von u_fischer betraf die Änderung die gesamte Folie. Ich wollte aber nur ein einzelnes Wort haben.)

Das mit der manuellen Trennung ist aber eine Idee:
\documentclass{beamer}

\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}

\newcommand{\Folientrenner}{\char\defaulthyphenchar\linebreak}


\begin{document}
 \begin{frame}
   Ein langes Wort ist Oberweserdampfschifffahrts\Folientrenner{}gesellschaftskapitän. Danach kommt ganz viel Text.
 \end{frame}
\end{document}
Gruß

R.

von Besserwisser » Di 5. Apr 2016, 14:55

Robert T. hat geschrieben:Beide klappen soweit, setzen aber auf grundlegegende Änderung am Dokument (penalties/Vergrößerung der Flatterzone).
:?: Die grundlegende Änderung bei meinem Beispiel ist, manuelle Trennung einzelner Wörter zu ermöglichen. Ist das nicht die Änderung, die du haben wolltest?

Nun, ganz ohne Änderung an den Einstellungen kann man natürlich auch eine komplett manuelle Trennung erzwingen:
\documentclass{beamer}

\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}

\begin{document}
 \begin{frame}
  Ein langes Wort ist Oberweserdampfschifffahrts\char\defaulthyphenchar\linebreak
  gesellschaftskapitän. Danach kommt ganz viel Text.
 \end{frame}
\end{document}
oder wenn dir das zu lang ist:
\documentclass{beamer}

\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}
\renewcommand\-{\char\defaulthyphenchar\linebreak}

\begin{document}
 \begin{frame}
   Ein langes Wort ist Oberweserdampfschifffahrts\-gesellschaftskapitän. Danach kommt ganz viel Text.
 \end{frame}
\end{document}
Aber daran ist sicher nichts besser als an den gezeigten Lösungen. Letzteres ist außerdem sehr viel eher eine grundlegende Änderung.

von Robert T. » Di 5. Apr 2016, 14:11

Vielen Dank für Eure Antworten. Beide klappen soweit, setzen aber auf grundlegegende Änderung am Dokument (penalties/Vergrößerung der Flatterzone).

Mir geht es eher darum, dass ich im konkreten Fall glaube, es besser zu wissen als der Algorithmus und deshalb (ausnahmsweise!) per Hand eingreifen will. Der Hinweis auf \- im beameruserguide und, dass es mit dem Babelshorthand "= klappt, hat mich dazu verleitet, zu glauben, dass dies mit einem einzigen Kommando möglich ist.

Dieses händische Eingriffen ist sicherlich nicht der typische LaTeX-Weg. Aber TeX wurde ja auch entwickelt, um Bücher ordentlich zu setzen und nicht um Folien zu gestalten. Ich bin mir mittlerweile auch gar nicht mehr sicher, ob LaTeX dazu das geeignete Werkzeug ist. (Nur: bezüglich der Typografie ist es allem anderen, was ich in dem Bereich kenne weit überlegen und ich beherrsche es (einigermaßen).)

Danke noch mal für die Unterstützung

R.

von u_fischer » Mi 30. Mär 2016, 21:51

Robert T. hat geschrieben:Richtig, ich wünsche mir inkonsistentes Verhalten (und bin mir dessen sehr wohl bewusst). Wie dargestellt wird dieser Wunsch sogar mit "= unterstützt, führt allerdings zu den oben geschilderten Problemen.

Ich fasse es für mich mal so zusammen, dass es keine einfache (!) Lösung für das von mir geschilderte Problem gibt.
Du musst die Penalties richtig setzen. In der Standardeinstellung versucht tex Trennungen zu vermeiden. Da kannst du soviele Trennstellen einbauen wie du willst, sie werden ignoriert, wenn es eine (preiswerte) Möglichkeit ohne gibt.
\documentclass{beamer}

\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}



\begin{document}
 \begin{frame}
 \pretolerance=-1
 \hyphenpenalty=0
 \finalhyphendemerits=0
  Ein langes Wort ist Oberweserdampfschifffahrtsgesellschaftskapitän. Danach kommt ganz viel Text.

  Ein langes Wort ist Oberweserdampfschifffahrts\-gesellschaftskapitän. Danach kommt ganz viel Text.


 \end{frame}
\end{document}

von Besserwisser » Mi 30. Mär 2016, 19:44

:?: Ich habe dir doch gezeigt, wie du einzelne Worte ausnahmsweise doch trennen lassen kannst (wahlweise sogar automatisch oder nur an bestimmten Stellen), obwohl der Rest nicht getrennt wird. Für mich ist das eine einfache Lösung.

von Robert T. » Mi 30. Mär 2016, 19:35

Richtig, ich wünsche mir inkonsistentes Verhalten (und bin mir dessen sehr wohl bewusst). Wie dargestellt wird dieser Wunsch sogar mit "= unterstützt, führt allerdings zu den oben geschilderten Problemen.

Ich fasse es für mich mal so zusammen, dass es keine einfache (!) Lösung für das von mir geschilderte Problem gibt.

Meinen Dank an alle Hinweisgeber

R.

von Besserwisser » Do 24. Mär 2016, 20:50

Wenn Du keinen Rausatz, sondern Flattersatz haben willst, dann ist es korrekt, dass das lange Wort nicht getrennt, sondern in die nächste Zeile umbrochen wird. Dein Problem ist, dass Du offenbar inkonsistentes Verhalten willst. Aber auch das kann man haben:
\documentclass{beamer}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}
\usepackage{ragged2e}
\usepackage{blindtext}
\RaggedRightRightskip=0pt plus 4em % Flatterzone etwas größer als normal
\newcommand*{\hyphenate}[1]{{\enablehyphenation #1}}
\begin{document}
\RaggedRight% Rausatz statt Flattersatz.
\disablehyphenation% Trennung aus
\begin{frame}
  Ein langes Wort ist \hyphenate{Oberweserdampfschifffahrtsgesellschaftskapitän}. Danach kommt ganz viel Text.
\end{frame}
\begin{frame}
  Ein langes Wort ist \hyphenate{Oberweser\-dampf\-schiff\-fahrts\-gesellschafts\-kapitän}. Danach kommt ganz viel Text.
\end{frame}
\begin{frame}
\blindtext
\end{frame}
\end{document}

von Robert T. » Do 24. Mär 2016, 18:00

Sorry, hätte mir mal die die Bedeutung des Status näher ankucken sollen.

Den Begriff Rausatz kannte ich nicht; danke für den Hinweis!

Darum geht es mir aber gar nicht. Prinzipiell möchte ich Worttrennungen auf Folien natürlich vermeiden, also einen Flatter- und keinen Rausatz haben. Nun neigt die deutsche Sprache zu Komposita und da erscheint es mir sinnvoll, in Einzelfällen eine Worttrennung einzufügen.

Bartman hat ja einen Lösungsansatz aufgezeigt. Wie gesagt, erscheint mir dieser zu umständlich. (Wenn ich es richtig sehe, geht der Ansatz aber auch eher in Richtung Rausatz.)

Mein Ansatz mit den babelshorthands führt zu einem Teilerfolg. Meine Frage zielt also eher darauf, wie man aus diesem (oder auch auf anderem, ähnlich einfachem Wege) einen ganzen Erfolg machen kann.

R.

von Besserwisser » Do 24. Mär 2016, 16:01

Beamer verwendet Flattersatz. Im Flattersatz werden Wörter nur getrennt, wenn sie länger als eine Zeile sind. Ansonsten werden sie ggf. lediglich in die nächste Zeile umbrochen. Will man stattdessen Rausatz, also Flattersatz mit Trennung innerhalb einer definierten Flatterzone, dann verwendet man beispielsweise das Paket ragged2e:
\documentclass{beamer}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}
\usepackage{ragged2e}

\begin{document}
\RaggedRight% Rausatz statt Flattersatz.
\begin{frame}
  Ein langes Wort ist Oberweserdampfschifffahrtsgesellschaftskapitän. Danach kommt ganz viel Text.
\end{frame}
\end{document}
Der Status Rückfrage ist übrigens für Helfer, nicht für Fragesteller.

Unterschiedliche Behandlung der babelshorthands

von Robert T. » Do 24. Mär 2016, 14:25

Ich komme noch mal darauf zurück:

Jedes mal eine \parbox zu setzen mit der Definition der Länge dieser Box mag klappen, halte ich aber nicht für sonderlich praktikabel.

Offensichtlich versteht beamer wohl die Trennmuster der babelshortshands, verarbeitet jedoch nicht alle gleichermaßen.
\documentclass{beamer}

\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands=true]{german}

\begin{document}
 \begin{frame}
  % beameruserguide: If absolutely necessary, hyphenate words “by hand,” using the command \-.
  Ein langes Wort ist Oberweserdampfschifffahrts\-gesellschaftskapitän. Danach kommt ganz viel Text.
  % polyglossia: "- for an explicit hyphen sign, allowing hyphenation in the rest of the word
  Ein langes Wort ist Oberweserdampfschifffahrts"-gesellschaftskapitän. Danach kommt ganz viel Text.
  % polyglossia: "= for a compound word mark with a breakpoint, allowing hyphenation in the composing words.
  Ein langes Wort ist Oberweserdampfschifffahrts"=gesellschaftskapitän. Danach kommt ganz viel Text.
 \end{frame}
\end{document}
Das letzte Beispiel klappt soweit, ist aber natürlich ein Missbrauch von "= und hat den Nachteil, dass im PDF der Bindestrich als solcher codiert wird. (Letzteres stört beispielsweise beim Kopieren des Texts.)

R.

Nach oben