Seite 1 von 1

proviedecaptionname in eigenem Paket - Standarsprache festl.

Verfasst: Di 17. Aug 2010, 14:39
von iTob
Hallo,

ich würde gerne mit
\providecaptionname{ngerman}{\word}{deutsches Wort}
\providecaptionname{english}{\word}{english word}
verschiedene Sprachabhängige Bezeichner in meinem Paket zur Verfügung stellen.
Das Problem ist, dass ich natürlich nicht alle babel-Sprachen kann und einbauen will, sondern erstmal nur Englisch und Deutsch.
Was ist aber, wenn jemand mein Paket in Frankreich benutzt und babel nur mit der Option french lädt. Dann bekomme er einen Fehler, weil weder englisch noch ngerman geladen wurden.
Gibt es eine Möglichkeit festzulegen, dass wenn eine, meinem Paket unbekannte Sprache, geladen wird, festzulegen, dass dann English als Standart verwendet wird, solange der Nutzer die Bezeichner nicht selbst erstellt.

Ich habe schon versucht, mit PassOptionsToPackage die Option english an babel weiterzugeben, aber ohne Erfolg.

Vielen Dank und Grüße!
Tobi

PS: Das Kapitel im KOMA-Buch hab ich gelesen, aber darin keine Lösung gefunden...

Verfasst: Di 17. Aug 2010, 14:56
von Nerd 032F
Definiere einfach zuvor
\providecommand*{\word}{In der Default-Sprache (in der Regel Englisch}
Das wird dann automatisch beim Laden einer Sprache (i. d. R. während \begin{document}) entsprechend überschrieben.

Ich würde übrigens die ganzen \providecaptionname ebenfalls mit \AtBeginDocument auf nach \begin{document} verzögern. Jedenfalls macht Markus das in scrlttr2.cls selbst auch so:
\AtBeginDocument{%
...
  \providecaptionname{english}\yourrefname{Your ref.}%
  \providecaptionname{english}\yourmailname{Your letter of}%
...
}
Ich glaube, das macht er so, damit das ganze auch funktioniert, wenn babel erst später geladen wird (was bei einer Klasse ja immer der Fall ist).

Verfasst: Di 17. Aug 2010, 14:59
von Nerd 032F
Nachtrag: In scrjura.sty macht Markus das so:
\AtBeginDocument{%
  \providecaptionname{german}\parname{Absatz}%
  \providecaptionname{german}\parshortname{Abs.}%
  \providecaptionname{german}\sentencename{Satz}%
  \providecaptionname{german}\sentenceshortname{S.}%
  \providecaptionname{ngerman}\parname{Absatz}%
  \providecaptionname{ngerman}\parshortname{Abs.}%
  \providecaptionname{ngerman}\sentencename{Satz}%
  \providecaptionname{ngerman}\sentenceshortname{S.}%
}
\providecommand*{\parname}{\scrjura@lang@error{\parname}}
\providecommand*{\parshortname}{\scrjura@lang@error{\parshortname}}
\providecommand*{\sentencename}{\scrjura@lang@error{\sentencename}}
\providecommand*{\sentenceshortname}{\scrjura@lang@error{\sentenceshortname}}
\newcommand*{\scrjura@lang@error}[1]{%
  \PackageErrorNoLine{scrjura}{%
    current language not supported%
  }{%
    Currently scrjura only supports languages ``german'' and
    ``ngerman''.\MessageBreak
    It seems, that you are using another language (maybe
    \languagename).\MessageBreak
    Because of this you have to define \string#1\space by
    yourself!\MessageBreak
    It would be nice if you'll send your definitions to the author.%
  }%
  \textbf{??}%
}

Verfasst: Di 17. Aug 2010, 16:02
von iTob
Super,

danke dir für die schnelle Antwort :-)

Tobi