PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : G-Brief - Command \Telefon already defined



droog_22
22-10-2006, 17:21
Guten Tag,

ich benutze das Bsp. der g-brief Klasse von http://www.nitidelo.de/g-brief/g-brief-neu.htm, allerdings fkt. latex2pdf nicht und gibt folgenden Fehler aus: Latex Error: Command \Telefon already defined. Wüsste jmd. wo der Fehler liegt. Der Fehler ist auch vorhanden wenn ich das Feld \Telefon {+49\ 000\ 00000} lösche.

Mfg, Daniel

rais
23-10-2006, 19:33
Moin moin,

ich benutze das Bsp. der g-brief Klasse von http://www.nitidelo.de/g-brief/g-brief-neu.htm, allerdings fkt. latex2pdf nicht und gibt folgenden Fehler aus: Latex Error: Command \Telefon already defined. Wüsste jmd. wo der Fehler liegt. Der Fehler ist auch vorhanden wenn ich das Feld \Telefon {+49\ 000\ 00000} lösche.

also abgesehen davon, daß ich erst noch europs.sty installieren musste, läuft das hier angegebene Beispiel bei mir fehlerfrei durch.
Wenn Du nichts dran verändert hast, stell mal \listfiles an den Anfang und poste die .log-Datei.
MfG,

droog_22
23-10-2006, 19:40
Sorry für das lange Log-File, aber ich finde den Fehler einfach nicht.

D.

rais
23-10-2006, 20:11
Sorry für das lange Log-File, aber ich finde den Fehler einfach nicht.

D.
Hmm, nun ja, das Paket marvosym definiert sich ein Symbol namens \Telefon - und bei Deiner Version [2006/05/11 v2.1] wird das mit \newcommand gemacht (bei meiner alten Version von 2000 noch mit \def, und der wird nicht geprüft)
Eigentlich hätte ich bei Dir eher so etwas wie "Missing \begin{document}" als Fehlermeldung erwartet, solange Du den \Telefon{..} noch drin hattest.

öhem, als zweiten Fehler, versteht sich ;)

Vllt hilft Dir ja scrlttr2 weiter, siehe scrguide.
MfG,

e4d
24-10-2006, 07:07
den Fehler habe ich auch - aber wenn man mit Enter weitergeht, paßt das Ergebnis trotzdem (sowohl mit als auch ohne Telefon)

Fyodor
28-08-2007, 09:52
Hallo Forum!

Seit kurzem tritt bei mir das gleiche Problem auf. Da ich von LaTeX und den LyX-Files keine Ahung habe, habe ich bisher auch die Finger davon gelassen. Ich habe also keine Datei manuell verändert. Die Vorlage lief bisher wunderbar, und tut es auch noch auf meinem Desktop-PC. Allerdings arbeite ich lieber mit meinem Laptop, und dort funktioniert sie eben seit kurzem nicht mehr! Ich muß mir also abhelfen, indem ich das File am Laptop schreibe, am Desktop in PDF ausgeben lassen, und dann das PDF wieder zurück kopiere. Das mit dem Enter-drücken habe ich auch schon ausprobiert, allerdings wird bei mir gar keine Ausgabe angezeigt.

Mit den oben angegebenen Vorschlägen kann ich leider nichts anfangen, da ich wie gesagt keine Ahnung vom System an sich habe. Kann mir jemand für einen Laien verständlich machen, wie ich das Problem behebe?

Vielen Dank schonmal im Voraus, und Cheers,
Fyo

Fyodor
29-08-2007, 08:55
@ rais (oder jemand, der mit dessen Antwort mehr anfangen kann als ich):

Ich habe das File marvosym.sty gefunden, und dort steht auch der Befehl "\newcommand\Telefon{\mvchr{84}}" drin, den LyX bemängelt. Du sagst, daß bei einer älteren Datei das noch mit \dev gemacht wurde... kann ich das einfach manuell ändern? Oder verhalten sich die Befehle doch etwas anders? Wie kann ich das sauberer lösen?

Und hat jemand eine Erklärung, warum das nicht mehr so funktioniert wie es soll, obwohl es vorher tat?!?

Danke und Cheers,
Fyo

countbela666
29-08-2007, 15:34
Hallo, Fyo,

das Problem hier ist die Tatsache, dass der Befehl \Telefon von zwei verschiedenen Paketen definiert wird, die nichts voneinander wissen.

Es gibt mehrere Möglichkeiten, einen solchen Befehl zu definieren. Wird dies mit \newcommand getan, gibt es einen Fehler falls ein gleichnamiger Befehl bereits existiert. Wird der Befehl mit \def definiert, gibt es keinen Fehler, da die Existenz eines gleichnamigen Befehls nicht überprüft und dieser somit überschrieben wird.

Die alte Variante der marvosym.sty hat den Befehl \def benutzt und damit keinen Fehler erzeugt (was jedoch eigentlich schlechteren Stil darstellt), die neue Version hingegen verschluckt sich, da sie den Befehl nicht überschreiben will.

Abhilfe: setze ein \let\Telefon\relax vor \usepackage{marvosym} um den Befehl vor der Neudefinition aufzuheben.

Grüße
Marcel

Fyodor
29-08-2007, 20:17
Vielen Dank für die Hilfe! :)

Ich habe nur ein Problem: Ich nutze LyX (kann also den Code nicht selber schreiben und habe nur rudimentären Überblick), und in der von LyX erzeugten Datei wird das Paket marvosym nicht geladen. über mehrere Umwege habe ich herausgefunden, daß das File g-brief.cls im Folder C:\Programme\texmf\tex\latex\g-brief\ wohl etwas mit meinem Problem zu tun hat. Darin findet sich folgendes:



\IfFileExists{marvosym.sty}
{\RequirePackage{marvosym}}
{}
\def\Telefon#1{\def\telefon{#1}} \def\telefon{}


Der Befehl \usepackage taucht also gar nicht auf, und irgendwas wird mit dem Telefon-Dingsbums ja auch gemacht. Nur was, das verstehe ich nicht... ich bin Maschinenbauer, kein Informatiker :( . Kann ich dort trotzdem den relax-Befehl davor setzen?

Fyodor
30-08-2007, 12:28
Das Problem wurde durch einen User im StudiVZ gelöst. Für Nachfolgende beschreibe ich hier die einfach und schnelle Lösung:

Im File C:\Programme\texmf\tex\latex\g-brief\g-brief.cls (Programmpfad entsprechend anpassen) wird "Telefon" zweimal definiert. Das erste Mal in Zeile 201, das zweite Mal nach Aufruf des Pakets marvosym. Wird die erste Definition einfach auskommentiert, wird das Dokument ohne Warnungen oder Fehler korrekt erzeugt:



200
201 %%\def\Telefon#1{\def\telefon{#1}} \def\telefon{} <-- auskommentiert
202 \def\Telefax#1{\def\telefax{#1}} \def\telefax{}
203 \def\Telex#1{\def\telex{#1}} \def\telex{}
204 \def\EMail#1{\def\email{#1}} \def\email{}
205 \def\HTTP#1{\def\http{#1}} \def\http{}
206