Skip to content

Instantly share code, notes, and snippets.

@jprk
Last active April 19, 2022 17:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jprk/0c9dd896fb219c6baa0e21376e124ec4 to your computer and use it in GitHub Desktop.
Save jprk/0c9dd896fb219c6baa0e21376e124ec4 to your computer and use it in GitHub Desktop.
Poznámky pro tvorbu textu v LaTeXu pro studenty 11MAMY

MAMY — Poznámky k TeXu

Pokud už nepoužíváte LyX (je jednodušší, fakt), doporučuju psát třeba v TeXstudiu, které má vestavěný prohlížeč se schopností odkazovat se zpět na zdrojový text. A zvýrazňování syntaxe. A český spell checking. Ale má samozřejmě i svoje mouchy, někdy je hrozně pomalý. Další použitelný (ale placený) editor je WinEdt (u něj si ale třeba zpětné odkazování na zdrojový text musíte nastavit sami, spolu s vhodným prohlížečem -- zkuste třeba SumatraPDF).

Jednotky a procenta

Pro sazby fyzikálních jednotek a procent používáme balíček siunitx. Ten dokáže automaticky mimo jiné konvertovat čísla do českého zápisu s desetinnou čárkou, pokud použijeme příkazy jako \qty{} nebo \SI{6.32}{\kilometre\per\hour}.

Do preambule stačí snad napsat

\usepackage{siunitx}
\sisetup{output-decimal-marker = {,}}  % use decimal comma when typesetting

Výpisy zdrojového kódu

Pro výpisy kódu doporučuju používat balíček listings, doplněný o lstautogobble (součást lstaddons).

V LaTeXovém zdrojovém kódu zavedeme jako

% Source code listings
\usepackage{listings}
% See https://tex.stackexchange.com/questions/43686/autogobble-for-lstinputlistings
\usepackage{lstautogobble}  % Provides autogobble switch for `listings` package

Nastavení výpisu zdrojového kódu provádíme příkaz \lstset, jehož parametry jsou popsané ve výše odkazované dokumentaci. Pro slajdy v MAMY používám následující nastavení:

\lstset{
    language=Matlab,  % highlight Matlab keywords and (some) functions 
    autogobble=true,  % thanks to `lstautogobble` package
    % basewidth=\fontcharwd\font`M,  
    basicstyle=\ttfamily,  % executed at the beginning of each listing
    breaklines=true,  % break lines if too long
    breakatwhitespace,  % break lines only at whitespace chars
    breakindent=0pt,  % indentation of continuation lines
    columns=fullflexible,
    backgroundcolor=\color{gray!10},  % listing background
    stringstyle=\color{Fuchsia},  % string literal style
    commentstyle=\color{OliveGreen},
    escapeinside={@*}{*@},  % escape to LaTeX between @* and *@
    xleftmargin=0pt,
    xrightmargin=0pt,
    framexleftmargin=6pt,
    framextopmargin=0pt,
    framexbottommargin=0pt,
    frame=tb,  % frame line only at the top and bottom of listing
    framerule=0pt,
    literate=  % listings cannot cope with UTF-8 accented chars, map them
    {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
    {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
    {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
    {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
    {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
    {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
    {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
    {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
    {Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1
    {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
    {ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
    {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
    {€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
    {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
    {á}{{\'a}}1 {č}{{\v{c}}}1 {ď}{{\v{d}}}1 {é}{{\'e}}1 {ě}{{\v{e}}}1
    {í}{{\'i}}1 {ň}{{\v{n}}}1 {ó}{{\'o}}1 {ř}{{\v{r}}}1 {š}{{\v{s}}}1
    {ť}{{\v{t}}}1 {ú}{{\'u}}1 {ů}{{\r{u}}}1 {ý}{{\'y}}1 {ž}{{\v{z}}}1
    {Á}{{\'A}}1 {Č}{{\v{C}}}1 {Ď}{{\v{D}}}1 {É}{{\'E}}1 {Ě}{{\v{E}}}1
    {Í}{{\'I}}1 {Ň}{{\v{N}}}1 {Ó}{{\'O}}1 {Ř}{{\v{R}}}1 {Š}{{\v{S}}}1
    {Ť}{{\v{T}}}1 {Ú}{{\'U}}1 {Ů}{{\r{U}}}1 {Ý}{{\'Y}}1 {Ž}{{\v{Z}}}1
}

Sazba matematiky

Pro sazbu matematiky se hodí balíčky, vyvinuté kdysi lidmi z American Mathematical Society (AMS). Standardně používám amsmath. Kromě toho využívám oprav, zaváděných v balíčku mathtools, plus některých vychytávek v něm (jako je sazba mocnin či operátorů nulové tloušťky pomocí \mathrlap a \mathllap).

\usepackage{mathtools}  % loads amsmath automatically

Konstanty a vektory

Pravidla matematické sazby praví, že matice sázíme vždy tučně a velkými písmeny, vektory tučně a malými (a jsou sloupcové), konstanty verzálkami. Verzálky platí i pro symbol derivování.

V české sazbě bychom měli používat pro matice a vektory bezpatkové tučné znaky.

Pro sazbu "textových" komponent používám rád příkaz \text{...}, který je definovaný v balíčku amsmath.

Takže například:

% -----------------------------------------------------------------------------
% http://tex.stackexchange.com/questions/77640/bold-italic-and-sans-serif-math-symbols
% math sans-serif bold requires T1 fonts or \usepackage{lmodern}
% -----------------------------------------------------------------------------
\usepackage{lmodern}
\DeclareMathAlphabet{\mathbfsf}{\encodingdefault}{\sfdefault}{bx}{n}
% -----------------------------------------------------------------------------
% Vector, matrix, transposes and inverse
% -----------------------------------------------------------------------------
\newcommand{\mtx}[1]{\mathbfsf{#1}}
\newcommand{\vct}[1]{\mtx{#1}}
\newcommand{\transpose}[1]{{#1}^\text{T}}  % transpose of vector or matrix
\newcommand{\invmtx}[1]{\mtx{#1}^{-1}}     % inverse matrix
\newcommand{\mtxt}[1]{\transpose{\mtx{#1}}}  % transposed matrix
\newcommand{\vctt}[1]{\transpose{\vct{#1}}}  % transposed vector
% -----------------------------------------------------------------------------
% Statistical distributions
% -----------------------------------------------------------------------------
\newcommand{\distr}[1]{\mathcal{#1}}
% -----------------------------------------------------------------------------
% Derivatives
% -----------------------------------------------------------------------------
\newcommand{\dd}{\text{d}}
\newcommand{\dt}[1]{#1'}
\newcommand{\dtt}[1]{#1''}
\newcommand{\ddt}[1]{\frac{\dd}{\td}#1}
\newcommand{\ddx}[1]{\frac{\dd}{\xd}#1}
\newcommand{\ddp}[1]{\frac{\dd}{\dd{p}}#1}
\newcommand{\ddtt}[1]{\frac{\dd^2}{\dd{t^2}}#1}
\newcommand{\taud}{\,\dd{\tau}}
\newcommand{\td}{\dd{t}}
\newcommand{\xd}{\dd{x}}
% --------------------------------------------------------------
% Mathematical constants
% --------------------------------------------------------------
\newcommand{\emath}{\text{e}}
\renewcommand{\imath}{\text{i}}
\renewcommand{\jmath}{\text{j}}
% --------------------------------------------------------------
% Sets
% --------------------------------------------------------------
% Generic set of some elements
\newcommand{\elemset}[1]{\mathcal{#1}}
% Numerical set (real, complex, integer, natural)
\newcommand{\numset}[1]{\mathbb{#1}}

A ještě něco předdefinovaných operací, které ve standardním LaTeXu zavedené nejsou.

% --------------------------------------------------------------
% Matematické operátory
% --------------------------------------------------------------
\DeclareMathOperator{\mmod}{mod}  % modulo
\DeclareMathOperator{\dlog}{dlog} % diskrértní logaritmus
\DeclareMathOperator{\sgn}{sgn}   % signum (znaménko)
\DeclareMathOperator{\erfc}{erfc} % komplementární chybová funkce
\DeclareMathOperator{\var}{var}   % rozptyl
\DeclareMathOperator{\bias}{bias} % vychýlení, zkreslení
\DeclareMathOperator{\cov}{cov}   % kovariance
\DeclareMathOperator{\expect}{E}  % expected value
\DeclareMathOperator{\adj}{adj}   % adjungovaná matice
\DeclareMathOperator{\mtxspan}{span} % span matice
\DeclareMathOperator{\diag}{diag} % diagonála matice
\DeclareMathOperator{\cond}{cond} % číslo podmíněnosti
\DeclareMathOperator{\stderr}{SE} % standard error
\DeclareMathOperator{\RSS}{RSS}   %
\DeclareMathOperator{\RSE}{RSE}   %
\DeclareMathOperator{\TSS}{TSS}   %
\DeclareMathOperator{\MSE}{MSE}   %
\DeclareMathOperator{\SE}{SE}   %
\DeclareMathOperator{\CV}{CV}   %
\DeclareMathOperator{\WCV}{WCV}   % within cluster variance
\DeclareMathOperator{\Ave}{average}   %
\let\Pr\relax
\DeclareMathOperator{\Pr}{P}     % probability
\DeclareMathOperator{\sigmoid}{\sigma}  % sigmoid function in ANNs
\DeclareMathOperator{\score}{score}
\DeclareMathOperator{\rank}{rank}
% --------------------------------------------------------------
% Skalární součin (vyžaduje mathtools)
% --------------------------------------------------------------
\DeclarePairedDelimiterX{\inner}[2]{\langle}{\rangle}{#1, #2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment