Matroids Matheplanet Forum Index
Moderiert von Stefan_K
Matroids Matheplanet Forum Index » Textsatz mit LaTeX » Latex Vorzeichen immer anzeigen
Druckversion
Druckversion
Autor
Schule J Latex Vorzeichen immer anzeigen
knaggix
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.02.2008
Mitteilungen: 392
Aus: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-06-29 20:28


Hallo zusammen

Beim Darstellen von Gleichungen oder Termen via php und Latex

z.B.

\( 3 \cdot x - 4 \cdot y  = 7 \)

stosse ich gerade auf ein Problem .

In php sieht dies dann mit Variablen z.B so aus:
php
print($a." * x + ".$b." * y = ".$c);
 

Falls b positiv ist, ist der output gut.
Falls b negativ ist, ist der output unschön wegen des Vorzeichens:

\( 3 \cdot x + - 4 \cdot y  = 7 \)


Hier also meine Frage:

Gibt es einen Latex Befehl, ( oder einen php Befehl ) bei dem das Vorzeichen immer angezeigt wird, auch wenn die Zahl positiv ist?

Falls nein, wie könnte ich die Darstellung geschickt lösen?

herzlichen Danke für eure Tipps,
knaggix



-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
thureduehrsen
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 13.11.2007
Mitteilungen: 548
Aus: Kiel, Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-06-29 20:47


Hallo knaggix,

2020-06-29 20:28 - knaggix im Themenstart schreibt:
Gibt es einen Latex Befehl, ( oder einen php Befehl ) bei dem das Vorzeichen immer angezeigt wird, auch wenn die Zahl positiv ist?

ich glaube nicht, dass diese Herangehensweise dein Problem lösen würde, denn dann würde die Ausgabe ja

\( 3 \cdot x + + 4 \cdot y  = 7 \)

lauten.

Versuche doch mal, deinen PHP-Code so anzupassen, dass er genau ein Pluszeichen oder genau ein Minuszeichen enthält, je nach Vorzeichen von b, und dann arbeite mit dem Betrag von b weiter.

mfg
thureduehrsen



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 1240
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2020-06-29 22:23


2020-06-29 20:28 - knaggix im Themenstart schreibt:
Gibt es einen Latex Befehl, ( oder einen php Befehl ) bei dem das Vorzeichen immer angezeigt wird, auch wenn die Zahl positiv ist?

Es gibt einen php-Befehl:
php
php > $a=3; $b=-4; $c=7; printf("%d*x%+d*y=%d", $a, $b, $c);
3*x-4*y=7
 
php > $a=3; $b= 4; $c=7; printf("%d*x%+d*y=%d", $a, $b, $c);
3*x+4*y=7



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.02.2008
Mitteilungen: 392
Aus: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2020-06-30 13:40


Danke thureduehrsen

ich könnte alle Rechnungszeichen (im php Ausdruck) weglassen, dann wird das Vorzeichen erscheinen und alles ist gut, so hoffe ich . . .

und
Danke zippy

Das ist interessant und ich werde es sofort ausprobieren.
Habe dies im Manual gefunden:
Required. Specifies the string and how to format the variables in it.

Possible format values:

    %% - Returns a percent sign
    %b - Binary number
    %c - The character according to the ASCII value
    %d - Signed decimal number (negative, zero or positive) !!
    %e - Scientific notation using a lowercase (e.g. 1.2e+2)
    %E - Scientific notation using a uppercase (e.g. 1.2E+2)
    %u - Unsigned decimal number (equal to or greather than zero)
    %f - Floating-point number (local settings aware)
    %F - Floating-point number (not local settings aware)
    %g - shorter of %e and %f
    %G - shorter of %E and %f
    %o - Octal number
    %s - String
    %x - Hexadecimal number (lowercase letters)
    %X - Hexadecimal number (uppercase letters)


Ich glaube das hilft . . .


Bin gespannt, ob ich die Ausgabe so in den Griff bekomme

Lieber Gruss,
knaggix


-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 1240
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-06-30 14:48


2020-06-30 13:40 - knaggix in Beitrag No. 3 schreibt:
Habe dies im Manual gefunden:

Da fehlt noch das "+"-Flag, das ja gerade den für dich relevanten Unterschied liefert:

FlagDescription
-Left-justify within the given field width; Right justification is the default
+Prefix positive numbers with a plus sign +; Default only negative are prefixed with a negative sign.
(space)Pads the result with spaces. This is the default.
0Only left-pads numbers with zeros. With s specifiers this can also right-pad with zeros.
'(char)Pads the result with the character (char).



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.02.2008
Mitteilungen: 392
Aus: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2020-06-30 15:06


Hallo zippy

Ja, das ist entscheidend, danke für diesen Hinweis.

Also werde ich %+d in allen Summanden nutzen , ausser zu Beginn der Gleichung und nach einem Gleichheitszeichen.

Bin gespannt auf die Umsetzung.

Ich melde mich, wenn ich weiter bin

Danke und liebe Grüsse,
knaggix








-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.02.2008
Mitteilungen: 392
Aus: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, vom Themenstarter, eingetragen 2020-07-01 09:25


Hallo zippy und andere

Nun habe ich den printf Syntax ausprobiert und dieser Befehl liefert wie vorausgesagt den gewünschten output:
php
<?php printf("\( 1) %d  \cdot x %+d \cdot y = %d \)", -3, 4, 5); ?>
 
Es entsteht \( -3\cdot x + 4\cdot y = 5 \)

Soweit so gut.


Es hat sich nun ein neues Problem ergeben . . . grmpfts . . .

Es sind zwei Dateien an diesem Output beteiligt:

1) Die Datei xy_template.php in der die Variable output erzeugt wird

2) Die Datei main.php, die mit print(output);  den output erzeugt.

Ich verwende also in der Datei mit Namen main.php
den Befehl
php
print($output);

Die Variable output kommt per include in diese main Datei.
In der Variablen output ist der Outputstring, der gezeigt werden soll.
Hier müsste ich also diesen printf() Befehl in die Variable output schreiben.

Nun kann ich bisher leider keine Idee entwickeln, wie ich diesen printf() Befehl innerhalb des print Befehls der Datei main ausführen lassen kann . . .


Hat jemand eine Idee?

lieber Gruss,
knaggix





-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
ligning
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 07.12.2014
Mitteilungen: 3128
Aus: Berlin
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2020-07-01 09:33


Wenn ich dir folgen konnte, suchst du die Funktion sprintf, die im Prinzip genauso funktioniert wie printf, aber ihre Ausgabe in einen zurückgegebenen String schreibt.
PHP
$output = sprintf("\( 1) %d  \cdot x %+d \cdot y = %d \)", -3, 4, 5);
...
print($output)



-----------------
⊗ ⊗ ⊗



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 1240
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2020-07-01 09:35


2020-07-01 09:25 - knaggix in Beitrag No. 6 schreibt:
Nun kann ich bisher leider keine Idee entwickeln, wie ich diesen printf() Befehl innerhalb des print Befehls der Datei main ausführen lassen kann . . .

Neben printf gibt es auch die Funktion sprintf, die einen String als Ergebnis liefert.

[Die Antwort wurde vor Beitrag No.1 begonnen.]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
markusv
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.01.2017
Mitteilungen: 287
Aus: Leipzig
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2020-07-01 11:10


Da die Überschrift etwas irreführend ist und falls sich mal jemand hierher verirrt, der tatsächlich nach einer Möglichkeit sucht, in LaTeX Zahlen immer mit Vorzeichen anzeigen zu lassen:

Dafür bietet das Paket siunitx die Option retain-explicit-plus. Alternativ kann man per Option explicit-sign allen nicht vorgegebenen Zahlen ein Vorzeichen geben:
LaTeX
\documentclass{article} 
\usepackage{siunitx} 
\sisetup{retain-explicit-plus} 
\begin{document} 
\num{+134} %Ausgabe: +134
 
\num{-134} % -134
 
\num{134} % 134 (ohne +)
\sisetup{explicit-sign = +}
 
\num{134} %+134
 
\num{-134} %-134
\end{document}



-----------------
Hilfe bei der Erstellung von Vorlagen, wissenschaftlichen Arbeiten, Bewerbungen etc. in LaTeX unter help-latex(at)web.de



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.02.2008
Mitteilungen: 392
Aus: CH
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, vom Themenstarter, eingetragen 2020-07-01 17:30


Hallo markusv

Die Überschrift hatte ich gewählt, weil ich nicht wusste, ob ich das Problem im Latex lösen kann oder nicht.

Nun stellt sich heraus, dass wir die Lösung gefunden haben und zwar . . .

... tata . ..

Mit dem Tipp von lightning

zippy war bereits auf dem richtingen Weg, und lightning  hat das letzte Detail geliefert.

Dieser sprintf Befehl tut genau das, was ich brauche. Eine String erzeugen und ihn zurückgeben in die Variable.
Diese Variable wird dann wiederum (per include) in einen print Befehl gegeben und siehe da, der output kommt schön formatiert an.
php
In Datei xy_template.php
 
$output = "<img src=" . . . etc>";
$output = $ouput.sprintf("\( 1) \ \ \ %+d  \cdot x %+d \cdot y = %d \)<br>", $a, $b, $c);
$output = $ouput.sprintf("\( 2) \ \ \ %+d  \cdot x %+d \cdot y = %d \)<br>", $d, $e, $f);
$output = $ouput.sprintf("\( 3) \ \ \ %+d  \cdot x %+d \cdot y = %d \)<br>", $g, $h, $j);
...
 
In Datei main.php
 
print($output);
 




Y U D I H U I

herzlichen Dank fürs Mitdenken

liebe Grüsse aus der Schweiz,
knaggix






-----------------
Wer den Hafen nicht kennt, für den bläst nie ein günstiger Wind



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
knaggix hat die Antworten auf ihre/seine Frage gesehen.
knaggix hat selbst das Ok-Häkchen gesetzt.
Neues Thema [Neues Thema]  Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]