Author: Włodzimierz Macewicz

# Przyczyny kłopotów związanych ze zmianą wartości parametrów składu list

Jeśli chcemy zmienić parametry należy zmienić definicję odpowiedniej makroinstrukcji, ustawianie lokalnie wartości parametru nie spowoduje pożądanych efektów. Ze względu na nieco pokrętny sposób definiowania parametrów możemy mieć kłopoty z ustawieniem wartości nam odpowiadających.

Zdefiniowana makroinstrukcja `\@listi` jest zapamiętywana (makropodstawienie) pod nazwą `\@listI`.

    \def\normalsize{%
    .
    .
    .
    \let\@listi=\@listI
    }
    \def\@listi{%
        .
        .
        .
    }
    \let\@listI=\@listi

Każdorazowa zmiana fontu na `\normalsize` powoduje nadanie makroinstrukcji `\@listi` wartości zapamiętanej w `\@listI`; następuje odtworzenie ciała pierwotnie zdefiniowanej makroinstrukcji (w której są definiowane parametry opisujące skład listy) `\@listi` -- należy zmienić definicję makroinstrukcji `\@listI`, a nie `\@listi` . W przypadku wywołania makroinstrukcji `\small` lub `\footnotesize` jest jeszcze gorzej: makroinstrukcja `\@listi` jest definiowana wewnątrz ww. makroinstrukcji;

    \def\small{%
        .
        .
        \def\@listi{%
          .
          .
          .
          }
    }

tzn. każde użycie `\small` lub `footnotesize` spowoduje ponowne zdefiniowanie `\@listi` definiującej parametry składu list.

Jeśli chcemy mieć wpływ na parametry składu należy utworzyć własną makroinstrukcję `\@listI` oraz `\small` i `\footnotesize` -- będziemy mieli wpływ na skład listy na pierwszym poziomie oraz zdefiniowaă wěasne `\@listii`, `\@listiii` ..., aby nadać własne wartości składu na wyższych stopniach zagnieżdzenia.

Patrz Rozwiązanie problemu modyfikacji parametrów