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[]{w1 }{w2 }{krok } definicja opisu osi Y:
w1 
wartość pierwszej pozycji
w2 
wartość ostatniej pozycji
krok 
co ile podawać opis
o ile podnieść podstawę wykresu ponad oś X (parametr opcjonalny)
\setxname[]{etykieta } nazwa osi X, parametr 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[]{etykieta } nazwa osi Y parametr 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.