PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Theorem mit marginpar



zod
13-11-2009, 13:56
Hallo.

Es ist für mich ziemlich schwer ein Theorem mit einer Randbemerkung zu erstellen. Das Problem ist die Randbemerkung auf der Höhe der ersten Zeile vom Theorem zu bringen.

Folgendes geht:

\begin{definition}
Viel \marginpar{Foo} Text mit dem wichtigen \underline{Wort} drin
oder auch nicht und einer Randbemerkung.
\end{definition}

Allerdings recht unschön und unlesbar beim erstellen. Gibt es elegantere Wege?

mechanicus
14-11-2009, 07:39
Allerdings recht unschön und unlesbar beim erstellen. Gibt es elegantere Wege?
Du hast uns ja nicht mal einen Weg gezeigt. Ohne ein Minimalbeispiel ist dir also nicht zu helfen.

Minimalbeispiel, das funktioniert:

\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm}
\usepackage{lipsum}
\newtheorem{definition}{Definition}
\begin{document}
\chapter{foo}
\lipsum[1]

\begin{definition}
Viel \marginpar{Foo} Text mit dem wichtigen \underline{Wort} drin
oder auch nicht und einer Randbemerkung.
\end{definition}

\lipsum[1]
\end{document}

Gruß
Marco

zod
14-11-2009, 10:52
Mir wurde etwas gezeigt, dass ich angepasst habe:


\newenvironment{definition}[1][]
{\begin{definition_}\marginpar{\vskip 1em #1}}
{\end{definition_}}

Das ist eleganter weil man hier sehr schön Definition von Randbemerkung trennt:

\begin{definition}{Name}
Definitionstext über mehrere Zeilen
\end{definition}

Letzte Problem ist hier, dass die Randbemerkung nur wenige Millimeter zu tief sitzt und nicht in einer Höhe mit der ersten Zeile der Definition ist.

mechanicus
14-11-2009, 11:12
Hallo,

hast du meinen Beitrag überhaupt gelesen. => MINIMALBEISPIEL

Zudem glaube ich nicht, dass du weißt, was du mit vskip (http://de.wikibooks.org/wiki/LaTeX-W%C3%B6rterbuch:_TeX_Primitiven:_%5Cvskip) erreichst.

Gruß
Marco

zod
14-11-2009, 12:20
Doch habe ich.
Und ich merke "Minimalagressionen" in deinen Aussagen. :p

Mit vskip sollte die Verschiebung korrigiert werden. Gibt es denn eine bessere / andere Varianten neben vskip? Wenn ja, bitte sage welche. Danke.


Hier die Ergänzung zum vorherigen Beispiel:

\documentclass[12pt,a4paper,ngerman]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\newtheorem{definition_}[definition_counter]{Definition} % Definition

\newenvironment{definition}[1][]
{\begin{definition_}\marginpar{\vskip 1em #1}}
{\end{definition_}}

\begin{document}

\begin{definition}{Name}
Definitionstext\\über\\mehrere Zeilen
\end{definition}

\end{document}

Erwarte von Anfängern nicht zu viel und bleibe freundlich. ;)

mechanicus
14-11-2009, 19:35
Hallo,


Erwarte von Anfängern nicht zu viel und bleibe freundlich. ;)
entschuldige, wollte dich nicht persönlich angreifen.

Zu deinem Problem:
Auf die Schnelle würde folgendes funktionieren:

\documentclass[12pt,a4paper,ngerman]{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\newtheorem{definition_}{Definition} % Definition

\newenvironment{definition}[1][]
{\begin{definition_}\marginpar{\vskip0.5\baselines kip #1}}
{\end{definition_}}

\begin{document}

\begin{definition}[Name]
Definitionstext\hrulefill\\über\\mehrere Zeilen
\end{definition}

\end{document}

Allerdings gibt es hier bessere Möglichkeiten, welche ich aus Zeitgründen jetzt nicht unterbringen kann.

Gruß
Marco

mechanicus
15-11-2009, 07:51
Allerdings gibt es hier bessere Möglichkeiten, welche ich aus Zeitgründen jetzt nicht unterbringen kann.
Ich halte folgende Möglichkeit für nicht schlecht :D


\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm}
\usepackage{lipsum}
\newtheorem{definition}{Definition}
\makeatletter
\g@addto@macro\definition{\@ifnextchar[%]
\withmargin\withoutmargin}
\def\withmargin[#1]{\leavevmode\marginline{#1}}
\def\withoutmargin{\relax}
\makeatother
\begin{document}
\chapter{foo}
\lipsum[1]

\begin{definition}[as]
Viel Text mit dem wichtigen \underline{Wort} drin oder auch nicht und einer Randbemerkung.
\end{definition}

\lipsum[1]

\begin{definition}[foo]
Viel Text mit dem wichtigen \underline{Wort} drin oder auch nicht und einer Randbemerkung.
\end{definition}



\lipsum[1]

\begin{definition}[bla]
Viel Text mit dem wichtigen \underline{Wort} drin oder auch nicht und einer Randbemerkung.
\end{definition}
\end{document}


Gruß
Marco

zod
17-11-2009, 11:13
Woah! Makros! *verliebt*

Auf jeden Fall rießen Dank für diese Lösung des Problems.
Ich glaube als nächstes arbeite ich mich in Makros ein (sofern ich richtig sehe das es welche gibt).

Gibt es Funktionen um Wörter zu finden und zu ändern?
Dann würde ich basteln bis das Wort von selbst unterstrichen wird, falls es im Text auftaucht ;)

Vielen Dank! Das sieht echt gut aus und ist schön übersichtlich!

mechanicus
17-11-2009, 17:04
Hi,


Gibt es Funktionen um Wörter zu finden und zu ändern?
hierfür würde ich wohl ein shell-Script nehmen.

Gruß
Marco