\input einer Jahreszahl einmalig ohne Tausendertrennzeichen

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: \input einer Jahreszahl einmalig ohne Tausendertrennzeichen

Re: \input einer Jahreszahl einmalig ohne Tausendertrennzeichen

von survive_latex » Fr 11. Mär 2022, 18:33

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

Re: \input einer Jahreszahl einmalig ohne Tausendertrennzeichen

von MoeWe » 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.
\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}

\input einer Jahreszahl einmalig ohne Tausendertrennzeichen

von survive_latex » Fr 11. Mär 2022, 13:15

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
Latex_minimalbsp.tex
(551 Bytes) 79-mal heruntergeladen
zahl.txt
(11 Bytes) 81-mal heruntergeladen
jahr.txt
(11 Bytes) 73-mal heruntergeladen

Nach oben