From 0db91fb2126fff0929365be0a6025e0dc7f2a194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ro=C5=BCek?= Date: Sun, 19 May 2024 18:01:08 +0200 Subject: [PATCH] =?UTF-8?q?najwi=C4=99ksza=20zmiana?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example_package/README.md | 19 +- example_package/doc/abcopi.pdf | Bin 149150 -> 149153 bytes example_package/doc/abcopr.pdf | Bin 147515 -> 147513 bytes example_package/doc/abczad.pdf | Bin 215989 -> 259751 bytes example_package/doc/abczad.tex | 93 +++--- example_package/doc/talentTex.cls | 451 +++++++++++++----------------- 6 files changed, 258 insertions(+), 305 deletions(-) diff --git a/example_package/README.md b/example_package/README.md index 54d56e75..9ed7a8cf 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -77,20 +77,19 @@ Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. - `\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". +- `\example[h/v]{id}` - Wstawia test przykłądowy "zad0{id}" z paczki. + Opcjonalnie można dodać położenie testów, h - horyzontalnie, v - pionowo, domyślnie jest h. + 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. - `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem. -- `\ocenTable{}` - Tworzy tabelę z podzadaniami. - Jako argument należy przekazać `\ocenRow{}{}`, dla każdego podzadania. - Opcjonalnie można podać ile punktów jest za zadanie `\ocenTable[100]{}`. +- `\subtaskTable{}` - Tworzy tabelę z podzadaniami. + Jako argument należy przekazać `\subtask{}{}`, dla każdego podzadania. + Opcjonalnie można podać ile punktów jest za zadanie `\subtaskTable[100]{}`. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty). -- `\ocenRow{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. +- `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem. ## **prog** diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index 82be1b303e93e0b0eb31f65d8c92f77cacdd8573..a729510b8cc065fc53b748b9fc1a004f8bcdc897 100644 GIT binary patch delta 793 zcmbQ&%ekg$KhezsO{cnY9Z@GM3%D;QL1$&Z* z*PjE08+3krotr5B%3{?OuFkua^`Fl&sQb4}zTL9l+H&$CY0l;6=1zXn(U$$R|Mru| zMlKP4jZT!}_^?nz4Fl!oSxG>v-SD1wYKVJU?5+ zHn#BKHTr6S)QP<2yraeU{H($fJt~vhbtPP8Me2&SUiQ|0 zw4TL1u5Hr9I|eR4=K9q1?w{;r z3j+f~q5w(W(^cG<1bH?#aBh*ZzH#d2A*QhD4sJ|_EInErKGRFx Pm=rlIxKveL{oS|#Jep}z delta 792 zcmZ43%Q>%?bAk%9fr7&H1s56B>!*gC%)4zMu=llg#gc}uhiZD)7x`X@*>%MBsHMiV zNm_AFER1+wzP5G_S~Yor12>~mdj01#6+byn^>E4h@*=fXb0NQ2EA^9%y!lh@*KO+W ze)A|uQpwWTZCc7l2c9_Ajd6zQGLcuFOsli*Ib3ye=h|0#;&bM;?U|su{O<+%K-v1G z8&|E4jec6*{aW(Wb62$uCW0>B=hs|1Vs*TyG-d1AdB$oxzS>pHiETby5R|9L?jREQX4%FF%M}n{nZNyw8QNpLNR%?X+KbN%mcs++1$v@X6|krnu* ziMr5OD2u#JgpY>*vL(@7^(GUIkktniTw;Pk+`s^S4&3{4A@kz9_5l(GtoOt>124G**x*ac^a}0Q7QOU;qFB diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 670c4cb88b2b3a735bfe87c2b9cb9c8a52726c58..3bab96a382e15c82a4c10a353c3d47808bab56db 100644 GIT binary patch delta 845 zcmdnpz`3)5bAk$!nZooBmP{HG{kZB&M2uZ0hB@_TFV9um_eJoz$a9CrB_?JnGkBQy z@6$dYviq%%ba_ccX85J;zuz`bWLqqRSVE&uw#qwFg= z3znH4NvZYUa-S<{PD)txrgJBB|Au_O`?#%ma!RO%Mec5crWu!)WykHQvia&cZHlYV zz52D`o3-CxZ~SnO<6Dp0F&MEnoQi`@98aK|gjk zYtC0Jh+2Ao)f)Yx|8JG*pC>e=ev??Nzv^ya>7JQd%j-^_TJ$!oZHKfX2hY zZ@!oGva+Jzbfqb8&G|3BKD9Dx;pZhkZ(a}9);wJ zfP~A#nICt^wVqPiBE;F-8nGw;y`o%^JAB1ixDqL)E5RaVQ6?N{!F%{+D zSv`BUR}^b~-N=f;(hk`{MXI=HLp1gxKi^{ic5-86LUeV{G=?d;*!Lol8U0# TG%iCEb3=0rE>%@me>W}w$v%KQ delta 820 zcmV-41IzrmfC;;R36LZKIF~>&0x6MB3V-$}W{M)MgdW#U+f01vBhD$#ff|z1*e0>@ zF!1ZU0_+mEooV9^hZR~$-?!gB1U!I%%SilU1xM)(lGUkm2;1N|-TZPHy`4uFACv(U z+!#z@eh(%rC0MVxGY;lC+_F#Gu6jXPYvM?|Xz%YEb^;(|@kN=zMBD5p&G-<9v{!@t_qq~-Szt!E1%MVxwM*>co+8%sy(H09}m?tfekj!MlA z9A>dhS@t*}Htj>PDF)oJo~khy#jbA8f%F`0IzZm+>a3a6)T&&U^+Fld{4ZTMo6`zC zPMV*6J+_keoH8ET?eGBPwbH87V6IRYC9FfuYSG&eOcw=6jV7zRT{K{7T)HbyftH8(IYI599m zF*r6uK{GirG%z+XMM60~AUs7uGB!mvMl&)sH!v_bF)%?fI5tB;GdVIeFg7toLOGX* zKLR;Wy9t0$7(?MCKCX|#(jn{wK^rG=OtEnX!9CnT&EI_F5CC`y?GTV?K%k4PO+_td yWMh(%DNRP+Tf8}y`d9@u4xpwhvZdzZ&-K9ve>(_3mk>Y#APG1y3MC~)PeuyGsc&@v diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index ecd490d0eb64e5867da920dc37e7b36a2ac20c9d..2f93a156773152f8e865c505f5dc3e6afc0c1c4b 100644 GIT binary patch delta 58722 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 d5=dDAL)!?6QUZ~q@d|{2$IQr~Lo` delta 15194 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 diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index 6fb6d7d5..cd348334 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -2,51 +2,28 @@ \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} - -%%%%%%%%%%%%%%%%%% -% 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[100]{text} % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie. -% \ocenRow{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. +\contest{SKN 2023/24} +\day{} +\round{17} +\group{A} +\Memory[MB]{256} +\Time[s]{2,4} \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. \tSection{Wyjście} @@ -54,18 +31,19 @@ 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 +liczbaq \tc{liczbaq qwerty}, $\tc{z_1}, \tc{q}, \tc{nq^{a+b}} nq^{a+b}$, 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} \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. @@ -73,14 +51,12 @@ \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} @@ -88,10 +64,37 @@ 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. -\ocenTable{ - \ocenRow{30}{$\tc{n} \leq 100$} - \ocenRow{20}{$\tc{n} \leq 1000$ Dwie\\ Linie} - \ocenRow{50}{Bez ograniczeń} +\subtaskTable{ + \subtask{30}{$\tc{n} \leq 100$} + \subtask{20}{$\tc{n} \leq 1000$ Dwie\\ Linie} + \subtask{50}{Bez ograniczeń} } \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 rozpoczyna nowy akapit. +% \footnote{text} tworzy adnotację na dole strony do miejsca w którym użyto. +% $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. +% \example[h/v]{id} % wstawia test przykłądowy "zad0{id}" 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ślnie jest h. +% Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out +% \ocen{ \testOcen{}{} } % Lista wszystkich testów ocen. +% \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis +% \subtaskTable[point]{ subtask{}{} } % Tabela z podzadaniami. Opcjonalnie można podać ile punktów jest za zadanie. +% \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem. diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index a5696784..15bdf628 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -13,8 +13,8 @@ % Formalności %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} -\def\sinolVersion{0.0.6} -\ProvidesClass{talentTex}[Stowarzyszenie Talent \sinolVersion] +\def\codeVersion{0.0.6} +\ProvidesClass{talentTex}[Stowarzyszenie Talent \codeVersion] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Include pakietów @@ -28,13 +28,14 @@ \RequirePackage{xcolor} \RequirePackage{xstring} \RequirePackage{xparse} +\RequirePackage{environ} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Pliki w paczce %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\sinolTestInPath{../in} -\def\sinolTestOutPath{../out} -\def\sinolContestLogoPath{logo} +\def\pathTestIn{../in} +\def\pathTestOut{../out} +\def\pathContestLogo{logo.jpg} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Kolory @@ -48,66 +49,45 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % zmienne logiczne i liczniki %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newif\ifsinolerrors \sinolerrorsfalse % bledy -\newif\ifkonkursdefed \konkursdefedfalse % czy podano konkurs -\newif\ifdaydefed \daydefedfalse % czy podano dzień -\newif\ifgroupdefed \groupdefedfalse % czy podano grupę -\newif\ifMemorydefed \Memorydefedfalse % czy podano dostępną pamięć -\newif\iftimedefed \timedefedfalse % czy podano czas działania +\newif\ifDocumentHasSet \DocumentHasSetfalse % czy samodzielnie użytp \begin{document} +\newif\ifUseExample \UseExamplefalse % czy stworzono przykład +\newif\ifContestDefed \ContestDefedfalse % czy podano konkurs +\newif\ifDayDefed \DayDefedfalse % czy podano dzień +\newif\ifRoundDefed \RoundDefedfalse % czy podano runde +\newif\ifGroupDefed \GroupDefedfalse % czy podano grupę +\newif\ifMemoryDefed \MemoryDefedfalse % czy podano dostępną pamięć +\newif\ifTimeDefed \TimeDefedfalse % czy podano czas działania -\newcounter{subtestsCounter} % licznik podzadań w tabelce -\newcounter{sumPointSubtask} % suma punktów do zdobycia w zadaniu +\newcounter{subtasksCounter} % licznik podzadań w tabelce +\newcounter{subtasksPiontSum} % suma punktów do zdobycia w zadaniu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Obsługa plików: inf, err -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\chardef\inffile=15 % plik wejsciowy (np. testy) -\chardef\errfile=14 % plik wyjsciowy -\chardef\tmpfile=13 % plik tymczasowy - -% \infoutput{} --- wyprowadza do pliku informacyjnego -\newcommand{\infoutput}[1]{% - \immediate\write\inffile{#1} -} - -% \erroutput{} --- wyprowadza do pliku z bledami -\newcommand{\erroutput}[1]{% - \immediate\write\errfile{#1} - \global\sinolerrorstrue -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Czynności przed i po - otwiera pliki inf err +% Czynności przed i po dokumencie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \AtBeginDocument{% - \immediate\openout\inffile \jobname.inf - \immediate\openout\errfile \jobname.err + \DocumentHasSettrue% + \ifundef{taskID}{% + \errmessage{brak id (\string\id{})}% + }{} + \ifundef{taskTitle}{% + \errmessage{brak title (\string\title{})}% + }{} } -\AtEndDocument{% - \ifsinolerrors - \immediate\write16{SINOL: znaleziono bledy (zob. \jobname.err) !} - \fi -} +\AtEndDocument{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Definicje +% Definicje techniczne %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\ucase#1{\expandafter\uppercase\expandafter{#1}} -\def\lcase#1{\expandafter\lowercase\expandafter{#1}} - -\def\?#1{ - [[#1]] -} +\def\?#1{[[#1]]} \def\ifundef#1#2#3{% - \expandafter% - \ifx\csname#1\endcsname\relax% - #2% - \else% + \ifcsname#1\endcsname% #3% + \else% + #2% \fi% } @@ -124,25 +104,26 @@ } \newcommand{\iffileexists}[3]{% - \immediate\openin\tmpfile#1\par% - \ifeof\tmpfile% - \immediate\closein\tmpfile% + \immediate\openin\@inputcheck=#1 + \ifeof\@inputcheck% + \immediate\closein\@inputcheck% #3% \else% - \immediate\closein\tmpfile% + \immediate\closein\@inputcheck% #2% - \fi% + \fi } \NewDocumentCommand{\twocol}{ O{0.5} O{0} O{t} m m }{% - \noindent% - \begin{minipage}[#3]{#1\textwidth}% - #4% - \end{minipage}% - \hfill% - \begin{minipage}[#3]{\dimexpr\textwidth-#1\textwidth-#2\textwidth}% - #5% - \end{minipage}% + \begin{center}% + \begin{minipage}[#3]{#1\textwidth}% + #4% + \end{minipage}% + \hfill% + \begin{minipage}[#3]{\dimexpr\textwidth-#1\textwidth-#2\textwidth}% + #5% + \end{minipage}% + \end{center}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -153,84 +134,85 @@ \vbox to 0pt{ \vss \hbox{ - \includegraphics[height=1.143cm,bb=0 0 900 300]{\sinolContestLogoPath}% + \includegraphics[height=1.143cm,bb=0 0 900 300]{\pathContestLogo}% } } } } -\def\tophugetitle{% - \begin{minipage}[t]{0.75\textwidth} - \color{talentBlue} - \fontfamily{ptm} - \huge - \textbf{\sinolTitle} - \end{minipage} +\def\topHugeTitle{% + \begin{minipage}[t]{0.75\textwidth}% + \huge% + \fontfamily{ptm}% + \color{talentBlue}% + \textbf{\taskTitle}% + \end{minipage}% } -\def\topinformationbar{} +\def\topInformationBarText{} -% uruchamiane po przeczytaniu deklaracji -\newcommand{\concludedecls}{ - % Sprawdzanie istnienia definicji - \ifundef{ID}{ - \erroutput{brak 3-literowego identyfikatora (klauzula \string\id)} - \def\ID{XXX} - }{} - \ifundef{sinolTitle}{ - \erroutput{brak tytułu (klauzula \string\title)} - \def\sinolTitle{\?{brak tytułu}} - }{} +\def\topInformationBar{ + \hbox{% + \bf% + \fontfamily{ptm}% + \color{talentBlue}% + \topInformationBarText% + \hfill% + } } -% uruchamiane po przeczytaniu tekstu -\newcommand{\concludetext}{} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Przypisanie stałych przez użytkownika %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\id}[1]{ - \edef\ID{#1} + \edef\taskID{#1} } \renewcommand{\title}[1]{ - \def\sinolTitle{#1} + \edef\taskTitle{#1} } -\newcommand{\konkurs}[1]{ - \def\sinolKonkurs{#1} - \global\konkursdefedtrue +\newcommand{\contest}[1]{ + \def\taskContest{#1} + \global\ContestDefedtrue } \renewcommand{\day}[1]{ - \def\sinolDay{#1} - \global\daydefedtrue + \def\taskDay{#1} + \global\DayDefedtrue +} + +\newcommand{\round}[1]{ + \def\taskRound{#1} + \global\RoundDefedtrue } \newcommand{\group}[1]{ - \def\sinolGroup{#1} - \global\groupdefedtrue + \def\taskGroup{#1} + \global\GroupDefedtrue } -\newcommand{\Memory}[1]{ - \def\sinolMemory{#1} - \global\Memorydefedtrue +\newcommand{\Memory}[2][MB]{ + \def\taskMemory{#2} + \def\taskMemoryUnit{#2\,#1} + \global\MemoryDefedtrue } -\newcommand{\Time}[1]{ - \def\sinolTime{#1} - \global\timedefedtrue +\newcommand{\Time}[2][s]{ + \def\taskTime{#2} + \def\taskTimeUnit{#2\,#1} + \global\TimeDefedtrue } \newcommand{\iomode}[1]{ \ifeq{#1}{files}{ - \gdef\sinolExampleInputText{Dla pliku wejściowego {\ttfamily\ID.in}:} - \gdef\sinolExampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\ID.out}:} + \gdef\exampleInputText{Dla pliku wejściowego {\ttfamily\taskID.in}:} + \gdef\exampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\taskID.out}:} } \ifeq{#1}{stdin}{ - \gdef\sinolExampleInputText{{\color{talentBlue}\bf \sinolInputText:}} - \gdef\sinolExampleOutputText{{\color{talentBlue}\bf \sinolOutputText:}} + \gdef\exampleInputText{{\color{talentBlue}\bf\textInput:}} + \gdef\exampleOutputText{{\color{talentBlue}\bf\textOutput:}} } } \iomode{stdin} @@ -238,72 +220,58 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Nazwy wyświetlane (zmiana języka, narazie tu ręcznie) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\sinolSNameOpis{Opis rozwiązania} -\def\sinolSNameOpracowanie{Opracowanie} - -\def\sinolTitleZadanie{Zadanie} -\def\sinolGroupText{Grupa} -\def\sinolDayText{} -\def\sinolKonkursText{} -\def\sinolMemoryText{Pamięć} -\def\sinolTimeText{Czas} -\def\sinolInputText{Wejście} -\def\sinolOutputText{Wyjście} +\def\textSolutionDescription{Opis rozwiązania} +\def\textDocumentation{Opracowanie} +\def\textGroup{Grupa} +\def\textDay{Dzień} +\def\textRound{Runda} +\def\textContest{Konkurs} +\def\textMemory{Pamięć} +\def\textTime{Czas} +\def\textInput{Wejście} +\def\textOutput{Wyjście} +\def\textPoints{Punkty} +\def\textTestCasess{Ograniczenia} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Opcje talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{zad}{ - \renewcommand{\topinformationbar}{% - \hbox{% - \bf% - \fontfamily{ptm}% - \color{talentBlue}% - \ifkonkursdefed - \ifneq{\sinolKonkurs}{}{\sinolKonkursText\sinolKonkurs.\hspace{5pt}}% - \fi - \ifdaydefed - \ifneq{\sinolDay}{}{\sinolDayText\sinolDay.\hspace{5pt}}% - \fi - \ifgroupdefed - \ifneq{\sinolGroup}{}{\sinolGroupText:\,\sinolGroup.\hspace{5pt}}% - \fi - \ifMemorydefed - \ifneq{\sinolMemory}{}{\sinolMemoryText:\,\sinolMemory\,MB.\hspace{5pt}}% - \fi - \iftimedefed - \ifneq{\sinolTime}{}{\sinolTimeText:\,\sinolTime\,s.\hspace{5pt}}% - \fi - \hfill - } + \renewcommand{\topInformationBarText}{% + \ifContestDefed + \ifneq{\taskContest}{}{\taskContest.\hspace{5pt}}% + \fi + \ifDayDefed + \ifneq{\taskDay}{}{\textDay:\,\taskDay.\hspace{5pt}}% + \fi + \ifRoundDefed + \ifneq{\taskRound}{}{\textRound:\,\taskRound.\hspace{5pt}}% + \fi + \ifGroupDefed + \ifneq{\taskGroup}{}{\textGroup:\,\taskGroup.\hspace{5pt}}% + \fi + \ifMemoryDefed + \ifneq{\taskMemory}{}{\textMemory:\,\taskMemoryUnit.\hspace{5pt}}% + \fi + \ifTimeDefed + \ifneq{\taskTime}{}{\textTime:\,\taskTimeUnit.\hspace{5pt}}% + \fi } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opi}{ - \renewcommand{\topinformationbar}{ - \hbox{% - \bf% - \fontfamily{ptm}% - \color{talentBlue}% - \Large% - \sinolSNameOpis% - \hfill% - } + \renewcommand{\topInformationBarText}{ + \Large% + \textSolutionDescription% } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opr}{ - \renewcommand{\topinformationbar}{ - \hbox{% - \bf% - \fontfamily{ptm}% - \color{talentBlue}% - \Large% - \sinolSNameOpracowanie% - \hfill% - } + \renewcommand{\topInformationBarText}{ + \Large% + \textDocumentation% } } @@ -326,19 +294,18 @@ \renewcommand{\footrulewidth}{0.4pt} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Wygląd dokumentu +% Wygląd stopki dokumentu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagestyle{fancy} \lfoot{Stowarzyszenie Talent (talent.edu.pl)} -\rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\sinolTitle\ - \ID\end{minipage}} +\rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\taskTitle\ - \taskID\end{minipage}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Definicja przestrzeni dokumentu: 'tasktext' \newenvironment{tasktext}{ - \concludedecls % Tytuł \leftline{% - \tophugetitle% + \topHugeTitle% } % Logo \rightline{ @@ -351,13 +318,9 @@ \hrule height 2pt \relax } \smallskip - \topinformationbar + \topInformationBar \bigskip -}{ - \concludetext - \closeout\inffile - \closeout\errfile -} +}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Komendy dostępne w klasie talentTex @@ -371,52 +334,52 @@ } \newcommand{\exampleinput}[1]{ - \noindent\sinolExampleInputText - \iffileexists{\sinolTestInPath/\ID0#1.in}{ - \includefile{\sinolTestInPath/\ID0#1.in} + \noindent\exampleInputText\par + \iffileexists{\pathTestIn/\taskID0#1.in}{ + \includefile{\pathTestIn/\taskID0#1.in} }{ - \smallskip - \?{brak pliku {\ttfamily\ID0#1.in}}\par - \erroutput{brak pliku '\ID0#1.in' w scieżce '\sinolTestInPath'} - \smallskip - } + \?{brak pliku {\ttfamily\pathTestIn/\taskID0#1.in}} + }\par } \newcommand{\exampleoutput}[1]{ - \noindent\sinolExampleOutputText - \iffileexists{\sinolTestOutPath/\ID0#1.out}{ - \includefile{\sinolTestOutPath/\ID0#1.out} + \noindent\exampleOutputText\par + \iffileexists{\pathTestOut/\taskID0#1.out}{ + \includefile{\pathTestOut/\taskID0#1.out} }{ - \smallskip - \?{brak pliku {\ttfamily\ID0#1.out}}\par - \erroutput{brak pliku '\ID0#1.out' w scieżce '\sinolTestOutPath'} - \smallskip - } + \?{brak pliku {\ttfamily\pathTestOut/\taskID0#1.out}} + }\par +} + +\newcommand{\makeVExample}[1]{% + \noindent% + \begin{minipage}{\textwidth}% + \exampleinput{#1}% + \exampleoutput{#1}% + \end{minipage}% } -\newcommand{\makestandardexample}[1]{% - \vspace{5pt} - \exampleinput{#1}% - \exampleoutput{#1}% +\newcommand{\makeHExample}[1]{% + \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% } -\newcommand{\makecompactexample}[1]{% - \vspace{-5pt}% - \begin{center}% - \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% - \end{center}% +\newcommand{\example}[2][h]{% + \ifUseExample\vspace{5pt}\else\UseExampletrue\fi + \vspace{2pt} + \ifeq{#1}{h}{\makeHExample{#2}}% + \ifeq{#1}{v}{\makeVExample{#2}}% } % Początek i koniec dokumentu -\newcommand{\start}{ - \begin{document} - \begin{tasktext} +\newcommand{\start}{% + \ifDocumentHasSet\else\begin{document}\DocumentHasSetfalse\fi% + \begin{tasktext}% } -\newcommand{\finish}{ - \end{tasktext} - \end{document} +\newcommand{\finish}{% + \end{tasktext}% + \ifDocumentHasSet\else\end{document}\fi% } % obsługa zdjeć @@ -459,86 +422,74 @@ % Sekcje w dokumencie -\newcommand{\tSection}[1]{ - \tCustomSection{#1}{15pt} +\newcommand{\tSection}[1]{% + \tCustomSection{#1}{15pt}% } -\newcommand{\tsection}[1]{ - \tSection{#1} +\newcommand{\tsection}[1]{% + \tSection{#1}% } \newcommand{\tSmallSection}[1]{ - \par\vspace{5pt} - { - \setlength\parindent{0pt} - \fontfamily{ptm} - \color{talentBlue} - \textbf{#1} - } - \par\vspace{2pt} + \par\vspace{5pt}% + \noindent% + \tc{#1}% + \par\vspace{2pt}% } -\newcommand{\tCustomSection}[2]{ - \par\vspace{#2} - { - \setlength\parindent{0pt} - \fontfamily{ptm} - \color{talentBlue} - \Large - \textbf{#1} - } - \par\vspace{2pt} +\newcommand{\tCustomSection}[2]{% + \par\vspace{#2}% + \noindent% + {\Large\tc{#1}}% + \par\vspace{2pt}% } % Talentowy kolor do zaznaczania zmiennych \newcommand{\tc}[1]{% - \ifmmode - \StrLen{#1}[\textLength] - \ifnum\textLength=1 - \textcolor{talentBlue}{\textbf{\fontfamily{ptm}\selectfont #1}}% - \else - \textcolor{talentBlue}{\mathbf{{\fontfamily{ptm}\selectfont #1}}}% - \fi - \else - \textcolor{talentBlue}{\textbf{\fontfamily{ptm}\selectfont #1}}% - \fi + \ifmmode% + \StrLen{#1}[\@tmpStrLen]% + \ifnum\@tmpStrLen=1% + {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% + \else% + \textcolor{talentBlue}{\mathbf{#1}}% + \fi% + \else% + {\fontfamily{ptm}\textcolor{talentBlue}{\textbf{#1}}}% + \fi% } % Testy ocen -\newcommand{\ocen}[1]{ - \begin{enumerate} - \setlength\itemindent{-13pt} - \fontfamily{ptm} - #1 - \end{enumerate} +\newcommand{\ocen}[1]{% + \begin{description}% + \setlength{\itemsep}{2pt}% + #1% + \end{description}% } -\newcommand{\testOcen}[2]{ - \item[] \textbf{\color{talentBlue}\ID#1: \ }{#2} +\newcommand{\testOcen}[2]{% + \item[]\tc{\taskID#1:}\hspace{5pt}#2% } % Tabelka z podzadaniami -\newcommand{\ocenTable}[2][100]{ - \setcounter{subtestsCounter}{0} - \setcounter{sumPointSubtask}{0} +\newcommand{\subtaskTable}[2][100]{ + \setcounter{subtasksCounter}{0} + \setcounter{subtasksPiontSum}{0} \begin{center} - \begin{tabular} - {|c|l|c|} \hline - \tc{Nr} & \tc{Ograniczenia} & \tc{Punkty} \\ \hline + \begin{tabular}{|c|l|c|} \hline + \tc{Nr} & \tc{\textTestCasess} & \tc{\textPoints} \\ \hline #2 \end{tabular} \end{center} - \ifneq{\arabic{sumPointSubtask}}{#1}{% - Uwaga! W tyma zadaniu suma punktów do zdobycia wynosi \arabic{sumPointSubtask} punktów.% - \erroutput{Suma punktow jest niewlasciwa}% + \ifneq{\arabic{subtasksPiontSum}}{#1}{% + \errmessage{Wrong total points (\string\subtaskTable[point]{...})}% } } -\newcommand{\ocenRow}[2]{ - \stepcounter{subtestsCounter}% - \addtocounter{sumPointSubtask}{#1}% - \arabic{subtestsCounter} & \begin{tabular}{@{}l@{}} #2 \end{tabular} & #1 \\ \hline +\newcommand{\subtask}[2]{ + \stepcounter{subtasksCounter}% + \addtocounter{subtasksPiontSum}{#1}% + \arabic{subtasksCounter} & \begin{tabular}{@{}l@{}} #2 \end{tabular} & #1 \\ \hline }