Duplikat zu: Wie wende ich keys (xkeyval) richtig an? Siehe dort für Lösungen.


Im Anschluß an Wie wende ich keys (xkeyval) richtig an? habe ich noch folgendes Problem:

Evtl. soll kein "shorttitle" gesetzt werden. Läßt man diesen aber aus, steht auch nichts im Abbildungsverzeichnis - wie könnte ich das lösen? Zwingend muß dort bereits \lofimage{\IMG@file} stehen, für die Miniabbildung der Abbildung im Abbildungsverzeichnis.

Gibt es eine simple "key-Methode" oder nur eine komplizierte if-Methode oder sowas?

alt text

Open in Online-Editor
\documentclass[a5paper, onside, automark, open=any, headsepline]{scrartcl}

\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[top=10mm]{geometry}

\usepackage{xcolor}
\usepackage{mwe}
 \pagecolor{red!42!yellow!20}
% ===============================
% Mini-Bilder im Abbildungsverzeichnis =========
 \usepackage{graphicx}
\newlength{\lofthumbsize}
\setlength{\lofthumbsize}{2em}

\newif\iflofimage
\DeclareRobustCommand*{\lofimage}[2][]{%
  \iflofimage
    $\vcenter to \lofthumbsize{\vss%
      \hbox to \lofthumbsize{\hss\includegraphics[{width=\lofthumbsize,height=\lofthumbsize,keepaspectratio=true,#1}]{#2}\hss}%
    \vss}$%
    \quad
  \fi
  \ignorespaces
}

\usepackage{xkeyval}
%%% Definition mit Keys %%%%%%%%%%%%%%%%%%%
\makeatletter
\newcommand*\IMG@figureoptions{htb}
\newcommand*\IMG@options{}
\newcommand*\IMG@file{}
\newcommand*\IMG@shorttitle{}
\newcommand*\IMG@title{}

\define@key{IMG}{figureoptions}  {\renewcommand*\IMG@figureoptions{#1}}
\define@key{IMG}{options}  {\renewcommand*\IMG@options{#1}}
\define@key{IMG}{file} {\renewcommand*\IMG@file{#1}}
\define@key{IMG}{shorttitle}{\renewcommand*\IMG@shorttitle{#1}}
\define@key{IMG}{title}{\renewcommand*\IMG@title{#1}}

\newcommand*\IMG[1][]{%
\begingroup
\setkeys{IMG}{#1}%
%\begin{figure}[\IMG@figureoptions]   % GEHT NICHT gut - Besser     htb      ???
\begin{figure}[htb]
\begin{center}
\expandafter\includegraphics\expandafter[\IMG@options]{\IMG@file}
\caption[\lofimage{\IMG@file}  \IMG@shorttitle]{\lofimage{\IMG@file}  \IMG@title}
\end{center}
\end{figure}
\endgroup
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ===============================
% ===============================
%========
\begin{document}
%========
\lofimagetrue
\listoffigures \par
\lofimagefalse
%\vspace{0.5cm}

\section{Abschnittsname}
\IMG[file=example-image, title=fooTitel, options={width=\textwidth}, shorttitle={fooKurztitel}, figureoptions={h}]

\IMG[file=example-grid-100x100pt, title=barTitel, options={scale=0.5}, shorttitle={barKurztitel}, figureoptions={h}] 
%========
\end{document}
%========

gefragt 17 Aug '14, 10:32

cis's gravatar image

cis
5.4k860169
Akzeptiert: 68%

bearbeitet 28 Jun '15, 16:01

Clemens's gravatar image

Clemens
19.0k113060

@cis: Das hatte ich Dir eigentlich in meiner Antwort zur anderen Frage bereits gezeigt …

(17 Aug '14, 11:17) Ijon Tichy

Stimmt, aber ich weiß grad nicht, wie ich das hier anwenden kann.

(17 Aug '14, 11:22) cis

Genauso wie bei mir. Du musst \IMG@shorttitle in der Voreinstellung nicht leer, sondern unter Verwendung von \IMG@title definieren. Das kannst Du 1:1 aus meiner Lösung übertragen. Außerdem solltest Du eine Fehlerbehandlung für ein fehlendes file=… einbauen (habe ich in meiner Lösung) und wenn figureoptions funktionieren soll, dann musst Du es expandieren. Auch das zeigt meine Lösung. Außerdem erscheint es mir wenig sinnvoll, die ganzen Hilfsmakros außerhalb der Gruppe in \IMG überhaupt definiert zu haben. Deshalb macht meine Lösung das innerhalb …

(17 Aug '14, 11:38) Ijon Tichy

In der gelinkten Frage wird mit Ijon Tichys und meiner Antwort als Standard einfach der Titel in den Kurztitel kopiert.

(17 Aug '14, 11:47) Henri

Ist die Frage gelöst (und wir können sie als Duplikat der anderen Frage schließen), oder ist die Frage noch offen?

(27 Jun '15, 09:09) Clemens

Die Frage wurde aus folgenden Grund geschlossen: "Duplikat einer anderen Frage" durch Clemens 28 Jun '15, 15:59

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×32
×16
×5
×3
×3

Frage gestellt: 17 Aug '14, 10:32

Frage wurde angeschaut: 888 Mal

Zuletzt aktualisiert: 28 Jun '15, 16:01