Seite 1 von 1

Soul und Bidi (Xelatex) vertragen sich nicht mehr

Verfasst: So 11. Okt 2015, 10:29
von soulbidi-Michael
Hallo,

ich nutze seit "Ewigkeiten" das Paket soul in meinen Xelatex Dokumenten. Seit heute erhalte ich die Fehlermeldung "reconstruction failed"

Ich konnte den Fehler auf Bidi zurückführen. Zumindest funktioniert das Setzen wenn ich Bidi deaktivieren. Ich brauche aber beide Pakete. Ich habe gestern aktuelle updates heruntergeladen, vielleicht kommt daher das Problem. Sicher bin ich aber nicht.

Weiß jemand rat? Danke und Gruß

Michael

\documentclass{scrreprt}
\usepackage{microtype}
\usepackage{soul}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\setmainlanguage[spelling=new,babelshorthands=true]{german}
\usepackage{bidi}


\begin{document}
Dies ist ein Beispieltext! \ul{Dies ist ein Beispieltext! Dies ist ein Beispieltext! Dies ist ein Beispieltext! Dies ist ein Beispieltext!}
\end{document}

Verfasst: So 11. Okt 2015, 11:14
von Johannes_B

Verfasst: So 11. Okt 2015, 11:27
von Gast
Das Problem tritt erst mit einer neuen Version von bidi auf, in der ein Bug in Verbindung mitt minipages gefixt wurde, dabei wurde aber auch eine Zeile geändert, die Dir jetzt Probleme macht.

Du kannst das temporär mit
\makeatletter
\def\bidi@RTL@everypar{\if@RTL{\setbox\z@\lastbox\beginR\ifvoid\z@\else\usebox\z@\fi}\fi}
\makeatother
lösen, bis das Problem behoben wird.
\documentclass{scrreprt}
\usepackage{microtype}
\usepackage{soul}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\setmainlanguage[spelling=new,babelshorthands=true]{german}
\usepackage{bidi}

\makeatletter
\def\bidi@RTL@everypar{\if@RTL{\setbox\z@\lastbox\beginR\ifvoid\z@\else\usebox\z@\fi}\fi}
\makeatother

\begin{document}
Dies ist ein Beispieltext! \ul{Dies ist ein Beispieltext! Dies ist ein Beispieltext! Dies ist ein Beispieltext! Dies ist ein Beispieltext!}
\end{document}
 

Verfasst: So 11. Okt 2015, 11:29
von Noch so einer
Ich kann bestätigen, dass dieses Problem seit der neusten Version von bidi auftritt. Du solltest einen Bugreport schreiben. Bis das Problem behoben ist – falls es das wird, kannst Du Dir mit ulem statt soul behelfen:
\documentclass{scrreprt}
\usepackage{microtype}
\usepackage[normalem]{ulem}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{polyglossia}
\setmainlanguage[spelling=new,babelshorthands=true]{german}
\usepackage{bidi}
\providecommand*{\ul}[1]{\uline{#1}}% Bei Verwendung von ulem die soul-Anweisung \ul mit Hilfe von \uline definieren.

\begin{document}
Dies ist ein Beispieltext! \ul{Dies ist ein Beispieltext! Dies ist ein Beispieltext! Dies ist ein Beispieltext! Dies ist ein Beispieltext!}
\end{document}
Es sei außerdem darauf hingewiesen, dass Unterstreichung in der Typografie normalerweise verpönt ist. Das ist eine Auszeichnungsform, die man bei Handschriften verwendet, weil man dort keine Möglichkeit hat, durch Verwendung von Schriftattributen auszuzeichnen.

Verfasst: Fr 16. Okt 2015, 10:08
von Johannes_B
Vafa hat eine gefixte Version erstellt, welche demnächst auf CTAN und kurz darauf auch mit TeX Live verfügbar sein sollte.