Pomoc:Wzory
- Dla każdego
- Te informacje dotyczą zarówno edytora wizualnego, jak i edytora wikikodu (Czym to się różni?)
Wzory matematyczne są osadzane w Wikipedii za pomocą oprogramowania LaTeX, będącego zestawem makr upraszczających korzystanie z systemu składania tekstów TeX. Wzory te wprowadza się przy wykorzystaniu LaTeX-owego modułu Math. Wewnętrzna budowa tych wzorów jest taka sama jak reszty kodu artykułu, czyli jest w postaci zwykłego tekstu wykorzystującego odpowiednie znaczniki oraz rozbudowany zestaw własnych poleceń. Wzory chemiczne osadza się za pomocą wikipediowych szablonów {{Chem}} lub {{Chem2}}, ale można też skorzystać ze wzorów matematycznych, a nawet innych modułów LaTeX-u.
Za pomocą składni Math można składać nawet skomplikowane wzory, np.:
Jedynym ograniczeniem przy tworzeniu wzorów jest nasza wyobraźnia, a wzory mogą być nawet wielopiętrowe. W wypadku błędu składni pojawi się informacja, że program nie rozumie danego fragmentu kodu.
Wzory można wprowadzać na dwa sposoby:
- w edytorze wizualnym – wszystkie fragmenty wzoru są wybierane z menu za pomocą myszki, a edytujący wpisuje ręcznie jedynie wartości (argumenty), aczkolwiek zarówno kod, jak i jego efekt są wyświetlane na ekranie, a edytujący ma możliwość wprowadzanie poprawek czy uzupełnień ręcznie,
- w edytorze kodu – całość kodu wzoru jest wpisywana ręcznie.
Edytor wizualny – podstawy
[edytuj | edytuj kod]Edytor wikikodu – podstawy
[edytuj | edytuj kod]Tworzenie wzorów
[edytuj | edytuj kod]Jeżeli edytujemy artykuł w edytorze wikikodu, czyli edytorze kodu źródłowego, to aby wstawić jakikolwiek wzór, należy wpisać:
<math>zawartość kodu wzoru</math> |
Znaczniki <math> i </math> nie należą do składni Math, są one typowymi znacznikami HTML, podlegając typowemu dla składni HTML zachowaniu (np. pominięcie, nadmiar lub złe położenie któregoś ze znaczników). Dopiero pomiędzy parą tych znaczników możemy mówić o składni Math.
Kod | Efekt |
---|---|
<math>A\cdot{B} = 2\frac{C-E}{D+E}</math> |
Umieszczanie wzorów w treści artykułów
[edytuj | edytuj kod]Wzory umieszcza się w artykułach tak samo jak pozostałą treść. Jeżeli wzór będzie częścią zdania, to będzie w jego ciągu, nie przełamie się i nie zacznie od nowej linii. Wzory można umieszczać wszędzie tam, gdzie tekst, np. w przypisach, opisach grafiki, tabelach, szablonach itd. Popularną metodą jest umieszczanie wzoru od nowej linii, czyli standardowymi metodami formatowania wikitekstu: „* <math>wzór</math>” (1) lub „: <math>wzór</math>” (2), co daje efekt umieszczenia wzoru od nowej linii (z punktorem lub tylko z wcięciem):
przykład 1:
- wzór
przykład 2:
- wzór
Używanie spacji, tabulatora i entera
[edytuj | edytuj kod]Spacje, tabulatory i entery, czyli tzw. białe znaki (ang. white spaces) są w kodzie wzorów zazwyczaj ignorowane przez program, który odstępy reguluje automatycznie. Możemy jednak używać wymienionych znaków na własne potrzeby, dla poprawienia przejrzystości wyglądu samego kodu. Wpływ tych znaków na wygląd wzoru jest żaden, a tylko czasami są one potrzebne składniowo. Jeżeli trzeba skorygować we wzorze światła, robi się to za pomocą specjalnych poleceń.
Kod | Efekt |
---|---|
<math>a^2+b^2=c^2</math> | |
<math> a^2 + b^2 = c^2 </math> | |
<math>a^2+b^2= c^2</math> | |
<math> a^2+b^2=c^2 </math> | |
<math> a^2+b^2=c^2 </math> |
Tak naprawdę stosownie tabulatora, choć technicznie całkowicie poprawne, jest bez sensu, bo w niesprzyjających warunkach może być słabo bądź w ogóle niewidoczny (za krótki), chyba że użyjemy go na początku wiersza kodu. Ale z drugiej strony stosowanie tabulatora w kodzie artykułów jest w ogóle niezalecane. Pozostaje więc do wykorzystania spacja i enter. Trzeba tu podkreślić, że nawet entery (o ile są użyte wewnątrz składni Math), nie mają wpływu ani na wygląd wzoru, ani na położenie wzoru względem reszty treści artykułu.
W niektórych sytuacjach składnia Math wymaga jednak istnienia w kodzie odstępów. Jeżeli są one wymagane, to nie ma znaczenia, czy jest to spacja, tabulator czy enter. Poniżej podano przykład trzech alternatywnych poprawnych metod zapisu oraz czwartej – wadliwej.
Kod | Efekt | Komentarz |
---|---|---|
<math>\mathbb{A}</math> | argument poprawnie w klamrze | |
<math>\mathbb A</math> | argument poprawnie po spacji | |
<math>\mathbb {A}</math> | spacja lub klamra są nadmiarowe, ale nie przeszkadzają | |
<math>\mathbbA</math> | Parser nie mógł rozpoznać (nieznana funkcja '\mathbbA'): {\displaystyle \mathbbA} |
argument bez spacji i bez klamry |
Przełamywanie długich wzorów
[edytuj | edytuj kod]Przełamywanie automatyczne
[edytuj | edytuj kod]Nawet najdłuższe wzory są wyświetlane w artykule w jednej linii, nie podlegając przełamywaniu pomiędzy wierszami. Jeżeli okno przeglądarki jest za wąskie, to część wzoru pozostanie za ramką i trzeba będzie przewijać ekran w poziomie (albo powiększyć okno). Także na ekranach smartfonów nawet najdłuższe wzory są dostępne po przewinięciu ekranu. Jeżeli przewidujemy, że u czytelników dany wzór może się często nie mieścić, możemy użyć prostej sztuczki polegającej na podzieleniu wzoru na części (będące wewnętrznie całościami składniowymi), czyli na kilka wzorów i ułożyć obok siebie w linii lub sąsiednich wierszach (przylegających akapitach). Wtedy, w zależności od szerokości okna przeglądarki, wzór będzie się przełamywać.
Trzeba jednak wiedzieć, że dwa kody wzorów ułożone bezpośrednio obok siebie w wierszu (na styk) nie generują pomiędzy nimi odstępu (1).
Trzeba więc o ten odstęp jakoś zadbać:
- wstawić pomiędzy wzory spację (2) albo
- wstawić na końcu kodu w poprzedzającym wzorze polecenie spacji, np. „\;” (3),
- a najlepiej tę spację dodatkowo zabezpieczyć (4).
Natomiast ułożenie kolejnych wzorów w kolejnych akapitach automatycznie wywołuje spacje (5).
Wzory w jednej linii | Efekt | Komentarz |
---|---|---|
<math>...</math><math>...</math> | (1) źle – brak odstępu | |
<math>...</math> <math>...</math> | (2) może być – spacja pomiędzy wzorami | |
<math>...\;</math><math>...</math> | (3) lepiej – polecenie spacji niezabezpieczone przed przypadkowym skasowaniem | |
<math>...\;{}</math><math>...</math> | (4) najlepiej – polecenie spacji zabezpieczone pustą klamrą | |
Wzory w akapitach | Efekt | Komentarz |
<math>...</math> <math>...</math> |
|
(5) entery pomiędzy akapitami same generują spacje pomiędzy wzorami |
Z powyższego zestawienia wynika, że najlepszym rozwiązaniem jest (5), ale tylko dla dużych fragmentów. Natomiast gdy chcemy przełamywać dużo małych fragmentów, a szczególnie gdy będą one wewnątrz akapitu ze zwykłym tekstem, lepszym rozwiązaniem będzie (4).
- Metoda (4)
Początek tekstu w zwykłym akapicie kontynuacja tego akapitu.
- Metoda (5)
Przy automatycznym przełamywaniu mamy jednak jeszcze jeden problem: gdy na styku wzorów są symbole operacji matematycznych, to te symbole przy podziale wzoru powinny zaczynać nowy wiersz. Schematycznie tę ogólną zasadę można przedstawić tak:
źle | |
dobrze |
Powyższy przykład – z wcięciem i wyrównaniem – jest najlepszym rozwiązaniem, ale tak można budować tylko wzory ze stałym podziałem, np. tworząc oddzielne wzory w kolejnych rzeczywistych akapitach (po dwóch enterach lub tworząc listę odpowiednimi znacznikami, np. dwukropkiem na początku wiersza) lub też tworząc jeden wzór zawierający wielowierszową tablicę. Tu jednak mówimy o ewentualnym przełamywaniu, czyli przełamywaniu automatycznym. W takiej sytuacji zasadę poprawnego dzielenia wzorów można przedstawić następująco:
źle | |
dobrze |
W powyższym przykładzie tracimy odpowiednie wcięcie, ale mówi się trudno – chodzi tylko o możliwość ewentualnego przełamywania. Co prawda można na sztywno wywołać na początku wcięcie poleceniami spacji (zabezpieczonymi klamrą), ale takie wcięcie będzie miało sens dopiero po przełamaniu, a przed przełamaniem będzie za duże na tle innych wzorów. Poza tym problem ten (wcięcia) odpada, gdy jest mowa o automatycznym przełamywaniu wzorów wewnątrz akapitu tekstowego.
Otóż wszystkie symbole operacji matematycznych wstawiane znakami (np. +, >, =), jak również niektóre symbole wstawiane poleceniami (np. „\cdot” (), „\times” ()), są otoczone automatycznie generowanymi odstępami, ale kontekstowo, co oznacza, że na początku lub końcu wzoru są tych niby-spacji pozbawione. W dodatku kontekstowość ta działa różnie w zależności od znaku – albo nie ma odstępów po obu stronach znaku, albo światła są tylko od strony wnętrza wzoru, np.:
przed wzorempo wzorze | przy skrajnych znakach brak świateł w ogóle |
przed wzorempo wzorze | |
przed wzorempo wzorze |
przed wzorempo wzorze | przy skrajnych znakach światła zachowane od wnętrza wzoru |
przed wzorempo wzorze | |
przed wzorempo wzorze |
Aby temu zaradzić (aby zachować odstępy), najlepiej posłużyć się pustą klamrą, która „oszukuje” mechanizm dopasowania kontekstowego, np.:
Kod | Efekt | Komentarz |
---|---|---|
<math>a-b</math><math>+c-d</math> | plus nie ma świateł | |
<math>a-b</math><math>{}+c-d</math> | odzyskaliśmy oba światła | |
<math>a-b</math><math>=c-d</math> | znak równości nie ma światła z lewej strony | |
<math>a+b</math><math>{}=c-d</math> | odzyskaliśmy lewe światło |
Jak widać, przy symbolach operacji matematycznych opatrzonych pustą klamrą nie trzeba wstawiać poleceń spacji opisanych na początku tego rozdziału.
Stały podział
[edytuj | edytuj kod]Jeżeli chcemy, aby zawsze, na stałe, wzór składał się z kilku wierszy, najwygodniej po prostu podzielić ten wzór na kilka mniejszych wzorów i zastosować podstawowe elementy składni wikitekstu.
Jest jednak pewien problem. Otóż nie wszystkie poniższe metody, choć popularne, są zalecane z powodu Zasady dostępności, która mówi: „nie należy stosować składni do czegoś, do czego ona nie służy (lub formalnie jej składnia jest błędna) – nawet jeśli coś wizualnie na danym urządzeniu prezentuje się poprawnie”.
Wzory bez wcięcia można zrobić tak:
Kod | Efekt | Komentarz |
---|---|---|
<math>fragment 1</math><br /> |
|
dobrze |
; <math>fragment 1</math> |
|
źle, użyto znaczników „pojęcia listy definicyjnej” |
Wzory z wcięciem:
Kod | Efekt | Komentarz |
---|---|---|
: <math>fragment 1</math> |
|
może być, na razie nic lepszego nie wymyślono |
:: <math>fragment 1</math> |
|
Jeśli stosujemy elementy wypunktowania listy:
Kod | Efekt | Komentarz |
---|---|---|
* <math>fragment 1 |
|
może być, na razie nic lepszego nie wymyślono |
* <math>fragment 1</math> |
|
teoretycznie źle – pomieszano różne porządki (ale i tak wszyscy to stosują) |
Justowanie wzorów
[edytuj | edytuj kod]Nie ma specjalnych poleceń układania kilku wzorów względem siebie i ich justowania (do lewej, w osi, do prawej), ale można wykorzystać do tego celu któreś z poleceń do budowy tablic, gdzie formalnie (składniowo) tablica jest jednym wzorem, ale w odpowiednim układzie każdy wiersz tablicy może wyglądać jak oddzielny wzór, np.:
W ten sam sposób (korzystając z tablicy) można także zapisać jeden dłuższy wzór w postaci trwale przełamanej, czyli w kilku wierszach, dodatkowo justując go względem wybranego znaku (w poniższym przykładzie znaku równości):
Więcej informacji znajduje się w rozdziale o tablicach.
Numerowanie wzorów
[edytuj | edytuj kod]- a) użycie szablonu
Wzory można numerować za pomocą szablonu {{wzór}}, dodającego numer przy prawym marginesie strony, np.:
{{wzór|<math>c=\sqrt{a^2+b^2}</math>|1}} |
daje wynik:
|
Szablon generuje własny akapit. Numeracja nie jest automatyczna. To edytujący decyduje o wyborze konkretnego numeru. Trzeba więc pamiętać, aby numery narastały w treści artykułu po kolei i się nie powtarzały. Edytujący decyduje również o konwencji numeracji – zazwyczaj stosuje się kolejne liczby (np. 1, 2, 3...), ale stosować można inne rozwiązania (np. 1, 1a, 1b, 2...). W przypadku późniejszego dodania kolejnego szablonu gdzieś w środku artykułu, trzeba następne numery poprawić o jedną wartość. Szablon ma jeszcze kilka innych opcji, np. dopisywanie prostych komentarzy.
Co więcej, do tak ponumerowanego wzoru można linkować za pomocą szablonu {{LinkWzór}}, np. {{LinkWzór|1}} stworzy link: (1). Kliknięcie w ten link przewija treść artykułu, umieszczając wzór na początku okna. Warto wiedzieć, że szablon z linkiem do wzoru może być użyty w treści artykułu nawet wcześniej, przed szablonem danego wzoru.
W pojedynczym szablonie {{wzór}} w jednym akapicie można umieszczać wiele wzorów, jak również zwykły tekst (może być nawet sam tekst), np.:
Kod | Efekt | |||||
---|---|---|---|---|---|---|
{{wzór|<math>a+b</math> lub <math>c+d</math>|1}} |
|
Trzeba jednak pamiętać, że w zwykłym tekście wewnątrz szablonów nie można używać natywnie znaków „|” i „=” oraz podwójnej prawej klamry „}}”, gdyż mają one działanie składniowe. Można je jednak wpisywać inaczej:
- encjami („=” dla znaku równości, „|” dla pałki, „}” dla prawej klamry) lub
- stosując tagi „<nowiki>...</nowiki>”, np.:
Kod | Efekt | |||||
---|---|---|---|---|---|---|
{{wzór|dziecko + zapałki = pożar|1}} |
| |||||
{{wzór|dziecko + zapałki = pożar|1}} |
| |||||
{{wzór|dziecko + zapałki <nowiki>=</nowiki> pożar|1}} |
|
Wprowadzenie dwukropka przed szablonem nie wywołuje w przypadku tego szablonu żadnego działania:
{{wzór|<math>a+b=c</math>|1}} |
| |||||
: {{wzór|<math>a+b=c</math>|1}} |
| |||||
:: {{wzór|<math>a+b=c</math>|1}} |
|
Dopiero wprowadzenie dwukropka do wnętrza szablonu (i od nowego wiersza) wywołuje działanie:
{{wzór| : <math>a+b=c</math>|1}} |
| |||||
{{wzór| :: <math>a+b=c</math>|1}} |
|
Pojedynczym szablonem {{wzór}} można obejmować także kilka wzorów w kolejnych wierszach. Stosuje się wtedy znacznik „<br />”. Poniżej oba warianty składniowe dające ten sam efekt.
{{wzór|<math>a+b=c</math><br /><math>d+e=f</math>|1}} |
| |||||
{{wzór| <math>a+b=c</math><br /> <math>c+e=f</math> |1}} |
|
Z „breaków” można zrezygnować, jeśli użyjemy wcięć:
{{wzór| : <math>a+b=c</math> : <math>d+e=f</math> |1}} |
|
- b) użycie tablicy
Do ręcznej numeracji można również wykorzystać któreś z poleceń opisanych w rozdziale o tablicach, np.:
- c) użycie tabeli HTML
Wzór trzeba podzielić na mniejsze wzory i każdy umieścić w oddzielnej komórce tabeli. Dodatkowo w 2. komórce 1. wiersza trzeba wstawić dowolną metodą powiększony odstęp (poleceniami odstępu na końcu wzoru lub encjami spacji HTML po wzorze):
(1) | ||
(2) |
Powyżej standardowa tabela HTML, czyli rozpoczynająca się frazą „{| class="wikitable"”. Gdy tabelę rozpoczniemy tylko „{|” otrzymamy tabelę bez ramek:
(1) | ||
(2) |
Cytowanie kodu wzoru
[edytuj | edytuj kod]Aby kod wzoru razem ze znacznikami wyświetlał się czytelnikowi w postaci natywnej, wystarczy użyć znaczników <nowiki>...</nowiki> lub w otwierającym tagu HTML otwierający nawias ostrokątny zastąpić jego encją „<” (także „<”), aczkolwiek puryści zastąpią tą encją również początek tagu zamykającego:
Kod | Efekt |
---|---|
<math>a^2+b^2=c^2</math> | |
<nowiki><math>a^2+b^2=c^2</math></nowiki> | <math>a^2+b^2=c^2</math> |
<math>a^2+b^2=c^2</math> | <math>a^2+b^2=c^2</math> |
<math>a^2+b^2=c^2</math> | <math>a^2+b^2=c^2</math> |
Ewentualnie można użyć html-owych znaczników tekstu preformatowanego. Na przykład zapis „<pre><math>a^2+b^2=c^2</math></pre>” daje w wersji wikipediowej taki efekt:
<math>a^2+b^2=c^2</math>
Można też zapoznać się z <syntaxhighlight>
i {{Kod}}:
<math>a^2+b^2=c^2</math>
Wyszukiwanie wzorów
[edytuj | edytuj kod]Korzystając z wikipediowej wyszukiwarki, można tworzyć zapytania uwzględniające kod artykułu. W tym celu należy rozpocząć zapytanie frazą „insource:”, a po niej podać treść zapytania ujętą w dwa ukośniki. Treść zapytania podaje się, wykorzystując podstawowe elementy składni wyrażeń regularnych (grep) w wersji dla Javascript, przez co pewne elementy składniowe podaje się w nieco trudniejszej postaci. Na przykład:
- \ → \\
- / → \/
- | → \|
- ( → \(
- ) → \)
- [ → \[
- ] → \]
- { → \{
- } → \}
- " → \"
- * → \*
- & → \&
- < → \<
- > → > (ten znak normalnie)
- . → \. (sama kropka wyszuka dowolny znak prócz entera)
poza tym działają powtórzenia, kwantyfikatory itp., ale już dowolnej cyfry nie można podać jako „\d”, tylko trzeba posiłkować się „[0-9]”. Na przykład:
Szukany ciąg | Zapytanie |
---|---|
\frac {trzy dowolne cyfry} | insource:/\\frac \{[0-9]{3}\}/ |
</math>ewentualne spacje<math> | insource:/\<\/math> *\<math>/ |
Więcej informacji o wikipediowej implementacji wyrażeń regularnych można znaleźć w tym artykule, aczkolwiek nie wszystko będzie tutaj działać.
Uwaga! W dalszej części artykułu w przykładach kodu, znaczniki <math> i </math> zostały najczęściej pominięte.
Kolory
[edytuj | edytuj kod]Można zmieniać kolor całego wzoru lub jego fragmentu. Robi to polecenie „\color{parametr}”.
- a) parametr
Parametrem jest spora grupa nazw kolorów w języku angielskim. Nazwy te podaje się natywnie.
Nie ma sensu wymieniać wszystkich dostępnych nazw kolorów. Działają oczywiście wszystkie podstawowe nazwy jak: White, Yellow, Orange, Red, Green..., ale zdefiniowanych jest również wiele nazw rzadszych lub o bardziej skomplikowanym brzmieniu. Można stosować nazwy z dwóch list:
- nazwy utworzone dla składni Math (tu pełna lista 68 nazw)
- nazwy utworzone dla składni HTML (tu pełna lista 148 nazw).
Część nazw kolorów występuje jednocześnie na obu powyższych listach, ale są też takie nazwy, które występują tylko na 1. lub 2. liście.
Istnieje jednak pewien problem w wyglądzie najbardziej jaskrawych kolorów. System Math został pierwotnie stworzony na potrzeby druku, gdzie nie da się wydrukować najbardziej jaskrawych kolorów (jest to przestrzeń światła odbitego od papieru, czyli CMYK), natomiast język HTML odnosi się do kolorów wyświetlanych na ekranie monitora (jest to przestrzeń światła własnego monitora, czyli RGB, która jest szersza od CMYK). Dlatego wszystkie jaskrawe kolory z listy Math są zdefiniowane jako nieco przytłumione, podczas gdy na liście HTML nie ma takich ograniczeń. Oprogramowanie szuka nazwy koloru najpierw na liście Math, a gdy tam nie znajdzie, pobiera nazwę z listy HTML. Skutki tego są następujące:
- tylko te jaskrawe kolory HTML, które występują wyłącznie na liście HTML, są wyświetlane dokładnie tak samo we wzorze i poza wzorem (tzn. we wzorze nie są przytłumione),
- w przypadku kolorów HTML, które mają identyczne nazwy w Math, wyświetlane są kolory z listy Math, co daje czasami ledwo dostrzegalną różnicę, ale czasami ta różnica jest bardzo wyraźna, np.:
Brzmienie nazwy |
We wzorze (lista Math) |
Poza wzorem (lista HTML) | ||
---|---|---|---|---|
Orange | ABC888 | |||
Red | ABC888 | |||
Green | ABC888 | |||
Cyan | ABC888 | |||
Blue | ABC888 | |||
Brown | ABC888 | |||
Aquamarine | ABC888 | |||
Fuchsia | ABC888 | |||
Lavender | ABC888 | |||
SpringGreen | ABC888 | |||
Violet | ABC888 |
Porównanie wyglądu wszystkich kolorów w obu systemach można obejrzeć w: Pomoc:Nazwy kolorów Math i HTML.
Wielkość liter parametru teoretycznie jest nieistotna (red = Red = RED). Zazyczaj użytkownicy stosują pisownię małymi literami. Jednak w praktyce przy bardziej skomplikowanych nazwach warto respektować zalecane wielkie litery, bo ich pominięcie może czasami stwarzać problemy, np.:
- <math>\color{BrickRed}abc</math> →
- <math>\color{brickred}abc</math> → (!)
- <math>\color{BurntOrange}abc</math> →
- <math>\color{burntorange}abc</math> → (!)
Powyższy przykład pokazuje nazwy zdefiniowane tylko w składni Math. Poniżej zaś przykład nazw kolorów z HTML i jak widać, tu nie ma problemu wielkich/małych liter:
- <math>\color{DARKORANGE}abc</math> →
- <math>\color{DarkOrange}abc</math> →
- <math>\color{darkorange}abc</math> →
- b) składnia
- Tak nadaje się kolor całemu wzorowi:
- <math>\color{red}...
- Tak nadaje się kolor od wybranego miejsca do końca wzoru:
- <math>...\color{red}...
- Tak zmienia się kolory:
- <math>...\color{red}...\color{green}...\color{blue}...
- Stąd wniosek, że można zmienić tylko fragment, przywracając potem kolor czarny:
- <math>...\color{red}...\color{black}...
- Jednak prościej jest nadać kolor wybranemu fragmentowi, używając dodatkowej klamry:
- <math>...{\color{red}...}...
Spacje w składni są, jak zwykle, ignorowane:
|
= |
|
- c) inne metody
Parametrem koloru mogą być również jego składowe, ale tego rozwiązania używa się na Wikipedii bardzo rzadko:
\color[RGB]{#,#,#} | z wartościami składowych od 0 do 255 w postaci liczb całkowitych |
\color[rgb]{#,#,#} | z wartościami składowych od 0 do 1 w postaci ułamka dziesiętnego |
- parametr [RGB]{#,#,#}
Wartościami są typowe składowe modelu kolorów RGB w postaci liczb całkowitych od 0 do 255.
- Wiodącego zera nie można podawać.
- Spacje są ignorowane.
- Przykłady użycia parametru [RGB] można zobaczyć w: Pomoc:Wzory (parametr RGB).
\color[RGB]{0,80,128}ABC123 | |
\color[RGB]{ 0, 80,128}ABC123 | |
\color[RGB]{000,080,128}ABC123 | nie działa |
- parametr [rgb]{#,#,#}
Wartościami są składowe modelu kolorów RGB przeliczone na postać ułamków liczb dziesiętnych od 0 do 1.
- Wiodące zero można pominąć (np. „.5” = „0.5”).
- Zero na końcu można zostawić dla wartości od 0.0 do 0.999... (np. „0” = „0.0”, „0.5” = „0.50”).
- Spacje są ignorowane.
- Przykłady użycia parametru [rgb] można zobaczyć w: Pomoc:Wzory (parametr rgb).
\color[rgb]{1,.5,.25}ABC123 | |
\color[rgb]{1,0.50,0.25}ABC123 | |
\color[rgb]{1, .50, .25}ABC123 |
Oprócz parametrów [RGB] i [rgb] istnieją jeszcze w składni Math parametry [HTML], [cmyk] i [gray], ale nie są na Wikipedii zaimplementowane.
- d) kolory poza wzorami
Poza kodem wzorów można zastosować składnię HTML:
dla znaków | np. abc | <span style="color: red">…</span> |
dla tła | np. abc | <span style="background: gray">…</span> |
dla tła i znaków | np. abc | <span style="background: gray; color: red">…</span> |
W przypadku kolorowania tła, warto objąć stylem także spacje przed i po, stosując encje „ ” (spacji natywnych nie da się pokolorować).
Uwaga: stosowanie polecenia „<span>” jest metodą zalecaną. Starsza metoda kolorowania znaków przy użyciu polecenia „<font>” (np. <font color=red>…</font>) jest przestarzała (ang. deprecated).
Tak wygląda biały kolor w tabeli (w drugim wierszu wszystko pogrubione). Czarny to kolor w tabeli (HTML), biały kolor jest zdefiniowany we wzorze (czyli składnia Math):
Style czcionki
[edytuj | edytuj kod]Przegląd stylów
[edytuj | edytuj kod]W LaTeX-u istnieje wiele zdefiniowanych stylów czcionki (ang. font style) i jeszcze więcej fontów mogących je obsługiwać. W składni wiki działają tylko niektóre style, każdy obsługiwany tylko przez jeden font niezależnie od przeglądarki.
Podstawowy sposób wyświetlania wzorów to czcionka kursywna dla zmiennych (litery), dla pozostałych znaków zwykła antykwa. Litery w zmiennych zazwyczaj lekko rozsunięte (choć dla niektórych liter bywa odwrotnie). Rozsuwane są też światła przy podstawowych znakach działań matematycznych: plus, dywiz jako minus itd.
Dlaczego w składni wzorów matematycznych mówi się o stylach czcionki, a nie po prostu o odmianach krojów pisma? Otóż style czcionki robią więcej niż przeformatowanie tekstu na inną odmianę kroju:
- wpływają tylko na znaki wstawiane natywnie, a nie mają wpływu na znaki wstawiane poleceniami (np. działają na litery łacińskie, ale nie na polecenia liter greckich, działają na nawiasy okrągłe i kwadratowe, ale nie na polecenia znaków klamry),
- wyjątkiem jest polecenie „\boldsymbol”, które nie zmienia odmiany, tylko do istniejącej niejako dokłada bold, a działa także na znaki wstawiane poleceniami,
- zmieniają odstępy pomiędzy wybranymi znakami (w odróżnieniu od stylu domyślnego zazwyczaj dają standardowe odstępy zamiast powiększonych), ale czasami dodają światło lub nawet pozwalają na wyświetlanie powtórzonych spacji,
- zmieniają wygląd lub położenie niektórych znaków (np. można przywrócić wygląd dywizu zamiast interpretowania go jako minus, czy też można podnieść znak asterysku),
- niektóre działają tylko na wybrane znaki (np. na wielkie litery łacińskie, a na małe – nie).
Styl | Efekt | Polecenia | |||
---|---|---|---|---|---|
seria \math... | seria \text... | \rm (itp.) | różne inne | ||
Roman | \mathrm | \textrm | \rm | \hbox, \mbox, \text, \operatorname | |
Italic Roman | \mathit | \textit | \it | \mathop | |
Bold Roman | \mathbf | \textbf | \bf | \bold | |
Bold + Italic | – | – | – | \boldsymbol | |
Sans serif | \mathsf | \textsf | – | – | |
Typewriter | \mathtt | \texttt | – | – | |
Script | \mathcal | – | \cal | – | |
Fraktur | \mathfrak | – | – | – | |
Double-struck | \mathbb | – | – | \Bbb |
- Kolor czerwony – polecenia niezalecane.
- Styl double-struck („\mathbb”) ma wpływ tylko na wielkie litery, pozostawiając resztę znaków w postaci antykwy.
- Style script i fraktur mają cyfry nautyczne.
- Wyjaśnienie nazw niektórych poleceń: Bold Roman = boldface (bf), Double-struck = blackboard bold (bb), Script = calligraphic (cal).
Polecenia | Znaki spoza ASCII |
Spacje | Wyświetlanie innych poleceń | Proste działania | ||||||
---|---|---|---|---|---|---|---|---|---|---|
1+2 | 1-2 | 1:2 | 1/2 | 1*2 | 1=2 | 1^2_3 | ||||
\mathrm, \rm, \mathit, \it \mathbf, \bf \mathsf \mathtt \mathcal, \cal \mathfrak \mathbb |
Parser nie... | ignoruje | jako wzór, np. | |||||||
\operatorname | Parser nie... | ignoruje, na krańcach dodaje własne |
jako wzór, np. | |||||||
\mathop | Parser nie... | ignoruje, na krańcach dodaje własne |
jako wzór, np. | lub | ||||||
\textrm, \textit (itd.) |
Parser nie... | ignoruje | jako kod, np. | … |
… |
… |
… |
… |
… |
… |
\text, \hbox, \mbox | tak | wyświetla | Parser nie mógł... | Parser... |
Część stylów jest zaszłością historyczną, są niezalecane, pozostawione dla kompatybilności wstecznej, kompatybilności z kodem spoza Wikipedii lub do szczególnych, rzadkich zastosowań. Najczęściej stosowane to:
- seria „\mathrm”, „\mathit” itd... uniwersalna, dla większości zastosowań, szczególnie bardziej skomplikowanych,
- polecenie „\text” dla prostych fragmentów (głównie dla zamiany liter z kursywy na antykwę), fragmentów ze spacjami oraz znakami spoza ASCII (w tym polskimi).
- polecenie „\operatorname” dla nazw poleceń niemających własnego polecenia w kodzie.
Składnia
[edytuj | edytuj kod]
|
|
W wikipediowej wersji składni Math stylów zasadniczo nie można łączyć, np. w wyrażeniu <math>\mathit{\mathbf ...}</math> zadziała tylko ostatnie polecenie, czyli uzyskamy tylko pogrubienie. Wyjątkiem są polecenia „\operatorname” (i podobne mu „\mathop”) oraz „\hbox” (i podobne mu „\mbox”).
Polecenia z serii \math...
[edytuj | edytuj kod]To jest podstawowa i zalecana seria poleceń.
- Zawierają wszystkie style (rm, it, bf, sf, tt, cal, frak, bb). Są to polecenia:
- „\mathrm”, „\mathit”, „\mathbf”, „\mathsf”, „\mathtt”, „\mathcal”, „\mathfrak”, „\mathbb”.
- Można nimi obejmować dowolny fragment kodu (aczkolwiek nie wpływają na działania, tylko na argumenty, a do wnętrza tablic nie sięgają, trzeba każdą komórkę oznaczać oddzielnie), np.:
\frac{\mathrm{km}}{\mathrm{godz.}} | |
\frac\mathrm{km}\mathrm{godz.} | |
\mathrm{\frac{km}{godz.}} | |
\mathrm\frac{km}{godz.} |
\mathrm p \to (\mathrm p \or \mathrm q) | |
\mathrm{p \to (p \or q)} |
...aczkolwiek w stylu double-struck można pozwolić sobie nawet na większe uproszczenie, gdyż styl ten zachowuje niezmienione znaki cyfr (pozostają w stylu roman), jednak znak minusa zostaje zmieniony:
\sqrt[3]2 \mathbb{P} + \frac12 \mathbb{Q} - \mathbb{R} | |
\mathbb{\sqrt[3]2 P + \frac12 Q - R} |
- Nic się nie zmienia w zasadach tworzenia kodu („białe znaki” ignorowane, znaki spoza ASCII nieakceptowane).
- Polecenie „\mathit” wyświetla kursywę trochę inaczej niż znaki wstawione bez tego polecenia. Różnica dotyczy nie tylko szerokości znaków, ale także sposobu regulacji odstępów pomiędzy konkretnymi parami znaków, zwanego fachowo kerningiem. Jest to ta sama czcionka, tylko z innymi parametrami kerningu i szerokości znaków.
<math>\mathit{...}</math> | |
<math>...</math> |
Polecenie \bold
[edytuj | edytuj kod]Polecenie jest niezalecane[1] i należy je zmieniać na identyczny odpowiednik „\mathbf”.
Polecenie \Bbb
[edytuj | edytuj kod]Polecenie zaczyna się nietypowo, bo wielką literą. Wyświetla znaki w stylu Double-struck.
Polecenie jest niezalecane[2] i należy je zmieniać na identyczny odpowiednik „\mathbb”.
Polecenie \boldsymbol
[edytuj | edytuj kod]Jest to nietypowe polecenie, które nie zmienia, tylko dokłada styl Bold. W szczególności oznacza to, że:
- jeśli w podstawowej składni Math jest antykwa, to pozostaje ona zachowana, a styl zmienia się na Bold,
- dotyczy: cyfry, znaki i polecenia operacji matematycznych, wielkie litery greckie,
- jeśli w podstawowej składni Math jest kursywa, to pozostaje ona zachowana, a styl z Italic zmienia się na Bold Italic,
- dotyczy: małe i wielkie litery łacińskie, małe litery greckie.
brak polecenia stylu | |||||||
„\bold” | |||||||
„\boldsymbol” |
Tylko tym poleceniem można uzyskać:
- litery łacińskie (wielkie i małe) w stylu Bold Italic,
- litery greckie (wielkie) w stylu Bold,
- chodzi o uzyskanie pogrubienia dla WSZYSTKICH wielkich liter greckich za pomocą pojedynczego polecenia, ponieważ polecenie „\mathbf” pogrubia tylko greckie litery o „greckim” wyglądzie, a te o „łacińskim” – nie (więcej opisano w rozdziale „Problem liter greckich”),
- litery greckie (małe) w stylu Bold Italic.
Polecenie \operatorname
[edytuj | edytuj kod]Polecenie „\operatorname” działa niemal identycznie z „\mathrm”. Przeznaczone jest do tworzenia nazw operacji matematycznych (czyli fragmentów pisanych antykwą), niemających własnych poleceń w składni Math (stąd nazwa „operatorname”). Np. tangens można wyświetlić jako „tan” poleceniem „\tan”, ale alternatywna postać „tg” nie ma w składni Math polecenia „\tg” i trzeba posiłkować się konstrukcją „\operatorname{tg}”.
- Polecenie tworzy odstępy (3/18) przed i po frazie ujętej tym poleceniem, np. „a\operatorname{xyz}b” daje (robi to także „\mathop”), pozostałe polecenia tego nie robią, wymagając dodatkowych poleceń spacji. Te odstępy są właśnie charakterystyczne dla wyświetlania nazw poleceń.
- W szczególny sposób traktuje dwa znaki mogące występować w nazwach operacji:
- dywiz – wyświetla natywnie, czyli nie zamienia na znak minusa i nie dodaje odstępów,
- asterysk – wyświetla we frakcji górnej, ale niepomniejszony i także nie dodaje odstępów.
Kod | Efekt | Użyte polecenie |
---|---|---|
1ab-cd*ef2 | brak | |
1\operatorname{ab-cd*ef}2 | \operatorname |
Polecenie „\operatorname” bywa nadużywane do zapisu antykwą wszelkich fragmentów wzoru, nawet tych niebędących nazwami operacji, co nie jest wskazane, gdyż w zastosowaniach niepoprawnych semantycznie potrafi zachowywać się nieprzewidywalnie (a tak naprawdę – kontekstowo), generując w niektórych przypadkach błędne odstępy w działaniu sąsiednich wyrażeń, szczególnie na styku ze znakami lub poleceniami operacji matematycznych. Należy wtedy korzystać z zalecanych poleceń, czyli poleceń ogólnego zastosowania, takich jak „\mathrm” czy „\text”, np.:
użyte „\text” | OK | ||
użyte „\operatorname” | brak odstępu |
Jednak nawet gdy takiego ryzyka nie ma, lepiej nie nadużywać polecenia „\operatorname” do zastosowań niesemantycznych ze względu na czytnik dla osób niedowidzących, bo jednostka miary „km/s” nie jest nazwą operacji matematycznej:
7{,}91\,\mathrm\frac{km}{s} | |
7{,}91\operatorname\frac{km}{s} |
Co ciekawe, polecenie to jest rodzajem nakładki, to znaczy umożliwia zmianę swojego domyślnego formatowania poprzez dodanie (po nim) któregoś z innych poleceń stylów czcionki (zachowuje się tak również „\mathop”), np.:
Kod | Wynik |
---|---|
ABCabc \operatorname {DEFdef}GHIghi | |
ABCabc \operatorname\mathbf {DEFdef}GHIghi | |
ABCabc \operatorname\mathfrak {DEFdef}GHIghi |
Polecenie \mathop
[edytuj | edytuj kod]Polecenie „\mathop” jest niemal identyczne z „\mathit”, ale frazę otacza spacjami tak samo jak „\operatorname”.
- ← użyte „\operatorname”
- ← użyte „\mathop”, wzór jest krótszy tylko z tego powodu, że kursywa daje węższy tekst
Jednak w odróżnieniu od „\operatorname” znaki minusa i asterysku wyświetla typowo dla składni Math:
Kod | Efekt | Użyte polecenie |
---|---|---|
1ab-cd*ef2 | brak | |
1\mathop{ab-cd*ef}2 | \mathop | |
1\operatorname{ab-cd*ef}2 | \operatorname |
Co ciekawe, polecenie to jest rodzajem nakładki, to znaczy umożliwia zmianę swojego domyślnego formatowania poprzez dodanie (po nim) któregoś z innych poleceń stylów czcionki (zachowuje się tak również „\operatorname”), np.:
Kod | Wynik |
---|---|
ABCabc \mathop {DEFdef}GHIghi | |
ABCabc \mathop\mathbf {DEFdef}GHIghi | |
ABCabc \mathop\mathfrak {DEFdef}GHIghi |
Polecenie „\mathop” służy do umieszczania frakcji dokładnie nad i/lub pod wyrażeniem („\operatorname” tego nie robi), ale tylko gdy w składni frakcje są niejako poza działaniem polecenia, tzn. stoją zaraz za nim, np.:
Kod | Efekt |
---|---|
\mathop {a^1} \mathop {a_2} | |
\mathop a^1 \mathop a_2 | |
\mathop{abcd^{12}_{34}} | |
\mathop{abcd}^{12}_{34} |
Efekt jest identyczny z poleceniami „\underset” i „\overset” (także „\stackrel”) z zastrzeżeniem, że „\mathop” dodaje chude spacje:
Efekt | Komentarz |
---|---|
użyte „\mathop” | |
użyte „\underset” i „\overset” |
W powyższych przykładach tych dodatkowych spacji nie widać, zobaczyć je można poniżej:
użyte „\mathop” | |
użyte „\underset” i „\overset” |
Polecenia „\mathop” i „\operatorname” wywierają też wpływ na odstępy przy znakach operacji, zastępując domyślny duży odstęp własnymi chudymi spacjami:
Kod | Efekt |
---|---|
n = 0 | |
n \mathop = 0 | |
n \operatorname = 0 | |
n \! = \! 0 | |
n {=} 0 |
Mechanizm odstępów przy znakach operacji matematycznych jest w składni Math niedopracowany, często te odstępy wydają się rażąco duże. W powyższym zestawieniu metod regulacji tych odstępów polecenia „\mathop”, a także „\operatorname”, sprawiają wrażenie najbardziej odpowiednich. Szkoda, że program sam nie wyświetla tych odstępów lepiej, bo specjalne wstawianie dodatkowych elementów kodu tylko do takich poprawek estetycznych jest oczywiście bez sensu.
Jednak tak samo jak przy „\operatorname”, także i tutaj pojawia się problem wpływu na niektóre znaki lub polecenia operacji matematycznych z prawej strony, wobec których polecenie dobiera odstępy kontekstowo:
składnia podstawowa | ||
użyte „\mathop” | ||
użyte „\text” | ||
użyte „\operatorname” |
Wniosek jest taki, że przy tych poleceniach trzeba po prostu uważać, a zamiast korekty odstępów dodatkowymi poleceniami można rozważyć użycie od początku innego pomysłu na napisanie danego fragmentu wzoru.
Trzeba w tym miejscu powiedzieć o jeszcze jednej rzeczy: automatyczne spacje wstawiane przez „\mathop” to spacje, które czasami na styku z poleceniami operacji likwidują (zastępują) spacje domyślne, przez co czasami polecenie to bywa używane do zupełnie niepoprawnych rozwiązań, gdy nawet całkiem duży fragment wzoru jest obejmowany poleceniem „\mathop” tylko po to, by poprawić gdzieś odstępy. Takich rozwiązań należy oczywiście unikać.
Poleceniem „\mathop” można się posiłkować w innych sytuacjach, np. gdy dodanie znaku „prim” do polecenia „\sum” blokuje domyślny mechanizm wyświetlania granic ciągu:
Kod | Efekt | Komentarz |
---|---|---|
\sum' | pożądane położenie prim | |
\sum_{i=0}^n' | prim za wysoko | |
\sum_{i=0}^n{'} | prim za nisko | |
{\sum'}_{i=0}^n | prim OK, ale reszta wyświetlana w trybie inline | |
\mathop{\sum'}_{i=0}^n | ręczne przywrócenie położenia granic sumy, do położenia niemal pierwotnego | |
\mathop{\sum'}_{\!\!i=0}^{\!\!n} | dla wytrwałych: korekta powyższego spacjami ujemnymi do położenia idealnego | |
\mathop{\sum'''}_{i=0}^{n} \mathop{\sum'''}_{\!\!\!\!i=0}^{\!\!\!n} |
dla bis, a szczególnie dla ter, spacje ujemne są już konieczne |
Na marginesie można dodać, że konstrukcje o nieco zbliżonym wyglądzie do powyższych można budować przy użyciu polecenia „\atop”.
- \mathop → ← \atop
Polecenia z serii \text...
[edytuj | edytuj kod]- Są to polecenia: „\textrm”, „\textit”, „\textbf”, „\textsf” i „\texttt”.
- Nie należy do nich polecenie „\text”.
- W odróżnieniu od serii „\math...”:
- nie ma wersji dla: cal, frak, bb,
- fragmenty kodu zawierające polecenia wyświetlane są w nietypowy sposób ukazujący składnię,
- proste działania matematyczne (dodawanie, odejmowanie itp.) są nieinterpretowane, są wyświetlane dosłownie jako tekst: w szczególności nie pojawiają się wokół ich zwiększone odstępy, a dywiz pozostaje dywizem (zamiast stać się nieco dłuższym minusem).
- mogą być wykorzystywane do:
- przedstawiania wzorów w postaci ich składni,
- podawania nazw z dywizem,
- wpisywania liczb z separatorem dziesiętnym w postaci przecinka bez odstępu, aczkolwiek ten ostatni problem można też zrealizować prostszą metodą „{,}” (problem szerzej opisany w rozdziale „Znaki interpunkcyjne i separator dziesiętny”).
\textrm{a^b} \mathrm{a^b} |
\textrm{a\,\ \;b} \mathrm{a\,\ \;b} |
\textrm{1-2+3} \mathrm{1-2+3} |
\textrm{1,2x} \mathrm{1,2x} |
\textrm{1:2} \mathrm{1:2} |
\textrm{pre-norm} \mathrm{pre-norm} |
\textrm{\alpha} \mathrm{alpha} |
Seria tych poleceń wyświetla składnię, ale niekonsekwentnie, np.:
\textrm{\sqrt[3]a} | |
\textrm{\frac12} | |
ale... | |
\textrm{1 \over 2} | |
\textrm{1 \atop 2} |
Co ciekawe, seria tych poleceń sama ustala kolejność wyświetlania frakcji – najpierw dolną, potem górną, np.:
\textrm{1_2^3} \textrm{1^2_3} |
|
\textit{1_2^3} \textit{1^2_3} |
|
\textbf{1_2^3} \textbf{1^2_3} |
|
\textsf{1_2^3} \textsf{1^2_3} |
|
\texttt{1_2^3} \texttt{1^2_3} |
Polecenie \text
[edytuj | edytuj kod]- Jako jedyne przyjmuje wszystkie znaki spoza ASCII, w tym polskie znaki, grekę, cyrylicę itd... oraz znaki zaawansowanej typografii jak półpauzę czy rozmaite formy cudzysłowu. Wszystkie znaki spoza ASCII są jednak wyświetlane inną czcionką, przez co należy ich unikać, o ile dla danych znaków istnieją stosowne polecenia w składni Math. Jeśli nie, warto rozważyć użycie języka „polskawego” (czyli znaków łacińskich zamiast polskich znaków diakrytycznych), lub o ile to możliwe, wyrzucenie takich znaków poza wzór, czyli do zwykłej treści artykułu (np. zł, zamiast ).
- ASCII:
- akceptowane: !'()*+,-./:;=?[]`
- apostrof prosty wyświetlany jest jako apostrof typograficzny (górny przecinek), podczas gdy normalnie we wzorze jest to znak prim
- nieakceptowane: "#$%&<>@\^_{|}~
- a więc nie można wstawiać frakcji (indeksów), ani poleceń działań (np. \frac), ani poleceń znaków (np. \{ czy \alpha)
- akceptowane: !'()*+,-./:;=?[]`
- Jako jedyne wyświetla spacje, ale:
- wewnątrz wyrażenia wyświetla wszystkie spacje, nawet powtórzone wiele razy,
- na początku i końcu wyrażenia wyświetla tylko jedną, nawet jeśli w kodzie jest ich więcej, co ilustruje poniższy przykład:.
abc\text{ x y }def |
- Można używać tylko pomiędzy innymi poleceniami składni Math, np. jako argumenty lub komentarze. Na przykład akceptowane są znaki nawiasu okrągłego, bo są wprowadzane natywnie, ale już znak nawiasu klamrowego jest poleceniem „\{”, co zakończy się wyświetleniem błędu.
- Proste działania matematyczne nie są interpretowane: znak plusa czy dywizu są traktowane jako tekst.
- W odróżnieniu od poprzednich poleceń zawsze trzeba użyć klamry (nawet dla jednego znaku).
Na uwagę zwraca fakt, że poleceniem tym można wyświetlić także tzw. spacje wiodące i kończące (ang. leading i trailing spaces), przez co można tworzyć odstępy pomiędzy innymi elementami wzoru. Podobnie zachowuje się polecenie „\operatorname”, dając jednak mniejszy odstęp:
abc\mathrm{def}ghi abc\mathrm{ def }ghi |
|
abc\operatorname{def}ghi abc\operatorname{ def }ghi |
|
abc\text{def}ghi abc\text{ def }ghi |
Polecenia \hbox i \mbox
[edytuj | edytuj kod]Polecenia te działają niemal identycznie z poleceniem „\text” (ich specyfika ma większe znaczenie poza wzorami wikipediowymi).
Istnieje jednak odmienne zachowanie się tych poleceń we frakcjach. Oczywiście, aby to w ogóle zadziałało, trzeba tak samo jak w poleceniu „\text” nadać styl czcionki bezpośrednio wewnątrz frakcji. Polecenia „\hbox” i „\mbox” nie zmniejszają znaków we frakcjach, np.:
\text{a}^\text{b}_\text{c} | |
\hbox{a}^\hbox{b}_\hbox{c} | |
\mbox{a}^\mbox{b}_\mbox{c} |
Polecenia „\hbox” i „\mbox” można łączyć z innymi stylami czcionki (kolejność istotna), np.:
Xy_{Xy} | |
Xy_\mbox{Xy} | |
Xy_\mathbf\mbox{Xy} |
Tak samo (niepomniejszone frakcje) polecenia „\hbox” i „\mbox” działają w innych poleceniach, np.:
\overset {abc}{nnnnn} | |
\overset \text {abc}{nnnnn} | |
\overset \mbox {abc}{nnnnn} | |
\underset\mbox{xyz}\overset\mbox{abc}{nnnnn} | |
\sqrt[3]a | |
\sqrt[\mbox{3}]a | |
\sum_{i=1}^n | |
\sum_{\mathit\mbox{i}\mbox{=1}}^\mbox{n} |
Polecenia \rm, \it, \bf, \cal
[edytuj | edytuj kod]Są to polecenia przestarzałe (ang. deprecated) i o odmiennej składni od reszty. Należy używać ich odpowiedników: „\mathrm”, „\mathit”, „\mathbf” i „\mathcal”, od których różnią się jedynie składnią:
- jeśli chcemy zmienić fragment tekstu, klamrą zaznaczamy również polecenie, np. „{\rm ...}”, podczas gdy „\mathrm {...}”,
- użycie bez klamry działa jak przełącznik, wpływa na resztę wzoru po prawej stronie (chyba że nastąpi zmiana stylu kolejnym poleceniem).
Problem liter greckich
[edytuj | edytuj kod]- Liter greckich nie wstawia się natywnie, tylko odpowiednimi poleceniami, np. „\Alpha”, „\alpha”, „\Beta”, „\beta” itd...
- Wyjątkiem, gdzie można wstawiać natywnie, są polecenia „\text” (a więc i „\hbox” oraz „\mbox”), jednak nawet tam wielkie litery greckie będą w antykwie, a małe w kursywie.
- Małe litery greckie nie reagują na polecenia stylu czcionki. Style mogą je obejmować, ale wygląd pozostanie bez zmian, czyli w kursywie.
- Powyższe oznacza m.in., że w wikipediowej wersji Math nie ma możliwości uzyskania małych liter greckich w antykwie (prostych).
- Jedynie polecenie „\boldsymbol” do istniejącej kursywy dokłada bold.
- Wielkie litery greckie są domyślnie w antykwie, czyli proste.
- Domyślnie (bez stylu) wyglądają tak, jak w stylu Roman (rm).
- Style Script (cal), Fraktur (frac) i Double-struck (bb) również nic nie zmieniają.
- Style Italic (it), Bold (bf), Sans serif (sf) i Typewriter (tt) działają, ale tylko na niektóre wielkie litery greckie. Problem polega na tym, że niektóre wielkie litery greckie wyglądają identycznie z literami łacińskimi (np. polecenie „\Alpha” daje identyczny efekt z natywnie wstawioną literą „A”). Style nie działają na żadne z poleceń wielkich liter greckich o wyglądzie „łacińskim”. Wygląda na to, że polecenia tych liter są mapowane do zwykłych znaków z alfabetu łacińskiego, stąd jeżeli trzeba takie litery ostylować, to trzeba to wykonać na zwykłych znakach łacińskich. Natomiast polecenia liter greckich o greckim wyglądzie można modyfikować wymienionymi stylami, jak poniżej.
- Styl Bold (bf) działa jednak na wszystkie litery, ale tylko w poleceniu „\boldsymbol”.
Inne spojrzenie:
brak stylu, „\mathrm”, „\mathit”, „\mathbf”, „\mathsf”, „\mathtt”, „\mathcal”, „\mathfrac”, „\mathbb” | |
„\boldsymbol” | |
brak stylu, „\mathrm”, „\mathcal”, „\mathfrac”, „\mathbb” | |
„\mathit” | |
„\mathbf” | |
„\mathsf” | |
„\mathtt” | |
„\boldsymbol” |
Uwaga: kursywienie wielkich liter greckich jest bardzo złą praktyką typograficzną. Należy tego unikać.
Na marginesie można dodać, że opisany problem jest podobny do wyświetlania znaków polskich (i innych języków) poleceniem „\text”, w którym znaki diakrytyczne mają nieco inny wygląd niż łacińskie.
Style tekstu i zmiana wielkości znaków
[edytuj | edytuj kod]Polecenie \displaystyle
[edytuj | edytuj kod]Polecenie „\displaystyle” jest stylem domyślnym i tkwi niewidoczne na początku każdego wzoru utworzonego w składni Math. Można się o tym przekonać w nietypowy sposób, szukając frazy „displaystyle” w artykule z wzorami. Program będzie znajdował każdą taką frazę, choć jej nie podświetli. Jednak nie każdy element wzoru musi być w stylu domyślnym, program czasami sam przechodzi z niego do innego, a wtedy można przywrócić styl domyślny miejscowo (o ile jest ku temu wyraźny powód), jak na poniższych przykładach:
Kod | Efekt |
---|---|
a^{2x} | |
a^{\displaystyle 2x} |
Powyższy przykład jest nieco abstrakcyjny, bo raczej nie ma powodu do przywracania nominalnej wielkości znakom we frakcji górnej, ale pokazuje mechanizm działania w prostym wzorze.
Poniżej limes zatraca swoją domyślną budowę po umieszczeniu w mianowniku ułamka (przechodzi wtedy automatycznie z „\displaystyle” do „\textstyle”) i aby to odwrócić, trzeba znów nadać styl domyślny. Można to jednak zrobić również poleceniem „\limits”:
Kod | Efekt |
---|---|
\frac{1}{\lim_{n\to\infty}} | |
\frac{1}{\displaystyle\lim_{n\to\infty}} | |
\frac{1}{\lim\limits_{n\to\infty}} |
Polecenia \textstyle, \scriptstyle, \scriptscriptstyle
[edytuj | edytuj kod]Edytujący ma do dyspozycji kilka stylów dodatkowych.
- „\textstyle” – działa tylko na niektóre elementy wzoru, pomniejszając lub zmieniając ich ułożenie. Służy do osadzania wzorów wewnątrz tekstu akapitowego tak, aby nie wyróżniały się nadmiernie na tle reszty akapitu.
- „\scriptstyle” (i jego mocniejsza wersja „\scriptscriptstyle”) – robi to samo co „\textstyle”, ale dodatkowo pomniejsza proporcjonalnie wszystkie składniki. Zasadność użycia tego polecenia istniała na Wikipedii w okresie, gdy wyświetlanie wzorów było niedopracowane i wzory w otoczeniu zwykłego tekstu były za duże. Obecnie polecenie to ma bardzo małe zastosowanie (np. do symbolicznego przedstawiania bardzo dużych wzorów), ponieważ wyświetlane w ten sposób wzory są słabo czytelne.
Polecenia te działają od swojego miejsca do końca wzoru. Jeżeli działanie polecenia ma być ograniczone, należy zakres działania objąć klamrą.
Kod | Efekt |
---|---|
aaa + \scriptstyle a+\frac12 + bbb | |
aaa + {\scriptstyle a+\frac12} + bbb |
Porównanie dla pojedynczych poleceń:
Elementy kodu | Efekt | |||||
---|---|---|---|---|---|---|
\displaystyle (domyślne) |
||||||
\textstyle | ||||||
\scriptstyle | ||||||
\scriptscriptstyle |
Porównanie dla dużych wzorów:
\displaystyle (domyślne) | \textstyle | \scriptstyle | \scriptscriptstyle |
---|---|---|---|
|
|
|
|
W przypadku niektórych wyrażeń istnieją własne dla nich, alternatywne metody zmniejszania. Poniżej w drugim wierszu skorzystano z polecenia „\tfrac” służącego do tworzenia zmniejszonych ułamków, które daje taki sam efekt jak zwykłe „\frac” zmniejszone poleceniem „\textstyle”.
Kod | Efekt | Metoda |
---|---|---|
Zwykły tekst <math>a+\frac12</math> reszta akapitu. | Zwykły tekst reszta akapitu. | – |
Zwykły tekst <math>a+\tfrac12</math> reszta akapitu. | Zwykły tekst reszta akapitu. | „\tfrac” zamiast „\frac” |
Zwykły tekst <math>\textstyle a+\frac12</math> reszta akapitu. | Zwykły tekst reszta akapitu. | „\textstyle” |
Zwykły tekst <math>\scriptstyle a+\frac12</math> reszta akapitu. | Zwykły tekst reszta akapitu. | „\scriptstyle” |
Ograniczenia stylów tekstu
[edytuj | edytuj kod]- Automatyczne przejście na styl „textstyle” odbywa się w tablicach typu „array”, „cases” i całej serii „matrix”, a na styl „scriptstyle” w tablicy „smallmatrix”. Tylko tablice „align” i „alignat” zachowują całość w „displaystyle” (szerzej opisane w rozdziale o tablicach).
- Ułamki piętrowe wielokrotnie zagnieżdżone, jak również ułamki piętrowe I poziomu (ale w wymienionych powyżej tablicach), jeżeli są tworzone standardową metodą (polecenie „\frac”), to ulegają automatycznemu pomniejszeniu, na które polecenia stylów tekstu nie działają. Wtedy, aby odtworzyć nominalną wielkość ułamków, należy posłużyć się poleceniem „\dfrac” (szerzej opisane w rozdziale o ułamkach).
Powiększanie całego wzoru w HTML
[edytuj | edytuj kod]Poniższe zestawienie zawiera metody zmiany wielkości całych wzorów stosowane przy użyciu składni HTML. Są one spotykane w wikipediowych artykułach, ale w przeważającej większości przypadków ich użycie jest zbędne, jest raczej efektem nadmiernej kreatywności osoby redagującej artykuł.
<small><math>...</math></small> | |
<math>...</math> | |
<big><math>...</math></big> |
<font size="1"><math>...</math></font> | |
<font size="2"><math>...</math></font> | |
<font size="3"><math>...</math></font> | |
<math>...</math> | |
<font size="4"><math>...</math></font> | |
<font size="5"><math>...</math></font> | |
<font size="6"><math>...</math></font> | |
<font size="7"><math>...</math></font> |
Powiększone odpowiedniki niektórych znaków
[edytuj | edytuj kod]Istnieje również niewielka grupa poleceń znaków specjalnych, które mają swoje powiększone odpowiedniki:
|
|
Odstępy (spacje)
[edytuj | edytuj kod]Odstępy poziome we wzorach
[edytuj | edytuj kod]Jak wspomniano wcześniej, użycie w kodzie znaków spacji, tabulatora czy entera ma wpływ tylko na wygląd kodu (co oczywiste), natomiast na wygląd wzoru, czyli sposób jego wyświetlania – nie ma, ponieważ program sam ustala światła. Zazwyczaj te światła są poprawne, jednak czasami będziemy chcieli poprawić czytelność wyglądu wyświetlanego wzoru (nie kodu), zwiększając odstępy pomiędzy różnymi elementami, a czasami nawet zmniejszając. Wykonuje się to szeregiem poleceń spacji o różnej długości, w tym jednej spacji o wartości ujemnej.
Co prawda istnieje specjalne polecenie „\text”, którego argumentami mogą być m.in. spacje, nawet wielokrotne, oraz „\operatorname”, które tworzy odstępy na obu krańcach swojego działania, ale nie w każdym miejscu wzoru da się ich użyć, a poza tym posługiwanie się poleceniami spacji (zamiast spacji wstawianej natywnie) jest wygodniejsze nie tylko dlatego, że jest ich wiele rozmiarów, ale również dlatego, że trudniej o pomyłkę czy dana spacja natywna jest wstawiona dla czytelności kodu, czy też być może będzie widziana we wzorze.
W wikipediowej wersji składni Math działają następujące polecenia tworzenia specjalnych odstępów spacjami:
- „\!” – stały odstęp ujemny −3/18 firetu (ang. small negative space, negative thin space)
- „\,” – stały odstęp 3/18 firetu (ang. small space, thin space)
- „\ ” – stały odstęp 4,5/18 firetu (backslash + spacja) spacja zwykła (ang. text space)
- „~” – stały odstęp 4,5/18 firetu (znak tyldy) spacja niełamiąca (ang. non-breaking space)
- „\;” – stały odstęp 5/18 firetu (ang. large space, thick space)
- „\quad” – stały odstęp równy 1 firetowi (ang. quad space)
- „\qquad” – stały odstęp równy 2 firetom (ang. double quad space)
Na Wikipedii nie jest zaimplementowana latexowa średnia spacja (4/18), czyli „\:” (backslash + dwukropek).
Spacja zwykła „\ ” i niełamiąca „~” niczym się nie różnią, ponieważ na Wikipedii wzory nie przełamują się pomiędzy wierszami.
W składni Math nie ma spacji cyfrowej, ale 2 spacje zwykłe „\ ” (a więc i 2 spacje niełamiące „~”) dają niemal dokładnie szerokość cyfry. Wewnątrz frakcji górnej i dolnej (indeksu) do szerokości cyfry są jednak bardziej zbliżone dwie spacje cienkie („\,”).
Uwagę zwraca nietypowa spacja ujemna (−3/18), którą stosuje się do korekty niedoskonałości mechanizmu budującego wzory. Na przykład:
przed korektą | |||
po korekcie |
Jednak czasami istnieją lepsze metody korekty niż ręczne poprawianie odstępów:
Kod | Efekt | Komentarz |
---|---|---|
x = 1,5y | bez korekty | |
x = 1,\!5y | ręczna poprawka | |
x = 1{,}5y | właściwa metoda |
Spacja zwykła (a więc i niełamiąca) to 4,5/18 firetu. Przedstawmy zatem definicyjny przelicznik „1/18” w prostszych ułamkach:
„\!” | „\,” | „\ ” | „~” | „\;” | „\quad” | „\qquad” |
–3/18 | 3/18 | 4,5/18 | 5/18 | 18/18 | 36/18 | |
–1/6 | 1/6 | 1/4 | 1/3,6 | 1/1 | 2/1 | |
–0,1(6) | 0,1(6) | 0,25 | 0,2(7) | 1 | 2 |
3 | 1× 3/18 | a\,b | |
4,5 | 1× 4,5/18 | a\ b | |
5 | 1× 5/18 | a\;b | |
6 | 2× 3/18 | a\,\,b | |
9 | 2× 4,5/18 | a\ \ b | |
9 | 3× 3/18 | a\,\,\,b | |
10 | 2× 5/18 | a\;\;b | |
12 | 4× 3/18 | a\,\,\,\,b | |
13,5 | 3× 4,5/18 | a\ \ \ b | |
15 | 3× 5/18 | a\;\;\;b | |
18 | 4× 4,5/18 | a\ \ \ \ b | |
18 | 1× 18 | a\quad b | |
20 | 4× 5/18 | a\;\;\;\;b |
Na uwagę zwraca polecenie spacji zwykłej, które wbrew zasadzie, że tzw. białe znaki nie mają znaczenia, zawiera spację znaczącą. W kodzie wzorów najczęściej stosuje się spację 5/18, czyli backslash ze średnikiem. Spacja ta jest minimalnie szersza od zwykłej, ale niewątpliwie polecenie „\;” jest lepiej widoczne od „\ ”, czyli backslasha ze spacją. Jeżeli w kodzie wzoru widać samotny lewy ukośnik „ze światłem po”, to najprawdopodobniej jest to polecenie spacji zwykłej i niektórzy edytujący przerabiają je na polecenie spacji 5/18 (ze średnikiem) w celu poprawy czytelności kodu. Czasami nawet trzeba to zrobić, jak w poniższym przykładzie.
Przykład przedstawia fragment kodu wzoru zawierającego tablice (ang. matrix), który często dla przejrzystości jest zapisywany w kilku wierszach. W drugim wierszu bezrefleksyjnie umieszczono polecenie spacji zwykłej jako ostatnie w linijce kodu, przez co można je łatwo zepsuć przez nieuwagę (usuwając sam znak spacji) lub też może być ono zepsute botem lub innym skryptem sprzątającym, które traktują znaki spacji na końcach wierszy jak niepotrzebny balast. W efekcie backslash pozbawiony spacji będzie się stykał z enterem. Co prawda „białe znaki” są traktowane przez program teoretycznie tak samo, ale nie w tym przypadku. Polecenie spacji zwykłej nie zadziała, a zamiast wzoru powstanie komunikat o błędzie. Użycie spacji 5/18 likwiduje to zagrożenie:
Kod | Efekt | |
---|---|---|
z poleceniem spacji zwykłej | z poleceniem spacji 5/18 | |
\begin{bmatrix} 1 \end{bmatrix}, \spacja I_2 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} |
\begin{bmatrix} 1 \end{bmatrix}, \; I_2 = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} |
Innym problemem jest wstawianie poleceń odstępów na początku lub końcu wzoru. Nie jest to rozwiązanie zbyt dobre, bywa mylące, a niektóre skrypty lub nawet sami edytujący mogą takie fragmenty wzoru uznać za zbędne i je usuwać, tym bardziej, że w starszych wersjach oprogramowania znaki te były stosowane w specyficznych celach, co przestało już być potrzebne. Istnieje wiele innych rozwiązań zachowywania takich odstępów, jeśli jest to konieczne, rozwiązań nawet poza składnią wzorów, czyli w zwykłej treści artykułu. Jeżeli jednak koniecznie chcemy z jakichś powodów wstawić polecenie odstępu w newralgicznym miejscu początku lub końca wzoru, warto zabezpieczyć się przed omyłkowym skasowaniem przez kogoś innego, dodając na krańcu pustą klamrę, np.:
<math>{}\;... |
...\quad{}</math> |
Z poleceniami „\quad” i „\qquad” jest problem, ponieważ są to polecenia zakończone literą. Jeżeli bezpośrednio po takim poleceniu postawimy znak nieliterowy (np. backslash, klamrę albo cyfrę), to problemu nie będzie. Jeżeli jednak bezpośrednio po tym poleceniu będziemy chcieli wstawić np. literę oznaczającą zmienną, to program wyświetli komunikat o błędzie składni. W takiej sytuacji konieczne jest postawienie spacji po takim poleceniu (chyba że to polecenie jest ostatnie w wierszu, wtedy enter będzie robił za separator składniowy).
Kod | Efekt | ||
---|---|---|---|
bez spacji po | ze spacją po | bez spacji po | ze spacją po |
a\!b | a\! b | tak samo | |
a\,b | a\, b | tak samo | |
a\ b | a\ b | tak samo | |
a~b | a~ b | tak samo | |
a\;b | a\; b | tak samo | |
a\quadb | a\quad b | Parser nie... | |
a\qquadb | a\qquad b | Parser nie... |
\! | |
\, | |
\ (+spacja) | |
~ | |
\; | |
\quad | |
\qquad | będzie 2 razy szerzej |
Roman | Italic | Bold | Sans serif | Typewriter | Script | Fraktur | Double-struck | |
---|---|---|---|---|---|---|---|---|
\! | ||||||||
\, | ||||||||
\ (+spacja) | ||||||||
~ | ||||||||
\; | ||||||||
\quad | ||||||||
\qquad |
\! | \, | \ (+spacja) | ~ | \; | \quad | \qquad | |
---|---|---|---|---|---|---|---|
Roman | |||||||
Italic | |||||||
Bold | |||||||
Sans serif | |||||||
Typewriter | |||||||
Script | |||||||
Fraktur | |||||||
Double-struck |
Likwidowanie wymuszonych odstępów poziomych
[edytuj | edytuj kod]W szeregu sytuacji odstępy poziome są we wzorach wstawiane automatycznie, np. przy znakach działań matematycznych:
Kod | Efekt |
---|---|
a+b | |
2\times2 |
Jednocześnie w sytuacjach nietypowych program domyśla się, żeby te spacje usunąć, np.:
Kod | Efekt |
---|---|
a \to -\infty | |
\times1, \times2, \times4, \times8 | |
+1 \times -2 \times +3 \times -4 \times +5 |
Powyżej mamy poprawny wygląd kolejno: minus nieskończoności, mnożników oraz wskazania na liczby dodatnie i ujemne.
Zdarzają się jednak sytuacje, w których to usunięcie spacji trzeba wymusić. Zastosowanie spacji ujemnej („\!”) da co prawda oczekiwany efekt, ale jest to tylko proteza przybliżająca poprawny odstęp (to znaczy jego brak), niekoniecznie w sposób idealny. Poprawnie składniowo należy ten problem rozwiązać, obejmując potrzebne wyrażenie klamrą. W poniższym przykładzie zlikwidowano w ten sposób odstępy przed symbolem nieskończoności. Klamra spowodowała wyłączenie mechanizmu interpretacji znaków minusa i plusa jako znaków międzywyrażeniowych. Trzeba było jednak skorygować również odstępy przy tekście, bo po użyciu klamry one też zniknęły:
Kod | Efekt |
---|---|
\text{od} -\infty \text{ do} +\infty | |
\text{od } {-}\infty \text{ do } {+}\infty |
Istotne jest postawienie co najmniej jednego znaku klamry bezpośrednio przy izolowanym znaku (dopełniający znak klamry też musi być, ale w dowolnym miejscu), przez co mamy tak naprawdę aż trzy możliwości, np.:
Kod | Efekt |
---|---|
a+b | |
{a+}b | |
a{+}b | |
a{+b} |
Odstępy poziome poza wzorami
[edytuj | edytuj kod]W kodzie artykułu (nie wzoru) nadmiarowe spacje są niewidoczne. Można postawić kilka spacji, a wyświetlony będzie tylko odstęp jednej. Najczęściej wtedy, aby zwiększyć odstęp, stosowana jest encja HTML twardej spacji (o szerokości spacji zwykłej), gdyż każda taka encja jest wyświetlana.
Jeżeli obawiamy się przełamania wiersza, wstawiamy obok siebie same encje, jednak jeżeli nie ma takiej obawy, możemy encje przeplatać zwykłymi spacjami, co da taki sam odstęp, a kod będzie prostszy:
x y | x y |
x y | x y |
W kodzie HTML oprócz encji twardej spacji istnieją również encje spacji półfiretowej i firetowej. Jednak stosownie ich nie jest zalecane, ponieważ część przeglądarek te encje wyświetla wadliwie o szerokości spacji zwykłej.
Nazwa | Polecenie | Kod | Efekt | Kod | Efekt | |
---|---|---|---|---|---|---|
spacja zwykła | spacja | x y | x y | 8 × spacja | x y | |
twarda spacja | | x y | x y | 8 × | x y | |
spacja półfiretowa |   | x y | x y[a] | 4 ×   | x y[c] | niezalecane |
spacja firetowa |   | x y | x y[b] | 2 ×   | x y[c] |
[a] powinien być 2-krotny odstęp,
[b] powinien być 4-krotny odstęp,
[c] powinien być 8-krotny odstęp.
Ponadto tylko encja twardej spacji ma cechę nieprzełamywania wiersza, tzn. znak przed nią i znak po niej będą trzymały się razem. Encje spacji półfiretowej i firetowej przełamują wiersz tak jak spacja zwykła.
Jednak nawet encja twardej spacji traci swoją właściwość nieprzełamywania wiersza w przypadku kontaktu z kodem wzoru:
... <math> | ani na początku, ani na końcu blokada przełamywania nie działa |
</math> ... |
Aby utrzymać wzór w jednym wierszu z innymi elementami składu, należy użyć szablonu{{nowrap}}, np.:
{{nowrap|...<math>...</math>...}} |
Uwaga: HTML-owa encja „ ” (także jako „ ” lub „ ”) jest poleceniem wyświetlającym unikodowy znak „NO-BREAK SPACE” (U+00A0, ASCII 160). Znak ten można do kodu artykułu wprowadzić również natywnie. Nie wolno jednak tego robić, bo natywna twarda spacja wygląda w kodzie artykułu tak jak zwykła spacja, przez co żadna z osób redagujących nie będzie wiedziała o jej istnieniu.
Odstępy pionowe we wzorach
[edytuj | edytuj kod]W LaTeX-u istnieje szereg poleceń zarówno regulowania świateł pionowych, jak i metod łamania wiersza. W wikipediowej wersji Math takie możliwości występują tylko jako wewnętrzne parametry w poleceniach tablic.
Znaki interpunkcyjne i separator dziesiętny
[edytuj | edytuj kod]Jeśli zechcemy we wzorze zapisać ułamek dziesiętny w zwykły sposób, to po przecinku pojawi się niewielki odstęp – np. 22,20
wyświetli . Jest to związane z tym, że w krajach anglosaskich (i części innych krajów) separatorem dziesiętnym jest kropka, a przecinek służy tam w zwykłych tekstach do oddzielania grup cyfr (np. jedna druga to 0.5, a milion to 2,000,000). W języku polskim (ale także niektórych innych) znaki te są stosowane odwrotnie.
Aby w polskojęzycznym artykule poprawnie wyświetlić we wzorze ułamek dziesiętny, przecinek trzeba otoczyć nawiasem klamrowym – 22{,}20
, przez co otrzymamy .
Zjawisko jest zresztą szersze. Podstawowe znaki interpunkcyjne (,;:.) w składni Math zachowują się następująco:
- przecinki, średniki i kropki zachowują się neutralnie, tzn. tworzą odstęp z prawej strony, ale
- każda kropka obok cyfry – niezależnie przed, za, czy pomiędzy cyframi, jest do tej cyfry przyciągana,
- dwukropek rozpycha wszystkie znaki (jest rozumiany jako matematyczny znak dzielenia).
Objęcie klamrą każdego ze znaków interpunkcyjnych (,;:.) przyciąga go do sąsiadów:
Kod | Efekt | Kod | Efekt | ||
---|---|---|---|---|---|
1.1 | − | 1{.}1 | − | ||
1.a | − | 1{.}a | |||
a.1 | − | a{.}1 | |||
a.a | −/+ | a{.}a | |||
1,1 | −/+ | 1{,}1 | − | ||
1,a | 1{,}a | ||||
a,1 | a{,}1 | ||||
a,a | a{,}a | ||||
1;1 | −/+ | 1{;}1 | − | ||
1;a | 1{;}a | ||||
a;1 | a{;}1 | ||||
a;a | a{;}a | ||||
1:1 | + | 1{:}1 | − | ||
1:a | 1{:}a | ||||
a:1 | a{:}1 | ||||
a:a | a{:}a |
Legenda: „−” – brak odstępów, „−/+” – odstęp z jednej strony, „+” – odstęp z obu stron.
„Przecinkowy” problem można rozwiązać również za pomocą stylu czcionki, np. wyrażenie „dwa i pół centymetra” można w całości objąć jednym poleceniem stylu, przez co osiągniemy jednocześnie aż trzy rzeczy: przecinek bez odstępu, spację wpisaną natywnie (a nie poleceniem spacji) oraz symbol jednostki antykwą (a nie domyślną kursywą):
Kod | Efekt |
---|---|
2,5 cm | |
\text{2,5 cm} |
Jednak w przypadku centymetrów kwadratowych nie będzie już tak prosto, bo dwójka we frakcji górnej jest działaniem matematycznym, a ono nie działa w poleceniu „\text” i trzeba skorzystać z innych rozwiązań, np. wystawienia dwójki we frakcji górnej poza działanie polecenia „\text”, albo z polecenia „\mathrm”, które z kolei nie wyświetla spacji (szczegóły omówione w rozdziale o stylach czcionki), więc trzeba wstawić spację poleceniem „\ ” i zrobić korektę przecinka, np.:
Kod | Efekt |
---|---|
\text{2,5 cm}^2 | |
\text{2,5 }\mathrm{cm^2} | |
\mathrm{2{,}5\ cm^2} | |
2{,}5\ \mathrm{cm}^2 |
Innym problemem jest zbędny odstęp z lewej strony dwukropka w zapisie funkcji. Można co prawda dokonać korekty z użyciem klamry i któregoś z poleceń spacji, ale najlepiej zamiast znaku dwukropka użyć poprawnego semantycznie w tym miejscu polecenia „\colon”, które ma wbudowany odstęp z prawej strony:
Kod | Efekt | Komentarz |
---|---|---|
f : A \to B | gorzej | |
f{:}\,A \to B | lepiej | |
f \colon A \to B | najlepiej |
W przypadku tekstów, w których po wzorze następuje znak interpunkcyjny, dobrą praktyką typograficzną jest przenoszenie tych znaków na koniec wnętrza wzoru. Zapewnia się w ten sposób szereg rzeczy jak: dopasowanie wielkości, położenia, odstępów itp. oraz, co ważne, unika się przypadków przenoszenia znaków interpunkcyjnych do następnego wiersza – to jest głównym powodem chowania interpunkcji do wzoru.
Szczególnym przypadkiem jest tutaj dwukropek, bo rozumiany jest przez program jako znak dzielenia, przez co dostanie wyraźny odstęp z lewej strony. Aby tego uniknąć, dwukropek trzeba umieścić w klamrze:
Końcówka kodu | Efekt | Komentarz |
---|---|---|
...\sqrt[3]{a}</math>: zwykły tekst | : zwykły tekst | wygląd dobry, ale dwukropek poza wzorem |
...\sqrt[3]{a}:</math> zwykły tekst | zwykły tekst | dwukropek natywnie we wzorze dostaje odstęp z lewej strony |
...\sqrt[3]{a}{:}</math> zwykły tekst | zwykły tekst | użycie klamry niweluje ten odstęp |
Nie zawsze jednak jest możliwe chowanie znaków interpunkcyjnych do wnętrza wzoru. Chodzi o znaki występujące parami, czyli znaki nawiasu. Można je przenieść do wzoru tylko, gdy są do pary:
Fragment artykułu | Komentarz |
---|---|
tekst (<math>wzór</math>) tekst | gorzej: oba znaki nawiasu poza wzorem |
tekst <math>(wzór)</math> tekst | lepiej: oba znaki nawiasu wewnątrz wzoru |
Natomiast gdy w wyrażeniu nawiasowanym znajduje się oprócz wzoru także zwykła treść artykułu, to oba znaki nawiasu trzeba zostawić poza wzorem. Nie można wstawiać do wzoru tylko jednego znaku z pary nawiasów, bo istnieje niewielka różnica wyglądu tych nawiasów (wzory są składane inną czcionką).
Fragment artykułu | Komentarz |
---|---|
(tekst <math>wzór)</math> | źle: pierwszy znak nawiasu poza wzorem, drugi znak nawiasu we wzorze |
(tekst <math>wzór</math>) | dobrze: oba znaki nawiasu poza wzorem, ponieważ w nawiasie jest jeszcze coś oprócz wzoru |
Wielokropki poziome i pionowe
[edytuj | edytuj kod]Kod | Efekt | Komentarz | |
---|---|---|---|
zalecane | niezalecane | ||
\ldots | \dotsc \dotso |
na dolnej linii pisma (wspólnie z kropką, przecinkiem itd.) | |
\cdots | \dotsb \dotsi \dotsm |
na średniej linii pisma (wspólnie z plusem, minusem itp.) | |
\dots | na dolnej lub średniej linii pisma (kontekstowo) | ||
\vdots | |||
\ddots |
- Niezalecane polecenia wielokropków mają znaczenie poza Wikipedią, gdzie nieznacznie różnią się światłami względem innych znaków interpunkcyjnych.
- W składni Math na Wikipedii wszystkie poziome polecenia wielokropków mają identyczne światła. Postawione obok siebie tworzą równą linię.
- Polecenie „\dots” dobiera jedno z dwóch położeń automatycznie, w zależności od sąsiednich wyrażeń (argumentów lub operacji)...
- ...aczkolwiek w „mieszanych” sytuacjach zachowuje się niekonsekwentnie:
- Ponadto jest problem wyglądu w przypadku polecenia „\cdot”. Wtedy, łamiąc konwencję, wypada wymusić dolne położenie wielokropka:
użyte „\dots” użyte „\ldots”
- 3 zwykłe kropki mają zazwyczaj identyczny wygląd ze znakami wielokropków, ale nie zachowują poprawnych świateł względem innych znaków, np.:
użyte 3 kropki użyte „\ldots”
- Czasami jednak 3 zwykłe kropki nie przybierają nawet typograficznej postaci wielokropka:
użyte 3 kropki użyte „\dots”
- Wielokropki różnią się interlinią, w szczególności pochyłe dają trochę większy odstęp od pionowych:
Przykłady
Litery, symbole, znaki
[edytuj | edytuj kod]Znaki specjalne (zabronione)
[edytuj | edytuj kod]Niektóre znaki, mimo iż zostały wstawione do kodu, nie są wyświetlane we wzorze. Są to tzw. znaki specjalne, czyli składniowe, Żeby je wypisać, trzeba użyć kodów:
Znak | Używany do | Kod | Efekt |
---|---|---|---|
{ | otwiera grupę | \{ | |
} | zamyka grupę | \} | |
^ | frakcja górna, np. | \wedge | |
_ | frakcja dolna, np. | \_ | |
\ | zaczyna polecenia: instrukcje i symbole specjalne | \backslash | |
% | wprowadza komentarz | \% lub % | lub |
~ | spacja niełamiąca | \sim | |
& | rozdziela komórki w tablicach | \& | |
$ | stosowane w niewidocznej części kodu | \$ lub $ | lub |
# | stosowane w niewidocznej części kodu | \# | |
spacja | w kodzie spacje są ignorowane | \znak spacji |
Skrypt parsujący pozwala dla wygody pominąć \
przed %
i $
. Sugerowana jest jednak pisownia z backslashem[3].
- W składni Math greckie litery wstawia się odpowiednimi poleceniami.
- Poza wzorami, czyli bezpośrednio w tekście, można wstawiać litery greckie natywnie, czyli tak samo jak wszystkie inne znaki, bo są to znaki z Unikodu. Nie ma ich jednak na klawiaturze, więc trzeba je jakoś znaleźć, wyświetlić na ekranie komputera i skopiować. Dlatego dla wielu osób wygodniejsze jest stosowanie encji HTML. Encje te są kodami HTML wyświetlającymi dokładnie te same znaki, co w Unikodzie.
- Znaki w składni Math korzystają z własnych fontów, przez co różnią się wyglądem od reszty tekstu (dotyczy to wszystkich znaków, nie tylko liter greckich).
- W alfabecie greckim niektóre znaki mają swoje warianty typograficzne. Warianty te są oczywiście w Unikodzie (bo w Unikodzie jest wszystko), ale są one dostępne również w składni Math. Jedynie encje HTML nie mają wariantów, a tylko podstawowy zestaw.
- I tu jest problem, bo w składni Math zamieniono wersję podstawową z alternatywną w przypadku dwóch znaków: małego epsilon i małego phi.
Zapis Math | Encje HTML | Znaki w Unikodzie | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kod | efekt | kod | efekt | kod | efekt | kod | efekt | kod | efekt | |||||
\Alpha \Beta \Gamma \Delta \Epsilon \Zeta \Eta \Theta \Iota \Kappa \Lambda \Mu \Nu \Xi \Omicron \Pi \Rho \Sigma \Tau \Upsilon \Phi \Chi \Psi \Omega |
\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \omicron \pi \rho \sigma \tau \upsilon \phi \chi \psi \omega |
– – – – \varepsilon – – \vartheta – \varkappa – – – – – \varpi \varrho \varsigma – – \varphi – – – |
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω |
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω |
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω |
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω |
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω |
α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω |
ϵ ϑ ϰ ϖ ϱ ς ϕ |
Więcej o wyświetlaniu liter greckich można przeczytać w rozdziale: Problem liter greckich.
Bardziej szczegółowe informacje można znaleźć w uzupełniającej stronie pomocy: Pomoc:Wzory (litery greckie).
Symbole kolorów karcianych
[edytuj | edytuj kod]Przydatne np. do artykułów o brydżu. Bezpośrednio w tekście (bez Math) można używać encji HTML. Jednak przy mniejszych rozmiarach tekstu encje są gorszej jakości, a część przeglądarek nie ma odpowiednich fontów, lub też w drugą stronę – wyświetla je w kolorach i pocieniowane.
Zapis Math | Encje HTML | |||
---|---|---|---|---|
kod | efekt | kod | efekt | |
\spadesuit \heartsuit \diamondsuit \clubsuit |
♠ ♥ ♦ ♣ |
♠ ♥ ♦ ♣ |
Znaki niemające swoich poleceń
[edytuj | edytuj kod]- Asterysk (asterisk)
W normalnym tekście (czyli w większości fontów) znak ten jest sporej wielkości, ale leży dość wysoko. Użyty we wzorze natywnie też ma tę wielkość, ale leży niżej – na średniej linii pisma (czyli tak jak w foncie Symbol). Zastosowanie frakcji górnej spowoduje podniesienie, ale i pomniejszenie znaku. Aby zachować wygląd z tekstu, należy we wzorze również wpisać asterysk jako tekst poleceniem „\text”.
Kod | Efekt |
---|---|
A*, A^*, A\text{*} |
To podniesienie asterysku działa także dla „\textrm”, „\textit”, „\textbf” i „\textsf”, ale już dla „\texttt” – nie. Nie działa również w innych stylach czcionki, np. nie da się tak np. poleceniem „\mathrm”.
Inną metodą podniesienia asterysku bez pomniejszania go jest użycie specyficznego polecenia „\operatorname”, gdzie asterysk stosuje się jako część dłuższej frazy, aby uniknąć odstępów generowanych przez to polecenie. Więcej w rozdziale „Polecenia \operatorname i \mathop”.
Na marginesie można dodać, że istnieje co prawda polecenie „\ast”, ale w praktyce niczym się nie różni we wzorze od asterysku wstawionego tam natywnie. Jedyna drobna różnica dotyczy sposobu pogrubiania (na znak asterysku zadziała już „\mathbf”, na polecenie „\ast” dopiero „\boldsymbol”).
- Dywiz
Znak ten użyty we wzorze natywnie jest wyświetlany jako minus z odstępami. Aby uzyskać zwykły dywiz, należy użyć polecenia „\text” lub któregoś z poleceń z serii „\text...”, np. „\textrm”, ewentualnie skorzystać z polecenia „\operatorname”.
- Promil
Tylko symbol procenta można łatwo wpisać. Symbol promila nie jest zaimplementowany, ale można zbudować podobne do niego wyrażenie, choć o trochę innym wyglądzie. Jeżeli oba znaki występują we wzorze, wypada również zwykły procent zapisać tą mniej wygodną metodą dla zachowania spójności wyglądu.
Kod | Efekt |
---|---|
100\% 100^0\!\!/\!_0 100^0\!\!/\!_{00} |
- Symbol stopnia
Znak ten buduje się poleceniem „\circ”, które daje znak leżący na średniej linii pisma. Dla symbolu stopnia trzeba więc użyć frakcji górnej, np. „45^\circ” daje . W przypadku np. stopnia Celsjusza trzeba po zbudowanym stopniu zastosować spację ujemną, np.: „100\ ^\circ\!\text{C}” daje . Przy wstawieniu symbolu stopnia bez wartości (np. samej jednostki miary) mogą pojawić się problemy z poprawnym światłem, a wtedy trzeba dodatkowo użyć pustej klamry przed poleceniem frakcji górnej, np. „\mathrm{[m \cdot {}^\circ\!C]}”, co daje .
Teoretycznie można natywnie użyć unikodowego znaku „°” (U+00B0, Degree sign), który jest dostępny w poleceniu „\text”, ale otrzymany znak będzie za mały, por.: .
Przekreślenia
[edytuj | edytuj kod]Zarówno symbole mające w składni swoje znaki (np. +, =, >), jak i symbole wstawiane poleceniami (np. „\approx”, „\pm”), można przekreślać. Co więcej, można przekreślać także większe wyrażenia, a nawet całe wzory.
- Najprostsze jest użycie polecenia „\not”, które wyświetla pochyloną kreskę z ujemnym odstępem po niej. Jednak to polecenie nie zawsze daje zadowalający efekt. Zasadniczo jest ono stworzone do przekreślania symboli relacji, aczkolwiek działa na wszystkie symbole.
- Gdy przekreślenie nie wygląda poprawnie (np. nie jest wycentrowane), można po poleceniu „\not” użyć poleceń spacji ujemnej i ewentualnie innych spacji.
- Gdy nadal jest problem, można polecenie „\not” zastąpić znakiem ukośnika „/” lub poleceniem kreski pochyłej „\diagup” (wtedy spacje ujemne są już konieczne).
- I wreszcie ostatnia metoda – polecenie „\cancel”, które służy do przekreślania nawet dużych wyrażeń.
Przekreślanie symboli budowanych znakami
[edytuj | edytuj kod]Poleceniem „\not” można poprawnie przekreślić tylko niektóre znaki, np.:
\not+ | \not- | \not= | \not> | \not| |
...co więcej, część tych znaków ma własne polecenia przekreślonych symboli i takie właśnie postępowanie jest zalecane, są to m.in.:
\not= | \neq | ||
\not< | \nless | ||
\not> | \ngtr |
Inne znaki przekreślone z użyciem polecenia „\not” wyglądają nieciekawie z powodu niewycentrowania przekreślenia:
\not: | \not) | \not! | \not A | \not a | \not8 |
Można wtedy spróbować spacji ujemnej (–3/18), np.:
\not a | \not 8 | ||
\not\!a | \not\!8 |
Czasami trzeba jednak użyć bardziej skomplikowanych kombinacji ze spacjami różnych wartości, np.:
\not) | \not A | ||
\not\!) | \not\!A | ||
\not\!\!\;\;) | \not\!\!A |
Jeżeli przekreślenia nadal są niesatysfakcjonujące, można skorzystać ze znaku ukośnika „/” lub polecenia „\diagup” (wyświetlającego kreskę pod kątem 45°).
Poniżej wygląd kresek wyświetlanych kolejno: znakiem ukośnika „/” oraz poleceniami „\not” i „\diagup”:
Stosując alternatywne znaki przekreślenia, trzeba użyć poleceń spacji ujemnej i ewentualnie innych spacji.
Kod | Efekt |
---|---|
\not\!4 | |
4\!\!\!/ | |
4\!\!\!\!\diagup | |
44\!\!\!\!\!\diagup |
Przekreślanie symboli budowanych poleceniami
[edytuj | edytuj kod]Powyżej opisano przekreślanie symboli mających w składni swoje znaki. W taki sam sposób (poprzedzając poleceniem „\not”) można przekreślać symbole wstawiane poleceniami, np. „\approx” → „\not\approx”, ale i tu bywa, że niektóre przekreślenia są niedopracowane (wtedy można skorzystać z alternatywnych metod opisanych powyżej). Istnieje bardzo dużo poleceń wyświetlających symbole; poniżej przykłady przekreślenia niektórych z nich:
\approx | |||||
\sim | |||||
\simeq | |||||
\leq | \geq | ||||
\leqq | \geqq | ||||
\leqslant | \geqslant | ||||
\in | \ni | ||||
\subset | \supset | ||||
\subseteq | \supseteq | ||||
\infty | |||||
\cdot | \times | ||||
\oplus | |||||
\star | |||||
\circ | \bullet | ||||
\cup | \cap | ||||
\pm | \mp | ||||
\dots | |||||
\ldots | |||||
\cdots | |||||
\Leftarrow | \leftarrow | ||||
\Rightarrow | \rightarrow | ||||
\Leftrightarrow | \leftrightarrow |
Także tutaj, czyli w symbolach wstawianych poleceniami, można znaleźć odpowiadające im polecenia z przekreśleniem, ale tylko dla niektórych symboli (wikipediowa wersja Math jest w wielu miejscach lekko zubożona), np.:
\not\in | \notin | ||
\not\leqslant | \nleqslant | ||
\not\leqq | \nleqq | ||
\not\leq | \nleq |
Przekreślanie wyrażeń
[edytuj | edytuj kod]Bardziej wyrazistą metodą przekreślania jest użycie polecenia „\cancel”, które nadaje się także do dłuższych wyrażeń, dopasowując kąt pochylenia kreski:
Kod | Efekt |
---|---|
\cancel4 | |
\cancel{44} | |
\cancel{444} | |
\cancel{4444} | |
\cancel{4444444444} |
Porównajmy użycie „\diagup” i „\cancel”:
Za pomocą „\cancel” można przekreślać dowolnie duże wyrażenia, np.:
Istnieją 4 odmiany tego polecenia:
\cancel {Fragment} |
|
\bcancel {Fragment} |
|
\xcancel {Fragment} |
|
\cancelto {} {Fragment} \cancelto {Dalej} {Fragment} |
|
Zmiana koloru poprawia czytelność. W przypadku koloru argumentu jest to proste (polecenie koloru umieszczamy wewnątrz klamry argumentu):
abc \cancel {\color{Red}Fragment} xyz... |
Pokolorowanie całości przekreślonego wyrażenia również jest proste, z tym że wymaga dodatkowej klamry, by nie zakolorować reszty wzoru z prawej strony:
abc \color{Red}\cancel {Fragment} xyz... | |
abc {\color{Red}\cancel {Fragment}} xyz... |
Pokolorowanie samego przekreślenia jest bardziej pracochłonne, bo musimy użyć obu powyższych metod. Najpierw kolorujemy całość przekreślonego wyrażenia, a potem, niejako powtórnie, kolorujemy argument – tym razem z powrotem na kolor reszty wzoru (czyli czarny):
abc {\color{Red}\cancel {\color{Black}Fragment}} xyz... |
Tak samo w przypadku polecenia „\cancelto”:
abc {\cancelto {\color{Green}Dalej} {Fragment}} xyz... | |
abc {\color{Red}\cancelto {\color{Green}Dalej} {\color{Black}Fragment}} xyz... |
Gdy argumentem jest pusta klamra lub polecenia spacji, wygląda to tak (czyli trochę za nisko):
abc |
abc |
abc |
abc |
Inne sztuczki:
Podkreślenia i nadkreślenia
[edytuj | edytuj kod]Poleceniami „\underline” i „\overline” można podkreślać całe wyrazenia. Kreski dopasowują się automatycznie, np.:
\underline a \underline f \overline a \overline f | |
\underline{ab+cd} \overline{ab+cd} |
Istnieje co prawda polecenie „\bar”, ale służy ono tylko do nadawania znaków diakrytycznych pojedynczym samogłoskom, a w zastosowaniach matematycznych się nie sprawdza, np.:
„\bar” | ||
„\overline” |
Polecenia „\underline” i „\overline” można nadawać jednocześnie, w dowolnej kolejności i bez dodatkowej klamry, np.:
\underline\overline{abdgj} lub \overline\underline{abdgj} |
Można je nadawać wielokrotnie, np.:
\underline\underline\underline{abc} |
|||
\overline\overline\overline{abc} |
Tak wygląda zagnieżdżanie:
abc\overline{def\overline{ghi}jkl\overline{mno}pqr}stu |
\underline{1\underline{2\underline{3\underline{4}}}} | |
\underline{\underline{\underline{\underline{4}3}2}1} | |
\overline{\overline{\overline{\overline{4}3}2}1} | |
\overline{1\overline{2\overline{3\overline{4}}}} |
\underline{1\underline{2\underline{3{\underline{4}}3}2}1} | |
\underline{\underline{\underline{\underline{4}3}2}1\underline{2\underline{3\underline4}}} | |
\overline{1\overline{2\overline{3{\overline{4}}3}2}1} | |
\overline{\overline{\overline{\overline{4}3}2}1\overline{2\overline{3\overline4}}} |
Jak widać powyżej, w zagnieżdżaniu najdłuższa kreska będzie zawsze najdalej od argumentu. Odwrotnego efektu nie można uzyskać, co najwyżej można zasymulować, ustawiając kilka podkreślonych/nadkreślonych wyrażeń obok siebie, ale wygląd będzie gorszy; kreski nie zawsze się stykają, a ich położenie w pionie jest uzależnione od wysokości znaków, np.:
\overline{...} \overline\overline{...} \overline\overline\overline{...}... | ||
\underline{...} \underline\underline{...} \underline\underline\underline{...}... |
Podkreślanie i nadkreślanie działa także na same odstępy, np.:
\underline\quad | |
\underline\qquad | |
\underline{\qquad\qquad\qquad} |
Nadkreślenie w tym przypadku będzie tylko trochę wyżej:
underline vs. overline vs. oba |
Przykłady:
Jednoczesne częściowe nasunięcie obu kresek na siebie jest składniowo niewykonalne. Wizualnie można to zrealizować co najmniej dwoma sąsiednimi fragmentami wzoru. Lepiej wtedy zostawić dzieloną dolną kreskę, gdyż podział górnej kreski jest bardziej dostrzegalny.
\underline{ba\overline{na}} \overline{na} |
|
\underline{ba} \overline{\underline{na}na} |
|
\underline{ba} \underline\overline{na} \overline{na} |
Czasami jednak nawet to jest niemożliwe, np.:
Kolorowanie:
\color{Red}\overline{ab+cd} | |
\overline{\color{Red}{ab+cd}} | |
\color{Red}\overline{\color{Black}{ab+cd}} | |
\color{Green}\underline{\color{Red}\overline{\color{Black}{ab+cd}}} |
Więcej o mechanizmie kolorowania znajduje się pod koniec rozdziału Przekreślenia.
Nawiasy i inne separatory matematyczne
[edytuj | edytuj kod]Wpisywanie
[edytuj | edytuj kod]Separatory wstawiane ręcznie
Niektóre znaki, jak np. nawiasu zwykłego i kwadratowego, wpisuje się normalnie, ale już znaki klamry (nawiasy sześcienne) nie, bo są elementem składniowym, dlatego aby były widoczne jako treść wzoru, wpisuje się je poleceniami „\{” i „\}”. Czasami może się zdarzyć, że i znaki nawiasu kwadratowego będą składniowe, ale w rzadkich sytuacjach i konkretnych miejscach, przez co nie powinny sprawić problemu edytującemu (np. podając stopień pierwiastka, używa się nawiasu kwadratowego).
Kod | Efekt |
---|---|
( ) [ ] \{ \} | |
\lfloor \rfloor \lceil \rceil \langle \rangle | |
/ \backslash | \| | |
\uparrow \updownarrow \downarrow | |
\Uparrow \Updownarrow \Downarrow |
Niektóre znaki mają swoje zdublowane polecenia, wyświetlające na ekranie niczym nie różniące się od oryginałów znaki:
Kod | Efekt |
---|---|
[ ] \{ \} | \| | |
\lbrack \rbrack \lbrace \rbrace \vert \Vert |
Powyższe alternatywne polecenia służą do rozwiązywania problemów składniowych, gdy znaki wstawiane natywnie są w określonych sytuacjach nie znakami widzialnymi, tylko elementami poleceń. Na szczęście zdarza się to bardzo rzadko, a w dodatku istnieje szereg innych sposobów ominięcia takich problemów.
Znaki pionowej kreski i podwójnej pionowej kreski mają oprócz swoich alternatywnych wersji „\vert” i „\Vert” również wersje wrażliwe w niektórych sytuacjach na tworzenie odstępów, a raczej na usuwanie dodatkowych odstępów z wybranej strony generowanych przez niektóre inne polecenia. Dla pionowej kreski są to „\lvert” i „\rvert”, ale nie działają w wikipediowej wersji wzorów, natomiast działają dla podwójnej kreski – są to „\lVert” i „\rVert”. Cofanie dodatkowych odstępów można jednak wykonać z podobnym skutkiem prostszą metodą – przy użyciu klamry. Poniżej kilka przykładów:
\log \| -2 \| | |
\log \Vert -2 \Vert | |
\log \| {-2} \| | |
\log \lVert -2 \rVert |
\log \| 2+ \| | |
\log \Vert 2+ \Vert | |
\log \| {2+} \| | |
\log \lVert 2+ \rVert |
np. <math>\| \cdot \|</math> oznacza | np. oznacza |
np. <math>\Vert \cdot \Vert</math> oznacza | np. oznacza |
np. <math>\| {\cdot} \|</math> oznacza | np. oznacza |
np. <math>\lVert \cdot \rVert</math> oznacza | np. oznacza |
Innym argumentem za tym, by nie używać „\lVert” i „\rVert”, jest brak współpracy z poleceniami „\left” i „\right” oraz z serii „\big...”.
Co prawda separator podwójnej pionowej kreski można zbudować parą znaków „|”, jednak zastosowanie poprawnego polecenia „\|” skutkuje właściwym wyglądem odstępów, np.:
Kod | Efekt |
---|---|
\rho(x) = \rho(||x||) | |
\rho(x) = \rho(\|x\|) |
Separatory wstawiane automatycznie
Niektóre polecenia same generują separatory (a wtedy dopasowują też ich wielkość). Na przykład:
Kod | Efekt |
---|---|
{n \choose k} | |
\begin{Vmatrix} x & y \\ z & v \end{Vmatrix} | |
\underbrace{ a+b+\cdots+z }_{26} |
Dopasowanie wielkości
[edytuj | edytuj kod]Wszystkie separatory wstawiane ręcznie (i tylko te znaki) można powiększać za pomocą specjalnych poleceń dwiema metodami:
- metoda automatyczna (polecenia „\left” i „\right” działające jako para) polega na tym, że program precyzyjnie dopasowuje wysokość pary separatorów do wysokości znajdującego się pomiędzy nimi wyrażenia matematycznego, dopasowywane są też światła poziome (a czasami nawet tylko one),
- metoda ręczna (polecenia typu „\big...” działające indywidualnie) jest rodzajem protezy polegającej na wyborze jednej z czterech dostępnych wielkości.
Polecenia \left i \right
[edytuj | edytuj kod]Znaki normalnie wpisywane mają zwykłą wysokość, wspólną z resztą tekstu. Program nie dopasowuje ich wysokości do sąsiednich wyrażeń. W wielu sytuacjach te znaki będą jednak za niskie i nie dotyczy to tylko np. wielopiętrowych ułamków, ale nawet tak prostych wyrażeń jak potęgowanie czy proste ułamki. Wtedy parę separatorów należy poprzedzić poleceniami „\left” i „\right”.
Przed użyciem \left i \right | Po użyciu \left i \right | ||
---|---|---|---|
kod | efekt | kod | efekt |
( f^2 ) | \left( f^2 \right) | ||
( \frac{a}{b} ) | \left( \frac{a}{b} \right) | ||
( \sqrt{1/2} ) | \left( \sqrt{1/2} \right) | ||
( \frac{1+\frac... ...\frac{a}{b}}} ) |
\left( \frac{1+\frac... ...\frac{a}{b}}} \right) |
Para tych poleceń dopasowuje także światła poziome, i to nawet gdy nie znajduje powodu do zmian pionowych:
Kod | Efekt |
---|---|
a\{b[c(d)e]f\}g | |
a\left\{b\left[c\left(d\right)e\right]f\right\}g |
Zestawienie wszystkich separatorów:
Przed użyciem \left i \right | Po użyciu \left i \right |
---|---|
Dopasowywać tą metodą można także pary różnych znaków, np. nawias okrągły z kwadratowym:
Kod | Efekt |
---|---|
\left( \frac12,\frac12 \right] |
Jeżeli ma być dopasowany tylko jeden separator (nie do pary), trzeba zamarkować miejsce drugiego poleceniem, w którego składni brakujący separator będzie zastąpiony znakiem kropki: „\left.” lub „\right.”. Na przykład:
Kod | Efekt |
---|---|
\left\{ \frac{a}{b} \right. | |
\left. \frac{a}{b} \right\} |
Polecenia „\left” i „\right” mają jeszcze jedną, szczególną właściwość: zastępują znaki klamry stosowane składniowo. Np. aby umieścić we frakcji dolnej znak „b” w nawiasie, trzeba cały nawias (wszystkie 3 znaki) objąć klamrą. Okazuje się, że to samo działa bez klamry, jeśli do znaków nawiasu okrągłego dodamy polecenia „\left” i „\right”:
Kod | Efekt |
---|---|
a_{(b)} | |
a_\left(b\right) |
Klamra oczywiście może pozostać, chodzi o to, że w takiej konstrukcji nie jest konieczna. W poniższych przykładach też obyto się bez klamry, choć można by jej oczekiwać w kodzie:
- , ,
Uzasadnione użycie tego mechanizmu jest spotykane w kodzie rzadko. Częściej jest to próba nieformalnej regulacji świateł poziomych lub po prostu pozostałość po nieumiejętnym kopiowaniu fragmentu kodu z innego miejsca. Podczas optymalizacji kodu, usuwając niepotrzebne polecenia „\left” i „\right”, trzeba pamiętać, że niektóre z nich mogą wymagać przywrócenia znaków klamry.
Polecenia \big, \Big, \bigg i \Bigg
[edytuj | edytuj kod]Drugą (obok „\left” i „\right”) metodą powiększania separatorów jest seria 4 poleceń typu „\big...”.
- Seria tych poleceń jest wykorzystywana, gdy:
- „\left” i „\right” nie dają zadowalających efektów lub niczego nie powiększają,
- wzór zapisywany jest w kilku wierszach (czyli w kilku wzorach lub kilku komórkach tablicy).
- Polecenia mają sztywno ustalone wielkości:
- „\big” – wielkość równa interlinii, czyli ok. 1,2 raza w stosunku do wielkości normalnego znaku,
- „\Big” – 1,5 raza większe od „\big”,
- „\bigg” – 2 razy większe od „\big”,
- „\Bigg” – 2,5 raza większe od „\big”.
- Polecenia działają tylko na najbliższy znak (nie można większej liczby znaków obejmować klamrą).
- Polecenia działają pojedynczo (nie wymagają pary lewy-prawy).
- Polecenia działają tylko na separatory.
W składni Math istnieją 4 warianty serii tych poleceń: „\big...”, „\bigl...”, „\bigr...” oraz „\bigm...”. Różnią się one dopasowaniem świateł z wybranej strony, obu lub żadnej. Seria „\bigm...” nie jest zaimplementowana na Wikipedii, a „\bigl...” i „\bigr...” działają, ale bez różnicy w wyświetlaniu z zalecaną serią „\big...” (a więc są niezalecane).
Przykłady użycia:
Kod | Efekt |
---|---|
( \big( \Big( | |
\uparrow \big\uparrow \Big\uparrow |
Spacje są oczywiście ignorowane:
\big( = \big ( |
\big\uparrow = \big \uparrow |
Poniżej wymieniono wszystkie przypadki użycia:
W kodzie | Efekt | |||
---|---|---|---|---|
bez | ||||
\big | ||||
\Big | ||||
\bigg | ||||
\Bigg |
Inne spojrzenie:
Kod | Efekt |
---|---|
( \big( \Big( \bigg( \Bigg( \dots \Bigg\} \bigg\} \Big\} \big\} \} |
Poprawki wyglądu
[edytuj | edytuj kod]Poprawki pionowe
Para poleceń „\left” i „\right” wykonuje dopasowanie indywidualnie dla każdej pary separatorów, stąd w ramach jednego wzoru mogą znaleźć się wyrażenia o zróżnicowanej wysokości. Jest to zjawisko pożądane wizualnie i nie należy tego korygować. Na przykład:
Po użyciu \left i \right |
---|
W poniższym przykładzie lewa i prawa para nawiasów została poprawnie dopasowana poleceniami „\left” i „\right”, środkowa zaś ręcznie powiększona poleceniami „\bigg”. Co prawda środkowa para jest upodobniona wysokością do prawej, ale ma nadmierne światła wewnętrzne.
\left i \right | \bigg | \left i \right |
---|---|---|
Kiepsko wyglądają również światła na zewnątrz nawiasów (a raczej ich brak):
\left i \right | \bigg |
---|---|
Poniżej przykład do zastanowienia. W 2. i 3. wierszu użyto specjalnego polecenia „\tfrac”, służącego do osadzania ułamka w wierszu zwykłego tekstu tak, aby się z nim zlewał. Polecenie to tworzy nawiasy niezbyt duże, ale taka jest idea tego polecenia.
Kod | Efekt | Użyte polecenia |
---|---|---|
abc [ \frac12 ] def abc \left[ \frac12 \right] def |
\frac ( ), \frac (\left+\right) | |
abc [ \tfrac12 ] def abc \left[ \tfrac12 \right] def |
\tfrac ( ), \trfac (\left+\right) | |
abc \big[ \tfrac12 \big] def abc \Big[ \tfrac12 \Big] def |
\tfrac (\big), \tfrac (\Big) |
Możemy jednak chcieć z jakichś powodów uwydatnić różnicę pomiędzy zagnieżdżonymi nawiasami w wyrażeniu, które normalnie tego nie potrzebuje:
Kod | Efekt | Użyte polecenia |
---|---|---|
(( a + b ) + c)^2 \left(( a + b ) + c\right)^2 \big(( a + b ) + c\big)^2 \Big(( a + b ) + c\Big)^2 |
bez \left+\right \big \Big |
Poniżej przykład, gdzie ingerencja była już potrzebna. Zapis bez poprawek (1) jest zbyt jednolity. Zastosowanie poleceń „\left” i „\right” (2) niewiele pomogło, poprawione zostały tylko odstępy w poziomie. Dopiero gdy zamiast nich użyto poleceń z serii „\big” (3), nastąpił oczekiwany efekt.
Poprawki poziome
W przypadku separatorów wielokrotnych trzeba każdy powiększać oddzielnie, a dodatkowo skorygować odstęp poziomy spacjami ujemnymi:
Kod | Efekt |
---|---|
\left\langle\left\langle ... \right\rangle\right\rangle | |
\left\langle\!\!\left\langle ... \right\rangle\!\!\right\rangle | |
\bigg\langle\bigg\langle ... \bigg\rangle\bigg\rangle | |
\bigg\langle\!\!\bigg\langle ... \bigg\rangle\!\!\bigg\rangle |
Czasami po korekcie wysokości program może nieprecyzyjnie dopasować odległości poziome. Nie jest to specjalnie rażące, ale można dokonać korekty estetycznej najwęższą (3/18) ze spacji. W poniższym przykładzie lekko odsunięto prawy nawias.
Przed korektą | Po korekcie | ||
---|---|---|---|
kod | efekt | kod | efekt |
\left(\sqrt{1/2}\right) | \left(\sqrt{1/2} \, \right) |
Tablice
[edytuj | edytuj kod]Zasady ogólne
[edytuj | edytuj kod]Tablica to ogólna nazwa konstrukcji, w której poszczególne fragmenty wzoru przedstawiane są w postaci rzędów i kolumn. Mogą to być macierze, układy równań itp. Tablicę wprowadza się do wzoru, umieszczając jej zawartość pomiędzy poleceniami „\begin{...} i „\end{...}”. Istnieje szereg typów tablic, różniących się przede wszystkim sposobem justowania występujących w nich wyrażeń matematycznych – do lewej, w osi lub do prawej oraz odstępami pomiędzy nimi. Typ tablicy podaje się w klamrze, np. „\begin{array}”, „\begin{matrix}” itp., powtarzając go w kończącym tablicę poleceniu „\end{...}”. Tablice są strukturami, na które można patrzeć jak na tabele bez ramek, aczkolwiek w niektórych typach tablic można wstawiać pionowe i poziome linie oraz inne separatory. Tak więc tablice składają się z kolumn, wierszy i komórek.
Składnia
[edytuj | edytuj kod]Ponieważ kod tablicy jest mało czytelny w jednym wierszu, zazwyczaj dzieli się go na więcej wierszy, a dla zwiększenia czytelności wstawia się jeszcze w różnych miejscach spacje (jak wiadomo entery i spacje w kodzie nie są interpretowane).
Poniżej kod tej samej tablicy zapisany na trzy różne sposoby:
Kod w jednym wierszu | Efekt | |
---|---|---|
\begin{matrix}1a&2a&3a\\1b&2b&3b\\1c&2c&3c\end{matrix} | ||
Kod z enterami | Kod z enterami i spacjami | |
\begin{matrix} 1a&2a&3a\\ 1b&2b&3b\\ 1c&2c&3c \end{matrix} |
\begin{matrix} 1a & 2a & 3a \\ 1b & 2b & 3b \\ 1c & 2c & 3c \end{matrix} |
Legenda:
- „{matrix}” oznacza typ tablicy (zawsze musi być podany),
- „etki” („&”) rozdzielają kolumny,
- dwa backslashe „\\” oznaczają koniec wiersza tablicy, a raczej granicę pomiędzy wierszami, przez co na końcu ostatniego wiersza można je pominąć.
Uwaga: wiersze kodu można łamać w dowolnych miejscach, przez co zarówno „etki”, jak i pary backslashów mogą znaleźć się na początku, w środku lub na końcu wiersza kodu bez wpływu na wyświetlanie wzoru. Zazwyczaj jednak kod łamie się tak, aby backslashe były na końcach, a „etki”, jeśli je też się łamie, to na początkach wierszy kodu.
Zarówno „etki”, jak i podwójne backslashe nie są obligatoryjne. Można poprawnie zbudować tablicę bez „etek” (jednokolumnową) lub bez backslashów (jednowierszową), a nawet zupełnie pozbawioną tych elementów (jednokomórkową). Wbrew pozorom takie użycie, choć rzadkie, bywa uzasadnione.
Znaczniki „<math>” i „</math>” wstawia się oczywiście tylko raz na początku i końcu kodu wzoru zawierającego tablicę – nawet w układzie wielowierszowym. W kodzie jednego wzoru może być oczywiście więcej tablic (i innych wyrażeń) pomiędzy tą jedną parą znaczników. Ponadto tablice można w sobie zagnieżdżać.
Komórki
[edytuj | edytuj kod]- W każdym miejscu tablicy mogą znajdować się puste komórki.
- Puste komórki na końcu wiersza można w kodzie pominąć.
- Puste komórki na końcu wiersza pozostają jednak widoczne jako odstępy. Dotyczy to także najdłuższego wiersza, przez co powstaje dodatkowy odstęp po tablicy:
Kod bez spacji | Kod ze spacjami | Efekt |
---|---|---|
\begin{matrix} 1&&&&5&6&7&&\\ 1&2&3&4&5&6&7&8&9\\ 1&2&3&4&5&6\\ &2&3&4&5&6&7\\ &&3&4&5&6&7&8\\ &&&4&5&6&7&8&9&&&& \end{matrix} |
\begin{matrix} 1 & & & & 5 & 6 & 7 & & \\ 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \\ 1 & 2 & 3 & 4 & 5 & 6 \\ & 2 & 3 & 4 & 5 & 6 & 7 \\ & & 3 & 4 & 5 & 6 & 7 & 8 \\ & & & 4 & 5 & 6 & 7 & 8 & 9 & & & & \end{matrix} = a |
Kolumny
[edytuj | edytuj kod]Tablice różnią się między sobą przede wszystkim właściwościami kolumn, gdzie w zależności od typu tablicy:
- kolumny są justowane do lewej, w osi lub do prawej w różnych konfiguracjach,
- występują dwa rodzaje odstępów pomiędzy kolumnami:
- o stałej szerokości 1 ema lub
- o zerowej szerokości (wtedy służą do wstawiania znaków matematycznych takich jak plus, minus, równa się itp., które wytwarzają pomiędzy kolumnami typowe dla tych działań odstępy).
Poniższy przykład przedstawia typ tablicy, w której kolumny stykają się parami i są justowane prawo-lewo, a pomiędzy tymi parami są ustalone odstępy. Zerowe odstępy w parach służą wypełnieniu ich znakami podstawowych działań matematycznych, co widać na styku kolumn 1. i 2. (w kodzie dla czytelności wstawiono w niektórych miejscach spacje):
Kod | Efekt |
---|---|
\begin{align} 1 &2 &3 &4 &5 &6 \\ 11 &22 &33 &44 &55 &66 \\ 111 &222 &333 &444 &555 &666 \end{align} |
|
\begin{align} 1 &-2 &-3 &4 &5 &6- \\ 11 &+22 &+33 &44 &55 &66+ \\ 111 &=222 &=333 &444 &555 &666= \end{align} |
Generalną zasadą jest umieszczanie znaków matematycznych z prawej strony „etki”, aby zachować odstępy typowe dla wzorów:
Kod | Efekt | ||
---|---|---|---|
źle | dobrze | źle | dobrze |
+& \times& :& =& |
&+ &\times &: &= |
Powyższy przykład jest wyidealizowany, by pokazać zachowanie się znaków na styku kolumn. W przypadku umieszczenia ich we wspólnej tablicy wygląd jest nieco inny, to znaczy nie ma wyosiowania na znakach działań. Zastanówmy się, jakby to wyosiowanie miało wyglądać:
1. | 2. | 3. | 4. | 5. | 6. | |||||||||
|
- Tablica „align”. Nieprawidłowe użycie (z „etką” ze złej strony).
- Tablica „align”. Poprawne umieszczenie „etki” daje efekt, w którym oś przebiega wzdłuż lewej krawędzi znaków działań matematycznych, skutkiem czego wartości z prawej strony nie są wyrównane.
- Tablica „matrix”. Kod bez „etek”, a więc wszystko w jednej kolumnie. Oś przebiega środkiem znaków działań tylko dlatego, że wartości bo obu stronach są takie same. Ponieważ jednak znak dwukropka jest wąski, a znak równości szeroki, wartości po obu stronach rozchodzą się schodkowo, a więc znów rozwiązanie niedoskonałe.
- To samo rozwiązanie, co powyżej, ale z różnymi wartościami, ukazuje nietrwałość tego rozwiązania.
- Tablica „array” z trzema kolumnami justowanymi kolejno: prawo, środek, lewo. Środkowa kolumna przeznaczona tylko dla działań. Niestety ten typ tablicy narzuca spore odstępy.
- To już nie jest wzór w składni Math, tylko zwykła tabela z 3 kolumnami odpowiednio justowanymi. Odstępy pionowe są nadmierne, ale wyrównanie wydawałoby się idealne, gdyby nie to, że wokół dwukropka jest znacznie więcej światła niż wokół znaku dodawania, a wokół znaku równości światła jest jeszcze trochę mniej.
Wniosek jest następujący: przy układzie wyrażeń matematycznych z różnymi znakami działań matematycznych idealne wyrównanie wszystkiego jest niemożliwe. Najlepsze w takiej sytuacji jest rozwiązanie numer dwa, czyli takie, w którym za oś wyrównania przyjmuje się lewą krawędź znaków działań matematycznych, przy akceptacji faktu, że z prawej strony będzie nierówno. Takie rozwiązanie jest najbardziej czytelne. Na przykład:
Zasadę można przedstawić obrazowo tak:
Zasada umieszczania znaków działań z prawej strony etki sprawdza się zresztą również w przypadku jednakowych znaków działań matematycznych, stosuje się ją praktycznie zawsze, nawet w przypadku łączenia wzorów z dwóch kawałków oddzielonych znacznikami ...</math> i <math>...
Odstępy pionowe
[edytuj | edytuj kod]Stopień pisma w wikipediowych wzorach wynosi 10 pt. Jest to oczywiście wartość teoretyczna, bo na ekranach różnych monitorów rzeczywiste wielkości są inne. Do tej wartości (10 pt) wiersze tablicy mają dodany niewielki odstęp międzywierszowy, który różni się w zależności od typu tablicy:
Typ tablicy | Wysokość wiersza | Odstęp międzywierszowy | Interlinia |
---|---|---|---|
cases | 10 pt | 2 pt | 10 + 2 = 12 pt |
align, alignat | 10 pt | 3 pt | 10 + 3 = 13 pt |
array, seria matrix | 10 pt | 4 pt | 10 + 4 = 14 pt |
Zestawienie wysokości tablic można zobaczyć w rozdziale Porównanie typów tablic.
W przypadku bardziej skomplikowanych wyrażeń umieszczonych w komórkach tablicy wartość interlinii odpowiednio się powiększa, podczas gdy odstęp międzywierszowy pozostaje ten sam.
Odstęp międzywierszowy można zmniejszać lub powiększać, dodając lub odejmując odpowiednią wartość w wybranej jednostce miary.
- a) jednostki miary
W oryginalnej składni Math istnieje wiele okazji do podawania jednostek miary, natomiast w zubożonej składni Math na Wikipedii odstępy między wierszami tablicy są jedynym miejscem, gdzie można te jednostki podawać. Wartości można podawać w: cm, em, ex, in, mm, mu, pc, pt, px.
- cm – centymetr.
- em – wysokość bieżącego stopnia pisma, czyli po prostu firet. We wzorach na Wikipedii 1 em = 10 pt.
- ex – jednostka pokrewna do em, odpowiednik wysokości liter tekstowych bez wydłużeń górnych i dolnych (ang. x-height) w bieżącym kroju i stopniu pisma (tu w kroju Symbol). 1 ex = ok. 4,3 pt = ok. 0,43 em, 1 em = ok 2,3 ex.
- in – cal. We wzorach na Wikipedii 1 cal = dokładnie 72 pt.
- mm – milimetr.
- mu (ang. math unit) – wewnętrzna jednostka systemu Math, wynosi 1/18 em, czyli 1/18 z 10 pt (0,5(5) pt). To właśnie w tej jednostce wyrażane są rozmiary spacji dostępnych w Math.
- pc – pica, jednostka miary typograficznej równa 12 pt.
- pt – punkt typograficzny, na Wikipedii dokładnie 1/72 cala.
- px – piksel, jednostka równoważna 1 pt.
W praktyce stosowane są: pt, px, ex, em.
- b) składnia
Korekty wysokości dokonuje się po parze backslashów oznaczających koniec wiersza tablicy, umieszczając wartość w nawiasie kwadratowym. Nawias można umieścić w dowolnym miejscu, nawet na początku następnego wiersza kodu, byle następował, ogólnie rzecz biorąc, po backslashach:
\begin{...} ... \\ [.5em] ... \end{...} |
\begin{...} ... ... \\ [.5em] ... \end{...} |
\begin{...} ... \\ [.5em] ... ... \end{...} |
Trzecie rozwiązanie (na początku nowego wiersza) jest najmniej czytelne.
Wartości można wpisywać różnie: można pominąć spację przed jednostką, a dla wartości poniżej 1 można pominąć zero, np.:
- [0.5 em] = [0.5em] = [.5 em] = [.5em].
Inną metodą regulacji odstępów pionowych jest wstawienie pustego wiersza, co robi się kolejną parą backslashów – da to odstęp równy bieżącej interlinii (w zależności od typu tablicy: 12, 13 lub 14 pt). Spacje pomiędzy parami backslashów można oczywiście pominąć, ale kod będzie mniej czytelny.
\begin{...}... \\ \\ ... \end{...} |
\begin{...} ... ...\\ \\ ... \end{...} |
\begin{...} ... \\ \\ ... \end{...} |
- c) powiększanie
Taka potrzeba może zajść na przykład, gdy w tablicy umieszczono szczególnie wysokie wzory lub z rozbudowanymi frakcjami dolnymi. Istnieje co prawda limit wartości powiększania interlinii w tablicach, ale jest on tak wielki, że zaspokaja każdą potrzebę. W przykładzie poniżej podano różne wartości powiększania odstępu oraz dodatkowo przykład pustego wiersza (dodatkowa para backslashów). Ponadto w poniższym przykładzie nie ma ani jednej „etki”, ale to tylko dla pokazania budowy tablicy jednokolumnowej:
Kod | Efekt | |
---|---|---|
początek i koniec | część środkowa | |
\begin{align}... ...\end{align} |
1+1+1+1+1 \\ 1+1+1+1+1 \\ [.5 em] 1+1+1+1+1 \\ [1 em] 1+1+1+1+1 \\ \\ 1+1+1+1+1 |
- d) pomniejszanie
Odstępy można także pomniejszać, ale tylko w niewielkim stopniu. Jak wspomniano wcześniej, w typie „cases” interlinia jest powiększona o 2 pt, w „align” i „alignat” – o 3 pt, w pozostałych – o 4 pt, stąd maksymalne zbliżenie do siebie wierszy jest możliwe tylko o te wartości (podane z minusem). Możliwe jest także podawanie nadmiarowych wartości (nadmiar po prostu nie zostanie wykorzystany). Przydaje się to w większych jednostkach – exach i emach, gdzie graniczna wartość jest na tyle niewygodnym ułamkiem dziesiętnym, że dla wygody lepiej wstawić wartość równą 1, np.:
Kod | Efekt | |
---|---|---|
początek i koniec | część środkowa | |
\begin{align}... ...\end{align} |
1+1+1+1+1 \\ [-3pt] 1+1+1+1+1 \\ [-3px] 1+1+1+1+1 \\ [-1ex] 1+1+1+1+1 \\ [-1em] 1+1+1+1+1 |
- e) odstępy na początku i końcu tablicy
Zazwyczaj powiększony odstęp przed lub po tablicy robi się w kodzie artykułu poza kodem wzoru. Bywają jednak sytuacje, w których z różnych powodów lepiej jest zrobić odstęp w kodzie wzoru, czyli w praktyce w kodzie samej tablicy (np. dla zabezpieczenia odstępu przed przypadkową ingerencją innego redaktora lub bota), a czasami bywa nawet, że odstęp bezpośrednio w tablicy jest jedyną możliwością (np. dla wyrównania kilku tablic o różnych wysokościach).
I tutaj jest problem, bo podawanie wartości odstępów w nawiasie kwadratowym działa tylko pomiędzy wierszami tablicy. Wstawienie kodu z odstępem na początku lub końcu tablicy nie robi nic, nawet nie wyświetli błędu, będzie tylko balastem, np.:
\begin{...} [1 em]... | nie działa |
...[1em] \end{...} |
Stąd wniosek, że jedyną metodą pozostaje wygenerowanie pustego wiersza – pierwszego lub ostatniego w tablicy.
I tu też jest problem – pusty wiersz na początku tablicy robi się co prawda jedną parą backslashów, ale na końcu tablicy taka para jest balastem (nie robi nic, nawet nie wyświetla błędu, powinna być usunięta). Pojedynczy wiersz na końcu tablicy robi się dwiema parami (dwa wiersze – trzema parami itd.). Można jednak na końcu tablicy zrobić pozornie pusty wiersz (jedną parą backslashów), ale pod warunkiem, że do tego pustego wiersza wstawimy coś niewidocznego – może to być któreś z poleceń spacji, ale najbardziej elegancko jest tam wstawić pustą klamrę.
na początku | |
---|---|
\begin{...} \\... | wystarczy jedna para backslashów |
na końcu | |
...\\ \end{...} | jedna para backslashów nic nie robi |
...\\ \\ \end{...} | dwie pary backslashów dla pojedynczego odstępu |
...\\ \ \end{...} | wiersz zawierający tylko polecenie spacji lub pustą klamrę też da pojedynczy odstęp (zalecane) |
...\\ {} \end{...} |
Gdy już udało nam się wygenerować pusty wiersz, można dodatkowo powiększyć (lub zmniejszyć) jego interlinię, podając wartość w nawiasie kwadratowym (ale będzie to bardzo rzadko potrzebne).
- f) problem z nawiasem kwadratowym na początku wiersza
Obecność nawiasu kwadratowego w składni tablic powoduje, że aby wyświetlić dowolny otwierający nawias kwadratowy na początku wiersza tablicy, trzeba go w kodzie zneutralizować, poprzedzając pustą klamrą „{}” lub w niej umieścić, np.:
\begin{align} {}[... | w pierwszym wierszu |
\begin{align} {[}... | |
...\\ {}[... | w innych wierszach |
...\\ {[}... |
Pierwsze rozwiązanie wydaje się bardziej eleganckie. Warto dodać, że czasami edytujący nadmiernie się asekurują i niepotrzebnie zabezpieczają tak każdy nawias kwadratowy w tablicy, np. „{[}a{]}”.
Opisany powyżej mechanizm nie jest potrzebny, jeżeli na końcu wiersza poprzedzającego znajduje się polecenie odstępu pionowego (nawias kwadratowy wykorzystany składniowo). Wtedy na początku wiersza następującego można otwierający znak nawiasu kwadratowego wpisać natywnie (bez poprzedzania „{}”). Co więcej, zadziała to nawet z pustym parametrem odstępu pionowego („[]”), np.:
\begin{align}... ...\\ [.5em] [... | działa |
\begin{align}... ...\\ [] [... | też działa |
Dla formalności można dodać, że w omawianym krytycznym miejscu można użyć alternatywnego polecenia lewego nawiasu kwadratowego, czyli „\lbrack”, ale jest to rozwiązanie najmniej wygodne (aż 7 znaków do wpisania), np.:
\begin{align} \lbrack... |
...\\ \lbrack... |
Linie
[edytuj | edytuj kod]- Linie poziome można wstawiać we wszystkich typach tablic. Robi się to poleceniem „\hline”, które działa tylko w tablicach. Polecenie działa na wiersz znajdujący się po tym poleceniu i wyświetla ono linię nad wierszem.
- Ponieważ entery nie są we wzorach interpretowane, polecenie można wstawiać na początku bieżącego wiersza lub dla czytelności po dwóch backslashach w wierszu poprzednim.
Kod | Efekt | ||
---|---|---|---|
\begin{matrix}... ...\end{matrix} |
\hline 1 & 2 & 3 & 4 & 5 \\ \hline 1 & 2 & 3 & 4 & 5 \\ \hline 1 & 2 & 3 & 4 & 5 \\ 1 & 2 & 3 & 4 & 5 \\ 1 & 2 & 3 & 4 & 5 \\ \hline |
\hline 1 & 2 & 3 & 4 & 5 \\ \hline 1 & 2 & 3 & 4 & 5 \\ \hline 1 & 2 & 3 & 4 & 5 \\ 1 & 2 & 3 & 4 & 5 \\ 1 & 2 & 3 & 4 & 5 \\ \hline |
- Jak widać w powyższym przykładzie, linie na samej górze i na samym dole program wyświetla nieco grubsze. Można temu zaradzić, wstawiając kolejną parę backslashów, co jednak wyświetli dodatkowy wiersz. Akurat w poniższym przykładzie taki pusty wiersz okazał się pożądany w pierwszym członie:
- Nie ma możliwości jednoczesnego użycia „\hline” i regulacji odstępu dla tego samego wiersza tablicy, np.:
Kod | Efekt | |
---|---|---|
\begin{matrix}... ...\end{matrix} |
1 & 2 & 3 & 4 & 5 \\ \hline [1 em] 1 & 2 & 3 & 4 & 5 |
|
\begin{matrix}... ...\end{matrix} |
1 & 2 & 3 & 4 & 5 \\ [1 em] \hline 1 & 2 & 3 & 4 & 5 |
Parser nie mógł... |
- Linie pionowe można wstawiać w tablicach typu „array” (co zostało omówione w ich rozdziale), np.:
- W szczególnych przypadkach można w tablicach skorzystać z ogólnych poleceń tworzenia linii, czyli takich, które działają wszędzie, nie tylko w tablicach:
- dla linii pionowych – polecenia separatorów,
- dla linii poziomych – polecenia „\underline” i „\overline”,
a w najbardziej skomplikowanych przypadkach można nawet skorzystać z układu tablic znajdujących się obok siebie lub zagnieżdżonych jedna w drugiej, i opatrzonych tymi poleceniami.
Poniżej przykład różnicy długości linii tablicowego polecenia „\hline” i ogólnego polecenia „\underline”:
użyte „\hline” | |
użyte „\underline” |
Poniżej przykład różnicy długości i grubości linii tablicowego polecenia „\hline” i ogólnych poleceń „\underline” i „\overline”:
użyte „\hline” | |
użyte „\underline” i „\overline” |
Separatory
[edytuj | edytuj kod]Ponieważ tablica to tylko fragment kodu wzoru, można obok niej z jednej lub nawet z obu stron postawić i dopasować wysokością jakieś separatory (aczkolwiek niektóre typy matryc mają wbudowane własne), np.:
Kod | Efekt | |
---|---|---|
\left\{ \begin{matrix}... ...\end{matrix} \right\| |
1 &2 &3 \\ 1 &2 &3 \\ 1 &2 &3 |
Zagnieżdżanie
[edytuj | edytuj kod]Tablice można zagnieżdżać. Wystarczy wstawić kod tablicy do kodu komórki (oczywiście bez dodatkowych znaczników „<math>” i „</math>”), np.:
W przykładzie z pełną ramką posłużono się możliwością budowania linii pionowych z tablicy typu „array”. W przykładzie ze strzałkami matrycę zagnieżdżono w matrycy tylko po to, by wyosiować poziome strzałki, a jak widać, można je w ten sposób umieścić nawet pomiędzy kolumnami. Strzałki pionowe są poza matrycą.
Formatowanie tekstu
[edytuj | edytuj kod]- Całej tablicy można nadawać style tekstu „\scriptstyle” i „\scriptscriptstyle”, choć pomniejszają one wyrażenia bez wchodzenia w tryb „inline”, natomiast „\displaystyle” i „\textstyle” na całej tablicy nie działają.
- Style czcionki nie działają na polecenia matryc, aczkolwiek matryce mogą być wewnątrz większego wyrażenia objętego stylem czcionki.
- Poszczególnym komórkom można nadawać wszystkie style tekstu i wszystkie style czcionki.
- Jednak w przypadku pomniejszonych ułamków piętrowych jedynym wyjściem jest użycie polecenia „\dfrac” (zamiast standardowego „\frac”).
Z powyższego wynika, że sformatowanie całego wiersza tablicy przy wielu kolumnach może okazać się dość uciążliwe.
Ponadto niektóre typy tablic samoczynnie upraszczają trudniejsze wyrażenia, zmieniając styl tekstu, przechodząc z „displaystyle” do „textstyle”, a jeden typ („smallmatrix”) wyświetla całość w „scriptstyle”:
Typ tablicy | Fragmenty | |
---|---|---|
prostsze | trudniejsze | |
align i alignat | ||
array, cases i seria matrix | ||
smallmatrix |
W tablicach pomniejszających wyrażenia można przywrócić pierwotny wygląd fragmentów, nadając im polecenie „\displaystyle”. W poniższym przykładzie nadano je każdemu z obu ułamków.
- →
Porównanie typów tablic
[edytuj | edytuj kod]{align} | |
{alignat}{0} | |
{alignat} np. {1} np. {5} |
|
{array} np. {rrl|c|lcr|r|r|l} |
|
{cases} | |
{matrix} | |
{vmatrix} | |
{Vmatrix} | |
{bmatrix} | |
{Bmatrix} | |
{pmatrix} | |
{smallmatrix} |
Tablice różnią się nieznacznie wysokością wierszy (typ „cases” ma odstępy 2 pt, „align” i „alignat” – 3 pt, pozostałe – 4 pt):
align | alignat | array | cases | matrix | vmatrix | Vmatrix | bmatrix | Bmatrix | pmatrix |
Wszystkie typy tablic mają takie same odstępy między kolumnami (jeśli nie zerowe). Wartość jednego odstępu jest równa poleceniu „\quad”. Dla typu „align” podano często spotykane wykorzystanie co drugiej kolumny – nieparzystej lub parzystej (czyli przy wykorzystaniu dwóch połączonych „etek”). Co prawda odstępy w typie „align” są dwa razy większe, ale są to złączone odstępy sąsiednich kolumn:
align | |
align (kol. nieparzyste) | |
align (kol. parzyste) | |
alignat{0} | |
alignat{1} (i nast.) | |
array{c} | |
array{|} | |
cases | |
matrix (i pokrewne) |
Poniżej omówione konkretne typy tablic.
Polecenie \begin{align}
[edytuj | edytuj kod]W tym typie tablicy kolumny stykają się parami justowanymi w układzie prawo-lewo:
Kod | Efekt | |
---|---|---|
\begin{align}... ...\end{align} |
1 & 2 & 3 & 4 & 5 & 6 \\ 11 & 22 & 33 & 44 & 55 & 66 \\ 111 & 222 & 333 & 444 & 555 & 666 |
We wszystkich typach tablic odstępy pomiędzy kolumnami mają tę samą standardową wartość. W tym typie tablicy odstępy są specyficzne, ponieważ tak samo jak kolumny – stykają się parami, przez co wspólny odstęp jest dwa razy większy. Można to ocenić, porównując np. „align” do „matrix”:
\begin{align}... | |
\begin{matrix}... |
Uwaga: tylko ten typ tablicy ma ograniczenie. Pierwsze 6 par zachowuje się typowo, następne kolumny justują do lewej bez odstępów (z powodu wielkości przykład pomniejszono poleceniem „\scriptstyle”).
Powyższego ograniczenia nie ma nawet pokrewna tablica typu „alignat”.
Tablice typu „align” stworzono z myślą o wyosiowaniu wierszy względem konkretnego znaku. Najczęściej jest to jakiś znak działania matematycznego. Dla zachowania prawidłowego odstępu znak ten powinien być z prawej strony „etki” (czyli rozpoczynać parzystą kolumnę). W poniższym przykładzie wyosiowanie jest na znaku równości:
...=&... | źle | |
...&=... | dobrze |
Innym typowym zastosowaniem jest wyświetlanie wzoru w kilku wierszach, wtedy kontynuację wzoru w postaci jakiegoś znaku działania trzeba przerzucić do 1. kolumny (czyli nieparzystej, z lewej strony „etki”), a to rodzi opisany wyżej problem z odstępem. Znak równości można odepchnąć pustą klamrą, ale inne znaki działań, jak np. plus czy minus, trzeba odpychać znakiem odstępu (najbliższe jest polecenie spacji zwykłej (4/18), czyli backslash ze spacją „\ ”), np.:
...=&... |
źle | |
...={}&... |
dobrze |
...+&... |
źle | |
...+{}&... |
nadal źle | |
...+\ &... |
dobrze |
Inne przykłady:
Kod | Efekt | |
---|---|---|
\begin{align}... ...\end{align} |
a+b &=c &(1) \\ a_x+b_y &=c_z &(2) \\ a_{x+1}+b_{y+1} &=c_{z+1} &(3) |
Na marginesie można dodać, że typ tablicy „align” występuje na Wikipedii również pod nazwą „aligned”, która działa identycznie i nie należy jej stosować. Poza Wikipedią „aligned” różni się od „align” możliwością regulacji położenia w pionie względem linii wiersza.
Polecenie \begin{alignat}
[edytuj | edytuj kod]W tym typie tablicy występuje dodatkowa obowiązkowa klamra z parametrem liczbowym określającym ile początkowych par kolumn justuje się prawo-lewo, pozostałe justują się każda w lewo. Wszystkie kolumny stykają się, aczkolwiek tablica z parametrem „{0}” zachowuje się odmiennie.
Jest to trudne i rzadko stosowane polecenie. Większość układów można wykonać prościej innymi typami tablic z jednym jednak zastrzeżeniem – będą występować odstępy. Natomiast jedynie w tym typie tablicy można uzyskać odstępy najmniejsze, bo tylko ten typ nie ma nigdzie własnych odstępów pomiędzy kolumnami.
\begin{alignat}{0} |
\begin{alignat}{1} \begin{alignat}{2} \begin{alignat}{5} |
Ponieważ ten typ nie ma własnych odstępów, to również puste kolumny (samotne „etki”) nie generują odstępów. Pozostawiając niektóre kolumny puste, można generować układy niedostępne w innych poleceniach, np.:
\begin{alignat}{5} |
\begin{alignat}{6} |
\begin{alignat}{3} |
Teraz można na stykach kolumn dodać znaki działań matematycznych (aczkolwiek w niektórych miejscach trzeba było użyć dodatkowych znaków spacji), np.:
\begin{alignat}{3} |
Jak widać z powyższego, parametr „{alignat}” działa w sposób specyficzny, jeśli chodzi o odstępy. Poniżej przykład tego, jak generują się odstępy w okolicach znaku dodawania przy najprostszej wersji, czyli „{alignat}{1}”, gdzie teoretycznie 3. i następne kolumny powinny wyglądać tak samo:
\begin{alignat}{1} |
Jak widać, co drugi plus ma właściwe odstępy. W związku z tym w poniższych przykładach użyto podwójnych „etek”, choć wystarczyłyby pojedyncze:
\begin{alignat}{1}... |
&a &&+d &&+g &&=x \\ |
\begin{alignat}{1}... |
x &=a_1 &&+a_2 &&+a_3 &&+a_4 \\ |
Inne przykłady:
Polecenie \begin{array}
[edytuj | edytuj kod]W tym typie tablicy pomiędzy wszystkimi kolumnami są odstępy. Składnia tablic typu „array” różni się od pozostałych tym, że po klamrze z definicją typu tablicy musi być jeszcze jedna – z parametrami justowania (l, c lub r):
Kod | Efekt | |
---|---|---|
początek i koniec | część środkowa | |
\begin{array}{l}... ...\end{array} |
1+1+1 \\ 1+1 \\ 1 |
|
\begin{array}{c}... ...\end{array} |
||
\begin{array}{r}... ...\end{array} |
W tablicach wielokolumnowych (z „etkami” w kodzie) podaje się w drugiej klamrze parametry justowania oddzielnie dla każdej kolejnej kolumny:
Kod | Efekt | |
---|---|---|
\begin{array}{cc}... ...\end{array} |
1+1+1 & 2+2+2 \\ 1+1 & 2+2 \\ 1 & 2 |
|
\begin{array}{lcr}... ...\end{array} |
1+1+1 & 2+2+2 & 3+3+3 \\ 1+1 & 2+2 & 3+3 \\ 1 & 2 & 3 |
Tablica „array” z parametrem justowania w osi jest identyczna z tablicą „matrix”:
\begin{array}{c}... | |
\begin{matrix}... |
Niektóre kolumny można przeznaczyć na wypełnienie wyłącznie znakami działań matematycznych (tu 2. i 4.), aczkolwiek powstaną tam powiększone odstępy, co nie zawsze jest pożądane (jeśli nie chcemy tych odstępów, trzeba sięgnąć po inny typ tablicy):
Kod | Efekt | |
---|---|---|
\begin{array}{rclcr}... ...\end{array} |
1+1+1 & + & 3+3+3 & = & 5+5+5 \\ 1+1 & + & 3+3 & = & 5+5 \\ 1 & + & 3 & + & 5 |
|
\begin{array}{lllll}... ...\end{array} |
W powyższym przykładzie podano parametr 5 kolumn justowanych w lewo. Otóż nie wszystkie parametry są potrzebne, bo program przy brakujących parametrach justowania kolumn powtarza ostatni, np.:
„\begin{array}{lllll}...” jest równoważne
„\begin{array}{l}...”
Inny przykład:
„\begin{array}{lcrclccc}...” jest równoważne
„\begin{array}{lcrclc}...”
Można też robić puste kolumny w celu zwiększenia odstępu (tutaj 4.), a ponieważ wszystkie kolumny w tym przykładzie są justowane do lewej, użyto w drugiej klamrze tylko jednego parametru (dla brakujących parametrów program powiela ostatni użyty):
Kod | Efekt | |
---|---|---|
\begin{array}{l}... ...\end{array} |
1+1+1 & = & 3+3+3 && (5) \\ 1+1 & = & 3+3 && (5) \\ 1 & = & 3 && (5) |
Również początkowe kolumny mogą być puste (tu w 2. i 3. wierszu):
Kod | Efekt | |
---|---|---|
\begin{array}{l}... ...\end{array} |
1+1+1 & = & 3+3+3 \\ & = & 3+3+3 \\ & = & 3+3+3 \\ |
W tym typie tablicy można dodawać pionowe linie (poziome można we wszystkich tablicach). Pionowe linie dodaje się znakiem kreski pionowej „|” tam, gdzie symbole justowania (poziome w wierszu poleceniem „\hline”). Jak widać, program pogrubia skrajne linie nie tylko poziome, ale i pionowe (choć nie zawsze to robi):
Kod | Efekt | |
---|---|---|
\begin{array}{|ccc|c|c}... ...\end{array} |
1 & 2 & 3 & 4 & 5 \\ \hline 1 & 2 & 3 & 4 & 5 \\ \hline 1 & 2 & 3 & 4 & 5 \\ 1 & 2 & 3 & 4 & 5 \\ 1 & 2 & 3 & 4 & 5 \\ \hline |
Co ciekawe, pionowa kreska może być jedynym parametrem (justowanie wtedy jest do lewej), np.:
Kod | Efekt |
---|---|
\begin{array}{|}... |
...oraz podobne kombinacje:
Kod | Efekt |
---|---|
\begin{array}{c|}... | |
\begin{array}{|c}... | |
\begin{array}{c|c}... | |
\begin{array}{|c|}... |
Inne przykłady:
Polecenie \begin{cases}
[edytuj | edytuj kod]Wszystkie kolumny justowane do lewej i z odstępami. Wbudowany lewy nawias klamrowy.
Kod | Efekt | |
---|---|---|
\begin{cases}... ...\end{cases} |
1 & 2 & 3 \\ 111 & 222 & 333 \\ 11111 & 22222 & 33333 |
Tablica „cases” ma odstępy między wierszami mniejsze o 1 pt niż w typach „align” i „alignat” i o 2 pt niż w typach „array” i „matrix”. Pomimo że różnica jest niewielka, często ten odstęp wydaje się niewystarczający. Aby powiększyć odstęp do racjonalnej wielkości (jak np. w „matrix”), wystarczy w każdym wierszu dodać wartość 2 punktów:
„...\\ ...” | „...\\ [2pt] ...” |
Dość często ten niewystarczający odstęp jest jednak poprawiany innymi rozwiązaniami, w których lewą klamrę trzeba wstawiać osobno. Dodawana jest ona nie tylko przed tablicą typu „array” lub „matrix”, ale nawet (gdy wystarczą tylko dwa wiersze) przed poleceniem... „\atop” (które daje jakby ułamek piętrowy bez kreski). W typie „matrix” i poleceniu „\atop” wiersze są justowane w osi, więc użycie tych rozwiązań jest ograniczone, niemniej jednak spotykane są one na tyle często, że wypada o nich tu wspomnieć. W typie tablicy „array” można justować wiersze dowolnie.
W poniższym przykładzie można ocenić wielkość odstępów międzywierszowych kolejno w: tablicy „cases”, poleceniu „\atop” i tablicy „matrix” (dwa ostatnie przypadki mają właśnie dodaną klamrę):
Jeszcze inną spotykaną metodą jest poprawianie odstępów poprzez umieszczenie innej tablicy jako jedynej komórki w tablicy „cases” (skutkiem ubocznym jest lekko zwiększony odstęp po klamrze):
- Standardowa „cases”:
begin{cases}...\end{cases} - Matrix z dodaną klamrą:
\left\{\begin{matrix}...\end{matrix}\right. - Tablica „cases”, w której jedyną komórką jest „matrix”:
„\begin{cases}\begin{matrix}...\end{matrix}\end{cases}” - Tablica „cases”, w której jedyną komórką jest „array” (tu justowana do lewej):
„\begin{cases}\begin{array}[l]...\end{array}\end{cases}”
Wykorzystanie powyżej tablicy typu „align” dałoby uzysk tylko 1 pt, a więc trochę za mało.
Inne przykłady użycia tablicy typu „cases”:
Powyżej, w drugim przykładzie wprowadzono do kodu polecenie powiększające odstęp między wierszami.
Polecenia typu \begin{matrix}
[edytuj | edytuj kod]Jak sama nazwa wskazuje, polecenie stworzono z myślą o macierzach (choć można wykorzystać dowolnie). Wszystkie kolumny justowane w osi i z odstępami:
Kod | Efekt | |
---|---|---|
\begin{matrix}... ...\end{matrix} |
1 & 2 & 3 & 4 & 5 & 6 \\ 11 & 22 & 33 & 44 & 55 & 66 \\ 111 & 222 & 333 & 444 & 555 & 666 |
Tablica „matrix” jest identyczna z tablicą „array” z parametrem justowania w osi:
\begin{matrix}... | |
\begin{array}{c}... |
„Matrix” ma szereg poleceń pokrewnych:
\begin{vmatrix} | \begin{Vmatrix} | \begin{bmatrix} | \begin{Bmatrix} | \begin{pmatrix} | \begin{smallmatrix} |
Przykłady:
- W pierwszym przykładzie użyto tablicy „smallmatrix” (1), by dla lepszej czytelności granice sumowania przedstawić w 2 wierszach. Użycie w tym konkretnym miejscu (pod sigmą) zwykłej tablicy „matrix” (2) daje identyczny efekt wielkości znaków, ale „smallmatrix” ma mniejszy odstęp pomiędzy wierszami. Użycie polecenia „\atop” (3) pomniejsza znaki.
- Ostatni przykład zawiera uporządkowaną w określony sposób regularną kombinację wielokrotnie zagnieżdżonych tablic typu „smallmatrix”.
Niepoprawne użycie tablic
[edytuj | edytuj kod]We wzorach można spotkać miejsca, w których tablice zostały użyte niepotrzebnie (przykłady są autentyczne i spotykane na różnych wikipediach).
- Użyto tablicy z tylko jednym wierszem i tylko jedną komórką, prawdopodobnie w celach estetycznych (regulacja odstępów). Rozwiązanie jest całkowicie wbrew semantyce.
x=r\begin{pmatrix}t-\sin t\end{pmatrix} | |
x=r (t-\sin t) |
- Użyto tablicy z wbudowanymi separatorami („vmatrix”) dla uzyskania pionowych kresek, co przy okazji spowodowało nadmierne odstępy przy tych kreskach:
0 \leqslant \begin{vmatrix} U_{wej} \end{vmatrix} \leqslant 1 | |
0 \leqslant |U_{wej}| \leqslant 1 |
- Użyto pomniejszającej tablicy „smallmatrix” zamiast stylu tekstu „\scriptstyle”:
\begin{smallmatrix}R_\odot = 6{,}960 \times 10^8\end{smallmatrix} | |
\scriptstyle R_\odot = 6{,}960 \times 10^8 |
- Użyto tablicy „pmatrix” nie tylko dla nawiasów, ale także, a może nawet przede wszystkim, dla wyświetlenia ułamka w postaci pomniejszonej, co lepiej zrobić poleceniem „\tfrac”:
p = \rho \begin{pmatrix} \frac{RT}{M} \end{pmatrix} | |
p = \rho \left( \frac{RT}{M} \right) | |
p = \rho \left( \tfrac{RT}{M} \right) |
- Rezygnacja z tablicy i poprawne użycie polecenia „\underbrace” (z frakcją dolną) wyrównało linię tekstu:
f^n = \begin{matrix}\underbrace{f \circ f \circ \dots \circ f}\\{n}\end{matrix} | |
f^n = \underbrace{f \circ f \circ \dots \circ f}_n |
- Oddzielnym tematem jest tablica typu „cases”, która ma niewielkie odstępy między wierszami (o 2 pt mniejsze niż w typie „matrix”). Często są spotykane różne obejścia tego problemu:
\begin{cases}...\end{cases} | |
\left\{ \begin{matrix}...\end{matrix} \right. | |
\begin{cases}\begin{matrix}...\end{matrix}\end{cases}</math> | |
\begin{cases}...\\[2pt]...\end{cases}</math> |
- Oryginalna „cases”.
- Tablica typu „matrix”, dodany separator z poleceniem dopasowania wielkości.
- Tablica typu „cases”, której jedynym elementem jest tablica „matrix”.
- Oryginalna „cases”, w której na końcu wiersza dodano korektę pionowego odstępu.
Problem jest w zasadzie patowy, wynikający z wadliwego zaprojektowania tablicy „cases”, rozwiązania 2. i 3. mają sens dla tablicy wielopiętrowej (są to rozwiązania niezależne od liczby pięter), natomiast dla niewielkiej liczby pięter prościej zastosować rozwiązanie 4. (z korektą odstępu, którą trzeba jednak powtarzać na końcu każdego piętra oprócz ostatniego).
Tabele HTML zamiast tablic Math
[edytuj | edytuj kod]Czasami zbudowanie wzoru może być na tyle utrudnione lub niemożliwe, że warto wrócić do budowania tablic metodą edycji tabeli bezpośrednio w kodzie wiki. W poniższym przykładzie tabela HTML ma poprawne odstępy pionowe (szczególnie przy poziomej linii) i nie ma kreski pod znakiem dodawania (w kodzie Math nie da się tego zrobić w prosty sposób):
Tabela HTML (pierwsza) i tablica Math (druga):
| ||||||||||||||||||||||||
|
W najprostszy sposób można budować ułamki, używając zwykłego tekstu (np. 1/2) lub to samo w składni Math (np. ). W celach estetycznych można też budować ułamki w sposób bardziej nietypowy, ale zaoszczędzający miejsce, stosując frakcje górną i dolną. Zazwyczaj będzie wtedy potrzebna korekta spacjami ujemnymi dopasowana do szerokości cyfr:
Kod | Efekt |
---|---|
1^1/_2 | |
1^1\!/_2 | |
1^1\!\!/\!_2 | |
1^1\!\!/_{\!2} |
Natomiast klasycznie buduje się ułamki w składni Math aż dwoma poleceniami, dającymi ten sam wygląd wzoru:
- \frac {a}{b}
- {a \over b}
Zalecane jest polecenie „\frac”. Polecenie „\over” jest przestarzałe (ang. deprecated) i w specyficznych sytuacjach generujące błędy niedokładnego wyświetlania, co zostało omówione niżej.
Przyjrzyjmy się przykładowemu wzorowi z prawa Ohma wykonanemu na oba sposoby:
|
Wynikiem jest: |
Polecenie \frac
[edytuj | edytuj kod]\frac {1} {2} | Kanoniczna postać to polecenie i dokładnie dwie klamry. | |
\frac{123}{4^2+5^2} | Klamry można dowolnie wypełniać, a spacje można pominąć. | |
\frac 12 \frac ab \frac12 \fracab (!) |
Klamry też można pominąć, ale wtedy argumentami są tylko najbliższe 2 znaki (nie licząc spacji). Spacje po poleceniu też można pominąć, ale tylko dla znaków nieliterowych (na czerwono błąd składni). | |
\frac \alpha \beta \frac\alpha\beta |
Tu też można pominąć klamry, bo polecenia znaków są rozumiane jako pojedyncze znaki | |
\frac 12345 \frac abcde \frac12345 \fracabcde (!) |
Jak widać, bez klamer tylko pierwsze dwa znaki wchodzą do ułamka (na czerwono błąd składni). | |
\frac a a^1 \frac{a}{a^1} | W sytuacji bez klamry frakcja po mianowniku jest rozumiana jako frakcja całego ułamka, a nie mianownika (różnicę widać także w długości kreski ułamkowej). Nota bene frakcja bez klamry w liczniku generuje błąd składni. |
Zapis bez klamer jest możliwy dla poleceń mających wewnętrzną składnię. Polecenia takie same w sobie mogą być potraktowane w całości jako licznik lub mianownik, np.:
Pierwiastki jako licznik i mianownik | \frac\sqrt a\sqrt b \frac{\sqrt a}{\sqrt b} |
dają to samo |
Nadkreślenie i styl znaku jako licznik i mianownik | \frac\overline{ab}\mathbb{b} \frac{\overline{ab}}{\mathbb{B}} |
dają to samo |
Działa to również w drugą stronę, tzn. polecenie „\frac” też jest rozumiane jako pojedynczy element (z wewnętrzną składnią), a to pozwala w złożonych wzorach nie obejmować go klamrą, np.:
Ułamek jako licznik innego ułamka | \frac \frac 1x y \frac\frac1xy \frac{\frac1x}y |
dają to samo |
Ułamek jako argument pierwiastka | \sqrt\frac{a+b}{c+d} \sqrt{\frac{a+b}{c+d}} |
dają to samo |
Całemu poleceniu „\frac” można nadać określone formatowanie jednym poleceniem (podobnie jak każdemu innemu zawierającemu wewnętrzną składnię). Wystarczy stosowne polecenie postawić przed ułamkiem. Jest to często wykorzystywane np. podczas określania jednostek miary. Poniżej przykład od najmniej i do najbardziej wygodnego zapisu kilometrów na godzinę:
\frac{\mathrm{km}}{\mathrm{godz.}} | dają to samo |
\frac\mathrm{km}\mathrm{godz.} | |
\mathrm{\frac{km}{godz.}} | |
\mathrm\frac{km}{godz.} |
Polecenie \over
[edytuj | edytuj kod]1 \over 2 lub 1\over2 {1} \over {2} lub {1}\over{2} |
Spację z lewej strony polecenia można zawsze pominąć, z prawej – tylko przy klamrze lub argumencie nieliterowym... | |
abc123 \over 456 d e f lub abc123\over456def |
...jednak klamry w tym poleceniu nie są konieczne, argumentami może być wiele znaków, a spacje nie przeszkadzają. Jeżeli w nawet bardzo dużym wzorze, gdzieś w środku umieścimy to polecenie bez klamer, to cały wzór stanie się jednym wielkim ułamkiem. | |
abc {123\over456} def | Dopiero gdy fragment kodu obejmiemy klamrą, reszta kodu przestanie należeć do ułamka. |
Różnica pomiędzy \frac i \over
[edytuj | edytuj kod]Niestety w szczegółach okazuje się, że polecenie „\over” nie zawsze działa idealnie. W poniższym przykładzie licznik jest nieznacznie powiększony.
- \over → ← \frac
Tak naprawdę licznik w przypadku polecenia „\over” nie jest powiększony, tylko pozostaje w domyślnym stylu „displaystyle” właściwym dla wzorów nierozbudowanych, podczas gdy pozostałe trzy przypadki przechodzą automatycznie do stylu „textstyle”, który wydaje się właściwszy dla skomplikowanych wzorów, szczególnie tych rozbudowanych w pionie. Problem z poleceniem „\over” polega na tym, że jego mechanizm jest niekonsekwentny. Styl „displaystyle” pozostaje tylko w liczniku, a w mianowniku pojawia się „textstyle”. Prezentują to także poniższe przykłady z użyciem innych poleceń niż tylko ułamki:
\over → , , , , , , ← \frac
Oczywiście zarówno licznik, jak i mianownik można ostylować „w drugą stronę”:
- →
Objęcie całości dodatkową klamrą powoduje przejście całości do „textstyle”:
- →
Polecenie „\over” jest przestarzałe (ang. deprecated), pochodzi jeszcze z gołego Tex-u, „\frac” zaś to polecenie późniejsze, z LaTeX-u, które powstało, by wyeliminować zarówno błędy generowane przez „\over”, jak i zmniejszyć liczbę błędów składni popełnianych przez edytujących, dla których to polecenie czasami okazywało się aż nazbyt wygodne (mniej nawiasów klamrowych lub nawet ich brak). Z powodu mnogości warunków wyświetlania można je nawet uznać w praktyce za nieco „nieprzewidywalne”. Lepiej używać zalecanego „\frac”.
Ułamki piętrowe
[edytuj | edytuj kod]Istnieje oczywiście możliwość budowania ułamków piętrowych. Wystarczy wzór jednego ułamka wstawić do argumentu innego ułamka. Na przykład:
(1) \frac{a}{b} (2) \frac{c}{d} |
(1) \frac{a\frac{c}{d}}{b} |
|
(1) a \over b (2) c \over d |
(1) a{c \over d} \over b |
(1) \frac{a}{b} (2) \frac{c}{d} |
(1) \frac{a}{b\frac{c}{d}} |
|
(1) a \over b (2) c \over d |
(1) a \over b{c \over d} |
Co ciekawe, argumenty w klamrach można pozostawić wypełnione spacją lub nawet puste. Można w ten sposób zaprezentować np. sam licznik lub mianownik.
\frac{\quad}{} \frac{\frac12a+\frac13b}{} \frac{}{\frac12a+\frac13b} | |
\quad\over{} {1\over2}a+{1\over3}b\over{} {}\over{1\over2}a+{1\over3}b |
Wyrównywanie ułamków
[edytuj | edytuj kod]Ułamki są wewnętrznie wycentrowane i nie da się tego zmienić. Można jednak próbować różnych protez. Użycie poleceń spacji wydaje się najłatwiejsze, ale ciężko będzie uzyskać idealne wyrównanie. Bardziej precyzyjnie można wyrównać, robiąc tabelę z kreską poziomą, ale składnia będzie niepotrzebnie rozbudowana. Najłatwiejsze wydaje się powtórzenie niektórych znaków i zamaskowanie ich białym kolorem. Składniowo jest to wyjątkowo nieeleganckie rozwiązanie, ale wizualnie zapewnia efekt idealny.
Czasami metoda jest prosta, jak w poniższym przykładzie:
\frac {a+b+c+d+e} {{\color{white}a+b+c+}d{\color{white}+e}} |
Czasami jednak, jak w przypadku justowania zupełnie do prawej, konieczne jest dodatkowe użycie pustej klamry. W poniższym przykładzie trzeba było pustą klamrą przywrócić odstęp po znaku dodawania:
\frac{a+b}{{\color{white}a+}b} | |
\frac{a+b}{{\color{white}a+{}}b} |
Przyjrzyjmy się działaniu klamry, zastępując kolor biały kolorem szarym. W pierwszym przykładzie klamra nie jest konieczna, choć składniowo też można by ją tam dać, przynajmniej formalnie, w drugim zaś przypadku klamra jest konieczna, bo to widać w wyświetlanym wzorze. Pusta klamra mówi programowi, że po znaku dodawania jest jeszcze „coś”, a to wystarcza do spowodowania odstępu po znaku dodawania:
Bez klamry | Z klamrą |
---|---|
Polecenie \atop
Istnieje możliwość generowania „ułamków” bez kreski ułamkowej.
Kod | Efekt | Kod | Efekt | |
---|---|---|---|---|
1 \atop 2 | 1+2 \atop 1+2+3 | |||
{1 \atop 2} | {1+2 \atop 1+2+3} |
Składnia identyczna z poleceniem „\over”, a w tym:
- klamra jest potrzebna tylko, gdy polecenie jest fragmentem wzoru,
- występuje ten sam błąd wyświetlania „displaystyle” w liczniku, a „textstyle” w mianowniku, np.:
- →
- Objęcie całości klamrą niweluje problem, ale tylko na pierwszym poziomie, na dalszych poziomach trzeba już się posiłkować poleceniami stylu tekstu (zobacz niżej dwa przykłady „choinki” z cyfr).
Użycie:
Polecenie „\atop” służy do wielu bardzo różnych zastosowań, gdy chcemy w najprostszy sposób umieścić coś w dwóch wierszach, aczkolwiek zawsze będzie to coś wyjustowane w osi.
- Często buduje się w ten sposób najprostsze tablice, używając mniejszej liczby znaków w kodzie niż przy klasycznych poleceniach tablic, np.:
\left|{n\atop k-1}\right| \begin{vmatrix}n\\k-1\end{vmatrix}
- Zastępując jeden z argumentów pustą klamrą „{}” (lub którymś z poleceń spacji), można wyświetlić tylko licznik lub mianownik, czyli tak jakby podnosić lub opuszczać znaki, np.:
- normalnie → ← podniesione
- Można modelować strzałki (w 2. przykładzie wykorzystano puste klamry):
- Jeśli granice w dwóch wierszach wydają się trochę za małe, zamiast „\atop” można użyć polecenia „\smallmatrix”, co uczyniono w ostatnim przykładzie:
- Poniżej podobny przypadek (zamiast frakcji użyto „\atop” z pustą klamrą):
Inne przykłady:
Polecenie „\atop” również podlega zasadom generowania ułamków piętrowych:
…
Polecenia \cfrac, \dfrac, \tfrac
Polecenia te, w odróżnieniu od podstawowego „\frac”, nie różnicują wielkości tekstu w zależności od poziomu w ułamku.
- „\cfrac” i „\dfrac” – niczym specjalnie się nie różnią, pracując w standardowej wielkości („\displaystyle”), „\dfrac” służy zasadniczo do robienia zwykłych ułamków, minimalnie zmniejszając odległości nad/pod kreską ułamkową, „\cfrac” zaś służy do (ang.) continued fractions – ułamków zagnieżdżonych wielokrotnie, nie zmniejszając odstępów przy kreskach ułamkowych, ale różnica jest niewielka (w innych implementacjach Latex-u „\cfrac” ma opcje justowania do lewego lub prawego brzegu kreski ułamkowej).
- „\tfrac” – zmniejsza całość, służy do osadzania ułamków np. wewnątrz tekstu akapitowego,
Pomimo że „\tfrac” jest popularnym poleceniem, spotykane jest, szczególnie w przypadku ułamków, stosowanie stylu tekstu „\textstyle”, a nawet trybu „inline”, które w tym przypadku identycznie zmniejszają ułamek (są to oczywiście rozwiązania gorsze):
<math>\tfrac12</math> | |
<math>\textstyle\frac12</math> | |
<math display="inline">\frac12</math> |
Porównanie wielkości poleceń ułamkowych:
Kod | Efekt |
---|---|
\cfrac12 \dfrac12 \frac12 \tfrac12 |
Polecenie | Kod | Efekt | Stała wielkość na każdym poziomie |
---|---|---|---|
\cfrac | a = \cfrac{1}{2+\cfrac{3}{4+\cfrac{5}{6+\cdots}}} | + | |
\dfrac | a = \dfrac{1}{2+\dfrac{3}{4+\dfrac{5}{6+\cdots}}} | + | |
\frac | a = \frac{1}{2+\frac{3}{4+\frac{5}{6+\cdots}}} | – | |
\trac | a = \tfrac{1}{2+\tfrac{3}{4+\tfrac{5}{6+\cdots}}} | + |
Inne spojrzenie:
\cfrac | \dfrac | \frac | \tfrac |
---|---|---|---|
Automatyczna zmiana wielkości na kolejnych poziomach zagnieżdżenia ułamków nie zawsze jest pożądana. Wtedy, aby przywrócić nominalną wielkość, można użyć polecenia „\dfrac”:
a) w jednostkach miary użyto „\frac”:
b) w jednostkach miary użyto „\dfrac”:
To samo zjawisko pomniejszenia zachodzi w większości typów tablic (oprócz typów „align” i „alignat”):
a) wewnątrz matrycy użyto „\frac”:
b) wewnątrz matrycy użyto „\dfrac”:
Uwaga: metoda powiększania poleceniem „\dfrac” wydaje się tutaj jedynym rozwiązaniem, ponieważ zastosowanie stylu tekstu poleceniem „\displaystyle” w powyższych przykładach nie zadziała.
Przykłady
[edytuj | edytuj kod]Proste przykłady ułamków (\frac)
Zaawansowane przykłady ułamków piętrowych (\frac)
Użyto wyłącznie poleceń ułamków oraz ewentualnie odstępów.
|
|
|
|
|
|
Dla nauki lub treningu można budować nawet ułamki bez argumentów:
Frakcje dolne i górne (indeksy)
[edytuj | edytuj kod]Frakcje potocznie nazywane są „indeksami”.
Frakcje najprostsze
[edytuj | edytuj kod]Do budowy frakcji stosuje się znak podkreślnika lub daszka, np.:
a_b \alpha_\beta |
|
a^b \alpha^\beta |
W przypadku, gdy frakcja zawiera więcej niż jeden element, należy objąć ją klamrą...
a_{n+1} | |
a^{n+1} |
...aczkolwiek nie zawsze jest to konieczne, bo polecenia definiujące w całości kolejną część wzoru rozumiane są w tym przypadku, mimo swojej złożoności, jako pojedynczy element, np.:
bez klamry nadmiarowa klamra |
a_\mathrm{komentarz} a_{\mathrm{komentarz}} |
|
bez klamry nadmiarowa klamra |
a^\frac{n}{2} a^{\frac{n}{2}} |
Jednoczesne frakcje dolne i górne można podawać w dowolnej kolejności, np.:
a_b^c | |
a^c_b |
Zasadniczo w składni powyższa kolejność powinna być następująca: najpierw frakcja dolna, potem górna. Można się o tym przekonać, obserwując trochę nietypowe polecenia z serii „\text...”, bowiem uwidaczniające we wzorach niektóre elementy składniowe, np.:
\textit{a_b^c} | |
\textit{a^c_b} |
Jak widać powyżej, kolejność frakcji w kodzie nie ma wpływu na kolejność w wyświetlanym wzorze. Teoretyczna zasada kolejności frakcji nie jest więc w praktyce ani przestrzegana, ani konieczna, a wśród osób edytujących panuje tu pełna dowolność. Warto jednak o tej zasadzie pamiętać w jednej sytuacji – przy podawaniu przykładów kodu wzorów, aby składnia była widoczna we wzorcowej kolejności.
Frakcje izolowane
[edytuj | edytuj kod]Frakcję można odizolować od poprzedniego fragmentu wzoru, czyli jakby oderwać od podstawy tej frakcji. Z matematycznego punktu widzenia frakcja ma zazwyczaj swoją podstawę, jednak z punktu widzenia składni, frakcje są samodzielnymi poleceniami z tym, że jeśli mają okazję, to dopasowują się do poprzedniego fragmentu wzoru. Czasami zachodzi potrzeba, aby to dopasowanie wyłączyć, wtedy należy wyodrębnić klamrą jedną z dwóch rzeczy: albo coś bezpośrednio przed frakcją, albo samą frakcję.
klamra przed frakcją | {...}_... | {...}^... |
...{}_... | ...{}^... | |
klamra wokół frakcji | ...{_...} | ...{^...} |
Klamra przed frakcją może obejmować podstawę, ale o wiele prościej jest wstawić przed frakcją pustą klamrę. Tak więc pierwsza metoda nie będzie dalej opisywana, jako mniej wygodna (szczególnie przy dłuższych wyrażeniach można się pogubić).
Frakcje izoluje się zasadniczo w dwóch celach:
- przypadek 1: aby frakcje nie dopasowywały się w pionie (normalnie położenie obu frakcji jest uzależnione od wysokości podstawy) – po izolacji dopasowanie wraca względem podstawowej linii wyrażenia,
- przypadek 2: aby frakcje nie dopasowywały się w poziomie (normalnie frakcje są jedna pod drugą) – po izolacji jedna z frakcji będzie przesunięta w prawo poza drugą frakcję,
...ale mamy również dwie sytuacje, gdzie frakcje same się „izolują”, bo nie mają się do czego dopasowywać:
- przypadek 3: na początku wzoru,
- przypadek 4: po semantycznym początku wyrażenia.
Przypadek 1:
Poniższy przykład jest matematycznie bez sensu (frakcja powinna być dopasowana do nawiasu zamykającego), ale wyraźnie pokazuje mechanizm odpinania frakcji od podstawy. Przykład może być jednak inspiracją do jakichś nietypowych zastosowań.
Normalnie | Z izolacją | ||
---|---|---|---|
..._2 | ...{}_2 ...{_2} |
||
...^2 | ...{}^2 ...{^2} |
Przypadek 2:
Mechanizm izolowanej frakcji można wykorzystać do przesuwania jednej frakcji względem drugiej w poziomie, np.:
układ normalny | x_1^2 | |
góra w prawo | x_1{}^2 x_1{^2} |
|
dół w prawo | x^2{}_1 x^2{_1} |
W ten sam sposób można tworzyć ciągi frakcji, np.:
x_1{}^2{}_3{}^4{}_5{}^6 | |
x_1{^2}{_3}{^4}{_5}{^6} |
Korzystając z klamry, można obok siebie układać nawet same górne lub dolne frakcje. Powoduje to niewielkie odstępy – trochę mniejsze od polecenia najwęższej spacji („\,”), np.:
x^1{}^2{}^3{}^4{}^5{}^6 x^1{^2}{^3}{^4}{^5}{^6} |
|
x^{111}{}^{222}{}^{333}{}^{444}{}^{555}{}^{666} x^{111}{^{222}}{^{333}}{^{444}}{^{555}}{^{666}} |
|
x^{111\,222\,333\,444\,555\,666} |
Przypadek 3:
Wikipediowa wersja składni Math jest w wielu miejscach uproszczona. Jedną z takich sytuacji jest właśnie frakcja na początku wzoru, bowiem nie trzeba wtedy robić niczego dodatkowego, np.:
<math>_1... <math>{}_1... <math>{_1}... |
ten sam efekt: |
<math>^1... <math>{}^1... <math>{^1}... |
ten sam efekt: |
Przypadek 4:
Także tutaj wikipediowa składnia jest uproszczona – samą frakcją (nawet bez pustej klamry) można rozpoczynać każdy fragment wzoru, który jest semantycznym początkiem wyrażenia. Może to być np. początek nawiasu, początek komórki w tablicy itd. Poniższy przykład pokazuje, jak odmiennie zachowuje się normalnie wstawiona frakcja po nawiasie otwierającym, a jak po zamykającym:
Frakcje wielostopniowe
[edytuj | edytuj kod]Jednocześnie obok siebie można postawić w kodzie tylko jedną frakcję dolną i jedną górną. Zapis typu „a^b^c” albo „a_b^c_d^e” kończy się wyświetleniem błędu. Jakiekolwiek próby formowania bardziej skomplikowanych układów wymagają więc albo pustej klamry, albo obejmowania klamrą fragmentów wzoru, albo nawet zagnieżdżania klamry w klamrze. Tą ostatnią metodą buduje się frakcje wielostopniowe.
Możliwe są dwa podejścia do zagnieżdżania wielostopniowego:
- 1{2{3{4{5{6}}}}}
- {{{{{1}2}3}4}5}6
Skutki są następujące:
1. | 1^{2^{3^{4^{5^{6}}}}} | |
2. | {{{{{1}^2}^3}^4}^5}^6 |
Powyższe przykłady są maksymalnie formalne, tzn. wstawiono wszędzie klamry dla pokazania struktury. W rzeczywistości w każdym przykładzie klamra zagnieżdżona najgłębiej jest niepotrzebna, bo zagnieżdża tylko samą siebie:
1. | 1^{2^{3^{4^{5^{6}}}}} 1^{2^{3^{4^{5^6}}}} |
2. | {{{{{1}^2}^3}^4}^5}^6 {{{{1^2}^3}^4}^5}^6 |
- Metoda 1 – podstawowa:
- frakcje kolejnych stopni przylegają do siebie bez odstępów w poziomie,
- pierwsza frakcja trochę większa od następnych (które mają własną wspólną wielkość).
- Metoda 2 – alternatywna (gdy frakcje wielostopniowe są mało czytelne):
- frakcje kolejnych stopni są lekko odsunięte w poziomie,
- wszystkie frakcje są tej samej wielkości co pierwsza frakcja z poprzedniej metody,
- w tej metodzie położenie kolejnych frakcji jest mocno uzależnione od wysokości znaków, przy niskich znakach (bez wydłużeń górnych) kolejne stopnie mogą się niewiele różnić wysokością położenia,
- metoda mniej wygodna podczas tworzenia, a szczególnie podczas poprawiania.
Metoda 1 (podstawowa) |
Metoda 2 (alternatywna) | ||
---|---|---|---|
1_2 1_{2_3} 1_{2_{3_4}} |
1_2 {1_2}_3 {{1_2}_3}_4 | ||
1^2 1^{2^3} 1^{2^{3^4}} |
1^2 {1^2}^3 {{1^2}^3}^4 |
1 | 2 | 1 | 2 | |
---|---|---|---|---|
1 | 2 |
---|---|
Frakcje z lewej strony
[edytuj | edytuj kod]Stosowanie nawiasów grupujących, czyli klamry, jest przydatne również, gdy chcemy frakcję powiązać z innym elementem z jego lewej strony. W zależności od wyrażenia może okazać się konieczne użycie poleceń spacji lub spacji ujemnej, ale warto zacząć poprawki od wypróbowania klamry:
A+^1_2B | zapis najprostszy | |
A+{^1_2B} | korekta klamrą |
W przypadku użycia innego stylu czcionki można nawet użyć tej samej klamry jednocześnie do dwóch celów (zmiany czcionki i przy okazji regulacji świateł):
\mathrm{A}+^1_2\mathrm{B} | |
\mathrm{A}+{\mathrm^1_2B} |
Mechanizmu tego można użyć np. do zapisu izotopów pierwiastków,
- ← lepiej
ale pojawia się problem, gdy liczba masowa jest dwucyfrowa, a liczba atomowa jednocyfrowa, bo nie pokrywają się rzędy. Można się wtedy posiłkować dwoma poleceniami spacji cienkiej „\,”:
Warto nadmienić, że do zapisu izotopów można też użyć szablonu {{chem}}, np.: {{chem|14|7|N}} wyświetli 147N.
Frakcje niepomniejszone
[edytuj | edytuj kod]Polecenia dwóch stylów czcionki – „\hbox” i „\mbox” (odmiany stylu „\text”) wyświetlają we frakcjach znaki w normalnej wielkości. Poniżej przykłady budowy frakcji w normalny sposób oraz przy użyciu tych stylów. Istotne jest, aby polecenia stylów były użyte nie wobec całego wzoru (dla tych stylów jest to niemożliwe), tylko dla wartości każdej frakcji z osobna:
Przyład kodu | Efekt | ||||||
---|---|---|---|---|---|---|---|
X_{1} | |||||||
X_\mbox{1} |
Samo polecenie „\mbox” wyświetla domyślnie znaki w antykwie. Aby uzyskać inne formatowanie, trzeba dodatkowo użyć polecenia stylu czcionki, aczkolwiek polecenie stylu tekstu „\displaystyle” także zmienia formatowanie – na domyślne. Porównaj:
Metoda | Kod | Efekt |
---|---|---|
składnia podstawowa | Xy_{Xy} | |
użycie „\mbox” |
Xy_\mbox{Xy} | |
Xy_\mathit\mbox{Xy} | ||
Xy_\mathbf\mbox{Xy} | ||
użycie „\displaystyle” |
Xy_\displaystyle{Xy} | |
Xy_{\displaystyle{Xy}} |
Poprawki wyglądu
[edytuj | edytuj kod]Jeżeli frakcja przylega zbyt blisko do poprzedniego znaku, można ją nieznacznie odsunąć na odległość mniejszą, niż dałoby się to zrobić poleceniem spacji. Robi się to za pomocą klamry. Możliwe są różne sposoby odseparowania wykładnika od podstawy, dające ten sam efekt:
Kod | Efekt |
---|---|
a^2, a'^2, a''^2 | |
a^2, a'{^2}, a''{^2} | |
a^2, a'{}^2, a''{}^2 | |
a^2, a{'}^2, a{''}^2 | |
a^2, {a'}^2, {a''}^2 |
Pierwiastki
[edytuj | edytuj kod]Najprostszą postać ma pierwiastek kwadratowy, czyli II stopnia. Symbole nieliterowe mogą stykać się z poleceniem. Np.:
Kod | Efekt | |
---|---|---|
\sqrt2 | \sqrt 2 | |
\sqrt\tfrac12 | \sqrt \tfrac12 | |
\sqrt\pi | \sqrt \pi | |
– | \sqrt a |
Podstawa składająca się z więcej niż jednego elementu wymaga klamry:
Kod | Efekt |
---|---|
\sqrt2+3 | |
\sqrt{2+3} |
Pierwiastki innych stopni wymagają podania dodatkowego parametru w nawiasie kwadratowym:
Kod | Efekt |
---|---|
\sqrt[3]2 | |
\sqrt[\frac{p}{q}]a |
Można wyświetlić sam symbol pierwiastka, ale wymaga to klamry, można też wydłużyć jego górną poziomą kreskę, natomiast kreski z lewej strony wydłużyć się nie da:
Kod | Efekt |
---|---|
\sqrt{} | |
\sqrt{\;} | |
\sqrt{\qquad} | |
\sqrt[{1+\dots+n}]a |
Program sam dopasowuje zarówno położenie, jak i wysokość znaku pierwiastka w zależności od zawartości jego podstawy. Co więcej, w przypadku pustej podstawy znak pierwiastka wyświetla się bardzo nisko: w związku z czym wewnątrz tekstu akapitowego obniżony znak wygląda szczególnie rażąco. Można go jednak unieść przy użyciu frakcji górnej, a najlepiej frakcji we frakcji:
\sqrt{\;} | \sqrt{^\;} | \sqrt{^{^\;}} |
...abc | ...abc | ...abc |
Zestawienie powyższych trzech metod w tekście akapitowym wygląda tak:
- .........abc...
Istnieje również polecenie „\surd”, które zajmuje się tylko wyświetleniem symbolu pierwiastka bez kreski poziomej. Tym poleceniem nic więcej nie da się zrobić (nie ma parametrów, ani argumentów), ale przynajmniej stawia znak na normalnej wysokości, czyli na podstawowej linii pisma:
Kod | Efekt |
---|---|
\surd \sqrt{} |
Zagnieżdżanie podstaw:
- →
- →
- →
- →
- →
- →
Zagnieżdżanie stopni:
- →
Inne symbole matematyczne
[edytuj | edytuj kod]Obiekt | Kod | Efekt |
---|---|---|
Suma | \sum_{i=1}^n | |
Iloczyn | \prod_{i=1}^n | |
Suma mnogościowa | \bigcup_{i=1}^n | |
Iloczyn mnogościowy | \bigcap_{i=1}^n | |
Całka | \int_b^a \, dx | |
Całka podwójna | \iint_D\,dx\,dy | |
symbole innych całek |
\iiint \iiiint \oint \oiint \oiiint |
|
Implikacja | p\Rightarrow q | |
Kwantyfikatory | \forall x\exists y | |
\bigwedge_x \bigvee_y | ||
Liczby zespolone | \underline{Z} = R + j\cdot X |
Polecenie \limits
[edytuj | edytuj kod]To specyficzne polecenie wpływa na sposób wyświetlania pewnych elementów wzoru poprzez umiejscowienie ich nad lub pod niektórymi symbolami funkcji w sytuacji, gdy bez tego polecenia byłyby ułożone w linii (czyli obok z prawej strony). Potrzeba używania tego polecenia na Wikipedii jest mocno ograniczona, gdyż w wielu sytuacjach jest ono domyślnie włączone w tle. W implementacjach systemu Math poza Wikipedią trzeba z tego polecenia korzystać znacznie częściej, przez co wiele wzorów na Wikipedii ma to polecenie wstawione niepotrzebnie.
Jeżeli chcemy wymusić położenie „nad/pod”, to polecenie „\limits” jest potrzebne:
- grupa I – zawsze dla poleceń: „\int”, „\iint”, „\iiint”, „\iiiint”, „\oint”, „\oiint”, „\oiiint”; np.:
\int_a^b | |
\int\limits_a^b |
- grupa II – tylko w trudniejszych przypadkach (np. ułamki, niektóre typy tablic) dla poleceń: „\bigcap”, „\bigcup”, „\bigvee”, „\bigwedge”, „\lim”, „\prod”, „\sum”; np.:
\frac{\sum_{k=1}^N}{a} | |
\frac{\sum\limits_{k=1}^N}{a} |
Polecenie „\limits” nie ma swojego składniowego przeciwieństwa, ale funkcjonalnie jest nim „\textstyle”, przy czym oba można łączyć, uzyskując efekt pośredni, np.:
Polecenie | Grupa I | Grupa II | ||
---|---|---|---|---|
bez | \sum_{i=1}^n | \int_{-\infty}^\infty | ||
„\limits” | \sum\limits_{i=1}^n | \int\limits_{-\infty}^\infty | ||
„\textstyle” | \textstyle\sum_{i=1}^n | \textstyle\int_{-\infty}^\infty | ||
„\textstyle” + „\limits” | \textstyle\sum\limits_{i=1}^n | \textstyle\int\limits_{-\infty}^\infty |
Powyższy przykład jest oczywiście uproszczony, bo w dłuższych wzorach frazę, na którą działa „\textstyle”, należy objąć klamrą, np.:
\textstyle\sum\limits_{i=1}^n e_i \frac12 | |
{\textstyle\sum\limits_{i=1}^n} e_i \frac12 | |
{\textstyle\sum\limits_{i=1}^n e_i} \frac12 |
W powyższym przykładzie trzecie rozwiązanie jest odrobinę lepsze od drugiego, bo klamra sięgająca aż za fragment „” powoduje poprawiony odstęp przed tym fragmentem.
Pamiętając o tym, że po oklamrowanym poleceniu „\textstyle” mogą być problemy z odstępami, można zaryzykować jednorazowe użycie tego polecenia bez klamry, pamiętając jednak o tym, aby w dalszej części wzoru nie było wyrażeń, które mogłyby zareagować w sposób niepożądany. Wtedy możemy użyć tego polecenia jeden raz, a poprawnie zmieni ono wszystko, co chcemy także w dalszej części wzoru („\textstyle” bez klamry działa do końca wzoru lub do przywracającego stylu „\displaystyle”). W poniższym przykładzie mamy 3 sumy z układem wymuszonym 3 poleceniami „\limits”, ale „\textstyle” jest tylko przed pierwszą sumą:
\textstyle\sum\limits_{i=1}^n x^*_i = \sum\limits_{i=1}^n e_i + \sum\limits_j^m y^*_j</math> |
W mechanizmie wyświetlania tych symboli istnieje błąd, gdy taki symbol jest pierwszym elementem wzoru. Jeżeli dolny fragment jest trochę dłuższy i wystaje przed główny symbol, to będzie przycięty z lewej strony. Wtedy należy dokonać korekty poleceniem spacji 3/18 (najlepiej z pustą klamrą), np.:
<math>\int\limits_{a-1}^b | |
<math>{}\,\int\limits_{a-1}^b |
W powyższym przykładzie sama pusta klamra też sporo pomaga, jednak zostawia ucięty drobny fragment znaku, stąd lepiej dorzucić najwęższą spację.
Oznaczenia zbiorów liczbowych
[edytuj | edytuj kod]Obiekt | Kod | Efekt |
---|---|---|
\mathbb{BT} | ||
x \in \mathbb{N} | ||
Zbiór pusty | \emptyset \varnothing |
|
Suma zbiorów | A \cup B | |
Iloczyn zbiorów | A \cap B | |
Różnica zbiorów | A \setminus B A \smallsetminus B |
Działa również niezalecane polecenie „\O” ()
Kod | Efekt |
---|---|
\lim_{n \to \infty} a_n | |
\liminf_{n\to\infty} n \|n\alpha\| \|n\beta\| = 0 |
Dla poprawienia czytelności powyższego wzoru można dodać znaki spacji, np. „\ ”.
\liminf_{n\to\infty} n \ \|n\alpha\| \ \|n\beta\| = 0 |
Funkcje trygonometryczne
[edytuj | edytuj kod]W języku polskim (i niektórych innych) stosowane są łacińskie nazwy funkcji, stąd niektóre funkcje mają alternatywne polecenia:
|
|
|
- Dla cotangensa można spotkać w jęz. angielskim (i niektórych innych) rzadziej także inne symbole (budowane poleceniem „\operatorname”): cotan, cotg, ctn.
- Wszystkie nazwy funkcji budowane z użyciem „\operatorname” można tworzyć także niektórymi innymi poleceniami stylu czcionki, np. „\mathrm”, „\mbox” itd., ale jest to niepoprawne semantycznie, a poza tym konieczne jest wtedy dodatkowe wstawianie polecenia spacji (które „\operatorname” ma wbudowane).
Edycja równań reakcji chemicznych
[edytuj | edytuj kod]Zapisywanie wzorów chemicznych możliwe jest przy użyciu składni wiki, makr LaTeX bądź przy użyciu specjalnych szablonów. W każdym z przypadków efekt końcowy powinien jak najdokładniej odzwierciedlać przyjęty sposób zapisu wzorów i równań chemicznych. W razie pytań bądź wątpliwości możesz napisać na stronie dyskusji Projektu Chemia.
Stosuje się przy tym szereg symboli: strzałek („→” dla zwykłej reakcji; „⇄” dla reakcji przebiegającej w dwóch kierunkach; „⇌” dla reakcji równowagowej; „↔” przy mezomerii; „↑” gdy produkt opuszcza środowisko reakcji; „↓” gdy produkt strąca się), kresek („−” znak minusa, oznaczenie wiązania pojedynczego; „=”, „≡”, „≣” odpowiednio wiązanie podwójne, potrójne i poczwórne); kropek („·” przy adduktach; „•
” przy rodnikach).
- Zobacz więcej w artykule
Zapis za pomocą szablonów
[edytuj | edytuj kod]Preferowanym sposobem zapisu wzorów i równań chemicznych jest użycie szablonu {{chem2}}, przykładowo:
Kod | Efekt |
---|---|
{{chem2|NaOH \arrow Na+ + OH-}}
|
NaOH → Na+ + OH− |
{{chem2|HCl \equil H+ + Cl-}}
|
HCl ⇌ H+ + Cl− |
{{chem2|[SCN- \meso -SCN]}}
|
[SCN− ↔ − SCN] |
Szablon rozpoznaje, które części wzoru należy zapisać indeksem dolnym lub górnym (dla bardziej skomplikowanych sytuacji niż przedstawione, ładunek umieszcza się w nawiasach, np. dla CO2−
3 należy zapisać {{chem2|CO3(2-)}}
). Automatycznie zmienia także znaki dostępne z klawiatury (np. „-”) bądź odpowiednią składnię (np. „\arrow”) na poprawne symbole.
Istnieje również starszy szablon {{chem}}, którego użycie wygląda następująco:
Kod | Efekt |
---|---|
NaOH → {{chem|Na|+}} + {{chem|OH|-}}
|
NaOH → Na+ + OH- |
{{chem|HCl}} ⇌ {{chem|H|+}} + {{chem|Cl|-}}
|
HCl ⇌ H+ + Cl- |
{{chem|[SCN|-}} ↔ {{chem|-|SCN]}}
|
[SCN- ↔ -SCN] |
W tym przypadku konieczne jest stosowanie poprawnych symboli, gdyż szablon ułatwia wyłącznie poprawne sformatowanie wzorów (indeksy). Może być przydatny w rzadkich przypadkach (np. do wypełnienia {{DISPLAYTITLE:}}
bądź szablonu {{Wzory sumaryczne}} w ujednoznacznieniach takich jak C2H6O).
Zapis za pomocą składni wiki
[edytuj | edytuj kod]Wzory chemiczne można również zapisywać, wykorzystując składnię wiki. W takim przypadku konieczne jest stosowanie poprawnych symboli.
Kod | Efekt |
---|---|
NaOH → Na<sup>+</sup> + OH<sup>−</sup>
|
NaOH → Na+ + OH− |
HCl ⇌ H<sup>+</sup> + Cl<sup>−</sup>
|
HCl ⇌ H+ + Cl− |
[SCN<sup>−</sup> ↔ <sup>−</sup>SCN]
|
[SCN− ↔ −SCN] |
Ten sposób może być przydatny w sytuacjach, w których zastosowanie szablonów jest niezalecane (np. wypełnianie parametru wzór sumaryczny
w {{Związek chemiczny infobox}} – na podstawie tego parametru powstaje indeks związków chemicznych według pierwiastków i bot przyjmuje jedynie wzory zapisane za pomocą składni wiki). Zapis wzorów i reakcji chemicznych ułatwia szablon {{chem2}}.
Zapis za pomocą makr LaTeX
[edytuj | edytuj kod]Możliwe jest również zapisywanie wzorów za pomocą zestawu mark LaTeX. Istnieją przy tym dwa sposoby, jednak należy wykorzystywać je wyłącznie w bardzo rzadkich przypadkach (zdecydowaną większość wzorów chemicznych zapisuje się bez użycia LaTeX, a bardziej skomplikowane powinny być dodawane jako grafiki).
Kod | Efekt |
---|---|
<math>\mathrm{NaOH \rightarrow Na^+ + OH^-}</math>
|
|
<math>\mathrm{NaOH \xrightarrow {H_2O} Na^+ + OH^-}</math>
|
|
<math>\mathrm{2Cu(OH)_2 \xrightarrow[cieplo]{} 2CuO + H_2O}</math>
|
Tym sposobem możliwe jest także dodawanie tekstu przy strzałce:
\xrightarrow{tekst nad strzałką}
\xrightarrow[tekst pod strzałką]{}
\xrightarrow[tekst pod strzałką]{tekst nad strzałką}
Odpowiednio dla pokazania mezomerii stosuje się \leftrightarrow
bądź \longleftrightarrow
, a dla reakcji równowagowych \rightleftharpoons
.
Drugi sposób upraszcza pisanie wzorów i równań reakcji w środowisku TeX. Wykorzystuje się przy tym znacznik <chem> (lub <ce>[a]) zamiast <math> (ale podobnie, powinien być stosowany tylko w rzadkich i uzasadnionych przypadkach).
Kod | Efekt |
---|---|
<chem>NaOH -> {Na^+} + OH^-</chem>
|
|
<chem>{2Cu(OH)2 \xrightarrow[cieplo] 2CuO} + {H2O}</chem>
|
|
<chem>{SO4^{2-}} + Ba^2+ -> BaSO4 v</chem>
|
Znacznik <chem> jest równoważny znacznikowi <math> z rozszerzeniem chem, czyli <math chem>, przy czym <chem> ma w stosunku do <math chem> uproszczoną składnię, np.:
- odpowiada
<chem>X</chem>
<math chem>\ce{X}</math>
Użycie <math chem> pozwala na stosowanie specjalnego formatowania, np.:
- Kod:
<math chem>\begin{align} \overbrace{\ce{2Fe3O4}}^{\text{magnetite}} + \ce{1/2 O2 ->}\ &{\color{Brown}\overbrace{\ce{3(\lambda{-}Fe2O3)}}^{\text{maghemite}}}\\ \underbrace{\ce{2Fe3O4}}_{\text{magnetite}} + \ce{1/2 O2 ->}\ &{\color{Red}\underbrace{\ce{3(\alpha{-}Fe2O3)}}_{\text{hematite}}} \end{align}</math>
- Efekt:
Równania w postaci grafiki
[edytuj | edytuj kod]Równania, które w prosty sposób nie dają się zapisać za pomocą szablonów bądź składni wiki, należy wstawiać jako grafiki. Dotyczy to przede wszystkim równań, w których występują związki organiczne bądź mechanizmów reakcji. Zaleca się przy tym, aby były to grafiki wektorowe (SVG). Istnieje szereg programów (bezpłatnych i komercyjnych), w których możliwe jest rysowanie wzorów (m.in. CDK, BKChem).
Zapoznaj się również z zaleceniami dot. rysowania wzorów chemicznych na stronie Structure drawing w anglojęzycznej Wikipedii.
Wymuszenie wstawienia wzoru w formie grafiki (wycofane)
[edytuj | edytuj kod]Wyświetlanie wzorów na Wikipedii działało we wcześniejszych wersjach oprogramowania w ten sposób, że proste wzory nie były wyświetlane w postaci grafiki, tylko zwykłego tekstu HTML. Stąd, aby wymusić wyświetlanie wzoru w postaci grafiki, potrzebne było umieszczanie na początku lub końcu kodu wzoru któregoś z poleceń spacji, np. \;
, \!
itp., lub polecenia \displaystyle
. Ta funkcjonalność nie jest już dłużej aktywna. Wymienione polecenia powinny być usuwane z początku i końca kodu (najlepiej przy okazji edycji artykułów z innych powodów).
Więcej
[edytuj | edytuj kod]Rozbudowana pomoc z większą liczbą przykładów (w języku angielskim) znajdują się tutaj:
Dodatkowe informacje można znaleźć również tutaj:
W zasobach internetu można znaleźć więcej informacji, np. pod następującymi adresami:
- Tobias Oetiker, Nie za krótkie wprowadzenie do systemu LaTeX 2ε, albo LaTeX 2ε w 129 minut (tłumaczenie polskie)
- Michael Doob, Łagodne wprowadzenie do TeX-a. Podręcznik (tłumaczenie polskie)
- witryna użytkowników systemu składu DTP TeX
- Karol Selwat, Wprowadzenie do systemu LaTeX. Skrypt dla studentów Instytutu Matematycznego Uniwersytetu Wrocławskiego
- Marcin Borkowski, Bartłomiej Przybylski, Latex – książka kucharska
Uwagi
[edytuj | edytuj kod]- ↑ Znacznik <ce> jest niezalecany ze względu na mało intuicyjną nazwę i planowane jest jego wycofanie. Zob. https://phabricator.wikimedia.org/T153606.