PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : geschütztes Minus



dabeckstar
18-05-2006, 18:25
Hallo!

Ich wuerde gerne ein Minus vor einer Zahl davor schuetzen, von der Zahl durch Zeilenumbruch getrennt zu werden, z.b. -78 °C sollte nicht in - (nächste Zeile) 78 °C getrennt werden können. Leerzeichen schützt man mit Tilde, minus mit ???

Vielen Dank!

Tobias

Caveman
18-05-2006, 18:45
Wie wär's damit:

$-78$~°C Dann hat das Minuszeichen auch die richtige Länge (wegen der Mathe-Umgebung).

Ich hab mir übrigens einen eigenen Befehl dafür geschrieben:


\newcommand*{\temperatur}[1]{$#1$\,°C} (in der Präambel)

\temperatur{-78} (imText)

countbela666
18-05-2006, 18:47
Hallo Tobias,

da ein Minuszeichen etwas anderes ist, als ein einfacher Bindestrich, sollten Zahlen (vor allem mit Einheiten versehene) nicht einfach im Fließtext als z. B. -50 geschrieben, sondern entweder im Mathemodus, also $-50$, oder noch besser mit Hilfe des Pakets units formatiert werden, das gleich noch für den korrekten Abstand zwischen Zahl und Einheit sorgt. In diesen Fällen wird der Bindestrich durch ein Minuszeichen ersetzt und der von dir beschriebene Fehler sollte nicht auftreten.

\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage{units}
\begin{document}
text text text text text text text text text text text text text text text \unit[--50]{°C} text text text text
\end{document}Grüße,
Marcel

EDIT: und wieder zu langsam...

dabeckstar
19-05-2006, 12:05
Hey Jungs!

Super sache, vielen Dank! Cavemans newcommand hab ich für countbelas vorschlag benutzt, denn mit cavemans vorschlag ist auch die zahl im Mathemodus = mit serifen, nicht arial (wie bei mir gewünscht)

hab jetzt folgendes:

\newcommand*{\ntemp}[1]{\unit[--#1]\,°C}
\newcommand*{\ptemp}[1]{\unit[#1]\,°C}

und im text dann halt \ptemp{120} macht mir 120 °C und \ntemp{78} macht mir -78 °C. Vielleicht jemand nen besseren Vorschlag für newcommands? Und was bedeutet der Stern (bei \section* kenn ich den, aber hier?)

Gruß, Tobias

dabeckstar
19-05-2006, 12:17
Hey!

Also, sieht im Text gut aus, nur das Problem mit dem Umbruch bleibt, auch wenn ich \, durch Tilde bei newcommand ersetze...

Einziges, was klappt, ist Zahl und Minus im Mathemodus zu setzen, doch dann ist die Zahl im Times New Roman Stil, nicht in Arial, wie der restliche Text.
Wer kann helfen?

Vielen Dank, Tobias

Caveman
19-05-2006, 13:04
Um den Umbruch zu verhindern, kannst Du das Ganze in eine mbox{} packen:

\newcommand{\ntemp}[1]{\mbox{\unit[--#1]{°C}}}
\newcommand{\ptemp}[1]{\mbox{\unit[#1]{°C}}} Was der Stern bedeutet, hab ich mal gewusst. Wenn er Dich stört, lass ihn weg.
Die Bedeutung steht im Latex-Begleiter (Ich hab das Buch wieder zurück zur Bücherei gebracht).

Edit:
Der unit-Befehl macht den Abstand von selbst. Hab das jetzt geändert. Möglicherweise ist die mbox{} nicht mehr nötig.

Caveman
19-05-2006, 13:19
@Salnic
Bei \section* ist es klar, aber wie ist es bei \newcommand* ?

Salnic
19-05-2006, 15:44
nachdem ich die Frage nicht richtig gelesen, voreilig geantwortet, sofort wieder gelöscht und mich dann noch dabei erwischen lassen :o habe, hier die richtige Antwort:

\newcommand und \newcommand* unterscheiden sich in den erlaubten Argumenten.

Während man bei der sternlosen Variante alles übergeben kann, dürfen bei der Sternvariante keine Argumente übergeben werden, die absatzüberschreitend Strukturen enthalten (Leerzeile, \par, ...).

Sinn des ganzen ist es, den Latex-Code fehlerresistenter zu gestalten. Mit der Sternvariante kann ein Klammer-Fehler schneller vom Kompiler erkannt werden.

Salnic

dabeckstar
20-05-2006, 15:20
Hallo!

Super, mit mbox funktionierts! \unit lässt leider Zeilenumbruch bei mir zu...

Und das mitm Stern macht hilft auch weiter.

Vielen Dank!

Gruß, Tobias