Makro variabel gestalten

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


maxmuster
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 30. Nov 2015, 07:57

Makro variabel gestalten

Beitrag von maxmuster »

Hallo zusammen

Um Grafiken nach einem bestellen Prinzip einzufügen, habe ich ein \newcommand erstellt. Dieser sieht folgendermassen aus:
\newcommand{\inputpictureone}{\begin{table}[]
\begin{tabular}{|l|}
\hline
\textbf{\textcolor{green}\pictureonetitle} \cellcolor{brightgreen} \hspace{12cm}    \\ \hline 
 \includegraphics[width=0.6\textwidth]{\pictureone}       \\ \hline
\footnotesize\textbf{\textcolor{gray}\pictureonecaption}\cellcolor{brightgray} \\ \hline
\end{tabular}
\end{table}}

Es geht mir bei meiner Frage aber nicht um den Code, denn grundsätzlich funktioniert alles. Nun möchte ich ein zweites Bild einfügen, und darum habe ich diesen Befehl nochmal einem \newcommand zugeordnet, in welchem dann einfach die Texte und das Bild anders sind, also sieht das dann etwa so aus:
\newcommand{\inputpicturetwo}{\begin{table}[]
\begin{tabular}{|l|}
\hline
\textbf{\textcolor{green}\pictureonetitle} \cellcolor{brightgreen} \hspace{12cm}    \\ \hline 
 \includegraphics[width=0.6\textwidth]{\picturetwo}       \\ \hline
\footnotesize\textbf{\textcolor{gray}\picturecaptiontwo}\cellcolor{brightgray} \\ \hline
\end{tabular}
\end{table}}
Sprich: Nur \inputpicturetwo, \pictureonetitle und \picturecaptiontwo sind neu ( da das Bild ja neu ist und die Beschriftungen anders ).

Auch dies funktioniert wunderbar, nur ist es mühsam, dies für sagen wir 15 Bilder immer zu wiederholen. Gibt es irgendeine Möglichkeit dies etwas variabler zu gestalten?

Zu meinem Code:

Classfile:
% CLASS - FILE

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{classfile}[27.11.2015 Vorlage]
\LoadClass[10pt,a4paper]{article}

\RequirePackage{sectsty}  				% loads the title package 
\RequirePackage{fontspec} 		    % loads the title package 
\RequirePackage{geometry} 			  % loads the geometry package 
\RequirePackage{marginnote} 			% loads the margin package 
\RequirePackage[doublespacing]{setspace} % loads the package to have a 1.5 line spacing
\RequirePackage{eso-pic}
\RequirePackage{xcolor,colortbl}


Das sind alle Packages die ich verwende; ich hoffe das genügt an Informationen.


Vielen Dank im Voraus[/code]

Besserwisser

Beitrag von Besserwisser »

In permanenter Ermangelung eines Minimalbeispiel würde ich schlicht sagen: Warum definierst du nicht von vornherein einen Befehl mit drei Argumenten? Wobei ich ohnehin den starken Verdacht habe, dass du eigentlich etwas wie tcolorbox suchst.

Besserwisser

BTW

Beitrag von Besserwisser »

Der Kommentar beim Laden von setspace ist falsch!

Statt xcolor und colortbl getrennt zu laden, sollte man lieber xcolor mit Option table laden.

Bevor du dich an an eine Vorlage machst, solltest du vielleicht die Grundlagen lernen und diese an einem Beispieldokument testen …

maxmuster
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Mo 30. Nov 2015, 07:57

Beitrag von maxmuster »

Hi

ja das mit den Argumenten scheint mir einleuchtend.

Also ist es dann möglich, so zusagen einen \inputpicture Befehl zu erstellen, bei welchem der User dann diese 3 Inputs eingeben muss also

\inputpicture{picture.png}{Titel}{Beschreibung}


So etwa hab ich mir das vorgestellt, nur komme ich mit den Argumenten noch nicht ganz draus, könntest du mir da helfen?

Wegen Minimalbeispiel:

Was ist denn noch erforderlich, ausser diesen Packages hab ich ja nichts eingefügt und ausserdem hat der Rest des Codes doch gar keinen Einfluss auf dies? Es gibt ja keine Fehler die mit dem Problem zu tun haben.


Edit: Das mit [table] hab ich versucht, nur gibt er mir dann keine Farbe aus sondern schreibt in die Zelle einfach nur "gray"...

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Folge doch einfach dem Link von Besserwisser, den hat er ja wohl nicht ohne Grund dahin gesetzt.

Lies eine Einführung. Was du hier momentan präsentierst ist quatsch.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

% definiert \inputpicture mit 3 Argumenten, dabei ist:
% #1: die Bilddatei
% #2: der Titel
% #3: die Beschriftung
\newcommand{\inputpicture}[3]{%
  % \begin{table}[] soll das wirklich gleiten? Wenn nicht -- {table}-Umgebung
  % weglassen
  \begin{tabular}{|l|}
    \hline
      \bfseries\textcolor{green}{#2}
      \cellcolor{brightgreen} \hspace{12cm} \\
    \hline
      \includegraphics[width=0.6\textwidth]{#1} \\
    \hline
      \bfseries\footnotesize\textcolor{gray}{#3}
      \cellcolor{brightgray} \\
    \hline
  \end{tabular}%
  % \end{table}
}

% Verwendung:
\inputpicture{bild1.png}{Titel von Bild 1}{Beschriftung von Bild1.}
Ob das ganze so sinnvoll ist oder ob eine andere Lösung nicht geschickter wäre, lässt sich ohne Minimalbeispiel nicht beurteilen.

Grüße
Clemens
Paketauthor

Antworten