Laboratorium 7
Sylabus: laboratorium 7
• Praca z procesorem tekstu LaTeX.
LaTeX
Należy stworzyć dokument zawierający:
• rozdziały i podrozdziały
• tabele
• rysunek z wklejoną grafiką z pliku graficznego
• rysunek stworzony w pakiecie TiKz
• wzory matematyczne
– wzory kilkulinijkowe z wyrównaniem do znaku „=„
– wzory w środku akapitu tesktu
LaTeX
Dla zaawansowanych należy stworzyć:
• własne definicje funkcji z argumentami np. dla słów kluczowych
• własne środowisko np. dla przykładów
• własny sposób tworzenia nazwy rozdziału
• własne liczniki np. rozdziałów, przykładów itp.
• Napisanie źródła dokumentu: przykład.tex
• Kompilacja dokumentu:
Proces powstawania dokumentu
\documentclass{article}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\begin{document}
\section{Wstęp}
To jest przykładowy dokument napisany w
\LaTeX u.
\end{document}
$ pdflatex przykład.tex
• po uruchomianiu kompilatora, powstają pliki pomocnicze oraz plik docelowy PDF.
cała strona: powiększony fragment:
Proces powstawania dokumentu
• W celu automatyzacji procesu tworzenia, kompilowania, edycji
dokumentów w systemie LaTeX stosuje się dedykowane środowiska.
• Środowisko jest zestawem narzędzi. W szczególności:
– edytorem do tworzenia i edycji pliku źródłowego
• z kolorowaniem składni,
• podpowiadaniem komend,
• automatycznym formatowaniem źródła
– zintegrowany kompilator LaTeX’a uruchamianym jednym przyciskiem
– zintegrowaną przeglądarkę pokazującą na bieżąco tworzony końcowy dokument pdf (lub inny)
Środowiska
Środowisko – online OverLeaf
Środowisko – MacOs TeX2019
Każdy dokument LaTeX składa się z dwóch części:
• perambuły:
• części głównej:
Budowa dokumentu
\documentclass{article}
\usepackage{polski}
\usepackage[utf8]{inputenc}
\begin{document}
\section{Wstęp}
To jest przykładowy dokument napisany w
\LaTeX u.
\end{document}
Perambuła składa się z:
• instrukcji określającej klasę dokumentu:
– article, IEEEtran, proc, report, book, slides, memoire, letter, beamer
• można także dodawać opcje klasy:
– 10pt, 11pt, 12pt, a4paper, b5paper, letterpaper, fleqn, titlepage, twocolumn, twoside, oneside, landscape, openright, openany, draf
Perambuła
\documentclass{article}
\documentclass[12pt,a4paper,oneside,draft]
{report}
Perambuła zawiera instrukcje załączające pakiety poszerzające możliwości LaTeX’a.
• pakiet do odpowiedniego dekodowania znaków:
ponieważ źródło dokumentu może zostać przygotowane w dowolnym edytorze znaki z poza standardowej tablicy ASCII mogą mieć różny sposób kodowania. Aby poprawnie je
odczytać, należy podać sposób w jaki zostały zakodowane.
Pakiety
\usepackage[utf8]{inputenc}
\usepackage[opcje]{nazwa_pakietu}
Aby składać dokument w języku polskim najlepiej dodać pakiet:
– traktuje wszystkie polskie znaki jako poprawne znaki alfabetu,
– składa paragrafy zgodnie z polskimi normami
– dzieli wyrazy na sylaby zgodnie z normami języka polskiego – używa polskich znaków matematycznych
– stosuje polskie podpisy pod środowiskami, rysunek, tabela
Pakiet: polski
\usepackage{polski}
Inne często stosowane pakiety:
– umożliwia dodawanie zdjęć z osobnych plików,
– umożliwia graficzną obróbkę pudełek, obracanie, skalowanie – umożliwia bezpośrednie rysowanie wektorowych obrazków,
diagramów, schematów. Zawiera szereg zaawansowanych funkcji rysujących
– dzieli wyrazy na sylaby zgodnie z normami języka polskiego – zawierają szereg znaków matematycznych
Pakiety przykłady
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{amssymb}
Perambuła zawiera także:
• definicje funkcji (makr)
• definicje zmiennych (liczników)
• definicje środowisk
• funkcje dołączające zewnętrzne pliki, style
Perambuła
\def\ala#1{Ala ma #1.}
\newenvironment{przyklad}[1][]
{\par\medskip\textbf{Przykład:~}}{\medskip\par}
\newcounter{numer_rozdzialu}
Zmiana wyglądu fontu
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\begin{document}
To jest \Large przykładowy {\bf dokument}.
I dalsza część dokumentu.
\end{document}
Podział dokumentu na części
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\begin{document}
\section{Wstęp}
Na wstępie pierwszego rozdziału...
\subsection{Historia zagadnienia}
A było to...
\subsection{Podstawy}
Niech $x$ oznacza...
\section{Podsumowanie}
Podumowując niniejszą pracę...
\subsection{Główne osiągnięcie}
Za najwększe...
\subsubsection{Osiągnięcia teoretyczne}
Jak wiadomo...
\subsubsection{Osiągnięcia praktyczne}
W praktyce skutkuje to...
\end{document}
Definicja makra
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\def\ala{Ala ma kota. }
\begin{document}
To jest \ala przykładowy {\bf dokument. \ala}
I dalsza część dokumentu.
\end{document}
Makro z parametrem
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\def\ala#1{Ala ma {\bf #1}.}
\begin{document}
To jest \ala{kota} przykładowy dokument.
\ala{psa}
I dalsza część dokumentu.
\end{document}
Makro z parametrami
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\def\ala#1#2{Ala ma {\bf #1} oraz {\bf #2}.}
\begin{document}
To jest \ala{kota}{psa} przykładowy dokument.
\ala{psa}{kota} I dalsza część dokumentu.
\end{document}
Funkcja z parametrami
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
%\def\ala#1#2 {Ala ma {\bf #1} oraz {\bf
#2}.}
\newcommand\ala[2]{Ala ma {\bf #1} oraz {\bf
#2}.}
\begin{document}
To jest \ala{kota}{psa} przykładowy dokument.
\ala{psa}{kota} I dalsza część dokumentu.
\end{document}
Makro: puste parametry
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\def\ala#1#2{Ala ma {\bf#1}
\ifx&{i nic więcej.}%
\else{oraz {\bf#2}.}%
\fi}
\begin{document}
\ala{kota}{} Ciąg dalszy dokumentu.
\ala{kota}{psa} I jeszcze więcej tekstu.
\end{document}
Funkcja: parametry opcjonalne
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\newcommand\ala[2][]{Ala ma {\bf#2}
\ifx&{i nic więcej.}%
\else{oraz {\bf#1}.}%
\fi}
\begin{document}
\ala{kota} Ciąg dalszy dokumentu.
\ala[psa]{kota} I jeszcze więcej tekstu.
\ala[]{kota}
\end{document
Funkcja: parametry domyślne
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\newcommand\ala[2][coś jeszcze]{Ala ma {\bf#2}
\ifx&{i nic więcej.}%
\else{oraz {\bf#1}.}%
\fi}
\begin{document}
\ala{kota} Ciąg dalszy dokumentu.
\ala[psa]{kota} I jeszcze więcej tekstu.
\ala[]{kota}
\end{document
Liczniki
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}\usepackage{polski}
\newcounter{numer}
\setcounter{numer}{4}
\begin{document}
\thenumer
\par arabic: \arabic{numer}
\par roman: \roman{numer}, \Roman{numer}
\par alph: \alph{numer}, \Alph{numer}
\end{document}
Liczniki: rozdział
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\newcounter{nroz}
\newcommand\roz[1]
{\stepcounter{nroz}\vspace{20mm}
\par{\bf\Huge\thenroz. #1}\bigskip\par}
\begin{document}
\roz{Wstęp}
Na wstępie pierwszego rozdziału...
\roz{Podsumowanie}
Podumowując niniejszą pracę...
\end{document}
Liczniki: rozdział i podrozdział
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\newcounter{nroz}
\newcommand\roz[1]
{\stepcounter{nroz}\vspace{20mm}
\par{\bf\Huge\thenroz.#1}\bigskip\par}
\newcounter{npodroz}[nroz]
\
renewcommand\thenpodroz{\thenroz.\alph{npodro z}}
\newcommand\podroz[1]{\stepcounter{npodroz}
\bigskip\par\hspace{10mm}
{\bf\Large\thenpodroz) #1}\bigskip\par}
\begin{document}
\roz{Wstęp} Na wstępie pierwszego rozdziału...
\podroz{Historia zagadnienia} A było to...
\podroz{Podstawy} Niech $x$ oznacza...
\roz{Podsumowanie} Podumowując niniejszą pracę...
\podroz{Główne osiągnięcie} Za najwększe...
\podroz{Dalsze prace} W przyszłości należy...
\end{document}
W systemie LaTeX możliwe jest korzystanie z środowisk. Służą one do
tworzenia specjalnego akapitu, rządzącymi się własnymi prawami składania tekstu.
Najczęściej używane to:
• array, • center, • description, • enumerate, • itemize,
• equation, • eqnarray, • flushlef, • flushright, • tabular,
• table, • theorem
Można tworzyć własne środowiska, modyfikować parametry środowisk domyślnych.
Środowiska
Środowiska
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage[textwidth=8cm]{geometry}
\begin{document}
{\bf \huge Środowiska}\\[10mm]
Przykład środowiska itemize:
\begin{itemize}
\item jeden, \item dwa, \item trzy.
\end{itemize}
Przykład środowiska center:
\begin{center}
Ala ma kota.
\end{center}
Przykład środowiska equation:
\begin{equation}
a^2+b^2=c^2
\end{equation}
\end{document}
Środowiska parametry
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage{enumitem}
\def\spis{
\item [Merkury] -- najmniejsza z planet,
\item [Wenus] -- najaśniejsza na niebie
\item [Ziemia] -- rodzima planeta,
\item [Mars] -- najbliższa Ziemi.}
\begin{document}
{\bf \Large Parametry środowisk}\\
[10mm]
Planety układu słonecznego:
\begin{description}
\spis
\end{description}
Planety układu słonecznego:
\begin{description}
[labelwidth=20mm,noitemsep]
\spis\end{description}
\end{document}
Środowiska tworzenie
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage[textwidth=8cm]{geometry}
\def\z{Prawdopodobnie w ciągu pierwszego miliarda lat po uformowaniu się Ziemi w oceanach pojawiło się życie.}
\newenvironment{przyklad}
{ \center
\begin{tabular}{|p{0.6\textwidth}|}
\hline{\textbf{Przykład}}
\\\hline \scriptsize }
%akapit {
\\\hline\end{tabular}\\[2mm]
}
\begin{document} \z
\begin{przyklad} \z \end{przyklad} \z \begin{przyklad} \z \end{przyklad} \z
\end{document}
Środowiska tworzenie, numeracja
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\def\z{Prawdopodobnie ...}
\newcounter{przyklad}[section]
\newenvironment{przyklad}
{
\refstepcounter{przyklad} \center \begin{tabular}{|p{0.6\textwidth}|}
\hline~\hfill
\textbf{Przykład~\thesection.\theprzykla d}
\hfill~\\\hline \scriptsize }
%akapit
{ \\\hline\end{tabular}\\[2mm] }
\begin{document}
\section{Wstęp} \z
\begin{przyklad} \z \end{przyklad}
\z\z
\begin{przyklad} \z \end{przyklad}
\z\z
\section{Kolejny rozdział} \z\z \begin{przyklad} \z \end{przyklad}
\z\z
\end{document}
Są dwa tryby pisania wzorów
• wzory wyróżnione
– pisze się pomiędzy znakami $$ (nienumerowane) – lub w środowisku equation (numerowane)
• wzory w akapicie
– pisze się je pomiędzy pojedynczymi znakami $
– są zwięźlej konstruowane w celu lepszego wkomponowania w linie akapitu
Tryb matematyczny
Tryb matematyczny
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\begin{document}
Wyróżniony wzór:
$$\lim_{n \to \infty} \sum_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6}.$$
Ten sam wzór w akapicie ma pstać:
$\lim_{n \to \infty} \sum_{k=1}^n \frac{1}{k^2} = \frac{\pi^2}{6}.$
\end{document}
W trybie matematycznym (tylko nim) indeks górny poprzedzamy znakiem ^ a indeks dolny znakiem _. Indeksy mogą być dowolnie zagnieżdżone.
Tryb matematyczny: indeksy
\documentclass[12pt]{article}
\begin{document}
$$
^{a}_{b}x^{n}_{i} = {^a_bx^n_i}, \quad x^n_i, \quad {x^n}_i, \quad x^{n_i}, \quad x_k^{n_{(i+1)}}, \quad x^{n^2}, \quad {x^n}^2
$$
\end{document}
Tryb matematyczny: nawiasy
\documentclass{article}
\usepackage{polski}
\begin{document}
$$ \Bigg( \bigg( \Big( \big( (x) \big) \Big) \bigg) \Bigg) $$
$$ \left(\int_0^\infty x \right)=
\left(\int\limits_0^k x \right)$
$
$$|x| = \left\{ \begin{array}{lll}
x & \textrm{gdy} & x\ge0 \\
-x & \textrm{gdy} & x<0
\end{array} \right.$$
$$\mathbf{X} =\left[ \begin{array}
{c}
x_1\\x_2\\\vdots\\x_n
\end{array} \right]$$
\end{document}
Wzory wielowierszowe
\documentclass{article}
\usepackage[textwidth=8cm]
{geometry}
\begin{document}
\begin{eqnarray}
(x+2)^2 & = & (x+2)(x+2)\\
& = & x^2+4x+4 \nonumber
\end{eqnarray}
\begin{equation}
\begin{array}{lll}
(x+2)^2 & = & (x+2)(x+2)\\
& = & x^2+4x+4
\end{array}
\end{equation}
\end{document}
Tabele
• Środowisko {table} tworzy logiczny obiekt tabelki. Posiada on swój opis oraz etykietę. Jest wyodrębniony z tekstu i umieszczony możliwie blisko miejsca odwoływania się do tabeli. Zawiera dowolne dane, zazwyczaj środowisko {tabular}
• Środowisko {tabular} składa akapit w formie tabeli. Może rysować linie
tabeli, łączyć komórki, dowolnie wyrównywać tekst w wierszach, liniach i
komórkach tabeli.
Tabele
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage[textwidth=8cm]{geometry}
\def\z{Prawdopodobnie w ciągu
pierwszego miliarda lat po uformowaniu się Ziemi w oceanach pojawiło się
życie. }
\begin{document}
\z\z\z\z
\begin{table}
\center \caption{pierwsza tabelka}
\label{tab1}
Tu są zazwyczaj dane tabeli\\
umieszczone w środowisku tabular.
\end{table}
\z\z
\begin{tabular}{ccc}
1 & 2 & 3 \\
4 & 5 & 4 \\
\end{tabular}
\z\z
\end{document}
Tabele: wyrównywanie kolumn
\documentclass{article}
\usepackage{dcolumn}
\begin{document}
\begin{tabular}{|l|c|r|r@{}c@{}l|}
\hline
12.3 & 12.3 & 12.3 & 12&.&3\\
1.234 & 1.234 & 1.234 &
1&.&234\\
0.1234 & 0.1234 & 0.1234 &
0&.&1234\\
\hline
\end{tabular}
\begin{tabular}{|l|c|r|D{.}{.}{2.4}|}
\hline
12.3 & 12.3 & 12.3 & 12.3\\
1.234 & 1.234 & 1.234 & 1.234\\
0.1234 & 0.1234 & 0.1234 & 0.1234\\
\hline
\end{tabular}
\end{document}
Tabele: obramowanie
\documentclass{article}
\def\dA{&$0^o$ &$30^o$ &$45^o$ &$60^o$
&$90^o$\\}
\def\dB{sin &$\sqrt{0/4}$ &$\sqrt{1/4}$&
$\sqrt{2/4}$&$\sqrt{3/4}$&$\sqrt{4/4}$\\
cos& $\sqrt{4/4}$
&$\sqrt{3/4}$&$\sqrt{2/4}$
&$\sqrt{1/4}$&$\sqrt{0/4}$\\}
\begin{document}\centering
\begin{tabular}{c|ccccc}
\dA \hline \dB
\end{tabular}\\[10mm]
\begin{tabular}{|cccccc|}
\hline\hline
\dA \dB \hline\hline
\end{tabular}\\[10mm]
\begin{tabular}{||c||c|c|c|c|c||}
\hline\hline \dA \hline
\dB \hline\hline
\end{tabular}
\end{document}
Tabele: obramowanie hhline
\documentclass{article}
\usepackage{hhline}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{||cc||c|c||}
\toprule
\hhline{|t:==:t:==:t|}
a&b&c&d\\
\hhline{|:==:|~|~||}
1&2&3&4\\
\hhline{#==#~|=#}
i&j&k&l\\
\hhline{||--||--||}
w&x&y&z\\
\hhline{|b:==:b:==:b|}
\bottomrule \end{tabular}
\end{document}
Tabele: łączenie komórek
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage{multicol,multirow,makecell}
\def\dA{&$0^o$ &$30^o$ &$45^o$ &$60^o$
&$90^o$\\}
\def\dB{sin &$\sqrt{0/4}$ &$\sqrt{1/4}$&
$\sqrt{2/4}$&$\sqrt{3/4}$&$\sqrt{4/4}$\\}
\def\dC{&$0$ &$\pi/6$ &$\pi/4$ &$2/3\pi$
&$\pi/2$\\}
\begin{document}
\renewcommand{\arraystretch}{1.4}
\begin{tabular}{|c|c|c|c|c|c|}
\hline \multirowcell{2}{kąt} \dA \cline{2-6} \dC \hline
\dB \hline
\end{tabular}\\[10mm]
\begin{tabular}{|c|c|c|c|c|c|}
\cline{2-6} \multicolumn{1}{l|}{} &
\multicolumn{5}{c|}{kąt podany w stopniach}
\\
\cline{2-6} \multicolumn{1}{l|}{} \dA
\hline
\dB \hline \end{tabular}
\end{document}
Tabele: diagonale w komórkach
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{polski}
\usepackage{hhline}
\usepackage{makecell}
\def\dA{&$0^o$ &$30^o$ &$45^o$ &$60^o$
&$90^o$\\}
\def\dB{ \rule[-2mm]{0mm}{8mm} sin
&$\sqrt{0/4}$
&$\sqrt{1/4}$&$\sqrt{2/4}$&$\sqrt{3/4}$&
$\sqrt{4/4}$\\\rule[-4mm]{0mm}{8mm} cos&
$\sqrt{4/4}$ &$\sqrt{3/4}$&$\sqrt{2/4}$
&$\sqrt{1/4}$&$\sqrt{0/4}$\\}
\begin{document}
\begin{tabular}{||l||ccccc||}
\hhline{|t:=:t:=====:t|}
\diaghead(2,-1){zzzzzzzzzz}{funkcja}{kąt}
\dA
\hhline{|:=::=====:|}
\dB
\hhline{|b:=:b:=====:b|}
\end{tabular}
\end{document}