Skip to content

Commit

Permalink
Talent tex update (#18)
Browse files Browse the repository at this point in the history
* ulepszona tabelka z podzadaniami

* Małe poprawki w README

---------

Co-authored-by: A-dead-pixel <[email protected]>
  • Loading branch information
jjrozek and otargowski authored Jul 21, 2024
1 parent 9e9828e commit b27febf
Show file tree
Hide file tree
Showing 7 changed files with 358 additions and 555 deletions.
48 changes: 29 additions & 19 deletions example_package/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,29 +65,39 @@ Jest to klasa używana w plikach `.tex`.
Nadaje ona odpowiedni wygląd dokumentom.
Automatycznie tworzy ona nagłówki i stopki.
Wystarczy że stworzymy treść dokumentu pomiędzy znacznikami `\start` i `\finish`.
Dodatkowo udostępnia następujące funkcje:

- `\tc{n}` - Stylizuje podany tekst na talentowy kolor.
- `\plainimg{img1.jpg}` - Wstawia obrazek o podanej ścieżce.
- `\img{img1.jpg}{opis}{t/b}` - Wstawia obrazek o podanej ścieżce z opisem u góry lub na dole.
Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`.
- `\start{}` - Rozpoczyna treść, musi być na samym początku treści dokumentu.
- `\finish{}` - Kończy treść, musi być na samym końcu treści dokumentu.
Dodatkowo udostępnia następujące funkcje, przy czym zmienne podane w `{}`
obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks.
Przykładowo `\img{a}`, `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`.

- `\tc{text}` - Stylizuje podany tekst na talentowy kolor.
- `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu i po deklaracjach.
- `\finish` - Kończy treść, musi być na samym końcu treści dokumentu.
- `\tSection{text}` - Nagłówek w stylu talentu.
- `\tCustomSection{text}{0pt}` - Nagłówek w stylu talentu, z możliwością ustawienia odstępu od poprzedniego akapitu.
- `\tSmallSection{text}` - Mały nagłówek w stylu talentu.
- `\makecompactexample{id}` - dodaje automatycznie test "abc0{id}" z paczki, wejście i wyjście będą obok siebie.
- `\makestandardexample{id}` - dodaje automatycznie test "abc0{id}" z paczki, wejście i wyjście będą pod sobą.

Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out.
Należy się upewnić, że są one wygenerowane w momencie kompilacji treści.
Te polecenia również tworzą nagłówek "Wejście" i "Wyjście".

- `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen.
- `\example[h/v]{id}` - Wstawia test przykłądowy "zad0id" z paczki.
abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}.
Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślną wartością jest h.
Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują.
Te polecenia również tworzą nagłówek "Wejście" i "Wyjście".
- `\ocen{ \testOcen{}{}...}` - Lista wszystkich testów ocen.
- `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem.
- `\ocenTable{}` - Tworzy tabelę z podzadaniami. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty).
- `\ocenRow{nr & opis & punkty}` - Pojedynczy wiersz tabeli: kolejne komórki powinny być rozdzielone znakiem &.
Jeśli chcesz mieć 2 linie w pojedynczej komórce tabeli użyj `\ocenElement{text}`.
- `\subtaskTable{ \subtask{}{}... }` - Tworzy tabelę z podzadaniami.
Jako argumenty należy przekazać `\subtask{}{}`, dla każdego podzadania.
Komenda sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to spowoduje błąd kompilacji z podaną przyczyną.
Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty).
- `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem.
- `\twocol{}{}` `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z podaną zawartością.
Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy (domyślnie 0).
Szerokość drugiej kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t).
- `\imgt[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
- `\imgb[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
- `\img{plik}` % `\img[szerokość][opis][t/b]{plik}` - Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół.
- `\title{} \id{}` - Ustawiają tytuł i id. Są obowiązkowe.
- `\contest{}` - Ustawia wyświetlaną w nagłówku nazwę konkursu.
- `\day{} \round{} \group{}` - Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2)
- `\Memory[]{} \Time[]{}` - Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić.

## **prog**

Expand Down
Binary file modified example_package/doc/abcopi.pdf
Binary file not shown.
Binary file modified example_package/doc/abcopr.pdf
Binary file not shown.
4 changes: 2 additions & 2 deletions example_package/doc/abcopr.tex
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@

\start{}

\tSection{Pochodzienie zadanie}
\tSection{Pochodzenie zadania}


\tSection{Poziom zadania, trudnoości}
\tSection{Poziom zadania, trudności}


\tSection{Podzadania}
Expand Down
Binary file modified example_package/doc/abczad.pdf
Binary file not shown.
113 changes: 63 additions & 50 deletions example_package/doc/abczad.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,98 +2,111 @@

\title{Przykładowy tytuł zadania}
\id{abc}
\iomode{stdin} % stdin
\Memory{256} % w MB
\Time{2,4} % w sekundach
\group{A}
\konkurs{SKN 2023/24}
\day{Runda 17}
\contest{SKN 2023/24}
\day{}
\round{17}
\group{A}
\Memory[MB]{256}
\Time[s]{2,4}

%%%%%%%%%%%%%%%%%%
% Przydatne komendy:
% \pagebreak % komenda zaczynająca nową stronę pdfa
% ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie
% $text_mat$ % pozwala na pisanie wyrażeń matematycznych
% Dokumentacja:
% https://www.overleaf.com/learn

%%%%%%%%%%%%%%%%%%
% Komendy talentowe
% \start{} % Rozpoczyna treść, musi być na samym początku treści zadania.
% \finish{} % Kończy treść, musi być na samym końcu treści zadania.
% \tSection{text} % Nagłówek w stylu talentu.
% \tCustomSection{text}{xpt} % Nagłówek w stylu talentu, z możliwością ustawienia odstępu 'x' od poprzedniego akapitu.
% \tSmallSection{text} % Mały nagłówek w stylu talentu.
% \tc{text} % Styl używany do oznaczania zmiennych.
% \makecompactexample{id} % 2 style dodawania automatycznie testów "zad0{id}" z paczki.
% \makestandardexample{id} % compact - obok siebie, standard - pod sobą.
% % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out
% \ocen{text} % Lista wszystkich testów ocen.
% \testOcen{text}{text2} % Pojedyńczy test ocen z opisem.
% \ocenTable{text} % Tabela z podzadaniami.
% \ocenRow{text} % Pojedyńczy wiersz tabeli: kolejne komórki powinne być rodzielone znakiem &.
% \ocenElement{text} % Jeśli chcesz mieć 2 linie w pojedyńczej komórce tabeli.

\start{}
\start

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Donec rhoncus torstor vitae lorem luctus maximus.
Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus.
Etiam imperdiet luctus leo, et molestie diam congue auctor. Sed sapien eros, imperdiet in fermentum $\tc{a}$, faucibus ut ex cośtam.
% pusta linijka, by zacząć akapit od wcięcia
Etiam imperdiet luctus leo, et molestie diam congue auctor.
Sed sapien eros, imperdiet in fermentum \tc{a}, faucibus ut ex cośtam cośtam.

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec rhoncus tortor vitae lorem luctus maximus.

\tSection{Wejście}

W pierwszym wierszu standardowego wejścia znajduje się jedna liczba $\tc{n}$ ($1\leq \tc{n}\leq 1\ 000\ 000$), oznaczająca parametr z~wejścia.
W pierwszym wierszu standardowego wejścia znajduje się jedna liczba \tc{n} ($1 \leq \tc{n} \leq 10^6$), oznaczająca parametr z~wejścia.
W drugim wierszu znajduje się \tc{n} liczb $\tc{a_i}$ $(1 \leq \tc{n} \leq 10^6)$.

\tSection{Wyjście}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Donec rhoncus torstor vitae lorem luctus maximus.
Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus.

W pierwszym wierszu wyjścia powinna znajdować się jedna liczba $\tc{z}$, wynik z zadania.
W pierwszym wierszu wyjścia powinna znajdować się jedna liczba, wynik z zadania.

\tSection{Przykład}

\makestandardexample{a} % abc0.in -> {}, abc0x.in -> {x}
\makecompactexample{a} % testy muszą być wygenerowane więc użyj st-make ingen outgen
\example[v]{a}
\example[h]{a}
\example{a}

\tCustomSection{Wyjaśnienie przykładów}{5pt}
\tSection{Wyjaśnienie przykładów}

\tSmallSection{Przykład 1}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Donec rhoncus torstor vitae lorem luctus maximus.
Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus.

\tSmallSection{Przykład 2}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.

\tSection{Testy ocen}

\tSection{Testy ocen:}
\ocen{
\testOcen{1ocen}{$\tc{n} = 69$, Założenie jakieś}
\testOcen{2ocen}{$\tc{n} = 420$, założenie jakieś 2}
\testOcen{0b}{$\tc{n} = 420$, założenie jakieś 2}
}

\tSection{Ocenianie}

Zestaw testów dzieli się na następujące podzadania.
Testy do każdego podzadania składają się z jednej lub większej liczby osobnych grup testów.

% Alternatywnie \customOcenTable{|c|c|c|}{\tc{Nr} & \tc{Ograniczenia} & \tc{Punkty}}{reszta tabeli}

\ocenTable{
\ocenRow{1 & $\tc{n} \leq 100$ & 30}
\ocenRow{2 & \ocenElement{$\tc{n} \leq 1000$ Dwie\\ Linie} & 20}
\ocenRow{3 & Bez ograniczeń & 50}
\subtaskTable{
\subtask{30}{$\tc{n} \leq 100$}
\subtask{20}{$\tc{n} \leq 1000$ Dwie\\ Linie}
\subtask{50}{Bez ograniczeń}
}

\finish{}
\finish

%%%%%%%%%%%%%%%%%%
% Przydatne komendy:
% \pagebreak % komenda zaczynająca nową stronę pdfa
% ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie
% pusta linijka (lub \par) rozpoczyna nowy akapit.
% \footnote{text} tworzy adnotację na dole strony do miejsca w którym użyto.
% \color{color}{text} koloruje tekst
% \vspace{5pt} tworzy odstęp.
% $text_mat$ % pozwala na pisanie wyrażeń matematycznych
% Dokumentacja:
% https://www.overleaf.com/learn

%%%%%%%%%%%%%%%%%%
% Komendy talentowe:
% \start % Rozpoczyna treść, musi być na samym początku treści zadania i po deklaracjach.
% \finish % Kończy treść, musi być na samym końcu treści zadania.
% \tSection{text} % Nagłówek w stylu talentu.
% \tSmallSection{text} % Mały nagłówek w stylu talentu.
% \tc{text} % Styl używany do oznaczania zmiennych.
% \example[h/v]{id} % Wstawia test przykłądowy "zad0id" z paczki.
% abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}.
% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślną wartością jest h.
% Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują.
% \ocen{ \testOcen{}{}... } % Lista wszystkich testów ocen, podajemy do niej komendy \testOcen{}{}.
% \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis
% \subtaskTable[point]{ \subtask{}{}... } % Tworzy tabelę z podzadaniami, podajemy do niej komendy \subtask{}{}.
% Sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to spowoduje błąd kompilacji z podaną przyczyną.
% \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem.
% \twocol{}{} % \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z podaną zawartością.
% Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0).
% Szerokość 2 kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t).
% \imgt[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
% \imgb[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
% \img{plik} % \img[szerokość][opis][t/b]{plik} % Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
% Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół.
% \title{} \id{} % Ustawiają tytuł i id. Są obowiązkowe.
% \contest{} % Informuje jaki nazywa się kontest i jest wyświetlany w nagłówku.
% \day{} \round{} \group{} % Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2)
% \Memory[]{} \Time[]{} % Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić.
Loading

0 comments on commit b27febf

Please sign in to comment.