\input einer Jahreszahl einmalig ohne Tausendertrennzeichen Thema ist als GELÖST markiert

Schriftbild, Absätze und Auflistungen einstellen


survive_latex
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 11. Mär 2022, 12:47

\input einer Jahreszahl einmalig ohne Tausendertrennzeichen

Beitrag von survive_latex »

Hallo zusammen,

Bislang konnten mir die Beiträge in diesem Forum gut helfen, aber jetzt bin ich doch auf ein Problem gestoßen, dass es nötig gemacht hat selbst einen zu verfassen.

Zum Problem:
Ich muss in einer Tabelle Zahlen mit \input aus txt-Dateien importieren. Das funktioniert soweit auch genau so, wie es soll. Weiterhin ist die Vorgabe als Tausendertrennzeichen einen Punkt zu verwenden, der schon bei 4stelligen Zahlen (also ab 1.000) erscheint. Auch das ist soweit kein Problem.
Jetzt habe ich in der Tabelle aber den Fall, dass auch eine Jahreszahl importiert wird, die (und nur die!) natürlich ohne Punkt dargestellt werden muss.

Ich habe zwei mögliche Ideen, wie man das Problem angehen kann, aber für keine eine richtige Lösung gefunden:
1. Ich kann einmalig die group-minimum-digits oder den group-seperator ändern/unterdrücken.
2. Ich sage dem \input-Befehl, dass er diese eine Datei als String importieren soll.

Irgendwie glaube ich, dass die Lösung sehr leicht ist, aber trotzdem war ich bislang zu blöd sie zu finden. Vielleicht könnt ihr mir ja helfen.
\documentclass[10pt,ngerman,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx} %für einheiten
\sisetup{output-decimal-marker = {,}, quotient-mode=fraction, group-separator = {.}, group-minimum-digits =4, group-digits = integer} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.4}
\usepackage{pgfplotstable} 


\begin{document}
	\newpage
	\begin{table}
		\centering
		\begin{tabular}{|l l|}
			\hline
			Zahl&Jahr\\
			\hline
			\input{zahl.txt}&\input{jahr.txt}\\
			\hline
		\end{tabular}
	\end{table}
\end{document}
Das Minimalbeispiel mit den Beispiel-Dateien habe ich im Anhang.

Danke schon im Voraus
Dateianhänge
zahl.txt
(11 Bytes) 78-mal heruntergeladen
Latex_minimalbsp.tex
(551 Bytes) 77-mal heruntergeladen
jahr.txt
(11 Bytes) 70-mal heruntergeladen

MoeWe
Forum-Meister
Forum-Meister
Beiträge: 801
Registriert: Fr 30. Aug 2019, 15:35
Kontaktdaten:

Re: \input einer Jahreszahl einmalig ohne Tausendertrennzeichen

Beitrag von MoeWe »

Gibt es denn einen speziellen Grund, warum Du in der jahr.txt \SI verwendest?
\SI{2021}{}
Jahreszahlen würde ich ja normalerweise völlig ohne siunitx setzen.

Die Nutzung, bei der das zweite Argument von \SI leer bleibt, scheint mir aber unabhängig davon auf den ersten Blick etwas suspekt. Es gibt auch den Befehl \num, bei dem man keine Einheit angeben muss.

Du kannst sowohl dem Befehl \SI als auch \num lokal Optionen übergeben und dabei die Gruppierung unterdrücken.
\documentclass[10pt,ngerman,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{siunitx}
\sisetup{
  output-decimal-marker = {,},
  quotient-mode=fraction,
  group-separator = {.},
  group-minimum-digits = 4,
  group-digits = integer,
} 

\begin{document}
\num{12345}

\num{1234}

\num[group-digits=none]{1234}

\SI{12345}{\newton}

\SI{1234}{\newton}

\SI[group-digits=none]{1234}{\newton}
\end{document}
Für Tabellen hat siunitx übrigens extra eine eigene Spaltendefinition, die man nutzen kann, um hübsch formatierte Zahlen zu bekommen.
\documentclass[10pt,ngerman,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{siunitx}
\sisetup{
  output-decimal-marker = {,},
  quotient-mode=fraction,
  group-separator = {.},
  group-minimum-digits = 4,
  group-digits = integer,
} 

\begin{document}
\begin{tabular}{S[table-format=5.2]S[table-format=4.0, group-digits=none]}
{\bfseries Zahl} & {\bfseries Jahr}\\
12345.12 & 2021\\
8762.1  & 2022\\
\end{tabular}
\end{document}

survive_latex
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 11. Mär 2022, 12:47

Re: \input einer Jahreszahl einmalig ohne Tausendertrennzeichen

Beitrag von survive_latex »

MoeWe hat geschrieben:
Fr 11. Mär 2022, 17:42
Gibt es denn einen speziellen Grund, warum Du in der jahr.txt \SI verwendest?
\SI{2021}{}
Jahreszahlen würde ich ja normalerweise völlig ohne siunitx setzen.

Die Nutzung, bei der das zweite Argument von \SI leer bleibt, scheint mir aber unabhängig davon auf den ersten Blick etwas suspekt. Es gibt auch den Befehl \num, bei dem man keine Einheit angeben muss.

Du kannst sowohl dem Befehl \SI als auch \num lokal Optionen übergeben und dabei die Gruppierung unterdrücken.
oh man, manchmal stellt man sich aber auch wirklich blöd an. Natürlich hätte ich mal dort gucken können, wo diese Dateien erstellt und exportiert werden. Ist doch logisch, dass es als Zahl interpretiert wird, wenn es mit \SI{}... kommt. Ich fühle mich gerade ein wenig dumm... naja ist eben Freitag.

Warum das alles mit SI ist, kann ich dir gar nicht genau sagen. Sicherlich wäre es auch nicht verkehrt das bei Gelegenheit mal anzugehen und auf \num umzustellen... (betrifft deutlich mehr Dateien, habs nur im Beispiel auf 2 reduziert)
In einem ersten Schritt konnte ich aber ändern, dass die Jahreszahl blank exportiert wird. Dann brauche ich die lokalen \num-Optionen gar nicht (trotzdem gut zu wissen, war mir so auch noch nicht bekannt) und alles sieht so aus, wie es aussehen soll.

Also vielen Dank für den Hinweis, manchmal steh ich eben total auf dem Schlauch...
Aber hey, ich hab doch gesagt die Lösung ist leicht. Ich bin nur an mir selbst verzweifelt :D

Antworten