• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Latex - Feste Position eines Textes

Cyrics

Neuer Berner Rosenapfel
Registriert
01.04.05
Beiträge
1.973
Hallo Latex-Freunde,

ich stehe derzeit vor einem mir unlösbaren Problem.
Ich weiss nicht mal wie ich es angehen sollte...

ich bin dabei eine allgemeine nutzbare Vorlage auszuarbeiten. Bei dieser Vorlage hab ich einen Platzhalter, der möglicherweise gefüllt werden kann, möglicherweise aber auch nicht. Das ist abhängig von dem jeweiligen Nutzer.

Leider steht darunter dann noch einiges an Text, welcher dann je nachdem ob vorhergehend Text erscheint oder nicht, hin und her wandert. Das würde ich gerne abstellen.

Ich hab schon versucht mit einer \ifthenelse{}{}{}-Bedingung das den variablen Text, falls nicht vorhanden durch eine Box in den Griff zu bekommen, aber die mir zur Verfügung stehenden Boxen sind alle nicht geeignet (kein automatischer Zeilenumbruch bei viel Text, oder wenn doch, dann keine fest definierbare Höhe).

Es bleibt also nur noch die Möglichkeit den sich ständig hin und her verschiebenen Text eine feste Position zuzuweisen.
Wie kann ich das erreichen?

Eine andere Möglichkeit wäre sonst einen festen Abstand zu definieren, und diesen abhängig von der Länge des variablen ersten Textes dann zu varrieren durch Subtraktion der genutzten Linien oder so... aber das ist auch nur irgendeine Frickel-Lösung...
 

phueghy

Jamba
Registriert
25.07.07
Beiträge
56
Hallo,

die banalste Möglichkeit wäre, mittels \newpage einfach eine neue Seite zu beginnen. :)

Kommt das nicht in Frage, hilft dir vllt. ein \vspace in deinem if-Konstrukt? Ansonsten gibt es auf CTAN noch das textpos-Paket, was so ungefähr das zu können scheint, was du haben möchtest.

Grüße, phueghy
 

Cyrics

Neuer Berner Rosenapfel
Registriert
01.04.05
Beiträge
1.973
newpage darf da leider nicht rein. Das muss auf einer Seite zusammen bleiben.
Mit vspace in der IfThenElse-Bedingung hab ich schon herum probiert, jedoch schaff ich es nicht, die Länge des variablen Textes zu bestimmen, um dementsprechen vspace anzupassen.

Tex ist schon irgendwie komisch... eine Programmiersprache ist es auf jeden Fall nicht... mit ein-zwei Schleifen wäre das Problem gelöst, aber da es in Tex ja auch keine Rückgabewerte gibt, ist das auch etwas sinnlos.

Das Paket textpos wäre eben ein externes Paket, das würde zu größeren späteren Problemen führen, und es unterteilt mit dir Seite in festgelegte Blöcke, welche ich dann jeweils befüllen kann. Damit zerstör ich jedoch die Struktur der anderen Elemente, die eigentlich alle richtig sitzen, sich jedoch nur von dem variablen Text hin und her schieben lassen
 

Stefan_K

Morgenduft
Registriert
18.05.07
Beiträge
168
Feste Position

Hallo Cyrics,

absolute Positionierung kann man mit \smash, \llap, \rlap und phantom-Befehlen gut hinkriegen. Nehmen wir minipage oder parbox für eine Box mit Zeilenumbruch, zerstören die vertikale Ausdehnung mit \smash, die horizontale mit \rlap, und legen einen neuen Abstand mit \vspace fest:
Code:
\rlap{\smash{\parbox[t]{3cm}{Auszufüllen}}}%
\par\vspace{3\baselineskip}Weiterer Text
So ähnlich könnte man ansetzen.

Viele Grüße,

Stefan
 
  • Like
Reaktionen: Cyrics

Cyrics

Neuer Berner Rosenapfel
Registriert
01.04.05
Beiträge
1.973
absolute Positionierung kann man mit \smash, \llap, \rlap und phantom-Befehlen gut hinkriegen. Nehmen wir minipage oder parbox für eine Box mit Zeilenumbruch, zerstören die vertikale Ausdehnung mit \smash, die horizontale mit \rlap, und legen einen neuen Abstand mit \vspace fest:
Code:
\rlap{\smash{\parbox[t]{3cm}{Auszufüllen}}}%
\par\vspace{3\baselineskip}Weiterer Text
So ähnlich könnte man ansetzen.

Hallo Stefan,

vielen Dank. Damit klappt das schon sehr gut. Ich hab zwar immer noch eine geringe Abweichung, aber die kann ich verschmerzen. Der Sprung beträgt nun nur noch wenige Millimeter. Vorher waren es ganze Zeilen. Die Option t der \parbox scheint es auf jeden Fall zu machen. Nun kann ich ziemlich viel Text reinsetzen.

Besten Dank nochmal!

PS:
Ich hab den Fehler wegen der geringen Abweichung gefunden. Es war durch die Änderung der Schriftgröße entstanden... nun klappt es hervorragend :)
Das Endergebnis sieht dann so aus:
Code:
\ifthenelse{
	\equal{\@hinweise}{}}
	{\normalsize
	\rlap{\smash{\parbox[t]{15cm}{}}}
	\par\vspace{7cm}
	}				
	{\normalsize
	\rlap{\smash{\parbox[t]{15cm}{\@hinweise}}}
	\par\vspace{7cm}
}
 
Zuletzt bearbeitet: