goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


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

Forenstatistik:
Beiträge: 101644
Top-Poster: Johannes_B (5071)

Wir begrüßen unseren neuesten Benutzer Johannes2020.

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

Tabelle in Abhängigkeit von Argumenten erstellen, IFTHENELSE

 

ChristophH
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2018, 17:57     Titel: Tabelle in Abhängigkeit von Argumenten erstellen, IFTHENELSE
  Antworten mit Zitat      
Hallo zusammen!

Nachdem ich mit meiner Recherche nicht mehr weiterkomme, wende ich mich nun mit meinem Problem direkt an euch.

Die Situation ist die Folgende:

ich habe den Befehl \skillGroup definiert, welchem bis zu neun Argumente übergeben werden. Davon abhängig wird eine ein- bis vierzeilige Tabelle erstellt.
Ist ein Argumentepaar nicht gegeben, soll für dieses keine neue Zeile eingefügt werden. Daher die Abfrage mit \ifthenelse.
Soweit funktioniert das Ganze auch. Wenn ich jedoch nur drei Argumente verwende (siehe nachfolgendes Beispiel), werden die Abstände nach der Tabelle größer als bei mehrzeiligen Tabellen.
Ich vermute Latex sieht das als Absatz an und fügt zusätzlichen Raum hinzu.

Versuche mit negativen \vspace funktionieren zwar, sind aber keine wirkliche Lösung sondern ein schlechter Vertuschungsversuch.

Daher meine Frage an euch Profis:
Welche Möglichkeit einer Anpassung gibt es um den beschriebenen Abstand für jede Tabelle (unabhängig von der Zeilenanzahl) gleich zu halten?

Für Eure Hilfe bin ich mehr als dankbar! Smile

Grüße
Christoph


MINIMALBEISPIEL:

Code

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[left=2.50cm, right=2.50cm, top=2.50cm, bottom=2.50cm]{geometry}
\usepackage{array}
\usepackage{ifthen}
\usepackage{blindtext}




%Befehl zur Erstellung einer Tabelle anhand der übergebenen Argumente
\newcommand{\skillGroup}[9]{
   \noindent
   \begin{tabular*
}{\textwidth}{@{}p{6cm}|ll}
      %      Tabelle, wenn alle Argumente gegeben sind
      %      \bfseries #1 & #2 & #3 \\
      %               & #4 & #5 \\
      %               & #6 & #7 \\
      %               & #8 & #9 \\
      %
      %
      \bfseries #1 & #2 & #3%
      %Prüfung der Argumente: wenn ein Argumentepaar (z.B. #4 und #5) leer/nicht %gegeben sind, wird für diese keine Zeile ausgegeben. Die Tabelle wird %entsprechend kürzer.
      %Sind nur 3 Argumente gegeben (=einzeilige Tabelle), kommt es zu einem %größeren Abstand nach der Tabelle, als wenn die Tabelle mehrzeilig %ist.
      %Eine unschöne Lösung ist das Hinpfuschen mit einem negativen \vspace
      %
      %Bewusste verwendung des Strings "leer", da meines Wissens \equal nur für %String-Vergleiche geeignet ist.
      \ifthenelse{\equal{#4}{leer}}{}{\\ & #4 & #5 } %unschöne Lösung: \vspace{-5mm} im Then-Zweig
      \ifthenelse{\equal{#6}{leer}}{}{\\ & #6 & #7 }
      \ifthenelse{\equal{#8}{leer}}{}{\\ & #8 & #9 }    
   \end{tabular*}
}




\begin{document}
   
   \noindent
   \blindtext
   
   \skillGroup{Software}{\LaTeX}{anscheinend nicht so gut}{arg4}{arg5}{arg6}{arg7}{arg8}{arg9}
   
   \noindent
   \blindtext
   
   \skillGroup{Versionsverwaltungssoftware}
   {Git}{Anfänger}
   {leer}{leer}
   {leer}{leer}
   {leer}{leer}
   
   \noindent
   \blindtext
   
   \skillGroup{Software}{\LaTeX}{anscheinend nicht so gut}{arg4}{arg5}{arg6}{arg7}{leer}{leer}
   
   \noindent
   \blindtext
   
   
\end{document}
 

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2018, 18:43     Titel:
  Antworten mit Zitat      
Typischer Fall von unerwünschten Leerzeichen durch nicht auskommentierte Zeilenenden.

Code
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[left=2.50cm, right=2.50cm, top=2.50cm, bottom=2.50cm]{geometry}
\usepackage{array}
\usepackage{ifthen}
\usepackage{blindtext}

%Befehl zur Erstellung einer Tabelle anhand der übergebenen Argumente
\newcommand{\skillGroup}[9]{%
   \noindent
   \begin{tabular*}{\textwidth}{@{}p{6cm}|ll}
      %      Tabelle, wenn alle Argumente gegeben sind
      %      \bfseries #1 & #2 & #3 \\
      %               & #4 & #5 \\
      %               & #6 & #7 \\
      %               & #8 & #9 \\
      %
      %
      \bfseries #1 & #2 & #3%
      %Prüfung der Argumente: wenn ein Argumentepaar (z.B. #4 und #5) leer/nicht %gegeben sind, wird für diese keine Zeile ausgegeben. Die Tabelle wird %entsprechend kürzer.
      %Sind nur 3 Argumente gegeben (=einzeilige Tabelle), kommt es zu einem %größeren Abstand nach der Tabelle, als wenn die Tabelle mehrzeilig %ist.
      %Eine unschöne Lösung ist das Hinpfuschen mit einem negativen \vspace
      %
      %Bewusste verwendung des Strings "leer", da meines Wissens \equal nur für %String-Vergleiche geeignet ist.
      \ifthenelse{\equal{#4}{leer}}{}{\\ & #4 & #5 }% unschöne Lösung: \vspace{-5mm} im Then-Zweig
      \ifthenelse{\equal{#6}{leer}}{}{\\ & #6 & #7 }%
      \ifthenelse{\equal{#8}{leer}}{}{\\ & #8 & #9 }%  
   \end{tabular*}%
}




\begin{document}
   
   \noindent
   \blindtext
   
   \skillGroup{Software}{\LaTeX}{anscheinend nicht so gut}{arg4}{arg5}{arg6}{arg7}{arg8}{arg9}
   
   \noindent
   \blindtext
   
   \skillGroup{Versionsverwaltungssoftware}
   {Git}{Anfänger}
   {leer}{leer}
   {leer}{leer}
   {leer}{leer}
   
   \noindent
   \blindtext
   
   \skillGroup{Software}{\LaTeX}{anscheinend nicht so gut}{arg4}{arg5}{arg6}{arg7}{leer}{leer}
   
   \noindent
   \blindtext
   
   
\end{document}

ChristophH
Gast

Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2018, 08:37     Titel:
  Antworten mit Zitat      
Wow, das ging schnell! Stark!

Und die Lösung,.. nun ja, Latex ist halt doch kein Python Rolling Eyes Laughing
Ich hab dafür bestimmt zwei Tage vergoogelt Embarassed Rolling Eyes
Vielen Dank für die Hilfe und die Info dazu!! Die schau ich mir gleich an.Smile

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 - 2020 goLaTeX.de