PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seitenrand kästchen



Hallo_Welt
22-02-2014, 10:42
Hallo liebes Forum :)

Ich starte mal mit einer kleinen Frage, die mich gerade in den Wahnsinn treibt:

Ich will am rechten Seitenrand ein Kästchen.
Maße:
Dieses im Abstand von 5 cm zur oberen rechten Blattecke
und
es soll 1cm vom Blattrand in das Blatt gehen, mit einer Länge von 2cm.

Grundsätzliche Frage:
Wie kann ich also etwas auf den Rand setzen?

Ich benutze das package "geometry". Dieses kann doch Randnotizen, oder? Wie aber kann ich dann mit einer Randnotiz ein Kästchen an einem konkreten Platz anbringen? Gibt es andere Möglichkeiten?


Danke schon einmal!

u_fischer
22-02-2014, 13:02
Es gibt viele Möglichkeiten. Z.B. tikz:


\documentclass{article}
\usepackage{tikz,lipsum}

\begin{document}
\tikz[overlay,remember picture] \filldraw[red] ([xshift=-1cm,yshift=-5cm]current page.north east) rectangle ++(-2,1);
\lipsum
\end{document}

Hallo_Welt
22-02-2014, 13:31
So weit so gut! Dankeschön.

jetzt geht es mir um die position und deren parameter.

was ich will ist, dass sich das Kästchen pro \part um 0,5 cm nach unten verschiebt.

Mein problem:
scheinbar geht latex nach call-by-value, wenn ich \value{part} benutze und da part anfangs auf 0 gesetzt, steht immer alles in der rechten oberen ecke.

Was ich brache:
einen pointer, also call-by-reference.
Es soll ((\value{part}+5)cm) als parameter übergeben werden und sich dynamisch anpassen.

Worauf es rauslaufen soll:
Ich möchte einen Daumen-Index erstellen. Er soll nicht als Code-Schnipsel irgendwo rauskopiert sein, sondern so erstellt, dass auch für mich verständlich.

Dazu finde ich leider überhaupt nichts im Netz! Hilfe und/oder Erklärung wären eine echte Wohltat!!!

Liebe Grüße!

u_fischer
22-02-2014, 13:43
\value gibt (normalerweise) den Zähler zurück, nicht seinen Wert. Für den Wert brauchst du \number oder \the (und bei tikz mit overlay immer zweimal kompilieren):


\documentclass{article}
\usepackage{tikz,lipsum}

\begin{document}
\part{abc}

\tikz[overlay,remember picture] \filldraw[red] ([xshift=\dimexpr-\number\value{part}cm+0.5cm,yshift=-5cm]current page.north east) rectangle ++(-2,1);
\lipsum

\newpage
\part{abc}

\tikz[overlay,remember picture] \filldraw[red] ([xshift=\dimexpr-\the\value{part}cm+0.5cm,yshift=-5cm]current page.north east) rectangle ++(-2,1);
\lipsum

\newpage
\part{abc}

\tikz[overlay,remember picture] \filldraw[red] ([xshift=\dimexpr-\the\value{part}cm+0.5cm,yshift=-5cm]current page.north east) rectangle ++(-2,1);
\lipsum
\end{document}

Hallo_Welt
22-02-2014, 14:27
Ok... das muss ich mir nochmal zu gemüte führen...

Was mich jetzt noch intressiert (an dieser Stelle^^) ist, ob ich den \part nicht umdefinieren kann, so dass ich

\tikz[overlay,remember picture] \filldraw[red] ([xshift=\dimexpr-\number\value{part}cm+0.5cm,yshift=-5cm]current page.north east) rectangle ++(-2,1);
\lipsum
nicht nach jedem \part aufrufen muss.

Vielen Dank schonmal!!!!!!!!!

hakaze
22-02-2014, 15:13
Vielleicht nützt dir auch eines dieser Pakete zum Erstellen von "Daumenmarken" (thumb indexes):
thumb (http://www.ctan.org/pkg/thumb)
thumbs (http://www.ctan.org/pkg/thumbs)
thumby (http://www.ctan.org/pkg/thumby)
chapter-thumbs with KOMA-Script (http://www.komascript.de/chapterthumbs-example)

Hallo_Welt
22-02-2014, 19:42
Hallo! Sorry, aber genau das ist, was ich nicht will... blind fremde packete einbinden...

weiter sind die packete nur für chapter ausgelegt und ich will es für \part.
die lösung mit tikz wäre echt spitze. da könnte man selbst das aussehen der kästchen sehr gut bestimmen.


Ich brauche einfach eine referenz auf den \part-wert!
weiter brauche ich die Antwort, wie man \part umdefinieren kann, also befehl an \part knüpfen kann etc.

hakaze
23-02-2014, 09:50
Ich bin der Letzte, der empfiehlt, blind irgendwelche Pakete einzubinden.

Das war vielmehr der freundlich gemeinte Vorschlag, sich einmal anzuschauen, was es schon an fertigen Lösungen gibt, bevor man selbst was bastelt ;) Die Paket-doku von thumbs (texdoc.net/pkg/thumbs) enthält auch noch eine Liste mit Alternativvorschlägen.

u_fischer
23-02-2014, 10:40
Hallo! Sorry, aber genau das ist, was ich nicht will... blind fremde packete einbinden...

Du brauchst sie ja nicht einzubinden (und das letzte ist ja auch nur ein Link), aber du kannst sie dir ja mal anschauen, statt zu warten, dass du alles auf dem Silbertablet bekommst.


weiter brauche ich die Antwort, wie man \part umdefinieren kann, also befehl an \part knüpfen kann etc.

Suche die Originaldefinition in deiner Klasse, kopiere sie in deine Präambel und ändere sie.

klops
24-02-2014, 09:49
Wobei das Einbinden von Paket durchaus auch den Vorteil hat, dass man von Neuerungen der Pakete, etwas Fehlerbeseitigungen oder Lösungen für Probleme mit anderen Paketen, profitieren kann. Wenn man hingegen nur den Code von einem Paket abkupfert, dann muss man bei Problemen ggf. auch wieder selbst tätig werden.

Die Verwendung von Paketen ist daher durchaus keine schlechte, sondern eher eine gute Idee. Natürlich sollte man auch deren Anleitung lesen und natürlich ist es ebenfalls keine schlechte Idee, sich anzuschauen, was das Paket denn intern macht – wenn man die Zeit dafür hat.

Wenn Du wirklich alles selbst machen willst, solltest Du übrigens nicht LaTeX, sondern plainTeX verwenden. Dann wirst Du zwangsläufig verstehen lernen müssen, wie was funktioniert. ;)