2010-04-20 7 views
6

Kiedy deklaruję opcję zawierającą spację, LaTeX/XeLaTeX je.Jak przekazać opcję zawierającą spację do pakietu w LaTeX/XeLaTeX

W głównym .tex, mam:

\usepackage[test font]{test} 

W moim .sty pliku mam:

\DeclareOption*{\newfontfamily\testfont[Scale=1]{\CurrentOption}} 
\ProcessOptions 

Ale silnik Tex przechodzi do pakietu testfont opcji a nie testowa czcionka.

Pytanie więc, jak przekazać opcję zawierającą spację do paczki.

Odpowiedz

1

Spróbuj


\catcode`\ =11 
\usepackage[test font]{test} 
\catcode`\ =10 

Jest całkiem prawdopodobne, by upaść, ale awaria może być postęp na tym, co mamy do tej pory.

+1

Tak to nie uda, ale z niewielką zmianą będzie to skompilować bez błędów: w pliku .tex \ catcode' \ = 11 \ usepackage [font Test ] {} Test iw pliku .sty \ DeclareOption * {\ typeout {Co jest \ CurrentOption}} \ ProcessOptions \ catcode' \ = 10 problemem jest, że przeniesienie pierwszego kota kod w pliku .sty nie działa. – anno

6

chronić je z szelkami

\usepackage[{test font}]{test} 
+0

Nie działa i nie jest akceptowalnym rozwiązaniem. – anno

+0

ja zapominając, że chcesz rzeczywiście potrzebne są dwa komplety szelek tutaj: \ DocumentClass {article} \ begin { filecontents} {test.sty} \ def \ Opcje {} \ DeclareOption * {% \ edef \ Opcje {\ Opcje \ CurrentOption} \ AtBeginDocument {\ Opcje} } \ ProcessOptions \ end {filecontents} \ usepackage [{{opcja tutaj}}] {Test} \ begin {document} \ końca {document} Niestety, jądro usuwa przestrzeń przed pakietem. Typową alternatywą nie jest pobieranie danych podczas ładowania pakietu, ale posiadanie skonfigurowanego makra, które przetwarza rzeczy po załadowaniu. Dzięki temu unika się utraty przestrzeni. –

+1

Tak, z 2 nawiasami klamrowymi działa, ale nie mogę prosić użytkownika o zrobienie tego. – anno

Powiązane problemy