## 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.