1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Latex - Feste Position eines Textes

Dieses Thema im Forum "LaTeX" wurde erstellt von Cyrics, 21.08.07.

  1. Cyrics

    Cyrics Neuer Berner Rosenapfel

    Dabei seit:
    01.04.05
    Beiträge:
    1.975
    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...
     
  2. phueghy

    phueghy Jamba

    Dabei seit:
    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
     
  3. Cyrics

    Cyrics Neuer Berner Rosenapfel

    Dabei seit:
    01.04.05
    Beiträge:
    1.975
    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
     
  4. Stefan_K

    Stefan_K Morgenduft

    Dabei seit:
    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
     
    Cyrics gefällt das.
  5. Cyrics

    Cyrics Neuer Berner Rosenapfel

    Dabei seit:
    01.04.05
    Beiträge:
    1.975
    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}
    }
    
     
    #5 Cyrics, 21.08.07
    Zuletzt bearbeitet: 21.08.07

Diese Seite empfehlen