PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : multicols, bild zwischen den spalten



joa
13-07-2005, 14:38
Hi, ich hab eine Frage zum Paket multicols.
Wie schaffe ich es, ein Bild einzubinden, welches sich z.B. innerhalb der drei spalten zentriert befindet und vom Text umflossen wird? Es Geht also von Spalte 1 bis Spalte 3 in der Breite z.B.

Grüße

pospiech
13-07-2005, 15:18
Ich weiß es nicht, und bin mir ziemlich sicher das es mit LaTeX auch nicht geht. Denn LaTeX versagt eigentlich bei fast allem was richtig Zeitschriften und Spaltensatz geht.

Matthias

BinEinGast
13-07-2005, 15:29
hi,

nur damit ich die frage richtig verstanden habe
was du dir vorstellst ist ungefähr das:



TEXTTEXTTEXT TEXTTEXTTEXT TEXTTEXTTEXT
TEXTTEXTTEXT TEXTTEXTTEXT TEXTTEXTTEXT
TEXTTEXT |-------------------------- |TEXTTEXT
TEXTTEXT | |TEXTTEXT
TEXTTEXT |-------------------------- |TEXTTEXT
TEXTTEXTTEXT TEXTTEXTTEXT TEXTTEXTTEXT
TEXTTEXTTEXT TEXTTEXTTEXT TEXTTEXTTEXT


(ich hoffe du bekommst das mit einer ähnlichen schrift wie ich angezeigt)

joa
13-07-2005, 16:17
Ganz genau.

BinEinGast
13-07-2005, 16:32
wie genau das geht weiß ich auch nicht, aber in unserer fachbereichszeitung kriegen die das irgendwie hin. ich habe mich mal die quelltexte geben lassen.

wenn du möchtest kannst du sie dir von meinem rechner ziehen:
<strike>http://abb11[...]005-1.rar</strike> (25MB)

schick mir 'ne PM sobald du es hast (oder wenn du es nicht möchtest) damit ich apache wieder schließen kann.
und dann viel spaß beim suchen ^^

joa
13-07-2005, 16:44
Herzlichen Dank!
Die Dateien habe ich und werde mich auch gleich drüber hermachen.
Wenn ich des Brätsels Lösung habe meld ich mich nochmal.

--

Das von mir beschriebene, und von dir richtig erkannte Verhalten ist in der Ausgabe der Inforz leider nicht wiederzufinden. In der neuesten auch nicht.
Trotzdem vielen Dank für die Mühe!

sann
13-07-2005, 21:23
Hallo zusammen.
Ich sitze jetzt schon seit einigen Tagen an genau demselben Problem. Ich will auch einen dreispaltigen Text schreiben, in den eine Grafik eingebunden werden soll, die breiter als eine Spalte ist. Bei mir überdeckt in einem solchen Fall der Teil der Grafik, welcher in die zweite Spalte hineinragt den dort stehenden Text. Der Text wird also nicht automatisch verdrängt.
Die Sache mit den Sternchen (*) funktioniert gar nicht.

Also: Wenn jemand weiß, wie's geht - das wär total genial.

pospiech
13-07-2005, 21:30
es gibt glaube ich ein Beispiel dafür beim Paket wrapfigure - ABER das muss man von Hand anfertigen, und widerspricht damit komplett der Grundidee von LaTeX. Deshalb habe ich auch gesagt, das das mit LaTeX grundsätzlich nicht geht. Aber ich lasse mich auch gerne eines besseren belehren.

Matthias

sann
15-07-2005, 20:07
Kann uns denn keiner weiterhelfen?

@pospiech
Ich hätte auch gedacht, dass das Problem mit einer wrapfigure-Umgebung gelöst werden könnte - aber leider Fehlanzeige - die scheint mit den mehreren Spalten nicht klar zu kommen.

pospiech
15-07-2005, 20:27
Kann uns denn keiner weiterhelfen?


Nein, da es mit LaTeX wirklich nicht geht. Derartiges soll mit ConTeXt gehen (Alteratives Makro Paket zu LaTeX das auch auf TeX aufbaut).

Das was du willst ist eher die Domäne von DTP Programmen. Und damit kann LaTeX nicht konkurrieren und hat es auch nie gewollt.

Matthias

joa
16-07-2005, 15:14
Wenn man sich wrapfig vom CTAN zieht bekommt man die schöne Datei "multiple-span.txt" gleich mitgeliefert.



Using wrapfig to span multiple columns
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Wrapfig can't automatically make matching cutouts in adjacent columns
because it doesn't know which text will land in just the right place
in the column next-door. It certainly can't handle floating in such
situations!

Here are some methods for doing such layout "by hand". They are
practical for one or a few such figures where you can tweak the
layout for the final copy. It is too painful to do this for long
or frequently-revised documents. If you do have multiple fiddling,
fix the first one in each chapter (or after any forced page break),
rerun, then fix the second, etc.

(These examples use calc.sty to evaluate overhangs in place.)

Cutouts in Matching Columns

~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~X ~~~~~~~~~~~~~~~~~Y
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

Initially, write the document without the wrapfigure, and locate the
desired natural linebreak at "X". (This first step is used for all
methods described here.) Then change to

~~~~~~~~X
\begin{wrapfigure}[6]{r}[.5\width+.5\columnsep]{6cm}
...
\end{wrapfigure}
~~~~....

and run LaTeX again. This will print the figure overlapping the right
column, but no matter. Use this run to locate position "Y" in the text.
For the final run, switch to:

~~~~~~~~X
\begin{wrapfigure}[6]{r}[.5\width+.5\columnsep]{6cm}
...
\end{wrapfigure}
~~~~....
...~~~~~~~Y
\begin{wrapfigure}[6]{l}[.5\width+.5\columnsep]{6cm}
\vfill
\end{wrapfigure}
~~~~~~~~~~~


Taking a whole column plus a cutout

~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~X ~~~~~~~~~~~~~~~~~Y
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

Locate "X" first, without any figure, as above, then write the
document like:

~~~~~~~~X
\begin{wrapfigure}[6]{r}[\columnwidth+\columnsep]{9cm}
...
\end{wrapfigure}
~~~~....

and ignore the overprinting of the right column. Then, after locating
"Y" in the text, switch to:

~~~~~~~~X
\begin{wrapfigure}[6]{r}[\columnwidth+\columnsep]{9cm}
...
\end{wrapfigure}
~~~~....
...~~~~~~~Y\vspace{6\baselinskip}
~~~~~~~~~~~
for the final layout


a whole column preceding a cutout

~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~X ~~~~~~~~~~~~~~~~~Y
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

After locating "X", write the draft document like:

~~~~~~~~X\vspace{6\baselinskip}
~~~~....
~~~~~~~~~~~~~
~~~~~~~~~

run LaTeX to locate "Y", and then switch to:

~~~~~~~~X\vspace{6\baselinskip}
~~~~....
~~~~~~~~~~~~~Y
\begin{wrapfigure}[6]{l}[\columnwidth+\columnsep]{9cm}
...
\end{wrapfigure}
~~~~~~~~~

Spanning (parts of) three columns

~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~X ~~~~~~~~~~~~~~~~~Y ~~~~~~~~~~~~~~~~~Z
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~ ~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

This uses a combination of the above. First locate X, then use

~~~~~~~~X
\begin{wrapfigure}[6]{r}[.5\width+.5\columnwidth+\columnsep]{12cm}
...
\end{wrapfigure}
~~~~....

Locate Y from this, and change to

~~~~~~~~X
\begin{wrapfigure}[6]{r}[.5\width+.5\columnwidth+\columnsep]{12cm}
...
\end{wrapfigure}
~~~~....
~~~~~~~~~~~~Y\vspace{6\baselineskip}
~~~~~~~....

which allows you to locate Z, to end up with

~~~~~~~~X
\begin{wrapfigure}[6]{r}[.5\width+.5\columnwidth+\columnsep]{12cm}
...
\end{wrapfigure}
~~~~....
~~~~~~~~~~~~Y\vspace{6\baselineskip}
~~~~~~~....
~~~~~~~~~~~~Z
\begin{wrapfigure}[6]{l}[.5\width+.5\columnwidth+\columnsep]{12cm}
\vfill
\end{wrapfigure}




(Of course, to do matching cut-outs properly requires typesetting
the text to a grid.)

sann
16-07-2005, 18:44
Hi. Ich hab's jetzt schon einige Stunden nach der Anleitung probiert. Aber ich krieg's nicht hin. Wäre es möglich, dass Du mir einen funktionierenden Code schickst? Das wär echt super. Bin voll am verzweifeln.
Danke schon mal

MfG sann

joa
16-07-2005, 19:06
Natürlich. Per hand musst du die beiden wrapfigure-Abschnitte an die passenden Stellen in deinem Text einfügen.
\begin{wrapfigure}[ZEILEN NACH UNTEN]{r}[.5\width+.5\columnsep]{BREITE}
Die beiden Werte sind für dich notwendig.
Funktioniert bei mir einwandfrei. Habe auch kein Problem damit bestimmte Dinge per Hand zu machen. Das ganze ist für das Jahrbuch meiner Schule, welches ich erstelle und dabei geht es eben auch um Gestaltung.

Vielleicht war Latex dafür nicht die beste Wahl, aber mit PageMaker oder QuarkExpress hätte ich es sicherlich garnicht hinbekommen.


-- Edit:
Nicht vergessen! \usepackage{calc} ist auch notwendig.



\begin{multicols}{3}
\fl{D}ie ... text ...

Neben dem obligatorischen Abschlusskonzert
hatten wir Auftritte bei der \zitat{Lutter-Einweihung}, dem Schulkonzert und dem \zitat{Hellas 2005-Abend}.
\begin{wrapfigure}[10]{r}[.5\width+.5\columnsep]{4cm}
\includegraphics[width=4cm]{artikel/bilder/ip/logo}
\end{wrapfigure}
F{\"u}r ein Jahr proben ... text ...

Bewertet werden {\"u}brigens nicht die individuellen F{\"a}higkeiten am Instrument/Gesang, sondern die Gemeinschaftsleistung,
eine gute B{\"u}hnenperformance hinzulegen. In unserem Kurs bestand die besondere Problematik darin den unterschiedlichen
Musikgeschmack
\begin{wrapfigure}[10]{l}[.5\width+.5\columnsep]{4cm}
\vfill
\end{wrapfigure}
zu ber{\"u}cksichtigen. Ich denke, wir haben mit unserer Auswahl an Liedern gezeigt, dass dies mit kleinen
Kompromissen m{\"o}glich und auch \az{h{\"o}rbar} ist.
...
\end{multicols}


Und hier mit bleibt der eigene Text lesbar



\newcommand*{\wrapheight}[0]{NULL}
\newcommand*{\wrapwidth}[0]{NULL}
\newcommand*{\wrapstart}[3]{
\begin{wrapfigure}[#2]{r}[.5\width+.5\columnsep]{#1}
\includegraphics[width=#1]{#3}
\end{wrapfigure}
\renewcommand{\wrapwidth}{#1}
\renewcommand{\wrapheight}{#2}
}
\newcommand*{\wrapend}[0]{
\begin{wrapfigure}[\wrapheight]{l}[.5\width+.5\columnsep]{\wrapwidth}
\vfill
\end{wrapfigure}
}


Usage:
\wrapstart{breite in cm}{höhe in zeilen, also keine cm}{bild}
\wrapend
Da wo halt die Grafik rein soll, in beide Spalten. Anstatt immer \begin{wrapfigure} etc.

sann
16-07-2005, 19:20
Sorry - aber läuft bei mir nicht durch.

Das TeXnicCenter zeigt mir in der Zeile "\end{wrapfigure}" folgenden Fehler an:

! Missing number, treated as zero.
<to be read again
\relax
1.28 \end{wrapfigure}

Das liegt irgendwie an dem Parameter [.5\width+.5\columnsep]. Wenn ich dort eine absolute Zahl (z.B. 5cm) reinschreibe geht's.

Fehlt mir da noch irgendein package, oder wie?

daswaldhorn
16-07-2005, 19:23
Hallo,

füge das hier
\usepackage[latin1]{inputenc}noch in deine Präambel ein, dann kannst du auch äöü direkt eingeben.

Grüße, Carsten

sann
16-07-2005, 19:25
Das hab ich natürlich alles schon.

sann
16-07-2005, 19:27
Der kommt nur mit dem Parameter in [] nicht klar. Was gibt der eigentlich genau an?

joa
17-07-2005, 08:56
Das calc-Package benuzt du aber?

sann
17-07-2005, 10:20
Hi. Hat wircklich nur an dem calc-package gelegen. Jetzt funzt's. Total genial. Vielen Dank nochmal!!!!!!!

PS: @pospiech: Mit LaTeX geht ja doch alles!!! :)

pospiech
17-07-2005, 11:57
PS: @pospiech: Mit LaTeX geht ja doch alles!!! :)

Ja, aber wenn man derart viel Handarbeit anlegen muss entspricht das kaum noch den Grundprinzipien von LaTeX. Und was ich eigentlich sagen wollte ist, das alles was mit Mehrspaltensatz zu tun hat unter LaTeX meist nicht geht.

Matthias

jecke
23-05-2009, 10:28
Benutze die Papertex Klasse.

Bedauerlicherweise funktioniert das wrap Beispiel bei mir nicht.

Mag sein das man damit Text um ein Bild herumfliessen lassen kann,
aber ich möchte die Spalten innerhalb einer multicolumn Umgebung
aufbrechen, so daß das Bild über 2 Spalten geht und sonst von Spalten
umgeben ist.

Das Bild befindet verdrängt leider nicht den Text sondern,
sondern befindet sich oberhalb oder unter unterhalb des Textes.
Je nachdem die Einstellung absolut oder overlay gewählt wurde.

Hat jemand eine Idee wie man dies mit einem Zeitungstil verwirklich kann.
Die positonieren doch auch die Bilder wie es Ihnen gefählt.

Kann mir nicht vorstellen das die jede Seite mit Adobe Programmen
nachbearbeiten müssen.

rais
23-05-2009, 23:03
Hallo und Herzlich Willkommen :)


Mag sein das man damit Text um ein Bild herumfliessen lassen kann,
aber ich möchte die Spalten innerhalb einer multicolumn Umgebung
aufbrechen, so daß das Bild über 2 Spalten geht und sonst von Spalten
umgeben ist.



\end{multicols}
Code f. Bild
\begin{multicols}{..}
...

als Idee zum `Aufbrechen der Spalten', aber vllt versteh ich Dich ja nich' ... schau auch gleich mal bei http://www.minimalbeispiel.de vorbei ;)

MfG

localghost
24-05-2009, 11:16
[…] als Idee zum `Aufbrechen der Spalten', aber vllt versteh ich Dich ja nich' […]
Ich glaube, das Ziel ist eher ein anderes, nämich die Überlappung eine Bildes von einer Spalte zur anderen. In einem anderen Zusammenhang (und anderem Forum) hatte ich da schon mal was in meinem Labor gebastelt.

\documentclass[11pt,a4paper,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{babel}
\usepackage[includeheadfoot,margin=2cm]{geometry}
\usepackage[font=small,labelfont=bf]{caption}
\usepackage{blindtext,calc,multicol,wrapfig}

\begin{document}
\begin{multicols}{2}
\blindtext

\begin{wrapfigure}[10]{r}[.5\width+.5\columnsep]{5cm}
\centering
\rule{4cm}{3cm}
\caption{Platzhalter}
\end{wrapfigure}
\blindtext[2]

\begin{wrapfigure}[10]{l}[.5\width+.5\columnsep]{5cm}
\vfill
\end{wrapfigure}
\blindtext
\end{multicols}
\end{document}
Auch wenn es verhältnismäßig einfach aussieht, ist damit immer noch recht viel Handarbeit verbunden. Einen Überblick über die Möglichkeiten gibt die sehr kurz gehaltene Anleitung von wrapfig (http://ctan.org/pkg/wrapfig).


MfG
Thorsten¹