[parbox] inner postion beeinflusst auch Rand

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: [parbox] inner postion beeinflusst auch Rand

von MoonKid » Mo 26. Jan 2015, 18:57

Danke, ich werde mir das in Zukunft mal anschauen.

Jedoch merke ich gerade wieder, dass es keinen Sinn hat unter Linux einen Canon-Drucker laufen zu lassen. Es gibt immer minimale Skalierungen bzw. Verschiebungen hier, egal welcher PDF-Reader und welche Einstellungen. Milimetergenaues Drucken ist unmöglich.

Und Lust auf Windows zu switchen, nur um zu Drucken habe ich da auch nicht.

von Besserwisser » Sa 24. Jan 2015, 14:46

Für Formulare, bei denen die genaue Position auf dem Papier wichtig ist, würde ich ja eher textpos, eso-pic, scrlayer o. ä. verwenden.

von MoonKid » Sa 24. Jan 2015, 11:02

esdd hat geschrieben:Ursache ist...
Ok, verstehe ich gerade so. Auch wenn mir der Grund bzw. die Design-Überlegung dahinter klar ist.
esdd hat geschrieben:Die einfachste Lösung wäre es, die beiden Boxen vertikal aneinander zu zentrieren, d.h. bei beiden im ersten Argument c anzugeben.
Die cm sind in meinem Dokument sehr wichtig, da es später in ein vorgedrucktest (also auf Papier vorhandenem) Formular hineingedruckt werden soll. Deswegen ist der obere Rand (6cm) auch so wichtig. Beeinflussen diese Ausrichtungen irgendwie diesen Rand?

von esdd » Sa 24. Jan 2015, 02:28

Ursache ist die Kombination aus innerer und äußerer Positionierung. Mit dem ersten optionalen Argument t gibst Du vor, dass die jeweilige `\parbox` mit der Grundlinie ihrer ersten Zeile auf der umgebenden Grundlinie eingefügt wird. In der linken Box (mit innerer t Ausrichtung) ist das die Grundlinie unter "Text". In der rechten Box (mit innerer vertikaler Zentrierung) ist es dagegen der obere Rand der \parbox. Sehen kannst Du das, wenn Du zum einen \fboxsep gleich Null setzt und zum anderen in der linken Box und zwischen den Boxen ein \hrulefill einfügst.

Bild
\documentclass{scrartcl} 
\setlength\fboxsep{0pt}

\begin{document} 
\fbox{\parbox[tt][2cm][tt]{4.5cm}{Text\hrulefill}}%
\hrulefill
\fbox{\parbox[tt][2cm][c]{4.5cm}{\centering{}Text}} 
\end{document}

Die einfachste Lösung wäre es, die beiden Boxen vertikal aneinander zu zentrieren, d.h. bei beiden im ersten Argument c anzugeben.
\documentclass{scrartcl}
\usepackage{showframe} 
\setlength\fboxsep{0pt}

\begin{document} 
\fbox{\parbox[c][2cm][tt]{4.5cm}{Text\hrulefill}}%
\hrulefill
\fbox{\parbox[c][2cm][c]{4.5cm}{\centering{}Text}} 
\end{document}
Bild

Wenn Du die äußere Ausrichtung nicht ändern kannst, dann könntest Du in der linken Box am Anfang ein \strut einfügen und dann die rechte Box um \ht\strutbox nach oben schieben.
\documentclass{scrartcl}
\usepackage{showframe} 
\setlength\fboxsep{0pt}

\begin{document} 
\fbox{\parbox[tt][2cm][tt]{4.5cm}{\strut Text\hrulefill}}%
\hrulefill
\fbox{\raisebox{\ht\strutbox}{\parbox[tt][2cm][c]{4.5cm}{\centering{}Text}}} 
\end{document}
Und dann gibt es da noch das Paket adjustbox, dass sich dafür eventuell auch verwenden lässt.

Gruß
Elke
Dateianhänge
gl_parboxausr1.PNG
gl_parboxausr1.PNG (2.47 KiB) 1672 mal betrachtet
gl_parboxausr.PNG
gl_parboxausr.PNG (2.34 KiB) 1658 mal betrachtet

[parbox] inner postion beeinflusst auch Rand

von MoonKid » Fr 23. Jan 2015, 21:56

%% box.tex
\documentclass{scrartcl}

% Sprache
\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

% Seitenränder
\usepackage[
    showframe,
    paper=a4paper,
    top=6cm,
    left=1.5cm,
    bottom=0cm,
    right=0cm,
    includehead=false,
    includefoot=false,
    bindingoffset=0mm]{geometry}

% Absatzeinrückung aus
\parindent=0pt

% -- Document --
\begin{document}
\fbox{\parbox[tt][2cm][tt]{4.5cm}{Text}}
\fbox{\parbox[tt][2cm][c]{4.5cm}{\centering{}Text}}
\end{document}
Hier ist zu sehen, dass ich zwei Boxen (zur Hilfe mit fbox visualisiert) der gleichen Größe nebeneinander setze.

Bei der zweiten Box soll der Text horizontal und vertikal zentriert sein. Das ist er auch. Jedoch verschiebt dies auch die Box selbst etwas nach Unten, wie im Vergleich mit der ersten Box zu sehen ist.

Warum ist das so und wie kann ich es verhindern?

Nach oben