Banalny dokument:
\documentclass[a4page]{book} \usepackage{fontspec} %<-- włącza LM wymaga xetexa \begin{document} Hopla \end{document}
Przy kompilacji XeLaTeXem (fontspec
nie działa ze zwykłym LaTeXem) spowodował
komunikat o brakującym pakiecie expl3.sty
oraz xparse.sty
.
[Używam TL2010 a konkretnie tzw. GUST scheme, zainstalowane poprzez WWW.]
Aby dociągnąć brakujące pakiety
skorzystałem po raz pierwszy w życiu z tlmgr
.
$ tlmgr search --global expl3 tlmgr: package repository http://dante.ctan.org/tex-archive/systems/texlive/tlnet expl3 - Packages supporting LaTeX3 programming conventions. siunitx - A comprehensive (SI) units package. unicode-math - Unicode mathematics support for XeTeX and LuaTeX. xpackages - High-level LaTeX3 concepts. $ tlmgr search --global xparse tlmgr: package repository http://dante.ctan.org/tex-archive/systems/texlive/tlnet xpackages - High-level LaTeX3 concepts. $ tlmgr install expl3 tlmgr: package repository http://dante.ctan.org/tex-archive/systems/texlive/tlnet [1/1, ??:??/??:??] install: expl3 [2513k] tlmgr: package log updated at /usr/local/texlive/2010/texmf-var/web2c/tlmgr.log running mktexlsr ... done running mktexlsr. $ tlmgr install xpackages tlmgr: package repository http://dante.ctan.org/tex-archive/systems/texlive/tlnet [1/1, ??:??/??:??] install: xpackages [2401k] tlmgr: package log updated at /usr/local/texlive/2010/texmf-var/web2c/tlmgr.log running mktexlsr ... done running mktexlsr.
Do wpisywania literalnych fragmentów tekstu używam otoczenia
Verbatim
z pakietu fancyvrb
. Otoczenie to m.in. może
być wstawione do przypisu oraz jest możliwość umieszczania
w tekście literalnym poleceń formatujących. To drugie przydaje się przykładowo w sytuacji
gdy w opisie składni jakiegoś języka pewne fragmenty są meta, tj. nie należy
przepisywać ich literalnie ale oznaczają pewne pojęcia (jak dajmy na to
element replaceable
wewnątrz
literallayout
w Docbook), przykładowo:
\begin{list}{punktor}{deklaracje} zestawienie \end{list}
Można wpisać:
\begin{Verbatim}[commandchars=@\{\}] \begin{list}{@emph{punktor}}{@emph{deklaracje}} @emph{zestawienie} \end{list}
Jeżeli fragmenty literalne mają być mniejsze
to można dopisać po przecinku fontsize=\small
. Inną potencjalnie
przydatną opcją jest numerowanie wierszy:
\begin{Verbatim}[commandchars=@{},fontsize=\small,numbers=left] \begin{list}{@emph{punktor}}{@emph{deklaracje}} @emph{zestawienie} \end{list}
Numery nie muszą się zaczynać od 1. Opcja firstnumber
pozwala
na kontynuację. Można w szczególności wpisać firstnumber=last
i numerowanie rozpocznie się od wartości o 1 większej niż ostatni wiersz
w poprzednim otoczeniu Verbatim
.
Można też wykorzystując polecenie \fvset
zdefiniować
powtarzające się opcje globalnie a nie wpisywać je za każdym razem:
\usepackage{fancyvrb} \VerbatimFootnotes % <-- verbatim można umieszczać w przypisie \DefineShortVerb{\"} % <-- krótka forma zapisu "foo" zamiast \verb@foo@ \fvset{commandchars=¤´˝} \makeatactive \newenvironment{literalexample}{\begingroup \endgraf \small \medskip \Verbatim}% {\endVerbatim \par \medskip \endgroup \@doendpe } \makeatother \begin{document} \begin{literalexample} \@startsection{¤emph´nazwa˝}{¤emph´poziom˝}{¤emph´wcięcie˝}{¤emph´odstęp-przed˝}{¤emph´odstęp-po˝}{¤emph´styl˝} \end{literalexample}
W powyższym przykładzie \@doendpe
powoduje, że
w pierwszym akapicie po otoczeniu literalexample
nie będzie wcięcia.
\Verbatim
i \endVerbatim
,
to otoczenie Verbatim
zapisane w postaci pary poleceń (każde otoczenie LaTeXa można
zapisać jako
\Otoczenie
i \endOtoczenie
.
Ponieważ w kodzie LaTeXa praktycznie występują wszystkie znaki z klawiatury
jako commandchars zastosowałem znaczki z górnej połówki ASCII:
¤
(dziesiętnie 164) ´
(180) oraz ˝
(189).
Można by stosować np. ¤{}
, ale wolałem nie używać {}
w roli ograniczników do ¤
, żeby mi się nie mieszało z nawiasami
klamrowymi wstawionymi literalnie.
Teraz większy przykład, jak to działa
%& --translate-file=il2-pl \documentclass[a4page]{book} \usepackage{fancyvrb} \fvset{commandchars=¤´˝} \usepackage{polski} \begin{document} \begin{Verbatim} \begin{list}{¤emph´punktor˝}{¤emph´deklaracje˝} ¤emph´zestawienie˝ \end{list} \end{Verbatim} \end{document}
Znaczki ¤´
oraz ˝
wstawiam w Emacsie wciskając
C-c [
oraz C-c ]
.
W tym celu w .emacs
zdefiniowałem co następuje:
(defun insert-commandchars-open () "Insert sequence of characters character 164-180" (interactive) (insert "¤emph´") ) (defun insert-commandchars-close () "Insert sequence of characters character 189" (interactive) (insert "˝") ) (global-set-key "\C-c\C-[" 'insert-commandchars-open) (global-set-key "\C-c\C-]" 'insert-commandchars-close)
Teraz jeżeli byśmy na-rympał chcieli to używać z opcją utf-8
albo latin2
pakietu inputenc
, to no-way:
\documentclass[a4page]{book} \usepackage[utf8]{inputenc} \usepackage{lmodern} \usepackage[T1]{fontenc} \usepackage{fancyvrb} \fvset{commandchars=¤´˝} \usepackage{polski} \begin{document} \begin{Verbatim} \begin{list}{¤emph´punktor˝}{¤emph´deklaracje˝} ¤emph´zestawienie˝ \end{list} \end{Verbatim} \end{document}
LaTeX zgłasza błąd:
! Package inputenc Error: Keyboard character used is undefined
BTW: zapewne \fvset{commandchars=@\{\}}
zadziała, ale nie
chce mi się sprawdzać...
Można spróbować też XeTeXa:
\documentclass[a4page]{book} \usepackage{fontspec} %<-- włącza LM wymaga xetexa \usepackage{fancyvrb} \fvset{commandchars=¤´˝} \usepackage{polski} \begin{document} \begin{Verbatim} \begin{list}{¤emph´punktor˝}{¤emph´deklaracje˝} ¤emph´zestawienie˝ \end{list} \end{Verbatim} \end{document}
Działa...
Dokumentacja do pakietu fancyhdr jest taka sobie więc poniżej krótka instrukcja jak się nim posługiwać
W pakiecie fancyhdr pagina jest dzielona na trzy części:
lewą (L
), środkową (C
) i prawą (R
).
Układa graficzny paginy może być odzielnie definiowany dla
stron parzystych (E
) oraz nieparzystych (O
).
Polecenie fancyhead
pozwala na definiowanie zawartości tych
części za pomocą opcjonalnego argumentu, przykładowo:
\fancyhead[LE,RO]{...} %% lewy-na-parzystej oraz prawy-na-nieparzystej \fancyhead[RE]{...} %% prawy-na-parzystej
Dopuszczalna jest oczywiście każda kombinacja obszar-paginy--strona.
W stylu fancy
domyślnie kreślone są kreski: pod paginą górną
o grubości równej \headrulewidth
(domyślnie o grubości 0,4 pt) oraz nad paginą
dolną o grubości równej \footrulewidth
(domyślnie 0 pt).
Typowa pagina ma na zewnętrznych marginesach (LE
, RO
) numery
stron , a na wewnętrznych (LO
, RE
)
tytuł chapter/section.
Taki sposób formatowania można osiągnąć
stosując poniższe deklaracje:
\pagestyle{fancy} %% deklarujemy styl "fancy" \fancyhead{} \fancyfoot{} %% "zresetuj" zawartość pagin \renewcommand{\chaptermark}[1]{\markboth{#1}{}} \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} \fancyhead[LE,RO]{\normalfont \small \thepage} \fancyhead[LO]{\normalfont \small \itshape \rightmark} \fancyhead[RE]{\normalfont \small \itshape \leftmark} \fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}} %% ustaw paginy dla stylu plain
Na stronach tytułowych rozdziałów LaTeX wykonuje
\pagestyle{plain}
, w wyniku czego -- czy tego chcemy czy nie -- wstawiany jest w paginie dolnej
numer strony. Deklaracja \fancypagestyle{plain}
dotyczy właśnie stron z zadeklarowanym
standardowym stylem plain
(np. stron z tytułami rozdziałów).
Dla takich stron: \fancyhead{}
,,resetuje paginy''
a \headrulewidth
usuwa kreskę.