xspace

O pakiecie

Pakiet xspace zapobiega pomijaniu niektórych odstępów przez TeXa. Konkretnie, chodzi o odstępy występujące za poleceniami bezargumentowymi.

Z odstępami jest pewien problem, a pomoże to wyjaśnić przykład. Powiedzmy, że w dokumencie zdefiniowano polecenia \cels\fahr na oznaczanie temperatury w dwóch różnych skalach. Jeśli zostaną one użyte w taki sposób:

Temperatura 22\fahr odpowiada 0\cels.

to w składzie zabraknie ważnego odstępu:

Temperatura 22Fodpowiada 0C.

Dzięki pakietowi xspace ten odstęp nie zostanie zgubiony.

Także bez uciekania się do pakietu xspace są sposoby na niegubienie odstępów. Odbywa się to jednak kosztem mniej wygodnego zapisu, z użyciem nawiasów klamrowych:

Temperatura 22\fahr{} odpowiada 0\cels.

albo polecenia wymuszającego odstęp:

Temperatura 22\fahr\ odpowiada 0\cels.

Polecenia

 

Użycie pakietu deklarujemy poleceniem:

\usepackage{xspace}

Ponieważ pakiet ten ingeruje w interpretację znaków blisko podstawowego poziomu TeXa, dobrze jest umieścić deklarację jego użycia za deklaracjami dla innych pakietów – zapobiegnie to ewentualnej kolizji w interpretacji znaków przez różne pakiety.

Najważniejsze w pakiecie xspace jest polecenie \xspace. Należy je wstawić na końcu definicji polecenia bezargumentowego. W wypadku poleceń \cels\fahr będzie to tak:

\newcommand{\cels}{$^\circ$C\xspace}
\newcommand{\fahr}{$^\circ$F\xspace}

Implementacja pakietu xspace analizuje znak występujący bezpośrednio za poleceniem bezargumentowym. Jeśli jest to odstęp bądź nowa linia, to pakiet wstawia odstęp do składu. Jeśli jest to znak widoczny, na przykład kropka albo przecinek, to odstęp nie jest wstawiany.

Są sytuacje, w których wstawienie odstępu przez xspace jest niepożądane. Twórcy pakietu przewidzieli to i umożliwili tworzenie listy wyjątków. Służy do tego polecenie \xspaceaddexceptions. Można go użyć w preambule dokumentu, podając w argumencie listę makropoleceń lub znaków, które mają być pomijane przez procedurę wstawiania odstępów. Oto przykład z dokumentacji pakietu:

\xspaceaddexceptions{\footnoteA \footnoteB}

W tym przykładzie \footnoteA\footnoteB to hipotetyczne polecenia wstawiania przypisów różnych rodzajów.

 

Przetestuj

 

\documentclass[12pt]{article}
\usepackage{xspace}
\newcommand{\cels}{$^\circ$C\xspace}
\newcommand{\fahr}{$^\circ$F\xspace}
\begin{document}
Temperatura 22\fahr odpowiada 0\cels.
\end{document}

xspace

Kompilacja

  • latex
  • pdflatex

Pobierz

(Przygotował: Ryszard Kubiak)

SIunits

O pakiecie

Cechą charakterystyczna wszystkich chyba prac technicznych jest używanie tak zwanych jednostek (albo wielkości mianowanych): 1 cm, 1 m, 1 km/h… Pojawiają się one wszędzie: we wzorach, w tekście i na rysunkach (o tych ostatnich nie będę teraz dyskutował).

Jak to składać? Na ogół Autor ma niewielkie o tym pojęcie i radzi sobie jak umie. Najczęściej źle. W jednym tekście można znaleźć praktycznie wszystko:
$a = 1 m$ albo $a = 1m$
$a = 1$m albo $a = 1$ m
1 m labo 1m
1 $m$ albo 1$m$
1 $[m]$
A już składanie znaku stopnia to absolutne szaleństwo. Widziałem już wszystko:
1$\circ$ 1$^o$ 1$^0$ (tu użyto zera) czy 1$^O$ (a tu literki „duże o”).

Tymczasem pakiet SIunits bardzo ładnie definiuje wszystkie powszechnie używane jednostki tak z układu SI jak i z poza niego, oraz pozwala na definiowanie swoich własnych.

Podstawowe polecenia

Deklaracja użycia pakietu:

\usepackage{SIunits}

Podstawowe użycie jest banalnie proste.

Metr na sekundę (po angielsku metre per second) zapisujemy dosyć bezpośrednio

\metre\per\second

Metr na sekundę do kwadratu (jednostka przyśpieszenia) to

\metre\per\second\squared

Mega Pascal to

\mega\pascal

a kilo Newton to

\kilo\newton

natomiast mikro Volt to

\micro\volt

Kilometr to

\kilo\metre

Wszystko działa poprawnie i w trybie tekstowym i w trybie matematycznym, jednostki składane są fontem prostym, tak jak trzeba.

Dodatkowo jest też polecenie \unit o dwu argumentach:

\unit{1}{\metre\per\second}

które spowoduje, że jednostka zostanie dodana do jedynki z małym odstępem. Żeby złożyć temperaturę (30 stopni Celsjusza) użyjemy

\unit{30}{\degreecelsius}

(30 °C).

Można też złożyć jakiś kąt

\unit{30}{\degree}

(30°), ale w tym przypadku małe kółeczko pojawi się tuż za liczbą, w pierwszym przypadku jednostka będzie oddzielona odstępem.

Dodatkowe polecenie \usk służy do wyróżnionego oddzielenia jednostek:

\newton\usk\metre

to N m (niutono-metr).

Przetestuj

siunits

 

OPEN

Pobierz

Paczka w CTAN
Dokumentacja EN 

(przygotował: Wojciech Myszka)

ellipsis

O pakiecie

Pakiet modyfikuje polecenie \dots, ulepszając nieco jego działanie. Użycie pakietu ellipsis sprawia, że odstępy pomiędzy kropkami w wielokropku oraz odstęp samego wielokropka od otaczających go słów są lepiej ustalane. Standardowo zwiększana jest odległość między kropkami, a zmniejszana odległość przed konstrukcją. Co więcej, jeżeli bezpośrednio po konstrukcji wystąpi jeden ze znaków , . : ; ! ? to automatycznie zwiększana jest odległość po (wykorzystywany jest pakiet xspace).
Pakiet pozwala również na domyślne ujęcie wszystkich użytych wielokropków w nawias kwadratowy.

Polecenia

Użycie pakietu deklarujemy poleceniem \usepackage{ellipsis}.

Poniższa ilustracja przedstawia różnice w standardowym działaniu polecenia \dots a działaniu tego polecenia z wykorzstaniem pakietu ellipsis (żółte pole).

ellipsis_vs_dots

Opcja mla dodana do deklaracji użycia pakietu (\usepackage[mla]{ellipsis}) powoduje że ,,trójkropek” będzie ujęty w nawiasy [ ].

ellipsis_mla

Za odległość między kropkami odpowiada makroinstrukcja \ellipsisgap (jej rozwinięciem musi być długość) np. \renewcommand{\ellipsisgap}{0.1em}

Przetestuj

 \documentclass{article}
 \usepackage{ellipsis}
 \begin{document}
 Lorem ipsum\dots dolor sit amet, consectetur adipiscing elit\dots?
 Nulla ullamcorper\dots{} feugiat elit, ut adipiscing nulla vulputate eget. Fusce convallis enim ligula, viverra aliquam leo commodo ac.
 \renewcommand{\ellipsisgap}{0.3em}
 Nulla ullamcorper\dots{} feugiat elit, ut adipiscing nulla vulputate eget. Fusce convallis enim ligula, viverra aliquam leo commodo ac.
 \end{document}

Rezultat

ellipsis

Pobierz

OPEN

(przygotował: Włodzimierz Macewicz, redakcja: PŁ)