Wenn in meinem Dokument keine Tabellen vorhanden sind, soll kein Tabellenverzeichnis ausgegeben werden. Lässt sich das automatisch bewerkstelligen. Hier ein Minimalbeispiel: Open in Online-Editor
\documentclass{scrartcl} \usepackage[ngerman]{babel} \begin{document} Hier sollte nun kein Tabellenverzeichnis erscheinen, da keine Tabelle vorhanden ist. \listoftables Mir ist bewusst, dass ich das manuell durch Auskommentieren von \listoftables erreichen würde. Vielmehr interessiert mich, wie ein Automatismus in Latex aussehen müsste. \end{document} gefragt 31 Okt '16, 13:17 dzaic
Ergebnis 5 von 6
show 1 more comments
|
In Anlehnung an den Hinweis von Ulrike Fischer, die m.E. "einfachste" Lösung: Open in Online-Editor
\documentclass{article} \usepackage[demo]{graphicx}% http://ctan.org/pkg/graphicx \usepackage{lipsum}% http://ctan.org/pkg/lipsum \usepackage[tables]{totalcount} \begin{document} % Conditionally insert List of Tables \iftotaltables \listoftables \fi \section{First section} \lipsum[1] %\begin{table} % \caption{This is a caption} %\end{table} \end{document} @saputello Herzlichen Dank für deine reaktionelle Änderung, die ich übersehen hatte. Möchte hier einmal die Gelegenheit ergreifen und mich insbesondere auch bei Dir recht herzlich für deinen Einsatz und die Geduld, die Du mit Dummies wie mir aufbringst, bedanken.
(01 Nov '16, 13:20)
dzaic
1
@dzaic: Stell Dein Licht nicht unter den Scheffel. Du stellst meist ;-) vernünftige Fragen mit vernünftigem Minimalbeispiel. Von der Seite hättest Du eigentlich mehr als verdient, dass ich auch für diese Frage hier stimme. Allerdings habe ich beschlossen, nur noch ehrlich für solche Frage zu stimmen, die mich nicht nur formal sondern auch inhaltlich ansprechen. Mir gefällt jedoch die Idee, quasi gedankenlos ein Verzeichnis nur deshalb zu erstellen, weil es (auch nur) ein entsprechendes Element gibt, ganz und gar nicht.
(01 Nov '16, 13:32)
saputello
@saputello Ab wieviel Einträgen sollte man denn d.E. ein Abbildungs / Tabellenverzeichnis erstellen? Da ich in meiner Firma die Kolleginnen und Kollegen von Latex überzeugen muss - Du glaubst gar nicht wie stark die Word-Lobby ist :-) - muss ich eben "Features" in die Vorlage einbauen und zeigen, die Word so nicht hat.
(01 Nov '16, 14:15)
dzaic
@dzaic: Das kommt auf das Dokument und die Abbildungen etc. an. Man kann das so wenig allgemein entscheiden wie die Frage, ab wievielen Verweisen ein Wort mit welchen Stellen in den Index gehört. Manche Dokumente benötigen auch bei einem Dutzend Abbildungen kein Abbildungsverzeichnis. Andere Dokumente benötigen es schon bei der einen, ganz entscheidenden Abbildung. Meist sind aber Verzeichnisse mit nur einem Eintrag recht albern. Wenn ich bei 1000 Seiten drei Tabellen eher als Garnierung habe, brauche ich dafür auch kein Verzeichnis. Ist es nur die eine zentrale Tabelle, kann es sinnvoll sein.
(01 Nov '16, 15:24)
saputello
|
Bei Klassen, bei denen die Abbildungen und Tabellen durchgehend nummeriert werden, ist das relativ einfach zu erreichen: Open in Online-Editor
\documentclass{scrartcl} \usepackage[ngerman]{babel} \newcommand*{\allfigs}{0} \newcommand*{\alltabs}{0} \makeatletter \BeforeClosingMainAux{% \immediate\write\@mainaux{% \string\gdef\string\allfigs{\arabic{figure}}^^J% \string\gdef\string\alltabs{\arabic{table}}% }% } \makeatother \begin{document} Hier sollte nun kein Tabellenverzeichnis erscheinen, da keine Tabelle vorhanden ist. \ifnum\allfigs>0 \listoffigures \fi \ifnum\alltabs>0 \listoftables \fi \section{Test} Mir ist bewusst, dass ich das manuell durch Auskommentieren von \verb|\listoftables| erreichen würde. Vielmehr interessiert mich, wie ein Automatismus in \LaTeX{} aussehen müsste. \begin{figure} \caption{Beispielbild} \end{figure} \end{document} Der Trick dabei ist, die aktuelle Abbildungs- bzw. Tabellennummer am Ende des Dokuments in die Werden die Elemente jedoch beispielsweise kapitelsweise nummeriert, so würde dies nicht mehr so einfach funktionieren. Man müsste dann eine andere Methode finden, für den nächsten LaTeX-Lauf das Vorhandensein von Abbildungen oder Tabellen zu sichern. Beispielsweise könnte man dann über einen Patch der Open in Online-Editor
\documentclass{scrbook} \usepackage[ngerman]{babel} \newif\iflistoffigures\newif\iffiguresused \newif\iflistoftables\newif\iftablesused \usepackage{xpatch} \makeatletter \xpretocmd\@caption{\global\csname\@captype susedtrue\endcsname}{}{} \BeforeClosingMainAux{% \iffiguresused\immediate\write\@mainaux{\string\global\string\listoffigurestrue}\fi \iftablesused\immediate\write\@mainaux{\string\global\string\listoftablesstrue}\fi } \makeatother \begin{document} Hier sollte nun kein Tabellenverzeichnis erscheinen, da keine Tabelle vorhanden ist. \iflistoffigures\listoffigures\fi \iflistoftables\listoftables\fi \chapter{Test} Mir ist bewusst, dass ich das manuell durch Auskommentieren von \verb|\listoftables| erreichen würde. Vielmehr interessiert mich, wie ein Automatismus in \LaTeX{} aussehen müsste. \begin{figure} \caption{Beispielbild} \end{figure} \chapter{Noch ein Test} \end{document} Die Anweisung Beide Lösungen sind natürlich einfach auf weitere Verzeichnisse beispielsweise von Paketen wie beantwortet 31 Okt '16, 14:39 saputello |
In ConTeXt MKIV ist das der Standard, dass das Tabellenverzeichnis nur dann angezeigt wird, wenn Tabellen im Dokument vorhanden sind. Open in Online-Editor
\setuplist [table] [before={\startsubject[title={Tabellenverzeichnis}]}, after=\stopsubject] \starttext \placelist[table] \startsection[title={Knuth}] \input knuth \startmode[tables] \startplacetable [ reference={tab:test}, title={Hello World!}, ] Hier könnte ihre Werbung stehen! \stopplacetable \stopmode \stopsection \stoptext Hier das Ergebnis.
beantwortet 31 Okt '16, 15:10 Henri contex wird mir immer sympatischer. :-)
(31 Okt '16, 15:14)
dzaic
|
Das Tabellenverzeichnis wird in einer Datei mit der Endung Open in Online-Editor
\documentclass{scrartcl} \usepackage[ngerman]{babel} \makeatletter % read toc file \newread\tocfile \openin\tocfile=\jobname.lot % if there is no file the first line is \relax \ifeof\tocfile \def\firstline{\relax} \else \read\tocfile to \firstline \fi % get the first token in the line \def\gethead#1#2{\expandafter\@gethead\expandafter#1#2\@endgethead} \def\@gethead#1#2#3\@endgethead{\let#1=#2} \gethead\firsttoken\firstline % if the first token is \contentsline there are tables present \ifx\firsttoken\contentsline % Nothing to do \else % No tables: \listoftables only creates the LOT file \def\listoftables{\@starttoc{lot}} \fi \makeatother \begin{document} Hier sollte nun kein Tabellenverzeichnis erscheinen, da keine Tabelle vorhanden ist. \listoftables Mir ist bewusst, dass ich das manuell durch Auskommentieren von \verb|\listoftables| erreichen würde. Vielmehr interessiert mich, wie ein Automatismus in \LaTeX\ aussehen m\"usste. \end{document} beantwortet 31 Okt '16, 14:52 Henri Das erste Token kann aber auch ein
(31 Okt '16, 15:30)
saputello
@saputello Du könntest Recht haben. In meinen wenigen Experimenten hat sich allerdings herausgestellt, dass
(31 Okt '16, 15:34)
Henri
1
@Henri: Wie gesagt, mit
und habe dann ein Tabellenverzeichnis ohne Überschrift. Der Test ist also definitiv zu kurz gegriffen. Es kann übrigens je nach Klasse auch beispielsweise ein
(31 Okt '16, 16:00)
saputello
|
Kommentiere den Befehl einfach aus. Das ist viel leichter.
Dachte es mir schon. Da blöde ist nur, wenn irgendwann in Zukunft eine Tabelle ins Dokument eingepflegt wird, muss man daran denken, die Kommentierung wieder zu entfernen.
Siehst du das wirklich als Problem an? Ich füge eine Beschriftung hinzu, dann kann ich auch ein Verzeichnis anfügen. Oder hast du dutzende verschiedene Projekte und komplett den Überblick über den Stand der Dinge verloren? Dann könnte ich das sogar nachvollziehen.
Wegen einer einzigen Abbildung oder einer einzigen Tabelle füge ich in der Regel übrigens noch kein Verzeichnis ein.
Ich sehe es nicht wirklich als "Problem" an, dachte nur, dass es mit Latex "einfach" gehen könnte. Aber eventuell ist hier das Verhältnis zwischen fehleranfälliger automtischer Lösung und weniger fehleranfälliger manueller Lösung nicht mehr gewährleistet.
http://tex.stackexchange.com/questions/33193/how-to-determine-whether-a-list-of-figures-is-empty-then-not-show-it-at-all/