PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shadethm: Zeilenumbruch nach Head



arthur0815
08-03-2011, 15:34
Hallo allerseits,

ich bin auf ein Problem gestoßen, bei dem ihr mir hoffentlich weiterhelfen könnt. Ich verwende für Definitionen das Paket shadethm, da ich die somit farblich hervorgehobenen Definitionen sehr ansprechend finde. Wie kann man es sauber realisieren, dass nach dem Head ein Zeilenumbruch erfolgt (der Text der Definition selber also in einer neuen Zeile steht)?
Man kann selbtverständlich nach \begin{thms}[#1] in der Umgebungsdefinition ein \hfill \\ einfügen, dann ist jedoch die erste Textzeile eingerückt, was unerwünscht ist...

Vielen Dank im Voraus!
Michel


\documentclass[]{scrreprt}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[american,ngerman]{babel}
\usepackage{shadethm}



\newshadetheorem{thms}{Definition}[chapter]

\newenvironment{definition}[1][]{
\definecolor{shadethmcolor}{rgb}{.9,.9,.9}
\begin{thms}[#1]
}{\end{thms}}


\begin{document}
Dies in ein Text.
\begin{definition}[Test]
Dies ist eine Definition, bei der ich mal etwas testen muss. Genau genommen teste ich, wie der Zeilenumbruch aussieht. Um das zu erreichen, muss ich den originellen Text mit Platzhalterfunktion ein wenig erweitern.
\end{definition}


\end{document}

tral
08-03-2011, 19:03
Hallo,



\newenvironment{definition}[1][]{
\definecolor{shadethmcolor}{rgb}{.9,.9,.9}
\begin{thms}[#1]\mbox{}\par\noindent%
}{\end{thms}}

...

\begin{definition}[Test]%
Dies ist eine Definition, bei der ich mal etwas testen muss. Genau
genommen teste ich, wie der Zeilenumbruch aussieht. Um das zu
erreichen, muss ich den originellen Text mit Platzhalterfunktion ein
wenig erweitern.
\end{definition}


Wichtig ist das Kommentarzeichen nach \begin{definition}.

Christian.

arthur0815
08-03-2011, 21:06
Ersteinmal: Danke Christian! Deine Lösung funktioniert natürlich :-)

Dann: Ich Trottel habe unbemerkt das Minimalbeispiel so weit minimiert, dass auch die erwähnte Variante mit \hfill \\ zu dem gewünschten Ergebnis führt. Der Einzug entstand nämlich durch das Hinzufügen in ein Definitionsverzeichnis. Ein Minimalbeispiel, bei welchem weder deine noch meine Lösung (die letztlich auf das Gleiche abzielen) funktionieren, wäre somit:


\documentclass[]{scrreprt}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[american,ngerman]{babel}
\usepackage{shadethm}



\newshadetheorem{thms}{Definition}[chapter]

\newenvironment{definition}[1][]{
\definecolor{shadethmcolor}{rgb}{.9,.9,.9}
\begin{thms}[#1] \hfill\\
\addcontentsline{definition}{section}{#1}
}{\end{thms}}


\begin{document}
Dies in ein Text.
\begin{definition}[Test]
Dies ist eine Definition, bei der ich mal etwas testen muss. Genau genommen teste ich, wie der Zeilenumbruch aussieht. Um das zu erreichen, muss ich den originellen Text mit Platzhalterfunktion ein wenig erweitern.
\end{definition}


\end{document}

Glücklicherweise bin ich somit auch auf eine Lösung des Problems gestoßen, die ich - sofern sich jemand mit einem ähnlichen Problem in diesen Thread verirrt - niemandem vorenthalten möchte:


\newenvironment{definition}[1][]{
\definecolor{shadethmcolor}{rgb}{.9,.9,.9}
\begin{thms}[#1] \addcontentsline{definition}{section}{#1} \hfill\\
}{\end{thms}}

Die störende Einrückung wurde also irgendwie durch das \addcontentsline verursacht. Warum auch immer... Auf jeden Fall kann man sie durch die geeignete Anordnung einfach "in den Zeilenumbruch" verbannen.

Vielen Dank also nochmal, Christian - durch das Nachvollziehen deiner Lösung bin ich auf meinen eigenen Fehler gestoßen ;)
Michel