Einfluss der Einrückung im Code auf die Zentrierung in der Ausgabe

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Einfluss der Einrückung im Code auf die Zentrierung in der Ausgabe

Re: Einfluss der Einrückung im Code auf die Zentrierung in der Ausgabe

von mattazie » Di 11. Feb 2025, 11:34

Das ist das Geniale an diesem Forum:

Ich stelle eine Frage und bekomme die Antwort auf zwei Fragen. :D

Ich habe mich wirklich schon gefragt, wieso einige Leute ihre Zeilen mit Kommentarzeichen abschliessen, aber dahinter nichts schreiben. Ist eigentlich sehr einleuchtend.

Vielen Dank für die schnelle Antwort. Ich habe wiedereinmal etwas Wichtiges gelernt.

Re: Einfluss der Einrückung im Code auf die Zentrierung in der Ausgabe

von Stefan Kottwitz » Do 6. Feb 2025, 18:00

Ein Zeilenende wirkt wie ein Leerzeichen. Das soll ja auch so sein, in normalem Fließtest, das nächste Wort soll ja nicht ohne Leerzeichen dem letzten Wort der vorangehenden Zeile folgen. Zwischen Makros wie den \ifthenelse-Befehlen fängt man sich hier unerwünschte Leerzeichen (damit Abstände) ein.

Vermeiden kannst Du das, wenn Du Zeilenenden (zwischen Makros) auskommentierst. Daher siehst Du auch oft Prozentzeichen am Ende von Zeilen in Makrodefinitionen anderer Leute. Also etwa so:
\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[cmyk,table]{xcolor}
\usepackage[verbose]{datatool}
\usepackage{ifthen}
\usepackage{tabularx}
\usepackage{array}
\pagestyle{empty}
\begin{document}

\DTLloaddb[keys={Baum,Farbe,Groesse}]{Tabelle}{Tabelle.csv}

	\begin{DTLenvforeach}{Tabelle}{\Baum=Baum,\Farbe=Farbe,\Groesse=Groesse}
		\begin{tabular}{|c|}
			\hline
			\Baum%
			\ifthenelse{\not \equal{\Farbe}{}}{%
				\\[-0.6 mm]
				\scriptsize \mdseries\textit{(\Farbe)}%
			}{%
				\ifthenelse{\not \equal{\Groesse}{}}{%
					\\[-0.6 mm] \scriptsize \mdseries\textit{(\Groesse)}%
				}{%
				}%
			}\\
			\hline
		\end{tabular}
	\end{DTLenvforeach}

\end{document}
Stefan

Einfluss der Einrückung im Code auf die Zentrierung in der Ausgabe

von mattazie » Do 6. Feb 2025, 11:04

Bei der Erstellung meiner Spielkarten verwende ich das Packet datatool, um je nach Eintrag in einer Datentabelle über teilweise verschachtelte ifthen-Schleifen die Ausgestaltung der einzelnen Karten zu steuern.
Um den Code übersichtlicher zu gestalten, breche ich den Code um und rücke ihn ein. Dabei ist mir aufgefallen, dass das Einrücken Einfluss hat auf die Zentrierung des Textes auf den Karten.

Im folgenden Beispiel sieht man, was ich meine. Ich habe zweimal den selben Code, aber unterschiedlich umgebrochen und eingerückt:
Baum,Farbe,Groesse
Buche,,gross
Tanne,grün,
Linde,,
\documentclass[10pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[cmyk,table]{xcolor}
\usepackage[verbose]{datatool}
\usepackage{ifthen}
\usepackage{tabularx}
\usepackage{array}
\pagestyle{empty}

\begin{document}

\DTLloaddb[keys={Baum,Farbe,Groesse}]{Tabelle}{Tabelle.csv}

	\begin{DTLenvforeach}{Tabelle}{\Baum=Baum,\Farbe=Farbe,\Groesse=Groesse}
		\begin{tabular}{|c|}
			\hline
			\Baum \ifthenelse{\not \equal{\Farbe}{}}{\\[-0.6 mm] \scriptsize \mdseries\textit{(\Farbe)}}{\ifthenelse{\not \equal{\Groesse}{}}{\\[-0.6 mm] \scriptsize \mdseries\textit{(\Groesse)}}{}}\\
			\hline
		\end{tabular}
	\end{DTLenvforeach}

\vspace{5 mm}

	\begin{DTLenvforeach}{Tabelle}{\Baum=Baum,\Farbe=Farbe,\Groesse=Groesse}
		\begin{tabular}{|c|}
			\hline
			\Baum
			\ifthenelse{\not \equal{\Farbe}{}}{
				\\[-0.6 mm]
				\scriptsize \mdseries\textit{(\Farbe)}
			}{
				\ifthenelse{\not \equal{\Groesse}{}}{
					\\[-0.6 mm] \scriptsize \mdseries\textit{(\Groesse)}
				}{
				}
			}\\
			\hline
		\end{tabular}
	\end{DTLenvforeach}

\end{document}
Wenn ich nun compiliere (TeXstudio 4.8.5 (git 4.8.5) auf Windows, angezeigt in Sumatra, sieht man, dass es unterschiedliche Resultate gibt. Alle Wörter sollten in den Boxen zentriert sein.
Das untere Buche-Feld hat jedoch rechts mehr Platz bis zum Rand als das obere.
Noch deutlicher ist es bei der Linde. In beiden Boxen ist das Wort vertikal nicht zentriert und bei der unteren hat es rechts wieder einen grossen Zwischenraum bis zum Rand.

Woran liegt das? Rücke ich falsch ein?

Wäre sehr dankbar für jede Hilfe.

Nach oben