longtable erhöht Tabellenzähler auch ohne caption

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: longtable erhöht Tabellenzähler auch ohne caption

Re: Ein paar Vorstellungen...

von sommerfee » Di 2. Nov 2010, 18:46

KOMA hat geschrieben:longtable und tabularx sind durchaus recht anspruchsvolle, trickreiche Pakete, die zusammenzuführen erst recht anspruchsvoll ist. Das gilt umso mehr, wenn man die Mängel der bisherigen Lösungen beseitigen will.
Hier sehe ich auch das Hauptproblem. Man müsste longtable, tabularx, ltxtable und ltablex als ersten Schritt verstanden haben. Das läuft darauf hinaus, erstmal "The TeXbook" von Knuth und "TeX by Topic" durchzuarbeiten, und sich dann in die dafür relevanten LaTeX2e-Quellen einzuarbeiten. Hinzu kommt, daß David Carlisle einen eigenen TeX-Programmierstil hat, in den man sich auch erstmal hineindenken können muß.

Insgesamt eine ganze Menge Holz, und insbesondere nicht mal eben so einfach nebenbei zu machen.

Re: Ein paar Vorstellungen...

von KOMA » Di 2. Nov 2010, 12:38

IrenaSekuta hat geschrieben:
  • Bedeutet das Datum in den eckigen Klammern, dass genau dieses Paket benötigt wird, oder mind. dieses Paket?
Statt die Frage zu beantworten - was natürlich leicht möglich wäre - sei hier lieber auf den clsguide und auf source2e verwiesen, weil ich denke, dass es sinnvoller ist, wenn Paketlehrlinge erfahren, wo sie solche Informationen her bekommen.

Die Idee, quasi ein Paketautoren-Tutorium durchzuführen, hat durchaus etwas für sich. Ich bezweifle allerdings ein wenig, dass dieses Projekt hier wirklich gut geeignet ist. longtable und tabularx sind durchaus recht anspruchsvolle, trickreiche Pakete, die zusammenzuführen erst recht anspruchsvoll ist. Das gilt umso mehr, wenn man die Mängel der bisherigen Lösungen beseitigen will. Wobei für mich weniger ein Problem wäre, dass die "Tutoren" dabei Gefahr laufen unfreiwillig zu demonstrieren, dass man bei der Entwicklung der Idee mehrfach etwas wesentliches übersehen kann, was einem im Test dazu zwingt, mehrfach neu in Entwurf und Implementierung einzusteigen. Solche Irrwege gehören - zumindest bei mir - dazu und es schadet nichts, wenn Lehrlinge das selbst erfahren. Aber ich denke, dass es schwer wird, TeX-Feinheiten, e-TeX-Spezialitäten und LaTeX-Grundlagen gleichzeitig zu erarbeiten, ohne sich dabei in Details zu verlieren und gleichzeitig eine heillose Verwirrung anzurichten.

Kleinere Aufgaben wie die im KOMA-Script-Buch sind da einfacher zu beherrschen. Aus demselben Grund fordere ich Anwender auf, Dinge, die ich im Forum erkläre, zu studieren und Verständnisfragen dazu zu stellen. Das schlimmste, was passieren kann ist, dass ich nicht antworte, oder den Verdacht äußere, dass jemand bestimmte Teile des TeXbooks (oder von TeX by Topic) verstanden haben sollte, um das zu verstehen.
PS: Ich habe den Status der Frage mal auf "beantwortet" geändert, da sie ja quasi beantwortet ist.
Falls wir wirklich so ein Projekt beginnen, wäre es eventuell besser, dafür ein eigenes Thema zu beginnen.

PS: So ein gemeinsames Projekt durchzuziehen bedeutet übrigens für die Tutoren häufig einen größeren Aufwand, als das Ding einfach zu schreiben. Bei mir selbst ist es so, dass ich für die Quellcodedoku min. so lange brauche wie zur Implementierung selbst. Für die Anwenderdoku brauche ich in der Regel mehr als doppelt so lange. :shock:
Den Code dann auch noch einem Anfänger zu erklären, bzw. Code aus unterschiedlichen Quellen - darunter auch von Lehrlingen - zusammen zu führen, kann noch einmal erhebliche Zeit kosten. Diskussionen um Design und Implementierung noch nicht mit gerechnet. Zeit ist bei mir aber eines der Hauptprobleme. Ich müsste also etwas anderes dafür bleiben lassen.

Ein paar Vorstellungen...

von IrenaSekuta » Di 2. Nov 2010, 12:14

Ich fände es schade, wenn es an "ungeklärten Lizensverhältnissen" liegen würde, ein Paket zu entwickeln, was die bereits genannten Mängel beseitigt.

Viel schwieriger ist die Frage, wer (hier) in der Lage ist, so ein Vorhaben tex-programmtechnisch umzusetzen. Ich bin es leider nicht, würde mich aber gerne bereit erklären, andere Tätigkeiten beizusteuern, z.B. die Erstellung der Dokumentation.

Eventuell wäre es auch möglich, die programmtechnische Erstellung stückweise als Learning-by-doing-Prozess hier im Forum durchzuführen. Ich würde sehr, sehr gerne das Programmieren von Latex-Paketen lernen, leider bin ich jedoch eine sehr schlechte Autodidatik und an Fachbüchern magelt es offenkundig.

Ich stelle mir das ganze in der Art vor, wie Markus in seinem "KOMA-Script"-Buch die Erstellung von "chapterthumb.sty" erklärt hat, mit dem Vorteil, dass man quasi "live" hier im Forum beim Verständnis des den Tex-Code nachfragen könnte, und so die Grundlagen von Tex lernen würde.

Ich möchte das einmal am Beispiel der ltablex-sty erläutern. Der Autor würde z.B. mit dem Paket anfangen und am ersten Tag das folgende schaffen:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ltablex}[1995/11/06 v1.0 Modified tabularx]
\RequirePackage{longtable}[1994/12/08]
\RequirePackage{tabularx}[1994/02/03]
Und schon tauchen bei mir die erste Frage auf:
  • Bedeutet das Datum in den eckigen Klammern, dass genau dieses Paket benötigt wird, oder mind. dieses Paket?
Und diese Frage könnten dann andere erfahrene Nutzer beantworten.

Ich hoffe, dass ich euch meien Idee näher bringen könnte. Mir würde es enorm helfen, das Programmieren von Latex endlich zu erlernen und nicht immer nur eine "Anwenderin" sein zu müssen.

Gruß,

Irena

PS: Ich habe den Status der Frage mal auf "beantwortet" geändert, da sie ja quasi beantwortet ist.

von sommerfee » Mo 1. Nov 2010, 19:47

KOMA hat geschrieben:Da das Paket außerdem eine vollkommen ungeklärte Lizenz hat
Ok, ohne GPL oder LPPL (oder vergleichbares) hat sich dann meine Idee, ltablex als "longtablex" und "longtablex*" innerhalb ltcaption anzubieten, sowieso als nicht haltbar erwiesen.

Liebe Grüße,
Axel

von KOMA » Mo 1. Nov 2010, 11:00

ltablex basiert übrigens auf den 1994er Versionen sowohl von longtable als auch von tabularx und wird AFAIK seit Jahrzehnten nicht gepflegt. Vor ein paar Jahren dachte ich mal, dass es gegenüber ltxtable die bessere Alternative wäre, hatte dann aber ein paar Probleme damit, weshalb ich es wieder verworfen habe. Leider weiß ich nicht mehr welche Probleme das waren, mir ist nur in Erinnerung geblieben, dass ich es nicht mehr verwenden will.

Da das Paket außerdem eine vollkommen ungeklärte Lizenz hat, ist es auch nicht Bestandteil von TeX Live.

Zu ltxtable wiederum hat der Autor inzwischen verlauten lassen, dass die Notwendigkeit für externe Dateien mit einem modernen TeX (er meinte vermutlich e-TeX mit \scantoken etc.) genau genommen nicht mehr besteht und das Paket deshalb eigentlich veraltet ist. Ich schließe daraus, dass David auch hier keinerlei Grund für eine Aktuallisierung sieht.

Insgesamt wäre es vermutlich eine gute Idee, aus longtable und ltxtable oder tablex ein neues Paket zu entwickeln, das auch wieder gepflegt wird. Die Frage dabei ist nur immer: Wer soll das leisten? :(

von sommerfee » Mo 1. Nov 2010, 08:19

IrenaSekuta hat geschrieben:Der Hinweis "\addtocounter{table}{-1}" brachte mich auf die Idee, diesen Befehl doch direkt nach \captionof{}table}[LOT]{Tabellenüberschrift} durchzuführen.
Das ltablex-Paket macht tabularx zu einer longtable. Diese erwartet dann die \caption *IN* der Tabelle, genau wie bei longtable.

Was mir bei dieser Gelegenheit völlig schleierhaft ist, ist, warum ltablex nicht eine *eigene* Umgebung anbietet (meinetwegen "tabulary" oder "longtablex" oder was auch immer) anstatt tabularx derart zu verbriegeln, so daß alleine ein Einbinden des Paketes reicht, um eine existierende und richtige Tabellennummerierung total durcheinanderzubringen. Das hat schon grob fahrlässige Züge auf mich.
Die Verlinkung mit Hyperlink ist auf den ersten Blick auch okay.
In diesem Falle ja, weil in diesem Falle die Verlinkung auf die caption der tabularx darunter leiden würde, da diese aber gar keine caption hat, sollte auch so alles ok sein.

Liebe Grüße,
Axel

P.S.: Ich werde mir bei Gelegenheit das ltablex-Paket anschauen, um zu sehen, wie einfach oder schwer eine Implementierung von "tabularx*" in ltcaption wäre. Obwohl ich es dann lieber "longtablex*" nennen würde, ansonsten kommen die Leute auf die Idee, tabularx* würde auch ohne ltablex-Paket funktionieren. Ich fürchte schon fast, es wird darauf hinauslaufen, daß ich in ltcaption "longtablex" und "longtablex*" komplett selber anbiete, anstatt auf ltablex aufzubauen...

von IrenaSekuta » So 31. Okt 2010, 23:00

Möchte das Thema noch einmal gerne aufgreifen.

das Paket ltcaption bietet die Umgebung longtable*, was ein >Hochsetzen des Tabellenzählers unterbindet. Leider funktioniert das bei der tabularx-Umgebung nicht zwingend.

Der Hinweis "\addtocounter{table}{-1}" brachte mich auf die Idee, diesen Befehl doch direkt nach \captionof{}table}[LOT]{Tabellenüberschrift} durchzuführen. Die Verlinkung mit Hyperlink ist auf den ersten Blick auch okay.
\documentclass{scrartcl} 
\usepackage[ngerman]{babel} 

\usepackage{ltablex} 
\usepackage{ltcaption} 
\usepackage{booktabs} 
\usepackage{caption} 
\usepackage{hyperref} 
\begin{document} 

\listoftables 

\newpage 
Folgend eine tabular-Tabelle mit Tabellenüberschrift: 

\begin{center} 
\captionof{table}[tabular]{Einfach eine Tabellenüberschrift}\label{Tab002} 
\begin{tabular}{l l} 
\toprule 
Spalte 1 & Spalte 2\\ 
\midrule 
Ein bissel Text & Ein bissel Text\\ 
Ein bissel Text & Ein bissel Text\\ 
\bottomrule 
\end{tabular} 
\end{center} 

\newpage 
Folgend eine tabular-Tabelle mit Tabellenüberschrift: 

\begin{center} 
\captionof{table}[tabular]{Einfach eine Tabellenüberschrift}\label{Tab002} 
\begin{tabular}{l l} 
\toprule 
Spalte 1 & Spalte 2\\ 
\midrule 
Ein bissel Text & Ein bissel Text\\ 
Ein bissel Text & Ein bissel Text\\ 
\bottomrule 
\end{tabular} 
\end{center} 

\newpage 
Folgend eine tabular-Tabelle mit Tabellenüberschrift: 

\begin{center} 
\captionof{table}[tabular]{Einfach eine Tabellenüberschrift}\label{Tab002} 
\begin{tabular}{l l} 
\toprule 
Spalte 1 & Spalte 2\\ 
\midrule 
Ein bissel Text & Ein bissel Text\\ 
Ein bissel Text & Ein bissel Text\\ 
\bottomrule 
\end{tabular} 
\end{center} 
\newpage

Hier eine tabularx-Tabelle mit Tabellenüberschrift: 

\begingroup 
\centering 
\tiny 
\captionof{table}[tabularx]{Eine Tabellenübschrift}\label{Tab001}
\addtocounter{table}{-1}
%\keepXColumns 
\begin{tabularx}{\textwidth}{l l l X} 
% Tabellenanfang 
\toprule 
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4\\ 
\midrule 
\endfirsthead 

% Tabellenkopf auf Folgeseiten 
\multicolumn{4}{l}{\tiny ...Fortsetzung von vorheriger Seite}\\ 
\toprule 
Spalte 1 & Spalte 2 & Spalte 3 & Spalte 4\\ 
\midrule 
\endhead 

% Tabelleninhalt 
Ein bissel Text & Ein bissel Text & Ein bissel Text & Ein bissel Text\\ 
Ein bissel Text & Ein bissel Text & Ein bissel Text & Ein bissel Text\\ 
Ein bissel Text & Ein bissel Text & Ein bissel Text & Ein bissel Text\\ 

\end{tabularx} 
\endgroup 



\newpage 
Folgend eine tabular-Tabelle mit Tabellenüberschrift: 

\begin{center} 
\captionof{table}[tabular]{Einfach eine Tabellenüberschrift}\label{Tab002} 
\begin{tabular}{l l} 
\toprule 
Spalte 1 & Spalte 2\\ 
\midrule 
Ein bissel Text & Ein bissel Text\\ 
Ein bissel Text & Ein bissel Text\\ 
\bottomrule 
\end{tabular} 
\end{center} 
Das Paket 'ltablex' gefällt mir sehr gut, schade dass es nicht weiterentwickelt wird. Würde man die Änderungen von 'ltcaption' mit einigen Erweiterungen bzgl. der tabularx-Tabelle dort einbauen, wäre es m.E. ein geniales Paket für Tabellenumgebungen.

Gruß,

Irena

von KOMA » So 31. Okt 2010, 13:45

sommerfee hat geschrieben:aber wenn man heute was konsistentes haben möchte, nimmt man ConTeXtl
Wobei die Konsistenz nur für ConTeXt selbst gilt. Es gibt auch bei ConTeXt Erweiterungen, die nicht von Hans sind (z. B. das Paket für das pracTeX-Journal). Die Konsistenz von ConTeXt wird dadurch erkauft, dass ein erheblicher Teil der Funktionalität vom Kern selbst bereitgestellt wird, dieser von einer einzigen Instanz bestimmt wird und immer mal wieder umgemodelt wird. Im Augenblick überarbeitet Hand AFAIKmk 4 so grundsätzlich, dass Dinge immer mal wieder nicht mehr funktionieren. ;-)

Beim letzten TeX-Stammtisch wurde außerdem von einem ConTeXt-Anwender erwähnt, dass Hans Interna oftmals nicht dokumentiert und wenig Auskünfte dazu gibt, damit er die jederzeit ändern kann. Das hilft natürlich ebenfalls dabei, Dinge konsistent zu halten, erschwert andererseits fortgeschrittenen Anwendern bzw. Entwicklern teilweise die Arbeit. Vorteilhaft wirkt sich außerdem aus, dass inzwischen nicht mehr auf Makro-Ebene um die Mängel der Maschine TeX herumprogrammiert wird, sondern ConTeXt und luaTeX quasi zusammen weiterentwickelt werden. Wenn es bei der Maschine klemmt, wird eben diese erweitert/geändert.

Um keine Missverständnisse aufkommen zu lassen: Das soll keine Kritik an ConTeXt oder Hans Arbeit oder Person sein. Ich habe tiefen Respekt für die Leistung. Ich wollte nur erwähnen, dass bei ConTeXt nicht nur eine andere Bedienphilosophie, sondern auch eine andere Entwicklungsphilosophie verfolgt wird.

von IrenaSekuta » So 31. Okt 2010, 12:42

Hallo Alex,

Vielen Dank für dein sehr, sehr hilfreiche Erklärung.

Gruß,

Irena[/quote]

von sommerfee » So 31. Okt 2010, 11:55

IrenaSekuta hat geschrieben:Meiner Meinung nach ist es eindeutig ein Bug. Der Zähler fürd ei Tabellennummerierung dürfte doch nur erhöhtt werden, wenn ich auch eine Tabellenüberschrift mit Nummerierung wünsche. Alles andere ist doch schlicht und ergreifend logisch falsch.
Man könnte auch anders argumentieren: Jede Tabelle hat eine eindeutige Nummer, und \caption ist nur ein Weg von vielen, diese auch auszugeben. Daher ist es logisch falsch, wenn \caption den Zähler erhöht. (Das - neben meiner einer - sehr viele Anwender ebenfalls dieser Meinung sind, zeigt, daß \label fälschlicherweise oftmals vor \caption angewandt wird.)

Inkonsistent ist es aber so oder so, aber wenn man heute was konsistentes haben möchte, nimmt man ConTeXt und nicht LaTeX 2e, was lediglich durch einen Haufen Paketautoren am Leben gehalten wird.
Werde mal den Autor anschreiben und ihn darauf aufmerksam machen, in der Hoffnung, dass er es auch als Bug ansieht und weniger als Designentscheidung. :-)
AFAIK macht David Carlisle schon lange nichts mehr an LaTeX bzw. den Paketen von ihm. Und selbst wenn, ist dies nach über 15 Jahren nicht mehr änderbar, durch die Zeit ist aus dem Bug ein Feature geworden.

Liebe Grüße,
Axel

Nach oben