PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vierzeilige Elemente



ilo
16-01-2007, 19:19
Hallo,

weiß wer, wie man vierzeilige Elemente fortlaufend anordnen kann (also über Zeile hinweg mit automatischem Zeilenumbruch)?
Fußnoten sollen auch möglich sein innerhalb eines Elementes.

Beispiel:


a1 b1 ...
a2 b2 ...
a3 b3 ...
a4 b4 ....

Bisher mache ich es so, dass ich berechnen lasse, wielange ein Element ist und dann eben soviele Spalten in einer longtable setze.

Kann man eine Longtable auf "Blocksatz" setzen?

Oder gibt es eine Möglichkeit außer einer Tabelle so etwas zu realisieren in LaTeX?

Gruß, ilo

lupus68
16-01-2007, 21:29
Hallo ilo,

geht es vielleicht um DNA/RNA Sequenzen die Zahl 4 und die Menge legen das irgendwie Nahe.

Ich bin mir nicht ganz sicher, irgendwo, irgendwann habe ich mal zu dem Theme und LaTeX was gelesen.

Da müßte ich mal wirklich gründlich nachsuchen.

juergen

ilo
16-01-2007, 21:36
Hallo Juergen,

nein es geht um eine interlineare Übersetzung eines Buches mit Bestimmung der grammatikalischen Form und des Grundwortes.
Also
1. Grundwort
2. Form
3. Bestimmung
4. Deutsche Übersetzung

Da ich leider LaTeX Newbie bin, habe ich noch keine Erfahrung und lese mich durch. Aber für so ein Problem habe ich leider noch keine Möglichkeit gefunden.

Gibt es sowas wie Textfelder oder eine Tabelle, die man auch vertikal hintereinander anordnen kann, und die dann automatisch umbricht bei Zeilenende?

Besten Dank, ilo

lupus68
16-01-2007, 21:58
Also so richtig habe ich das noch nicht verstanden, wenn du weiter bist hoffe ich mal auf ein bildliches Beispiel.

Also für "einfache" Orginaltext-Übersetzung gab es IMHO eine Lösung.

Also Tabellen wären sicherlich eine Möglichkeit.

Ansonsten wäre das was du suchst ja sowas wie im Notensatz?

Oder jedes Wort in eine eigene Box und die jeweiligen Formen dann definiert untereinandergesetzt?

juergen

ilo
16-01-2007, 22:05
So sieht es bisher aus.
Ich lese die Daten aus einer Datenbank aus, und dann habe ich eine kleine Funktion geschrieben, die die Breite bestimmt. Diese passt auch ungefähr.

Jetzt ist halt die Frage, ob es dafür nicht eine Lösung gibt, wo ich mir das ganze sparen könnte und es auch noch die Möglichkeit eines Blocksatzes gibt, sodass am rechten Rand nicht Lücken enstehen.

besten dank
Liebe Grüße, ilo

countbela666
17-01-2007, 12:58
Hallo ilo,

hier mal ein Vorschlag:

\documentclass{scrartcl}
\providecommand{\element}[5][\empty]{%
\begin{tabular}{c}
#2\\#3\\#4\\#5\\[.5\baselineskip]~ % halbe Zeile Abstand zwischen "Zeilen"
\end{tabular}%
\ifx#1\empty\hfill\fi% % Blocksatz ein- bzw. ausschalten
}
\begin{document}
\element{bla}{blabla}{blupp}{hust}
\element{texttexttext}{text}{texttext}{text}
\element{bla}{blabla}{blupp}{hust}
\element{laberlaber}{laber}{suelz}{suelz}
\element{bla}{blabla}{blupp}{hust}
\element{texttexttext}{text}{texttext}{text}
\element{bla}{blabla}{blupp}{hust}
\element{laberlaber}{laber}{suelz}{suelz}
\element{bla}{blabla}{blupp}{hust}
\element{texttexttext}{text}{texttext}{text}
\element[Absatz]{bla}{blabla}{blupp}{hust}
\end{document}Grüße,
Marcel

lupus68
17-01-2007, 16:18
Hallo ilo,

ich habe die Nacht mal drüber geschlafen und heute weiter gegrübelt.
Idee \parbox ->
\parbox{breite}{Grundwort\\Form\\Bestimmung\\ Dt. Übersetzung}
die werden am Zeilenende umbrochen und man kann ihnen feste Breiten zuordnen -> letzteres willst du ja eigentlich nicht sonder die Spalte soll genauso Breit sein wie das längste Wort der Gruppe.

Nun kennen wir die breite nicht. Wie es geht hatte ich dir ja schon mal geschrieben.
\newlength{\MyLGW}%neue Länge anlegen
\settowidth{\MyLGW}{testtext }Breite=\the\MyLGW
[...] %mit den anderen Forme auch

Nun weiß ich nicht ob und wie man mit LaTeX Längen vergleichen kann. Vielleicht jemand Anderes?

Ansonsten gehst du einen Umweg und läßt LaTeX die die Längen in geeigneter Weise in Text ausgeben, vergleichst die Längen und bestimmst die Längste -> und weist sie \MyLL numerisch zu zu.

Dann, bitte Extern erledigen, eine Datei generieren und für jede Gruppe
\parbox{\hspace{\MyLL}}{Grundwort\\Form\\Bestimmun g\\ Dt. Übersetzung}
Wobei \MyLL dann einen numerischen Wert mit Einheit haben sollte
also zB
\parbox{\hspace{\63.1257pt}}{Grundwort\\Form\\Best immung\\ Dt. Übersetzung}
Diese Zeile hängst du für jede Wortgruppe an die Datei an
Naja mach sie nicht so groß ;-)

Wenn du natürlich wie in deinem Beispiel Verschiedenen Sprachen und Schriften verwendest mußt du vor allem Anderen diese Definieren und mit zur Berechnung der Längen und beim Umsetzen mit herranziehen.

juergen

PS: auf die letze Frage vom Letzten mal es gibt latex2rtf -> dmit kannst du dann mit awk, sed, perl oA auf die Längenausgabe zugreifen.

ilo
18-01-2007, 11:57
@Marcel:
Erstmal vielen Dank, ich glaube das ist es.

Jetzt ist nur noch das Problem, dass Fußnoten benötigt werden.
In tabular geht das ja nicht.
Kennst du eine Alternative?

Liebe Grüße, ilo

countbela666
18-01-2007, 12:36
Wenn du mit \footnotemark und \footnotetext arbeitest, sollte es keine Probleme geben (ist zugegebenermaßen nicht ganz so elegant, aber funktioniert):

\documentclass{scrartcl}
\providecommand{\element}[5][\empty]{%
\begin{tabular}{@{}c}
#2\\#3\\#4\\#5\\[.5\baselineskip]~ % halbe Zeile Abstand zwischen "Zeilen"
\end{tabular}%
\ifx#1\empty\hfil\else\hfill\fi% % Blocksatz ein- bzw. ausschalten
}
\begin{document}
\noindent % Erstzeileneinzug lokal aus
\element{bla}{blabla}{blupp}{hust}
\element{texttexttext}{text}{texttext}{text}
\element{bla\footnotemark}{blabla}{blupp}{hust}\fo otnotetext{Fussnote 1}
\element{laberlaber}{laber}{suelz}{suelz}
\element{bla}{blabla}{blupp}{hust}
\element{texttexttext}{text}{texttext}{text}
\element{bla}{blabla}{blupp}{hust}
\element{laberlaber}{laber}{suelz}{suelz}
\element{bla}{blabla}{blupp}{hust\footnotemark}\fo otnotetext{Fussnote 2}
\element{texttexttext}{text}{texttext}{text}
\element[Absatz]{bla}{blabla}{blupp}{hust}
\end{document}
Hab das Makro noch ein bisschen verfeinert, habe einen unnötigen Abstand entfernt und die Absatzfunktionalität verbessert.

Grüße,
Marcel