Zestaw ciekawych makroinstrukcji
Author: Włodzimierz Macewicz
Keywords: tex, latex, makroinstrukcje, pakiety makroinstrukcji, Wirtualna Akademia

## bar

Pakiet LaTeX-a 2.09 dostarcza szeregu makroinstrukcji służących do budowy wykresów słupkowych (wygenerowany materiał ma źle obliczoną wysokość i głębokość -- wskazane jest zanurzyć go w środowisku `picture` i samodzielnie oszacować wymiary)1.

makroinstrukcja | opis
--- | ---
`\begin{barenv}` | otwarcie środowiska
`\bar{wysokość }{indeks }[opis ]` | wysokość -- wysokość słupka; indeks -- numer wzoru wypełniającego słupek; opis -- opis pozycji
`\hlineon` | aktywuje linie poziome (siatka)
`\legend{index }{tekst }` | tekst będzie opisem słupka reprezentowanego wzorem index ; jeżeli wystąpi przynajmniej jedno takie polecenie tworzona jest legenda
`\setdepth{numer }` | liczba określająca głębokość słupka ,,trójwymiarowego'' (>=10)
`\sethspace{stosunek }` | stosunek określa odstęp między słupkami jako część szerokości słupka
`\setlinestyle{style }` | określa sposób drukowania lini tła -- siatki (aktywowanych poleceniem `\hlineon`); możliwe są style `solid` linia ciągła i `dotted` linia kropkowana (wszystkie inne są traktowane jak `dotted`)
`\setnumberpos{pos }` | określa miejsce umieszczenia opisu słupka reprezentującego jego wartość: `empty` bez opisu `axis` nad lub pod osią `X` w zależności o znaku reprezentowanej wartości `down` pod osią (konflikt z opisem nadawanym parametrem poleceia `\bar`) `inside` wewnątrz słupka `outside` poza słupkiem `up` nad słupkiem
`\setprecision{liczba }` | określenie precyzji zapisu liczb na liczba pozycji po przecinku
`\setstretch{mnożnik }` | określa skalę pionową wykresu
`\setstyle{font }` | określenie kroju czcionki napisów (głównie generowanych, a nie podawanych explicite)
`\setwidth{liczba }` | szerokość słupka w punktach (`pt`)
`\setxaxis{w1 }{w2 }{krok }` | definicja opisu osi `X`: w1 -- wartość pierwszej pozycji w2 -- wartość ostatniej pozycji krok -- co ile podawać opis
`\setyaxis[n ]{w1 }{w2 }{krok }` | definicja opisu osi `Y`: w1 wartość pierwszej pozycji w2 wartość ostatniej pozycji krok co ile podawać opis n o ile podnieść podstawę wykresu ponad oś `X` (parametr opcjonalny)
`\setxname[p ]{etykieta }` | nazwa osi `X`, parametr p określa położenie tekstu w pudełku (`l` -- na lewo, `r` -- na prawo, `b` -- dół, `t` -- góra; można specyfikować jednocześnie oba kierunki)
`\setyname[p ]{etykieta }` | nazwa osi `Y` parametr p określa położenie tekstu w pudełku (`l` -- na lewo, `r` -- na prawo, `b` -- dół, `t` -- góra; można specyfikować jednocześnie oba kierunki)
`\setxvaluetyp{typ }` | rodzaj wartości reprezentowanej przez oś `X`; typ może przyjmować następujące wartości: `day` opisem pozycji na osi `X` będą nazwy dni tygodnia `month` opisem pozycji na osi `X` będą nazwy miesięcy2 w pozostałych przypadkach są to wartości liczbowe
`\end{barenv}` | zamknięcie środowiska

Przykład

    \begin{picture}(80,80)(0,0)
    \begin{barenv}
    \setdepth{10}
    \setstretch{1.4}
    \setnumberpos{up}
    \setxvaluetyp{month}
    \setxname{Trymestr}
    \setxaxis{10}{40}{10}
    \setyaxis{0}{40}{10}
    \setyname{Liczba}
    \bar{10}{1}
    \bar{30}{4}
    \bar{15}{6}
    \bar{5}{7}
    \end{barenv}
    \end{picture}

1 W orginalnym pakiecie jest błąd; dla wzoru nr. 7 tekst opisu słupka jest pozycjonowany za wysoko --- poprawiona wersja znajduje się w:
`ftp://IAPW.ia.pw.edu.pl/sys/emtex/texinput/latex2e/contrib/supporte/barcom/bar.sty` (logując się jako GUEST).

2 Ze względu na brak skrótów nazwy miesięcy w języku polskim zastąpiłem je numerami.

Włodzimierz Macewicz

Ostatnie zmiany: 05.05.2014.