PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : minipage und multicols*



peyo
23-11-2010, 07:56
Hallo,
ich habe ein Problem. ich brauche eine Minipage in der eine multicol * definiert wird.

Leider wird in der Minipage der Stern nicht beachtet und somit werden die Spalten ausbalanciert, so wie Latex es für schön empfindet.
Ohne Minipage funktioniert der Stern, aber ich brauche eine Minipage (oder etwas ähnliches) weil ich die multicols* mit einem put Befehl in einem Picture platzieren muss.



\begin{picture}(21,29.7)(0.4,0)
\put(1.6,23){\raisebox{-\height}{\begin{minipage}{16cm}
\begin{multicols*}{2}[\null\vskip-\baselineskip]
test test test test
test test test test
test test test test
test test test test
test test test test
test test test test
test test test test
test test test test
test test test test
\end{multicols*}
\end{minipage}}}
\end{picture}


Vielen Dank für eure Hilfe.

rstuby
23-11-2010, 08:16
Hm, ich vermute, dass man irgendwie eine Höhe vorgeben muss, damit das eine Chance hat zu funktionieren. Aber ich weiß auch nicht wie.

peyo
23-11-2010, 08:43
Das mit der Höhe hab ich schon ausprobiert.
hier mein Minimalbeispiel ohne die Picture Umgebung:


\documentclass[12pt,a4paper,twoside]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{multicol}

\begin{document}

\begin{minipage}[t][10cm][t]{6cm}
\begin{multicols*}{2}
Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nächste.

Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nächste.
\end{multicols*}
\end{minipage}


\end{document}

ändert aber leider auch nichts daran :confused:

Sepp99
23-11-2010, 10:35
Du könntest es mit dem Paket pdfcolparallel versuchen:



\documentclass[12pt,a4paper,twoside]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{multicol}
\usepackage{pdfcolparallel}%[2008/08/11]
\usepackage{blindtext}

\begin{document}
\blindtext
\begin{minipage}[t][10cm][t]{6cm}
\setlength{\parindent}{0pt}

\begin{Parallel}{0.45\linewidth}{0.45\linewidth}
% \tolerance=1000
\ParallelLText{Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz. Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz. Der Nächste.}

\ParallelRText{Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz. Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.}
\end{Parallel}

\end{minipage}

\blindtext
\end{document}


Gruß, Sepp.-

peyo
23-11-2010, 10:40
Danke für die Antwort.

Das Problem an der Sache ist, dass ich nicht genau weiß, wie lange der Text wird, da dieser automatisch generiert wird.
Somit kann ich leider nicht mit \ParallelLText bzw. \ParallelRText arbeiten.

Vorgabe ist, dass wenn der Text in eine Spalte passt, muss diese bis zum Seitenrand voll geschrieben werden. Ist der Text zu lange für eine Spalte, dann wird der restliche Teil in die Spalte daneben geschrieben.

rstuby
23-11-2010, 10:41
Nein, der Text soll doch automatisch in der nächsten Spalte weitergehen, wenn die erste Spalte voll ist. Das geht doch nicht, wenn man den rechten und linken Text einzeln angeben muss.

Sepp99
23-11-2010, 10:55
Da verstehe ich jetzt das Problem nicht. Das macht doch genau das Beispiel aus Beitrag 3, somit habe ich vermutet, dass es anders gemeint war.
Die Höhe wird ja durch die minipage-Umgebung vorgegeben.

epp.-

peyo
23-11-2010, 10:55
ja genau. das ist mein Problem, darum wollte ich mit multicols* arbeiten, aber das ignoriert Latex in Verbindung mit einer minipage. Mit einer Box kommt nur eine Fehlermeldung, dass multicols* in einer Box unsinnig ist und das nichts bearbeitet wird. aber ich brauche eben irgendwas in der Richtung, da ich eine Picture Umgebung habe und mit Put arbeite.
Ich weiß leider auch nicht, ob das überhaupt mit Latex geht, dass man multicols* und minipage (oder ähnliches) zusammenfügt.

Was ich unbedingt brauche ist ein mehrspaltiges Layout und das der Text von oben nach unten, Spalte für Spalte abhängig von der Länge befüllt (s.O)

Danke für eure Bemühungen

peyo
23-11-2010, 10:57
das Beispiel nr. 3 macht schon in etwa das was es soll. Aber die Spalten werden so aufegüllt wie Latex das für schön empfindet und nicht wie ich es brauche.
Erst die eine Spalte mit Text, und wenn die Spalte voll ist, dann die andere Spalte mit Text :(

rstuby
23-11-2010, 10:57
Genau. Das Beispiel #3 WÜRDE es logischerweise machen, tut's aber nicht.

peyo
23-11-2010, 11:04
ja :( ich weiß auch nicht mehr weiter.
Kenne auch keine Tipps/Tricks damit Latex das macht, was ich möchte.
Ich arbeite erst seit ein paar Wochen mit Latex und kenne mich leider nicht genau aus, was überhaupt machbar ist und was nicht.

voss
23-11-2010, 12:00
ja :( ich weiß auch nicht mehr weiter.
Kenne auch keine Tipps/Tricks damit Latex das macht, was ich möchte.
Ich arbeite erst seit ein paar Wochen mit Latex und kenne mich leider nicht genau aus, was überhaupt machbar ist und was nicht.

Hilft das?

\documentclass[12pt,a4paper,twoside]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{multicol}
\raggedbottom
\makeatletter
\let\inbox\@boxedmulticolsfalse
\makeatother
\begin{document}
\vspace*{10cm}
Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nächste.


\begingroup
\linewidth=6cm
\begin{multicols*}{2}
Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nächste.

Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nächste.
\end{multicols*}
\endgroup

Gut. Durch die Tür hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nächste. Gut. Durch die Tür hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nächste.

\end{document}

Herbert

peyo
23-11-2010, 13:02
Package multicol Warning: multicols* inside a box does not make sense.

bei dem

\put(1.6,23)
{\begingroup
\linewidth=6cm
\begin{multicols*}{2}
Gut. Durch die Tr hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nchste. Gut. Durch die Tr hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nchste.

Gut. Durch die Tr hinaus, zur linken Reihe, jeder nur ein Kreuz.
Der Nchste. Gut. Durch die Tr hinaus, zur linken Reihe,
jeder nur ein Kreuz. Der Nchste.
\end{multicols*}
\endgroup}

u_fischer
23-11-2010, 14:27
Mir fallen drei Möglichkeiten ein:

1. Du programmierst analog zum Code von multicols einen eigenen Split-Befehl mit \vsplit (TeX). (Nicht so einfach, musst du etwas TeX können)

2. Du schaust dir mal flowfram an.

3. Du erzeugst deine Boxen in externen Dateien mit passender Seitengröße und bindest sie als pdf-Bilder ein.

peyo
23-11-2010, 15:23
Hallo,

Danke für die Info.
Ich werde mich mal auf Punkt 2 u. 3 stürzen.
Von Tex/Tex Programmierung habe ich leider keine Ahnung.

peyo
24-11-2010, 07:44
hallo leute,

könnte mir jemand von euch die flowframe.sty bereit stellen?

ich bin hier über einen putty mit der linux maschine verbunden und habe keine admin rechte.

sorry, bin noch nicht so fit mit latex etc...

u_fischer
24-11-2010, 09:03
Wie alles andere findest du flowfram auch auf CTAN. Ich empfehle dir flowfram.tds.zip runterzuladen. Da ist alles schon ausgepackt und du kannst sehen, wohin die Dateien in deinen lokalen Baum hinmüssen. Vergiss nicht die Dateidatenbank zu erneuern.

http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-tds-zip

peyo
24-11-2010, 10:36
hallo u_fischer,

danke für deinen Tip.

Leider bekam ich prompt diese Fehlermeldung, als ich das ausgeführt habe, was in der readme Datei stand.

! LaTeX Error: File `glossaries.sty' not found.

ich weiß leider gar nicht, wo die ganzen tex sachen liegen auf dem server. hab hier keine Rechte und mein Arbeitskollege ist im Urlaub.
Werd wohl bis Montag warten müssen um damit weiter arbeiten zu können, aber schonmal vielen Dank für eure Unterstützung.

LG,
peyo

rstuby
24-11-2010, 10:52
Welche Distribution benutzt du? Miktex oder Texlive wahrscheinlich? Beide haben Paketmanager, das sind Programme, mit denen man neue Pakete einfach installieren kann.
Falls Miktex, guck mal bei Start - Programme - Miktex, was es da so gibt.
Falls Texlive, schreib mal in die Eingabeaufforderung: tlmgr gui
(weiß aber nicht, ob das bei Windoof auch so funktioniert, bei Windoof habe ich Miktex).

Falls du

u_fischer
24-11-2010, 11:11
! LaTeX Error: File `glossaries.sty' not found.

Wie alles andere findest du glossaries auch auf CTAN. Ich empfehle dir glossaries.tds.zip runterzuladen. .... (Fortsetzung siehe oben).

Mal abgesehen davon: Wenn du eine tds.zip hast, brauchst du dich um das Auspacken von dtx-Dateien nicht zu kümmern. Wie ich ja schrieb: Dort sind schon alle Dateien richtig drin.

peyo
24-11-2010, 12:03
Hallo Leute,

erstmal vielen Dank für eure Hilfe, das ist echt nett von euch!

ich bin mit dem Putty auf dem Linux server. dort gebe ich in der Kommandozeile ein shellscript und dann die tex datei ein.
im schellscript steht:

#!/bin/sh

latex $1.tex
dvips -Ppdf $1.dvi
ps2pdf $1.ps

ich weiß gar nicht mit was ich da arbeite. man hat mir den zugriff gegeben und den rest mach ich einfach so.
das mache ich so, weil ich viele .eps bilder einbinde und das funktioniert nur über diese Befehle.
ich weiß nicht wo und was da installiert ist oder sonst was :(
ich glaub ich hab nur zugriff auf ein laufwerk in dem meine .tex dateien liegen und mein shellscript.

Ich hoffe ich konnte euch mit meiner Antwort helfen.
Danke schonmal und LG

rstuby
24-11-2010, 12:11
Das dürfte nichts machen, du kannst auch in deinem Homeverzeichnis Pakete installieren. Mit flowframe hat es ja sogar von Hand geklappt?
So weit ich weiß, findet der tlmgr selber heraus, wo er etwas installieren kann. Kannst ja einfach mal versuchen, tlmgr gui in die Konsole einzugeben und da dann im Suchfeld glossaries.
Allerdings mach besser das, was Ulrike vorschlägt, die hat mehr Ahnung.