Hallo!

Idee ist es einen Strich zu erzeugen, der exakt die Breite eines vorgegebenen Zeichens hat und auf halber Höhe des Zeichens liegt. Das klappt soweit ganz gut; bloß bleibt ein Problem - ich kann das Kommando dafür nicht mehrfach anwenden - Fehlermeldung \Hoehe already defined.

Ich habe versucht, den Kommandoinhalt zu gruppieren, leider ohne Erfolg. Das kann man doch jetzt sicher leicht beheben :() ?

Ich hoffe, es sind keine fundamentalen Änderungen des Codes nötig :() Danke!

alt text

Open in writeLaTeX
\documentclass[11pt, a4paper, ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
 \parindent0pt 
\usepackage{amsmath}

\usepackage{calc}
\usepackage{tikz}

\newcommand{\xStrich}[1]{\bgroup
% Zeichenmaße messen  mit calc-Paket
%Höhe
\newlength{\Hoehe}
%\settototalheight{\Hoehe}{#1}
\settoheight{\Hoehe}{#1}
%Breite
\newlength{\Breite}
\settowidth{\Breite}{#1}
%
\mathord{
\begin{tikzpicture}[baseline=0ex, line width=0.5pt, scale=1] 
\draw[shorten <=0.0ex, shorten >=0.0ex] (-\Breite/2,\Hoehe/2) -- (\Breite/2,\Hoehe/2);
\end{tikzpicture}
}
\egroup}

\begin{document}

$\xStrich{a}$  $a$% GEHT
%$(\xStrich{a}, \xStrich{b})$  $(a,b)$ % GEHT NICHT!!!!!

\end{document}

gefragt 05 Jun '14, 18:45

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 05 Jun '14, 20:19

cgnieder's gravatar image

cgnieder
22.1k253463

Ah, ich bin so doof - es darf einfach \newlength{\Hoehe} \newlength{\Breite} NICHT mit ins Kommand :()

(05 Jun '14, 18:54) cis

Bei jedem Aufruf von \xStrich werden durch Deinen Code \Hoehe und \Breite neu definiert, weshalb spätestens beim zweiten Aufruf eine Fehlermeldung kommt. Lösung: setze

Open in writeLaTeX
\newlength{\Hoehe}
\newlength{\Breite}

außerhalb der Definition von \xStrich:

Open in writeLaTeX
\newlength{\Hoehe}
\newlength{\Breite}
\newcommand{\xStrich}...

Ich würde außerdem statt \bgroup und \egroup lieber \begingroup und \endgroup verwenden (auch wenn es für Deine Anwendung wahrscheinlich egal ist. Ich würde auch noch ein paar Zeilenenden mit % verstecken, obwohl auch das egal ist, wenn Du den Befehl nur im Mathemodus einsetzt, wo Leerzeichen ja nicht gesetzt werden.

Permanenter link

beantwortet 05 Jun '14, 20:18

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

Ist mir kurz nach dem Post auch klar geworden, daß die Definitionen nicht ins Kommando gehören (siehe mein Kommentar). Da sich aber möglicherweise schon Leute Gedanken zur Frage gemacht hatten, wollte ich sie auch nicht einfach wieder löschen ;)

(05 Jun '14, 21:01) cis
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×52
×20

gestellte Frage: 05 Jun '14, 18:45

Frage wurde gesehen: 8,959 Mal

zuletzt geändert: 05 Jun '14, 21:01