LaTeX: template pro pisemku - help...

Petr Prikryl prikryl at dcse.fee.vutbr.cz
Tue Apr 21 15:43:42 CEST 1998


Ahoj vsichni TeXisti,

Moje otazka se nachazi ve ctvrtem odstavci.

Nekdy na zacatku roku jsem se vyptaval, jakym zpusobem lze ze zadaneho
poctu bodu v makru vygenerovat cesky spravne zakoncene slovo
"bod/body/bodu". O neco pozdeji jsem se vyptaval, jakym zpusobem by slo
takto obodovane otazky spocitat (pocet otazek) a zjistit celkovy dosazitely
pocet bodu s tim, ze by byl vytisten na zacatku dokumentu (pred otazkami).

Z uvedenych navrhu se mi nejvice zamlouvala dve reseni pana Strejce. Jedno
z nich (to posledni) uvadelo pouziti boxu s tim, ze se vyhodnoti drive,
nez je vysazen, takze lze zjistit vyse uvedene udaje v jednom pruchodu.
Problem u tohoto reseni nastal v okamziku, kdy se text sazeny do boxu
nevlezl spolu s hlavickou na jednu stranku. Nezkousel jsem, co by to
udelalo, kdyby samotny box presahl jednu stranku. Takze toto reseni
jsem nepouzil. Nicmene predchozi reseni uvadelo, jak dosahnout podobneho
efektu ve dvou pruchodech s vyuzitim informace ulozene do .aux.
Na konci prispevku uvadim plnou podobu template, ktery nyni pouzivam
pro sazbu zadani pisemky. Mimo jine pouzivam hodnotu ziskanou z aux
souboru uvnitr makra a pri prvnim pruchodu se hlasi toto:

	No file P.aux.

	LaTeX Warning: Reference `soucet' on page 1 undefined on input line 35.

	! Missing number, treated as zero.
	<to be read again>
			   \protect
	l.47 \Body

	?

Pokud to ignoruji, dopadne v druhem pruchodu vse spravne. Jakym zpusobem
mam upravit zdrojovy text, abych se tomuto hlaseni vyhnul?
Jsem si take vedom toho, ze uvedeny zdrojovy text je pomixovany plain
a LaTeX. Ma nekdo namety na vylepseni? Davam prednost vycisteni do
LaTeXove podoby, pripadne dotazeni az do LaTeXoveho package (to je muj
cil -- pokud je to pro nekoho drobnost, necht ukaze, co umi ;-)

Makro \Body vysazi tabulku pro zapis hodnoceni prikladu. Zatim je to
vycentrovane, ale mozna by bylo lepsi zarovnat to na pravy okraj.
Neni mi taky jasne, jestli je to ten spravny zpusob, jak by se ty
chlivecky mely generovat. Neni mi jasne ani to, jak to udelat v
pripade, kdyby se nevlezly na radek.

Diky za pripominky,

                    Petr


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{report}
\usepackage{czech}
\pagestyle{empty}
\textwidth 15cm \textheight 23cm
\topmargin 0cm \evensidemargin 0cm \oddsidemargin 0cm

\newcounter{otazky}
\newcounter{soucet}
\def\b#1{\stepcounter{otazky}\addtocounter{soucet}{#1}
  {\small(#1 \ifcase#1 bodu\or bod\or body\or body\or body\else bodu\fi)}
}

% Tabulka pro zapisovani bodu z jednotlivych prikladu;
\newcount\n
\def\Body{\n=0%
  \centerline{\hbox{%
    \loop\ifnum\n<\ref{otazky}\advance\n by 1%
      \vbox{%
        \hbox{\makebox[7mm][c]{{\small\number\n\strut}}}%
        \hbox{\framebox[7mm]{\rule{0pt}{1cm}}}%
      }\kern-\fboxrule%
    \repeat%
  }}
}

\begin{document}
\noindent\rule[5pt]{\textwidth}{0.1mm}

\begin{center}
Pisemna pulsemestralni zkouska z~predmetu \textbf{??????????}\\
streda 4.\,2.\,1998 13:00--15:00, ucebny BE--070 a BE--170 v~arealu
Bozetechova (\ref{soucet}~bodu)
\end{center}

\noindent\rule[5pt]{\textwidth}{0.1mm}

\begin{tabbing}
\noindent
Prihlasovaci jmeno \= : \kill
Jmeno a prijmeni\> :\\
Prihlasovaci jmeno\>: \\
Studijni obor\>:\hskip 3cm\hfill {\tiny (studenti jinych oboru, nez IVT)} \\
Hodnoceni\\ \Body
\end{tabbing}

\noindent {\small\textbf{Obecne pokyny:} U~vasich odpovedi se snazte
  o~maximalni strucnost, presnost a vystiznost. Na otazky
  odpovidejte v~libovolnem poradi, ale odpoved na prilozenych
  papirech zretelne oznacte zakrouzkovanym cislem. Piste a kreslete
  citelne a jednoznacne. Vsechny papiry s~vypracovanymi odpovedmi si
  podepiste (staci prihlasovaci jmeno).}

\noindent\rule[5pt]{\textwidth}{0.1mm}

\begin{enumerate}
\item\b{2} Heslovite popiste ruzna deleni{\ldots}
\item\b{2} Maximalne 20 slovy popiste pojem{\ldots}
\item\b{3} Vyjmenujte podsystemy jadra systemu{\ldots}
\item\b{1} Vyjmenujte 3 zakladni typy{\ldots}
\item\b{3} Vysvetlete vyznam{\ldots}
\end{enumerate}

\addtocounter{otazky}{-1} \refstepcounter{otazky} \label{otazky}
\addtocounter{soucet}{-1} \refstepcounter{soucet} \label{soucet}
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


--
Petr Prikryl (prikryl at dcse.fee.vutbr.cz)   http://www.fee.vutbr.cz/~prikryl/
TU of Brno, Dept. of Computer Sci. & Engineering;    tel. +420-(0)5-7275 218



More information about the csTeX mailing list