goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Direktlinks:
Zuletzt aktive Beiträge
Unbeantwortete Beiträge
[Erweitert]

Forenstatistik:
Beiträge: 99319
Top-Poster: Johannes_B (5059)

Wir begrüßen unseren neuesten Benutzer Ludio.

Links:


Mit Unterstützung von DANTE e.V.: Deutschsprachige Anwendervereinigung TeX. Danke den Mitgliedern!





Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

listof... automatisch ein/ausblenden

 

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 00:31     Titel: listof... automatisch ein/ausblenden
  Antworten mit Zitat      
Code • Öffne in Overleaf

\documentclass[a4paper,12pt]{article}
\usepackage[left=2cm, right=4cm, top=2cm, bottom=2.5cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage{tocbibind}
\usepackage{blindtext}



\begin{document}
\tableofcontents


\newpage
\listoffigures
\listoftables

\section{Kapitel 1}
\blindtext


\section{Kapitel 2}
\Blindtext

\subsection{Unterkapitel 2.1}
\blindtext

\subsection{Unterapitel 2.2}
\Blindtext
\end{document}
 


Gibt es ein einfache Möglichkeit, dass das Tabellen- bzw. Abbildungsverzeichnis nur dann angezeigt werden, wenn es Tabellen bzw. Abbildungen gibt? Sodass sie ausgeblendet sind, wenn sie "leer sind?

Stamm-
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 16:46     Titel: Zähler prüfen
  Antworten mit Zitat      
Dazu braucht es die Prüfung der Zähler `figure` und `table`, ob deren Wert größer als Null ist (→ kein Gleitobjekt dieses Typs). Der Nebeneffekt ist dann auch der fehlende Eintrag im Inhaltsverzeichnis.
Code • Öffne in Overleaf
\documentclass[12pt,a4paper,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[
  left=2cm,
  right=4cm,
  top=2cm,
  bottom=2.5cm,
  includeheadfoot
]{geometry}
\usepackage{tocbibind} % Option `nottoc` setzen (s. Anleitung Abschnitt 2)
\usepackage{blindtext}

\usepackage{lmodern}
\usepackage{microtype}

\begin{document}
  \tableofcontents

  \newpage
  \ifnum\value{figure}>0\listoffigures\fi
  \ifnum\value{table}>0\listoftables\fi

  \blinddocument
\end{document}

Der Titel dieses Themas bezieht sich auf eine Option für Klassen von »KOMA-Script« und ist daher sehr irreführend

Stamm-
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 16:48     Titel: Nachtrag
  Antworten mit Zitat      
Der letzte Satz meiner Antwort ist Murks.

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1824
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: ---
     Beitrag Verfasst am: 09.09.2019, 17:08     Titel:
  Antworten mit Zitat      
Die Zähler stehen an der Stelle im Beispiel des Themenstarters aber immer bei Null, weil die \caption-Befehle erst nach der Prüfung der Bedingung die Zähler beeinflussen.

Mein spontaner Einfall wäre, irgendwie in einem zweiten LaTeX-Lauf auf die gespeicherten Werte der Zähler zugreifen, die Bedingung prüfen und abhängig davon die Verzeichnisse anlegen.
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 17:52     Titel:
  Antworten mit Zitat      
Bartman hat Folgendes geschrieben:
Die Zähler stehen an der Stelle im Beispiel des Themenstarters aber immer bei Null, weil die \caption-Befehle erst nach der Prüfung der Bedingung die Zähler beeinflussen.

Mein spontaner Einfall wäre, irgendwie in einem zweiten LaTeX-Lauf auf die gespeicherten Werte der Zähler zugreifen, die Bedingung prüfen und abhängig davon die Verzeichnisse anlegen.


Eine Ahnung, was man da machen kann, oder wo man etwas dazu finden könnte? Bin was Latex angeht ein Anfänger.

rais
Forum-Guru
Forum-Guru

Beiträge: 391
Anmeldedatum: 21.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 20:22     Titel:
  Antworten mit Zitat      
Du könntest es etwa so versuchen:
Code • Öffne in Overleaf

\documentclass[12pt,a4paper,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[
  left=2cm,
  right=4cm,
  top=2cm,
  bottom=2.5cm,
  includeheadfoot
]{geometry}
\usepackage{tocbibind} % Option `nottoc` setzen (s. Anleitung Abschnitt 2)
\usepackage{blindtext}

\usepackage{lmodern}
\usepackage{microtype}
\newif\iffigureseen
\newif\iftableseen
\makeatletter
\AtEndDocument{%
  \ifnum\value{figure}>0
    \immediate\write\@mainaux{\string\global\string\figureseentrue}%
  \else
    \immediate\write\@mainaux{\string\global\string\figureseenfalse}%
  \fi
  \ifnum\value{table}>0
    \immediate\write\@mainaux{\string\global\string\tableseentrue}%
  \else
    \immediate\write\@mainaux{\string\global\string\tableseenfalse}%
  \fi
}
\makeatother
\begin{document}
  \tableofcontents

  \newpage
  \iffigureseen\listoffigures\fi
  \iftableseen\listoftables\fi

  \blinddocument
  \begin{figure}
  \caption{foo}
  \end{figure}
%  \begin{table}
%  \caption{bar}
%  \end{table}
\end{document}
 

(ich spare mir hier, die Zähler zwischenzuspeichern, wenn es eh nur darum geht, ob Zähler größer Null war)
BTW: bei Verwendung einer anderen Klasse wie book/report, bei denen die beiden figure- und table-Zähler an den Kapitelzähler gebunden sind, mag ein anderer Ansatz zielführend sein; zumindest müsste dann kapitelweise geprüft werden, ob die beiden Zähler ungleich Null sind, sonst bekämst Du so z. B. nur `hab Abbildung im letzten Kapitel gesehen'. Oder allgeimein bei Bindung des figure- bzw. table-Zählers an einen anderen Zähler gibt es noch Verbesserungspotential. Very Happy

VG
Rainer
_________________

One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.09.2019, 21:29     Titel:
  Antworten mit Zitat      
hm, das Minimalbeispiel klappt, aber beim Einarbeiten in ein bestehendes Dokument wird kein Abbildungs/Tabellenverzeichnis erzeugt.

Keine Ahnung weswegen

rais
Forum-Guru
Forum-Guru

Beiträge: 391
Anmeldedatum: 21.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: Gestern 20:30     Titel:
  Antworten mit Zitat      
Mit der Antwort kann ich nicht viel anfangen...
Bleibt erstmal die Vermutung, daß Abbildungs- und Tabellenzähler in Deinem `bestehendem Dokument' an einen anderen Zähler gebunden sind.

Mit `Bindung an einen anderen Zähler' ist gemeint, daß ein Erhöhen dieses anderen Zählers ein Rücksetzen des hier Abbildungs- und Tabellenzählers bewirkt.

Bei Verwendung einer Buch- oder Reportklasse wären beide Zähler standardmäßig an den Kapitelzähler gebunden, d.h. wenn Du nicht zufällig im letzten Kapitel eine Abbildung bzw. Tabelle hast, greift der Test ins Leere.

Ich hab mal versucht, vor einem etwaigen Rücksetzen des Abbildungszählers diesen Test zu ergänzen, damit sollte es dann auch mit Buch- und Reportklassen klappen.
Theoretisch sollte das auch noch funktionieren, wenn per \counterwithin (chngcntr bzw. seit TL18 Teil des Kerns) oder \numberwithin (amsmath) der Abbildungszähler an einen anderen Zähler gebunden wird.
Code • Öffne in Overleaf

\documentclass[12pt,a4paper,ngerman]{report}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[
  left=2cm,
  right=4cm,
  top=2cm,
  bottom=2.5cm,
  includeheadfoot
]{geometry}
\usepackage[nottoc]{tocbibind} % Option `nottoc` setzen (s. Anleitung Abschnitt 2)
\usepackage{blindtext}

\usepackage{lmodern}
\usepackage{microtype}

\newif\iffigureseen
\figureseenfalse
\makeatletter
\newcommand*\orig@stpelt{}%
\newcommand*\tmp@a{}%
\newcommand*\tmp@b{}%
\let\orig@stpelt\@stpelt
\renewcommand*\@stpelt[1]{%
  \iffigureseen
    \relax
  \else
    \edef\tmp@a{#1}%
    \edef\tmp@b{figure}%
    \ifx\tmp@a\tmp@b
      \ifnum\value{figure}>0
        \immediate\write\@mainaux{\string\global\string\figureseentrue}%
      \fi
    \fi
  \fi
  \orig@stpelt{#1}%
}
\AtEndDocument{%
  \iffigureseen
    \relax
  \else
    \ifnum\value{figure}>0
      \immediate\write\@mainaux{\string\global\string\figureseentrue}%
    \fi
  \fi
}
\makeatother
\begin{document}
  \tableofcontents

  \newpage
  \iffigureseen\listoffigures\fi

  \blinddocument
  \begin{figure}
  \caption{foo}
  \end{figure}
  \chapter{test}
  \begin{figure}
  \caption{bar}
  \end{figure}
  \chapter{test}
 
\end{document}
 

Wenn es damit bei Dir immer noch nicht klappt, mach ich einen Denkfehler, Dein Dokument nutzt nur subfigure statt figure, Dein Dokument kennt gar keinen Zähler namens figure, oder in Deinem Dokument sind schlicht keine Abbildungen vorhanden.

VG
Rainer
_________________

One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)
Private Nachricht senden Benutzer-Profile anzeigen

u_fischer
Forum-Meister
Forum-Meister


Beiträge: 3935
Anmeldedatum: 22.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: Gestern 23:00     Titel:
  Antworten mit Zitat      
Dafür gibt es das Paket totalcount.

Code • Öffne in Overleaf
\documentclass[a4paper,12pt]{article}
\usepackage[left=2cm, right=4cm, top=2cm, bottom=2.5cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage[onehalfspacing]{setspace}
\usepackage{tocbibind}
\usepackage{blindtext}

\RequirePackage[figure,table]{totalcount}


\begin{document}
\tableofcontents


\newpage
\iftotalfigures
\listoffigures
\fi
\iftotaltables
\listoftables
\fi

\section{Kapitel 1}
\blindtext

\section{Kapitel 2}
\Blindtext

\subsection{Unterkapitel 2.1}
\blindtext

\subsection{Unterapitel 2.2}
\Blindtext
\end{document}

_________________

Ulrike Fischer
www.troubleshooting-tex.de
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de


  Datenschutzerklärung | Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2019 goLaTeX.de