Umgebung für eine "floating textbox"

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Pu1144936
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 14. Aug 2008, 15:23

Umgebung für eine "floating textbox"

Beitrag von Pu1144936 »

Hallo,

ich habe das Problem, dass ich in einem Dokument irgendwie die Funktionalität brauche, automatisch auf jeder Seite oben rechts eine Textbox brauche, die außerdem möglichst einen entsprechenden Umbruch im Text um sie herum erzeugt.

Normalerweise kein Problem, nimmt man 'ne Kopfzeile. In diesem Fall leider nicht, da das Corporate Design, das ich nutze, keine Kopfzeile vorsieht. Für 90% aller Fälle ist sie in dem Design auch unnötig, nur hier wäre es eine sinnvolle Sache... ;)

Jemand eine Idee, wie man sowas machen kann? Bin normalerweise nur Anwender, daher hab ich selbst keine so richtige...

Grüße und danke,

ch

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

float gleitender Text

Beitrag von DonCube »

Vielleicht meinst du sowas?
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[ansinew]{inputenc}      
\usepackage[ngerman]{babel}
\usepackage{wrapfig}
\usepackage{blindtext}
\newcommand{\floatingBox}[3]{\begin{wrapfigure}[#1]{r}{#2}#3\end{wrapfigure}}

\begin{document}
%\floatingBox{Höhe in Zeilen}{Breite}{Text}
\floatingBox{5}{4cm}{Mein Text der in der Box abgebildet werden soll. Mal schauen wie das klappt.}
\blindtext[5]
\end{document}
Grüße DonCube
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Pu1144936
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 14. Aug 2008, 15:23

Beitrag von Pu1144936 »

Das ist ein guter Ansatz... Danke!

Pu1144936
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 14. Aug 2008, 15:23

Beitrag von Pu1144936 »

Hi,

habs jetzt mit

\AddToShipoutPicture aus dem eso-pic package und einer etwas vergrößerten headhight gelöst. Zusammen mit einer if-Abfrage der Seitenzahl geht das ganze dann auch automatisch auf jeder Seite.

ch

DonCube
Forum-Guru
Forum-Guru
Beiträge: 291
Registriert: So 29. Jun 2008, 21:17
Wohnort: Bocholt

floating, gleitende Box, Fenster, Text

Beitrag von DonCube »

Poste doch mal deine Lösung. Das wäre sicherlich für alle die eine ähnliche Frage haben sicherlich interessant.
Schau mal hier rein goLaTeX-Wiki, und gaaaanz wichtig Minimalbeispiel

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Man kann Seitenköpfe übrigens auch bei Dokumenten verwenden, bei denen kein Seitenkopf vorgesehen ist. Die Pakete scrpage2 und fancyhdr, zu Definition von Seitenkopf- und Fuß stützen sich auf den LaTeX-Kern. Selbst wenn der Klassenautor die Anweisung \pagestyle sabotiert haben sollte - was mir noch nie begegnet ist - kann man notfalls den Seitenstil notfalls per \csname ps@SEITENSTIL\endcsname aktivieren. (WICHTIGER HINWEIS: Im Normalfalls sollte man das nicht tun, da damit das Überladen der Anweisung \pagestyle nicht mehr funktioniert, und man sich auf Interna des LaTeX-Kernels verlässt!). Das Seitenlayout wiederum kann man leicht per geometry anpassen.

Pu1144936
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 14. Aug 2008, 15:23

Beitrag von Pu1144936 »

Hi,

mach ich gerne, allerdings mit dem deutlichen Hinweis, dass eine Kopfzeile das ganze für den Normalfall auch lösen sollte - ich konnte es halt wg. Corporate-Design-Vorgaben nicht so machen. Ggf. folgen hier aber auch entsprechende Änderungen. Da das Package für das CD auch nicht unbedingt weitergegeben werden darf, poste ich auch nur die zwei Blöcke, die es für die Umsetzung an sich benötigt (allen Dauer-forderungen nach Minimalbeispielen zum Trotz... ;)

Zum Verständnis, es handelt sich um das Problem, für eine Klausur auf jeder neuen Seite oben entsprechend Name und Matrikelnummer abzufragen.

In der Präambel:
%%Definition Klausurtitel
%Packages für Änderung des Satzspiegels und Einbindung des "Wasserzeichens"
\usepackage{geometry}
\usepackage{eso-pic}

\makeatletter
\AddToShipoutPicture{ %
    \setlength{\@tempdima}{20mm}  %20 mm Rand links
    \setlength{\@tempdimb}{265mm} %25 mm Rand von oben plus ein bisschen mehr Platz, damit man handschriftlich gut den Namen schreiben kann (Picture-Umgebung definiert 0,0 als links unten!)
  \ifnum\thepage>1 % Nur für Seite 2 und folgende. Muss angepasst werden, wenn Klausur-Präambel entsprechend länger ist.
    \put(\LenToUnit{\@tempdima},\LenToUnit{\@tempdimb}){%
         \makebox{
         \begin{tabular}{p{8.5cm}p{3.5cm}p{4cm}}
          Vordiplom WS 08/09 & Nach-, Vorname: \parbox[0pt][2em][c]{0cm}{} & \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ \\
         \Large\textbf{Allgemeine Relativitätstheorie} \normalsize & Matrikelnummer: \parbox[0pt][2em][c]{0cm}{} & \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ \\ \hline \hline
         \end{tabular} }% end \makebox
      } %end \put
   \fi
   } %end \AddToShipoutPicture
\makeatother
%% Ende Definition Klausurtitel. Die Randeinstellungen etc. müssen noch im Dokumentenquelltext eingestellt werden!
Die Werte für die Positionierung des "Wasserzeichens" (Dafür ist das eso-pic-Package wohl ursprünglich gedacht) müssen natürlich entsprechend angepasst werden. Der \if-Block bedingt, dass das ganze nur auf Seite 2 und folgende passiert, auf der ersten brauch ich die Funktionalität nicht.

Ins Dokument selbst muss:
    %% Änderung des Satzspiegels für das Einfügen der Klausurtitelzeile für jede Seite. Befehl für die Texthöhe funktioniert nur richtig vor einem \newpage, die Anpassung von \headsep allerdings erst danach...

    \setlength{\textheight}{22.7cm}
    %Texthöhe verkleinern, damit Fußzeile stimmt! Wert errechnet aus A4-Größe minus Ränder (oben 15mm, unten 20 mm) laut CD-Manual minus Änderung des Abstandes zwischen Kopfzeile und Text (s.u.). Nochmal 10mm für die Fußzeile abgezogen (dann sieht's richtig aus, ist aber Augenmaß.)

    \newpage
    \setlength{\headsep}{2.5cm} %Kopf vergrößern für Klausurtitel, Name, Matr.-Nummer

    %% Ende Änderungen Satzspiegel für Klausurtitel
Der \newpage-Aufruf trennt die erste von den folgenden Seiten. Das ganze hat merkwürdigerweise auch nur so funktioniert - bin leider eher Anwender als programmiertechnisch in LaTeX begabt bzw. in der Datenverarbeitung bewandert, als dass ich das irgendwie nachvollziehen könnte.

Wie das ganze dann aussieht, siehe Anhang. Viel Spaß damit, wenn es jemand braucht... ;) Die Eso-Pic unterstützt auch Bilder etc. und wird teilweise auch für Beamerfolien zum Hintergrund-Einbinden oder für Rahmen um komplette Seiten genutzt - das vielleicht nur als zusätzliche Info ohne Wertung des typographischen Werts solcher elemente... ;)

Viele Grüße,

ch
Dateianhänge
TUDexcerciseMitKlausur.pdf
Das Ergebnis des ganzen...
(91.16 KiB) 1217-mal heruntergeladen

Pu1144936
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 14. Aug 2008, 15:23

Beitrag von Pu1144936 »

Hi,

das sehe ich jetzt gerade erst, sorry...
KOMA hat geschrieben:Man kann Seitenköpfe übrigens auch bei Dokumenten verwenden, bei denen kein Seitenkopf vorgesehen ist. Die Pakete scrpage2 und fancyhdr, zu Definition von Seitenkopf- und Fuß stützen sich auf den LaTeX-Kern. Selbst wenn der Klassenautor die Anweisung \pagestyle sabotiert haben sollte - was mir noch nie begegnet ist - kann man notfalls den Seitenstil notfalls per \csname ps@SEITENSTIL\endcsname aktivieren. (WICHTIGER HINWEIS: Im Normalfalls sollte man das nicht tun, da damit das Überladen der Anweisung \pagestyle nicht mehr funktioniert, und man sich auf Interna des LaTeX-Kernels verlässt!). Das Seitenlayout wiederum kann man leicht per geometry anpassen.
Ich hab's damit auch erstmal versucht, dann funktioniert aber diverser anderer Kram des Designs nicht so, wie er soll. Ich weiß nicht warum, da ich weder Erfahrung noch wirkliche Einsicht in das habe, was TeX, LaTeX und all die anderen hübschen Programme mit dem machen, was in .sty-Files angegeben ist.

Jetzt kann man drüber streiten, ob das schlechter Programierstil oder gewollt ist (was ich in diesem Punkt, glaube ich, eher stimmt, da im entsprechenden Design einfach keine Kopfzeile vorgesehen ist und - man kennt das ja - wenn was da ist, wirds auch genutzt und das sieht dann im Endeffekt noch blöder aus.).

Für mich war es dann ausschlaggebend, dass das ganze doch eher noch in einer Beta-Phase ist und vielleicht irgendwann mal anders gelöst werden kann - es wird halt eher freizeitmäßig von allen Beteiligten betrieben. Daher ist die vorliegende Lösung zum einen für mich funktional und zum anderen vielleicht eine Option für den Paketautor, das ganze zu übernehmen. Vielleicht auch nicht, aber dann gibt es schonmal eine Option weniger, wie man es machen kann... ;)

Viele Grüße und danke für die vielen hilfreichen Tipps hier,

ch

Antworten