diff --git a/example_package/README.md b/example_package/README.md index 9ed7a8cf..c48eaf5f 100644 --- a/example_package/README.md +++ b/example_package/README.md @@ -82,7 +82,6 @@ Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. 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. - `\subtaskTable{}` - Tworzy tabelę z podzadaniami. @@ -90,6 +89,11 @@ Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`. Opcjonalnie można podać ile punktów jest za zadanie `\subtaskTable[100]{}`. 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[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z zawartością o szerokościach 0.5 0.5. + Można opcjonalnie podać ułamek szerokości pierwszej kolumny (0.5), ułamek szerokości przerwy (0), wybrać linię bazową połączenia (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). ## **prog** diff --git a/example_package/doc/abcopi.pdf b/example_package/doc/abcopi.pdf index a729510b..35435058 100644 Binary files a/example_package/doc/abcopi.pdf and b/example_package/doc/abcopi.pdf differ diff --git a/example_package/doc/abcopr.pdf b/example_package/doc/abcopr.pdf index 3bab96a3..439f420e 100644 Binary files a/example_package/doc/abcopr.pdf and b/example_package/doc/abcopr.pdf differ diff --git a/example_package/doc/abczad.pdf b/example_package/doc/abczad.pdf index 2f93a156..60d0d3b3 100644 Binary files a/example_package/doc/abczad.pdf and b/example_package/doc/abczad.pdf differ diff --git a/example_package/doc/abczad.tex b/example_package/doc/abczad.tex index cd348334..ee1d29ef 100644 --- a/example_package/doc/abczad.tex +++ b/example_package/doc/abczad.tex @@ -22,8 +22,8 @@ \tSection{Wejście} -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 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} @@ -31,8 +31,7 @@ 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 -liczbaq \tc{liczbaq qwerty}, $\tc{z_1}, \tc{q}, \tc{nq^{a+b}} nq^{a+b}$, wynik z zadania. +W pierwszym wierszu wyjścia powinna znajdować się jedna liczba, wynik z zadania. \tSection{Przykład} @@ -78,6 +77,7 @@ % ~ % 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. +% \vspace{5pt} tworzy odstęp. % $text_mat$ % pozwala na pisanie wyrażeń matematycznych % Dokumentacja: % https://www.overleaf.com/learn @@ -87,10 +87,9 @@ % \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. +% \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 @@ -98,3 +97,8 @@ % \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. +% \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z zawartością o szerokościach 0,5 0,5. +% Można opcjonalnie podać ułamek szerokości pierwszej kolumny (0.5), ułamek szerokości przerwy (0), wybrać linię bazową połączenia (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). diff --git a/example_package/doc/talentTex.cls b/example_package/doc/talentTex.cls index 15bdf628..cff064e4 100644 --- a/example_package/doc/talentTex.cls +++ b/example_package/doc/talentTex.cls @@ -126,28 +126,21 @@ \end{center}% } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\def\LOGO{ - \leavevmode - \hbox{ - \vbox to 0pt{ - \vss - \hbox{ - \includegraphics[height=1.143cm,bb=0 0 900 300]{\pathContestLogo}% - } - } - } +\NewDocumentCommand{\tworow}{ O{10} m m }{% + \begin{center}% + \begin{minipage}{\textwidth}% + #2% + \end{minipage}% + \par\vspace{#1pt}\par% + \begin{minipage}{\textwidth}% + #3% + \end{minipage}% + \end{center}% } -\def\topHugeTitle{% - \begin{minipage}[t]{0.75\textwidth}% - \huge% - \fontfamily{ptm}% - \color{talentBlue}% - \textbf{\taskTitle}% - \end{minipage}% -} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Definicje nagłówka +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\topInformationBarText{} @@ -161,6 +154,22 @@ } } +\newcommand{\Header}{% + \noindent% + \begin{minipage}[b]{0.75\textwidth}% + \huge\tc{\taskTitle}% + \end{minipage}% + \hfill% + \begin{minipage}[b]{0.22\textwidth}% + \hfill\raisebox{-4pt}{\includegraphics[width=\textwidth]{\pathContestLogo}}% + \end{minipage}% + \smallskip% + {\color{talentBrown}\hrule height 1.75pt}% + \smallskip% + \topInformationBar% + \bigskip% +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Przypisanie stałych przez użytkownika %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -206,10 +215,6 @@ } \newcommand{\iomode}[1]{ - \ifeq{#1}{files}{ - \gdef\exampleInputText{Dla pliku wejściowego {\ttfamily\taskID.in}:} - \gdef\exampleOutputText{poprawnym wynikiem jest plik wyjściowy {\ttfamily\taskID.out}:} - } \ifeq{#1}{stdin}{ \gdef\exampleInputText{{\color{talentBlue}\bf\textInput:}} \gdef\exampleOutputText{{\color{talentBlue}\bf\textOutput:}} @@ -259,7 +264,7 @@ } } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opi}{ \renewcommand{\topInformationBarText}{ \Large% @@ -267,7 +272,7 @@ } } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption{opr}{ \renewcommand{\topInformationBarText}{ \Large% @@ -275,15 +280,17 @@ } } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ProcessOptions\relax \PassOptionsToClass{a4paper}{article} \LoadClass{article} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% rozmiar papieru +% Wygląd dokumentu (papier, stopka, tasktext) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% rozmiar papieru + \setlength{\textwidth}{168mm} % {180mm} \setlength{\textheight}{265mm} % {257mm} \setlength{\oddsidemargin}{0pt} @@ -293,39 +300,32 @@ \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0.4pt} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Wygląd stopki dokumentu -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% stopka + \pagestyle{fancy} \lfoot{Stowarzyszenie Talent (talent.edu.pl)} \rfoot{\begin{minipage}[t]{0.45\textwidth}\raggedleft\taskTitle\ - \taskID\end{minipage}} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Definicja przestrzeni dokumentu: 'tasktext' -\newenvironment{tasktext}{ - % Tytuł - \leftline{% - \topHugeTitle% - } - % Logo - \rightline{ - \hbox to\hsize{\hfil\LOGO} - } - \smallskip - % Linia - { - \color{talentBrown} - \hrule height 2pt \relax - } - \smallskip - \topInformationBar - \bigskip -}{} +% Przestrzeń tasktext + +\newenvironment{tasktext}{\Header}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Komendy dostępne w klasie talentTex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Początek i koniec tasktext + +\newcommand{\start}{% + \ifDocumentHasSet\else\begin{document}\DocumentHasSetfalse\fi% + \begin{tasktext}% +} + +\newcommand{\finish}{% + \end{tasktext}% + \ifDocumentHasSet\else\end{document}\fi% +} + % Pokazywanie testów wstępnych \newcommand{\includefile}[1]{ @@ -351,74 +351,27 @@ }\par } -\newcommand{\makeVExample}[1]{% - \noindent% - \begin{minipage}{\textwidth}% - \exampleinput{#1}% - \exampleoutput{#1}% - \end{minipage}% -} - -\newcommand{\makeHExample}[1]{% - \twocol{\exampleinput{#1}}{\exampleoutput{#1}}% -} - \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}{% - \ifDocumentHasSet\else\begin{document}\DocumentHasSetfalse\fi% - \begin{tasktext}% -} - -\newcommand{\finish}{% - \end{tasktext}% - \ifDocumentHasSet\else\end{document}\fi% + \ifUseExample\vspace{3pt}\else\vspace{-8pt}\UseExampletrue\fi + \ifeq{#1}{h}{\twocol{\exampleinput{#2}}{\exampleoutput{#2}}}% + \ifeq{#1}{v}{\tworow[10]{\exampleinput{#2}}{\exampleoutput{#2}}}% } % obsługa zdjeć -\newlength{\imgwidth} - -% podpis pod/nad obrazkiem -\newcommand{\imgcaption}[1]{ - \def\capwidth{\textwidth} - \addtolength\capwidth{-1cm} - \centerline{\begin{minipage}{\capwidth}\footnotesize #1\end{minipage}} -} - -% rysunek #1-plik, #2-podpis, #3-gdzie podpis (t-na gorze, b-na dole) -\newcommand{\img}[3]{ - \def\tmpargthree{#3} - \def\tmpb{b} - \setlength\imgwidth{\textwidth} - \addtolength\imgwidth{-2cm} - \begin{center} - \begin{minipage}{\imgwidth} - \ifx\tmpargthree\tmpb - $$\includegraphics[width=1\imgwidth]{#1}$$ - \hrule - \smallskip - \imgcaption{#2} - \else - \imgcaption{#2} - \smallskip - \hrule - \smallskip - $$\includegraphics[width=1\imgwidth]{#1}$$ - \fi - \end{minipage}\end{center} +% \img[szerokosć][opis][t/b]{plik} (t-na gorze, b-na dole) +\NewDocumentCommand{\img}{ O{0.8} o O{b} m }{% + \begin{center}% + \begin{minipage}{#1\textwidth}% + \IfValueT{#2}{\ifeq{#3}{t}{\footnotesize#2\smallskip\hrule\smallskip}}% + \includegraphics[width=\textwidth]{#4}% + \IfValueT{#2}{\ifeq{#3}{b}{\smallskip\hrule\smallskip\footnotesize#2}}% + \end{minipage}% + \end{center}% } -\newcommand{\timg}[2]{\img{#1}{#2}{t}} -\newcommand{\bimg}[2]{\img{#1}{#2}{b}} -\newcommand{\plainimg}[1]{$$\includegraphics{#1}$$} +\newcommand{\imgt}[3][0.8]{\img[#1][#3][t]{#2}} +\newcommand{\imgb}[3][0.8]{\img[#1][#3][b]{#2}} % Sekcje w dokumencie