PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Telefonbuch in LaTeX



ilo
14-06-2007, 02:10
Hi there,

ich möchte ein kleines "Telefonbuch" machen in LaTeX.
Mit multicol klappt soweit alles ganz gut.
Das Problem:
Es soll ein Block immer zusammenbleiben, also kein Spaltenumbruch darin stattfinden.

Hat das Problen schon jemand gehabt?

Dankeschön!, ilo

edico
14-06-2007, 09:16
Du kannst mit pagebreak (sampage) gestalten.
Du kannst auch 'einfach' parboxen:

\documentclass{book}
\usepackage[latin1]{inputenc}
\usepackage{multicol}
\pagestyle{empty}
\textheight=12.75cm%ONLY DEMO :: change height
\def\addr{%
\noindent \parbox{.95\linewidth}{%
Schmidt, Heino\\Reitbrook 12\\12345 Gartenstadt\\Tel. 012-3456789}
\vskip6pt\par}

\begin{document}
\section*{\centering Telefonbuch}
\hrule

\begin{multicols}{2}
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\end{multicols}

\begin{multicols}{3}
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\end{multicols}
\end{document}

edico

localghost
14-06-2007, 09:18
[…] Es soll ein Block immer zusammenbleiben, also kein Spaltenumbruch darin stattfinden. […]
Wie soll denn so ein Block aussehen? Mir würde da zuerst eine minipage-Umgebung einfallen.

\begin{minipage}[t]{\linewidth}
Inhalt des Blocks
\end{minipage}

ilo
14-06-2007, 23:29
Super, vielen Dank!!! Das funktioniert bisher sehr gut!!!

Ein Problem ist noch mit dem Umbruch z. B. von E-Mail adressen.

Diese werden über die Spalte hinweggeschrieben, also nicht umgebrochen.

Weiß jemand mit welchem Befehl man das machen kann, das einfach rumgebrochen wird, wenn die Zeile voll ist?

Die Alternative wäre "" einzufügen nach z. B. immer 10 Zeichen oder so.

Geht es eleganter??

ilo


Du kannst mit pagebreak (sampage) gestalten.
Du kannst auch 'einfach' parboxen:

\documentclass{book}
\usepackage[latin1]{inputenc}
\usepackage{multicol}
\pagestyle{empty}
\textheight=12.75cm%ONLY DEMO :: change height
\def\addr{%
\noindent \parbox{.95\linewidth}{%
Schmidt, Heino\\Reitbrook 12\\12345 Gartenstadt\\Tel. 012-3456789}
\vskip6pt\par}

\begin{document}
\section*{\centering Telefonbuch}
\hrule

\begin{multicols}{2}
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\end{multicols}

\begin{multicols}{3}
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\addr\addr\addr\addr\addr\addr\addr\addr\addr\addr
\end{multicols}
\end{document}

edico

edico
15-06-2007, 00:51
Schau Dir das url package an.

edico

ilo
17-06-2007, 00:04
Danke!

Ein Problem ergab sich noch: Manchmal kommt es vor, dass eine Zeile umgebrochen wird, z. B bei der Straße, dass nur die Nummer in der neuen Zeile steht.

Gibt es einen Befehl, mit dem man sagen kann, dass bei einer gewissen Anzahl von Zeichen die umgebrochen würden, keine Umbruch gemacht wird, sondern eine Stauchung der Zeile stattfindet?

Vielen Dank!

ilo

edico
17-06-2007, 08:15
Immerhin hat die Spalte im Standardformat mehr als 30 Anschlaege
.. dann musst Du Strasse mit Str. etc. abkuerzen ;-)
... oder vielleicht die Spalten breiter machen, sprich Layout aendern, also \textwidth=16cm o.ae. in die Praeamble schreiben
... oder die Schrift kleiner (z.B.\small) machen
... oder statt Standadrklasse KOMA waehlen (s. hier DIVxx, scrguide.pdf))
... oder versuch es mal so o.ae.

...
%--- Texterweiterung -------------------------------------------------
\newenvironment{myQuote}[2]%
{\begin{list}{}{\leftmargin#1\rightmargin#2}\item{ }}%
{\end{list}}
%---------------------------------------------------------------------
...
\begin{myQuote}{0mm}{-5mm}
\parbox{.95\linewidth}{%
Schmidt, Heino\\Reitbrookerdammstrassenweg 12346789\\12345 Gartenstadt\\Tel. 012-3456789}
\parbox{.95\linewidth}{%
Schmidt, Heino\\Reitbrookerdammstrassenweg 12346789\\12345 Gartenstadt\\Tel. 012-3456789}
\end{myQuote}
...

... oder scalefnt package

edico

und was ich vergessen habe:
es wird umbrochen nicht umgebrochen. Du heisst ja auch ilo und nicht igelo ;-)

Spindoctor
17-06-2007, 12:22
Wie wärs mit geschützten Leerzeichen? (Werden mit "~" gesetzt)

ilo
27-06-2007, 14:10
Habe es mit " gelöst, dann wird nach jedem Zeichen getrennt falls nötig.
Bei E-Mails sieht das nicht immer schön aus, aber besser als über die Zeile.