\listoffigures nur ausgeben falls Abbildungen vorhanden

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

\listoffigures nur ausgeben falls Abbildungen vorhanden

Beitrag von IrenaSekuta »

Hallo zusammen,

anbei mein Minimalbeispiel:
\documentclass{scrartcl}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\begin{document}

\listoffigures
\listoftables

\end{document}

Gibt es eine Möglichkeit die Anweisungen \listoffigures oder \listoftables automatisch ausführen zu lassen,in Abhängigkeit ob Abbildungen oder Tabellen vorhanden sind?

Gruss,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

LuPi_Gast

Beitrag von LuPi_Gast »

Markus Kohm hat mir vor einiger Zeit diese Frage beantwortet. Auf dieser
Basis ist dann der von mir ergänzte Code entstanden. Du kannst dies
sicherlich entsprechend modifizieren.
\makeatletter
\newcommand*{\OriginalListOfFigures}{}
\let\OriginalListOfFigures\listoffigures
\newcommand*{\Originall <at> figure}{}
\newcounter{listlofentries}
\renewcommand*{\listoffigures}{%
  \let\Originall <at> figure\l <at> figure
  \renewcommand*{\l <at> figure}{%
    \stepcounter{listlofentries}\Originall <at> figure
  }%
  \setcounter{listlofentries}{0}%
  \OriginalListOfFigures
  \ifnum \value{listlofentries}=0
    Dokument enth\"alt keine Bilder\par
  \fi
}
\newcommand*{\OriginalListOfTables}{}
\let\OriginalListOfTables\listoftables
\newcommand*{\Originall <at> table}{}
\newcounter{listlotentries}
\renewcommand*{\listoftables}{%
  \let\Originall <at> table\l <at> table
  \renewcommand*{\l <at> table}{%
    \stepcounter{listlotentries}\Originall <at> table
  }%
  \setcounter{listlotentries}{0}%
  \OriginalListOfTables
  \ifnum \value{listlotentries}=0
    Dokument enth\"alt keine Tabellen\par
  \fi
}
\makeatother

LuPi_Gast

Beitrag von LuPi_Gast »

Damals habe ich auch noch ein kleines Paket daraus gestrickt ...
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{loflotwoentry}[2010/04/29]
% Datei          loflotwoentry.sty
% Paket          loflotwoentry
% Quelle         Code von Markus Kohm, 29. April 2010
% Erstellt       29. April 2010
% Aktualisiert   s. o.
%
% Beschreibung   Falls keine Einträge in lof und/oder lot enthalten sind,
%                werden entsprechende Kommentare eingetragen.

\newcommand{\lofwoentrycomment}{-- Dieses Dokument enthält keine Abbildungen! --}
\newcommand{\lotwoentrycomment}{-- Dieses Dokument enthält keine Tabellen! --}

\newcommand{\setlofwoentrycomment}[1]{\renewcommand{\lofwoentrycomment}{#1}}
\newcommand{\setlotwoentrycomment}[1]{\renewcommand{\lotwoentrycomment}{#1}}

\newcommand*{\OriginalListOfFigures}{}
\let\OriginalListOfFigures\listoffigures
\newcommand*{\Originall@figure}{}
\newcounter{listlofentries}
\renewcommand*{\listoffigures}{%
  \let\Originall@figure\l@figure
  \renewcommand*{\l@figure}{%
    \stepcounter{listlofentries}\Originall@figure
  }%
  \setcounter{listlofentries}{0}%
  \OriginalListOfFigures
  \ifnum \value{listlofentries}=0
    \lofwoentrycomment\par
  \fi
}
\newcommand*{\OriginalListOfTables}{}
\let\OriginalListOfTables\listoftables
\newcommand*{\Originall@table}{}
\newcounter{listlotentries}
\renewcommand*{\listoftables}{%
  \let\Originall@table\l@table
  \renewcommand*{\l@table}{%
    \stepcounter{listlotentries}\Originall@table
  }%
  \setcounter{listlotentries}{0}%
  \OriginalListOfTables
  \ifnum \value{listlotentries}=0
    \lotwoentrycomment\par
  \fi
}

% EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Beitrag von IrenaSekuta »

Herzlichen Dank für die Info. Leider verstehe ich nicht ganz, welches Kommando ich nun nutzen muss.

Wäre es auch möglich, die Ausgabe ganz zu unterbinden, wenn kein Eintrag vorhanden ist? Bin leider nicht so firm in der Programmierung von Latex, sodass ich es mir aus dem hier offerierten Code nicht herleiten kann.

Eventuell wäre es möglich, wenn sich jemand die Mühe machen würde, den Code mit mir durchzugehen, damit ich ihn verstehe:
\newcommand*{\OriginalListOfFigures}{} % Verstehe ich

\let\OriginalListOfFigures\listoffigures
\newcommand*{\Originall@figure}{} % Verstehe ich..bis auf dieses @-Zeichen

\newcounter{listlofentries} % Verstehe ich

% Der Befehl listoffigures wird nun umgeschrieben, aber ich verstehe nicht, was da genau gemacht wird...generell verstehe ich schon nicht, was dieses @-Zeichen immer soll. ich weiss, dass ich für einige hier bestimmt Basiswissen, aber ich weiss leider nicht genau, wo ich mir dieses Basiswissen aneignen kann.
\renewcommand*{\listoffigures}{%
  \let\Originall@figure\l@figure
  \renewcommand*{\l@figure}{%
    \stepcounter{listlofentries}\Originall@figure
  }%
  \setcounter{listlofentries}{0}%
  \OriginalListOfFigures
  \ifnum \value{listlofentries}=0
    \lofwoentrycomment\par
  \fi
} 
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 826
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Zwei Zeilen

Beitrag von localghost »

Das kriegt man doch eigentlich mit zwei Zeilen hin.
\documentclass[ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\newcommand*{\optlof}{\IfFileExists{\jobname.lof}{\listoffigures}{\relax}}
\newcommand*{\optlot}{\IfFileExists{\jobname.lot}{\listoftables}{\relax}}

\begin{document}
  \optlof
  \optlot

  Falsches Üben von Xylophonmusik quält jeden größeren Zwerg.
\end{document}
Oder habe ich da was falsch verstanden?


Thorsten
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: TeX Live 2024, TeXworks

Benutzeravatar
Sepp99
Forum-Meister
Forum-Meister
Beiträge: 1569
Registriert: So 29. Aug 2010, 17:26
Wohnort: Offenhausen/OÖ

Beitrag von Sepp99 »

Leider wird bei dem Beispiel von localghost weder eine .lof-, noch eine .lot-Datei erstellt. Das heißt, der Code funktioniert nur, wenn solche schon vorhanden sind.
Ich verstehe auch das Problem nicht ganz, denn normalerweise weiß ich doch, ob Bilder und Tabellen im TeX-File sind. Trotzdem - interessantes Thema.

Gruß, Sepp.-
Zuletzt geändert von Sepp99 am Mo 19. Sep 2011, 20:03, insgesamt 1-mal geändert.

IrenaSekuta
Forum-Century
Forum-Century
Beiträge: 230
Registriert: Di 2. Dez 2008, 10:05

Merci

Beitrag von IrenaSekuta »

Herzlichen Dank für eure Hilfe.

Ich probiere gerade Latex bei uns im Unternehmen einzuführen und möchte es den Kollegen so einfach wie möglich machen. Und ich möchte die Kollegen gerne mit ein paar netten Features von Latex locken, die Word eben nicht hat.

Und da hatte ich die Idee, dass es doch ein nettes Feature wäre, wenn das Abbildungsverzeichnis abhängig von vorhandenen Abbildungen erstellt wird oder eben nicht.

Werde den Code morgen früh direkt ausprobieren, aber ich denke, es es genau das ist was ich gesucht habe:
\newcommand*{\optlof}{\IfFileExists{\jobname.lof}{\listoffigures}{\relax}} 
Sepp schreibt:
Leider wird bei diesem Beispiel weder eine .lof-, noch eine .lot-Datei erstellt. Das heißt, der Code funktioniert nur, wenn solche schon vorhanden sind. 
Aber die Idee ist doch nicht schlecht. Falls es Abbildungen gibt, wird eine .lof erzeugt und \listoffigures ausgegeben, ansonsten nur \relax.


Gruß,

Irena
----------------------------------
- WinXP und Win 7 und ansatzweise Ubuntu 9.10 :-)
- Miktex 2.9 (Portable)
- WinEdt 6

Benutzeravatar
localghost
Forum-Meister
Forum-Meister
Beiträge: 826
Registriert: Di 8. Jul 2008, 15:40
Wohnort: Braunschweig

Sinnfrage

Beitrag von localghost »

IrenaSekuta hat geschrieben:[…] Und da hatte ich die Idee, dass es doch ein nettes Feature wäre, wenn das Abbildungsverzeichnis abhängig von vorhandenen Abbildungen erstellt wird oder eben nicht. […]
Dieses "Feature" ist aber eigentlich sinnlos. Gibt es keine Abbildungen, lässt man den Befehl für das Verzeichnis einfach weg.
TeX und LaTeX, Fragen und Antworten – TeXwelt

¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
² System: TeX Live 2024, TeXworks

Benutzeravatar
Sepp99
Forum-Meister
Forum-Meister
Beiträge: 1569
Registriert: So 29. Aug 2010, 17:26
Wohnort: Offenhausen/OÖ

Re: Merci

Beitrag von Sepp99 »

IrenaSekuta hat geschrieben:Aber die Idee ist doch nicht schlecht. Falls es Abbildungen gibt, wird eine .lof erzeugt und \listoffigures ausgegeben, ansonsten nur \relax.
Naja - eben nicht, wie ich schrieb:
Leider wird bei diesem Beispiel weder eine .lof-, noch eine .lot-Datei erstellt. Das heißt, der Code funktioniert nur, wenn solche schon vorhanden sind.
Aber teste es selbst.

Gruß, Sepp.-

LuPi_Gast

Re: Sinnfrage

Beitrag von LuPi_Gast »

localghost hat geschrieben:Dieses "Feature" ist aber eigentlich sinnlos. Gibt es keine Abbildungen, lässt man den Befehl für das Verzeichnis einfach weg.
Klares Jein! Bei mir ging es um ein Template, das (in meinem beruflichen Umfeld) allgemein Anwendung finden kann, ohne dass ich bei jedem Bericht owai schauen [und reagieren] muss, ob ich in der vorliegenden Version gerade Tabellen oder Bilder habe.

Du hast aber natürlich Recht, wenn es sich um singuläre Dokumente handelt; da sollte ich als Ersteller schon wissen, was ich fabriziere.

Antworten