Text durchstreichen mit ulem/sout und inline kommandos Thema ist als GELÖST markiert

Schriftbild, Absätze und Auflistungen einstellen


Muschelmann
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mo 19. Dez 2022, 21:06

Text durchstreichen mit ulem/sout und inline kommandos

Beitrag von Muschelmann »

Guten Abend,

ich möchte Text durchstreichen und benutze dazu das ulem Paket, davon das Kommando \sout. Das funktioniert jedoch nur, wenn keine weiteren anderen Kommandos innerhalb des Textes vorkommen.
\documentclass[ngerman,paper=a4]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{siunitx}
\usepackage{ulem}

\begin{document}
	
Das ist ein Test.

\sout{Das ist ein Test.}

Das hier ist mit einer Temperatur \qty{150}{\celsius}

\textbf{Das hier ist mit einer Temperatur \qty{150}{\celsius}}

\sout{Das hier ist mit einer Temperatur \qty{150}{\celsius}}

\end{document}

Die Fehlermeldung lautet:
! Extra }, or forgotten \endgroup.
\UL@stop ... \UL@putbox \fi \else \egroup \egroup
\UL@putbox \fi \ifnum \UL@...
l.18 ... mit einer Temperatur \qty{150}{\celsius}}

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

!
Das da nix fehlt oder zuviel ist sieht man ja am \textbf, Irgendwie kommt das Paket ulem da wohl mit den {} aus dem Tritt und meint wohl die } gehört schon zum \sout Befehl... Gibts da eine Möglichkeit das zu beheben oder ein anderes Paket? Oder gar etwas natives?

Gruss
Muschelmann

Abc

Beitrag von Abc »

Der dritte Abschnitt Complications in ulem geht darauf ein.

Muschelmann
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mo 19. Dez 2022, 21:06

Re: Text durchstreichen mit ulem/sout und inline kommandos

Beitrag von Muschelmann »

Da versteh ich nur Bahnhof...
You can usually solve the problem by enclosing the offending command in braces
hilft (mir) auch nicht weiter.

ich meine ja nur

Re: Text durchstreichen mit ulem/sout und inline kommandos

Beitrag von ich meine ja nur »

Manchmal reichen zusätzliche Klammern tatsächlich nicht. Dann hilft i. d. R. die Verwendung einer \mbox:
\documentclass[ngerman,
  paper=a4% überflüssig, weil Voreinstellung
]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[
  ngerman% überflüssig, weil bei \documentclass bereits gesetzt
]{babel}
\usepackage{siunitx}
\usepackage{ulem}% Achtung: Definiert \em und \emph um! Ggf. besser mit Option normalem laden!

\begin{document}
	
Das ist ein Test.

\sout{Das ist ein Test.}

Das hier ist mit einer Temperatur \qty{150}{\celsius}

\textbf{Das hier ist mit einer Temperatur \qty{150}{\celsius}}

\sout{Das hier ist mit einer Temperatur {\mbox{\qty{150}{\celsius}}}}

\end{document}
Zu beachten ist ggf. dass Leerzeichen innerhalb von \mbox beim Zeilenausgleich für den Blocksatz nicht berücksichtigt werden. Sie können also breiter oder schmaler als die übrigen Leerzeichen der Zeile sein. Da aber an den Leerzeichen innerhalb der \mbox ohnehin kein Zeilenumbruch möglich ist, sollte man von vornherein darauf acht, ggf. lieber \mbox{\textbf{das}} \mbox{\textbf{ist}} oder \textbf{\mbox{das} \mbox{ist}} als \mbox{\textbf{das ist}} schreiben. Das nur als ergänzender Hinweis, der im konkreten Fall ohne Relevanz sein sollte.

Muschelmann
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mo 19. Dez 2022, 21:06

Re: Text durchstreichen mit ulem/sout und inline kommandos

Beitrag von Muschelmann »

Danke, das hats gelöst.

Das "überflüssige" babel paket ist zwar für das Minimalbeispiel tatsächlich überflüssig, aber \numrange aus dem siunitx Paket hat die Angabe in der Dokumentenklasse zumindest eine Zeitlang ignoriert und fleissig "to" statt "bis" ausgegeben. Ob das nach zig Updates aber immer noch so ist habe ich noch nicht wieder ausprobiert.

ich meine ja nur

Re: Text durchstreichen mit ulem/sout und inline kommandos

Beitrag von ich meine ja nur »

Du hast das falsch verstanden: babel ist nicht überflüssig. Überflüssig ist, Option ngerman ein weiteres Mal anzugeben. Alle Pakete bekommen auch alle Optionen von \documentclass zu sehen.

Muschelmann
Forum-Newbie
Forum-Newbie
Beiträge: 4
Registriert: Mo 19. Dez 2022, 21:06

Re: Text durchstreichen mit ulem/sout und inline kommandos

Beitrag von Muschelmann »

ich meine ja nur hat geschrieben:
Di 20. Dez 2022, 12:59
Du hast das falsch verstanden.
In der Tat. Danke.

Antworten