Seite 1 von 3

Typesetting langer Variablennamen im Normal- und Mathemodus

Verfasst: Mi 21. Jul 2010, 20:02
von pooz
Hi,

ich würde gerne wissen, wie das korrekte Typesetting für lange Variablennamen in LaTeX ist (also Variablennamen länger als 1 Zeichen). Sowohl im Mathemodus, als auch im normalen Fließtext, wenn man Bezug auf den Variablennamen nimmt.

z.B. mit der Variablen "env"
		\begin{equation}
		u = x \cdot env
		\end{equation}

wobei die Variable $env$ ist die Einhüllende ist.
Wie würde es "korrekt" aussehen?
Vielen Dank!

Verfasst: Mi 21. Jul 2010, 21:22
von iTob
Ich weiß nicht, ob es dafür ne Regel gibt, aber ich würde mir einen Befehl definieren, um die Buchstaben zu einer Einheit zusammenzufassen, vielleicht so:
\documentclass{report}
\usepackage[latin1]{inputenc}
\usepackage{amsmath, textcomp}
% neuer Befehl für lange Variablennamen
\newcommand{\lvar}[1]{\ensuremath\mathit{#1}}

\begin{document}
Anwendung mit
\begin{equation}
c + \lvar{env} \neq c + e \cdot n \cdot v
\end{equation}
Verweis im Text mit $\lvar{env}$.
\end{document}
Dann könntest du ggf. (im Nachhinein) die Darstellung, z.B. als serifenlos, global ändern.

Diese Lösung macht optisch keinen Unterschied, weiß ich. Wie wird es denn in Büchern sonst dargestellt?
Der Leser muss halt wissen, dass es längere Variablen gibt, damit er env nicht als e*n*v liest...

LG
Tobi[/code]

Verfasst: Mi 21. Jul 2010, 21:44
von iTob
Hier noch eine zweite Version, in der zusätzlich der Buchstabenabstand etwas verringert wird:
\documentclass{report}
\usepackage[latin1]{inputenc}
\usepackage{amsmath, textcomp, soul}
%\usepackege{txfonts}
%Befehl um Laufweite (=Buchstabenabstand) zu verringern
%evtl. mit dem Wert -0,11em experimentieren
\sodef\eng{}{-0.13em}{0em}{0em}
% neuer Befehl für lange Variablennamen
\newcommand{\lvar}[1]{\ensuremath\mathit{\eng{#1}}}

\begin{document}
\section*{lange Variablen}
Anwendung in (abgesetzten) Formeln, zweite Version, mit
verringerter Laufweite für lange Variablennamen
\begin{equation}
e \cdot n \cdot v \neq \lvar{env} \neq env = e \cdot n \cdot v 
\end{equation}
Verweis im Text mit $\lvar{env}$.

Der Wert für die Laufweite muss für die Schriftart angepasst werden!
Deutlich zu sehen, wenn \texttt{\textbackslash usepackege\{txfonts\}}
eingeschaltet wird.
\end{document}
Ich weiß allerdings nicht, ob man das wirklich so machen sollte! Ich hab' einfach ins Blaue rumprobiert...

Verfasst: Mi 21. Jul 2010, 22:09
von pooz
Danke, Tobi,

für deine praktischen Beispiele.

Meine Idee für lange Variablennamen wäre gewesen, diese nicht in "kursiv" zu schreiben, d.h. mittels
\text{env}
in eine "gerade" Form zu bringen. Auf die Idee bin ich gekommen, da Funktionsnamen auch so gedruckt werden, wie
$\sin$  
%statt 
$sin$

oder wie auch lange Indizes gebildet werden:
$x_\text{env}$
statt
$x_{env}$

Verfasst: Mi 21. Jul 2010, 22:36
von iTob
pooz hat geschrieben:Danke, Tobi,

für deine praktischen Beispiele.

Meine Idee für lange Variablennamen wäre gewesen, diese nicht in "kursiv" zu schreiben, d.h. mittels
\text{env}
in eine "gerade" Form zu bringen. Auf die Idee bin ich gekommen, da Funktionsnamen auch so gedruckt werden,
Eben das ist das Problem ;-) env ist eine Variable und KEIN Funktionsname...
und Variablen werden gemeinhin kursiv gesetzt.

und Indizes werden nicht grundsätzlich mit \text{} gemacht.
Wenn der Index eine Laufindex ist, ist er Kursiv (weil Variabel), ist er dagegen beschreibend, wird der er aufrecht gesetzt.
Beispiel:
K = \sum_{i=1}^n k_i, Eigenwerte: \lambda_i
% im Gegensatz zu
v_\text{max}, \alpha_\text{tot}, I_\text{R}, U_\text{Lampe} 

Verfasst: Mi 21. Jul 2010, 23:07
von nfa019
Ist dieses $env$ eigentlich eine Standardbezeichnung oder eine eigene Erfindung? Ich kann mich erinnern, mal mit jemandem was zusammen geschrieben zu haben, der sich partout nicht auf Variablennamen einlassen wollte, der mehr als 1 Buchstaben hatte (was dann zu eher kryptischen Bezeichnungen führte :)). Um späteren Diskussionen aus dem Weg zu gehen, sollte man sich so einen Variablennamen deshalb gut überlegt haben.

Verfasst: Mi 21. Jul 2010, 23:40
von pooz
iTob hat geschrieben: Eben das ist das Problem ;-) env ist eine Variable und KEIN Funktionsname...
und Variablen werden gemeinhin kursiv gesetzt.

und Indizes werden nicht grundsätzlich mit \text{} gemacht.
Wenn der Index eine Laufindex ist, ist er Kursiv (weil Variabel), ist er dagegen beschreibend, wird der er aufrecht gesetzt.
Ist der Standard für "korrektes" Typesetting?

Falls ja, wie unterscheidet man nun "env" von "e*n*v", denn in deinem 1. Beispiel ist - wie du erwähnst - optisch kein Unterschied und im 2. Beispiel erwähnst du, dass du nicht sicher bist, ob man das so machen sollte.

@nfa019
"env" ist ein eigener Name, den ich als Kurzform für "Envelope" (Einhüllende) in Matlab gewählt habe.

Verfasst: Do 22. Jul 2010, 00:18
von iTob
Ich hab keine Ahnung, wie man das Unterscheidet, in 2 Semestern Physikstudium und einem abgreborchenen ersten Semester Mathe ist mir noch nie eine Variable begegnet, die mehr als einen Buchstaben hatte...

Wenn env (oder Ähnliches) nicht in irgendeinem Fachgebiet üblich ist, sndern du dir das selbst ausgedacht hast, würde ich es nicht verwenden, weil eben schwer zu unterscheiden ist, was gemeint ist.
nimm lieber nur einen Buchstaben und erläutere, was du damit meinst.

Andernfalls könntest du zu beginn des Dokumentes erklären, dass du entgegen der Lesegewohnheiten/Konventionen/... eine Kombination aus mehreren Buchstaben immer als eine Variable meinst und Multiplikationen ausdrücklich mit Malpunkt angibst (dass müsstest du dann aber Konsequent machen!)
Das finde ich aber eher unglücklich...

Die Einhüllende wird bei Wikipedia mit einem großen H (also $H$) bezeichnet. Du könntest dich auch in der Fachliteratur umsehen, wie sie dort bezeichnet wird.
Und wenn du im Text vorher oder hinterher was schreibt wie »hier sieht man deutlich, dass die Hüllkurve $H$ …« sollte jeder Leser verstehen, was du meinst.
Um was für ein Dokument geht es überhaupt?

Achso und zu deiner Frage ob das aus dem Vorhergehenden Post der Standard ist: Weiß ich nicht, aber ich finde es macht Sinn und in anständig gesetzten Büchern wird es auch so gemacht.
Hier und hier wird es so gesagt. Es scheint durch die DIN 1338 geregelt zu sein, aber ich finde keine Online-Version, wo man anschauen könnte. In unserer UB gibt's die ebenfalls nicht...

Gute Nacht![/url]

Verfasst: Do 22. Jul 2010, 09:27
von nfa019
pooz hat geschrieben: "env" ist ein eigener Name, den ich als Kurzform für "Envelope" (Einhüllende) in Matlab gewählt habe.
Da dies offensichtlich kein Standard ist (in der engl. Wikipedia wird naheliegender Weise $E$ verwendet), kann ich dir (als altgediente Mathematikerin) wirklich nur empfehlen, eine einbuchstabige Abkürzung zu verwenden, um der Verwechslung mit der Multiplikation einzelner Variabler zu entgehen. Auch wenn du es am Anfang des Dokumentes erklärst, wird es immer Leute geben, die nicht linear lesen und dann verwirrt sind.
Wenn du deinen Formeln auch mal Matlab-Code zur Seite stellst, kannst du immer noch darauf verweisen, dass die entsprechende Variable dort $env$ heißt. Mathematiker sind da eigentlich flexibel :).

Verfasst: Mi 28. Jul 2010, 00:07
von pooz
Vielen Dank für Eure Hilfen.

Ok, ich möchte mit selbstverständlich an Konventionen halten und werde Variablen als Indizes kursiv schreiben, hingegen Konstanten oder beschreibende Indizes aufrecht.

Aber irgendwie geht mir immer noch nicht ganz ein Licht auf:

1.)
Ich mein, mein Matlab-Code ist gut lesbar, da ich eindeutige und nicht einbuchstabige Variablennamen verwende, wie z.B.
env = ... % envelope
xFrame =... % a frame of input signal x
err = ... % error signal 
und daher dachte ich, dass ich in meiner schriftlichen Ausarbeitung diese Namen fortführe, wenn ich das in einen mathematischen Zusammenhang bringen möchte.
Ich mein, ich kann ja nicht alles in meiner schiftlichen Ausarbeitung dann auf einen Buchstaben "herunterbrechen", oder? Was schlagt ihr vor für "x: input signal" und "xFrame: Frames of input signal x" ?

2.a)
Wenn ich in Matlab ein Array/Vektor der Länge L namens "e" habe, wie würde es dann korrekt in mathematischer Notation aufgeschrieben werden?
Also:
  • * als Funktion, e(n) ?
    * als Vektor \vec e ?
    * fett+kursiv \boldsymbol{e} ?
2.b)
Und würde die Schreibweise sein, wenn sich der Vektor "e" in jeder Iteration ändert und somit L neue Werte jedesmal erhält?

Danke für die Hilfe, ich hoffe, ihr könnt mir Licht ins Dunkle bringen :-)