en English

CTUstyle

šablona pro sazbu
studentských závěrečných prací
na ČVUT

Petr Olšák, červenec 2013

ctustyle-doc.pdf
ctustyle.zip
slidy.pdf
example-ts.pdf

Podobná šablona
CUstyle
je určena
pro studenty
Karlovy univerzity

Tato šablona pro csplain s využitím OPmac může být doporučena na některých fakultách ČVUT. Zatím vím o tom, že je oficiálně doporučena (jako nepovinná) na FIT a na FEL. Jste-li z jiné fakulty ČVUT, ověřte si, prosím, nejprve možnost jejího použití.

Šablona pro závěrečné práce řeší na sobě nezávislé otázky:

  • Specifikace povinných částí dokumentu, jejich názvy a způsob zařazení do dokumentu.
  • Způsob pořizování dokumentu, tj. v případě TeXu značky pro vymezení povinné i ostatní obvyklé struktury v dokumentu.
  • Vzhled výstupu, tedy typografii.

Nezávislost těchto otázek lze ilustrovat tím, že je teoreticky možné navázat například na typografii a udělat si podle ní šablonu fungující ve vašem oblíbeném softwaru. Například pan Ing. Hejda (na internetu známý též jako tohecz nebo yo) vytvořil pro ČVUT LaTeXovou verzi této šablony zvanou ctuthesis.

Šablona vznikla v roce 2013 na základě diskuse na fóru FEL. Studentům jsem v souvislosti s šablonou připraven pomoci prostřednicvím e-mailové konzultace, bude-li to nutné. Těším se také na náměty uživatelů na příslušná vylepšení.

Nechť vám šablona slouží.

Soubory:

  • ctustyle.zip ... Archiv se všemi potřebnými soubory pro práci se šablonou.
  • ctustyle-doc.pdf ... Dokumentace k šabloně vytvořená touto šablonou. Ilustruje tedy sama na sobě vzhled šablony a způsob práce s ní a vymezuje povinné části struktury dokumentu.

Podmínky pro provoz: TeX, csplain ve verzi aspoň Nov. 2012, OPmac ve verzi aspoň Jul. 2013.

Verze:

  • beta(a) Jan. 2013: První zveřejněná verze
  • beta(b) Jan. 2013: Poněkud světlejší podtisky listingů a tabulek. Vytvořeny příkazy \blackwhite a \savetonner. Umožněno číslování listingů.
  • beta(c) Jan. 2013: Jinak interně řešená makra pro barvy
  • beta(d) Feb. 2013: školitel / vedoucí práce dle typu práce
  • beta(e) Feb. 2013: Literatura jako samostatná nečíslovaná kapitola
  • beta(f) Feb. 2013: Možnost deklarace číslovaných objeků Věta, Definice atd.
  • beta(g) Mar. 2013: Přidán deklarační příkaz \pagetwo
  • beta(h) Mar. 2013: Oprava: zákaz zlomu mezi nadpisem sekce a podsekce.
  • beta(i) May 2013: Černý titul při \blackwhite, rozlišení stránek typu iii a 26 v Acroreaderu, vloženo pdfinfo o autorovi a práci.
  • beta(j) May 2013: Akcentované záložky po \input pdfuni.
  • beta(k) Jul. 2013: Upgrade na verzi OPmac Jul. 2013, \blackwhite mode má plně černé titulky, možnost vložit zadání práce těsně za titul pomocí příkazu \specification.
  • beta(l) Jul. 2013: Potlačeno hlášení underfull vbox při tvorbě obsahu.
  • beta(m) Aug. 2013: Zaveden příkaz \onesideprinting, zrcadlo sazby posunuto o 6 mm ke hřbetu.
  • beta(n) Oct. 2013: \savetonner -> \savetoner
  • beta(o) Nov. 2013: multilanguage: cz -> cz (změna značení v OPmac).
  • beta(p) Jan. 2014: Drobné opravy.
  • beta(q) Mar. 2014: Při \worktype[O/*] jsou \declaration a \abstract* nepovinné.
  • beta(r) Apr. 2014: oprava \bib, úprava \printbib. Do dokumentace přidána zmínka o normě ČSN ISO 690 (bibliografické citace).
  • beta(t) Apr. 2014: Drobné opravy.
  • beta(u) Apr. 2014: Možnost nastavení nenulového \parskip.
  • beta(w) May 2014: Přidáno makro na vytvoření Teze disertační práce.
  • beta(x) May 2014: Přidána možnost generování slovníčku a příkazy pro poznámky v pracovní verzi dokumentu \rfc.
  • beta(y) Aug. 2014: Opravena chyba: konflikt \ss jako němeské es a přepínač sans serif fontu. Nyní je přepínač \ssr.
  • beta(z) Oct. 2014: Opravena chyba: nemožnost tisku lejblíků s podtržítkem při \draft.
  • beta(Z) Oct. 2014: Přidána možnost použít \cite v \clabel.
  • beta(1) Mar. 2015: Opraven konflikt barvy čísla fakulty při OPmac Dec.2014. Nadpisy jsou sázeny na prapor.
  • Jun 2015: Přidáno makro na generování slíd ve stylu šablony.
  • Apr. 2016: Úprava makra \bibchap, aby pracovalo s novou verzí OPmac Apr. 2016. Bez této opravy se projeví chyba: ! Paragraph ended before \eoldefA was complete. Viz též OPmac trik 0121
  • beta(7) Oct. 2016: Oprava chybné velikosti čísel řádků ve verbatim výstupu

Podmínky pro použití, sdílení, šíření a modifikování: stejné jako u makra OPmac.


Otázky a odpovědi

-- Jak dostat obrázky vedle sebe se společným popiskem?

Obrázky vedle sebe můžete umístit pomocí \centerline, například, jsou-li oba stejně velké:

\picw=.4\hsize
\centerline {\inspic obrazek1.jpg \hfil\hfil \inspic obrazek2.jpg }\nobreak
\centerline {a)\hfil\hfil b)}\nobreak\medskip
\caption/f Popisek ke dvěma obrázkům.

Příkaz \centerline vytvoří jeden řádek na šířku sazby, ale s pružnou mezerou \hfil na okrajích. Takže při šířce .4\hsize pro dva obrázky zbývá mezera .2\hsize, která se rozdělí na stejné čtyři díly: vlevo, dvakrát uprostřed a na konci, každá bude mít velikost 0.5\hsize. Taktéž v druhém řádku bude \hfil a)\hfil\hfil b)\hfil, tedy čtyři stejné mezery v řádku, které způsobí, že písmena a) a b) budou centrovat pod jednotlivými obrázky.

Za \centerline{} je \nobreak, aby se ty dva řádky nerozdělily do dvou různých stránek. A konečně za názvy obrázků *musí* být mezera, jinak se dočkáte nepříjemných chyb, při kterých nebude z hlášení zřejmé, že chybí mezera. Tj. je špatně:

\centerline{\inspic obrazek1.jpg\hfil\hfil \inspic obrazek2.jpg}\nobreak

Při různě velkých obrázcích je možné \picw=cosi vložit před každý \inspic zvlášť, třeba

\centerline {\picw=4.2cm \inspic obr1.png \hfil
             \picw=7.1cm \inspic obr2.png }\nobreak

-- Jak dostat obrázky vedle sebe, každý se svým popiskem?

Je možné obrázky zapouzdřit do \vtop při polovičním \hsize. Je ale bezpodmínečně nutné ukončit text \caption pomocí \par. Takže třeba:
\midinsert
\line{\hsize=.5\hsize \vtop{%
      \clabel[logo1]{Ukázka vložení prvního obrázku}
      \picw=4cm \cinspic ctulogo.pdf
      \caption/f Ukázka vložení obrázku vlevo.
   \par}\vtop{%
      \clabel[logo2]{Ukázka druhého obrázku}
      \picw=4cm \cinspic ctujinelogo.pdf
      \caption/f Ukázka obrázku.
   \par}}
\endinsert

-- Jak otočit tabulku o 90 stupňů a umístit ji samostatně na stránku?

Může se stát, že máte příliš rozsáhlou a zejména širokou tabulku, že se Vám nevejde do šířky stránky a napadlo Vás ji otočit o 90 stupňů a rezervovat pro ni celou stránku. Není to věc, nad kterou by typografové jásali, ale když opravdu není zbytí, můžete se ispirovat tímto kódem:

\topinsert 
\vskip-\topskip \hbox to0pt{\pdfsave\pdfrotate{90}\hss \vtop to\hsize{\hsize=\vsize \vss

\clabel[absolventiFEL]{Počet absolventů FEL}
  \ctable{lrrrrr}{
    \hfil number of       & 2007 & 2008 & 2009 & 2010 & 2011 \crl \tskip4pt
    students Bc. and Mgr. & 6313 & 5913 & 5951 & 5188 & 4737 \cr
    graduate Bc. and Mgr. & 1195 & 1489 & 1379 & 1160 & 1260 \cr
    students Ph.D.        &  457 &  468 &  366 &  395 &  434 \cr
    graduate Ph.D.        &   65 &   60 &   55 &   54 &   51 \cr
}
\caption/t Počet absolventů FEL ČVUT. Tabulka je převzata z~\cite[zyka].

\vss}\pdfrestore}\vskip-\hsize \vskip\vsize
\endinsert

-- Jak zařídit číslování rovnic ve formátu (kapitola.číslo) ?

Za \input ctustyle stačí vložit

\def\thednum{(\the\chapnum.\the\dnum)}

-- Jak napsat stojaté \mu pro jednotku (např. mikroampér)?

Vzhledem k tomu, že se předpokládá použití \mu jako jednotky (tedy mimo matematický mód), navhuji použít makra, která zavádějí potřebné fonty ve varinatě \rm a \bf jen v textovém módu. Někam na začátek dokumentu napište:

\font\greekrm=eurm10
\font\greekbf=eurb10
\regfont\greekrm \regfont\greekbf
\def\micro{{\expandafter\ifx\the\font\tenbf \greekbf\else \greekrm\fi \char22 }}

A nyní můžete psát \micro A ve smyslu mikroampérů a {\bf funguje to i v tučné variantě: \micro A}. Pokud chcete mít jednotku v matematickém vzorci, je třeba použít hbox například takto:

$$
  \phi (\omega) = 15\ \hbox{\micro A}.
$$

-- Na terminálu se píše WARNING: unknown UTF-8 code a v textu je černý čtvereček

Pravděpodobně jste přetáhli myší text obsahující UTF8 znaky, kterým implicitně csplain nerozumí. Typicky to bývá nezlomitelná mezera nebo nejrůznější mršky čárečky. Nejjednodušší je na základě logu a místa, kde je černý čvereček, zjistit, co to je za znak, smazat ho ve zdrojovém textu a nahradit TeXovou sekvencí, která se v takovém případě typicky používá. Také je možné naučit csplain tyto znaky rozpoznávat. Následující příklad ukazuje, co se obevuje v logu při výskytu nezlomitelné mezery a non-ASCII apostrofu:

WARNING: unknown UTF-8 code: `  = ^^c2^^a0' (line: 17)
WARNING: unknown UTF-8 code: `' = ^^e2^^80^^99' (line: 42)

Chcete-li, aby tyto znaky uměl csplain rozpoznávat, povšimněte si UFF-8 kódů těchto znaků v logu a podle nich na začátku dokumentu deklarujte:

\mubyte\nbsp ^^c2^^a0\endmubyte   \def\nbsp{\nobreak\space}
\mubyte\apostrophe ^^e2^^80^^99\endmubyte   \chardef\apostrophe=39

Zde je nezlomitelná mezera realizovaná sekvencí \nbsp, která je definovaná jako nezlomitelná mezera TeXovsky, tj. \nobreak\space. Dále non-ASCII apostrof je realizován pomocí \apostrophe a je definován jako ASCII apostrof s kódem 39.

-- Jak psát stupně, minuty vteřiny?

Například 49$^\circ$15'38.761''N 14$^\circ$41'31.666''E. Pro symbol vteřiny použijte dva jednoduché apostrofy za sebou (dvojitý apostrof je vymezen na verbatim text v odstavci).

Pokud se vám zdá psaní stupně příliš kryptické, můžete si definovat chování odpovídajícího kódu z Unicode tabulky v záhlaví dokumentu třeba takto:

\mubyte\degree ^^c2^^b0\endmubyte
\def\degree{\leavevmode\hbox{$^\circ$}}

a v dokumentu pak psát jednoduše 49°15'38.761''N, 14°41'31.666''E.

-- Jak vynutit stránkový zlom?

V plainTeXu se používá příkaz \vfill\break. Ale užívání tohoto příkazu v dokumentu je nebezpečné. Zapomenete ho tam, napíšete další text někam dopředu a odevzdáte dokument s poloprázdnou stránkou. Je tedy výhodnější použít příkaz \maybebreak rozměr (např. \maybebreak 2.5cm), který zlomí stránku zhruba tehdy, když má do konce stránky místo menší nebo rovno udanému rozměru. Je-li místo na stránce výrazně větší, nestane se nic.

Příkaz \maybebreak je nutné definovat na začátku dokumentu takto:

\def\maybebreak #1 {\vskip0pt plus #1\penalty-120 \vskip0pt plus-#1\relax}

-- Jak nepřijít o háčky a čárky v PDF záložkách?

Je možné použít doplňkový balíček PDFuni. Pokud jej nemáte v instalaci TeXu, stáhněte si ho z mých stránek. Po jeho zařazení hned za \input ctustyle zůstanou české a slovenské texty v záložkách včetně akcentů. Stačí tedy mít na začátku dokumentu:

\input ctustyle
\input pdfuni
Poznámka: není-li použita verze CTUstyle aspoň beta(j), budou úvodní záložky stále bez akcentů.

Technické pozadí problému akcentů v záložkách je vyloženo v článku pdfuni-article.pdf.

-- Objevila se tajemná chyba nesouvisející s dokumentem

Asi 90 % všech takových zavleklých chyb (při kterých TeX přijde ke kolapsu mnohem později než v místě syntaktického prohřešku) je způsobeno zapomenutým separátorem parametru: zapomenutým prázdným řádkem pod nadpisem, zapomenutou mezerou za názvem souboru v \inspic nebo zapomenutou prázdnou závorkou. Ověřte tedy, zda máte prázdný řádek za nadpisem v příkazech \chap, \sec, \secc, \app, resp. zda máte mezeru (či konec řádku) za názvem souboru v \inspic nebo \cinspic. Zkontrolujte, zda párují všechny závorky {}.

Pokud se tímto nepodařilo chybu odhalit, je možné do dokumentu napsat \tracingall a pak se přehrabovat v .log souboru v tunách nejrůznějších informací. Upozorňuji ale, že to je pro začátečníka velmi odrazující zážitek. Je lépe ,,půlením intervalu`` (tedy dělením dokumentu na části, přidáváním \bye do souboru na přechodnou dobu někam dřív než na konec dokumentu) se pokusit odhalit místo v dokumentu, kde k chybě došlo.

-- Objevila se chyba ,,\mtext {bibliography} ! Paragraph ended before \eoldefA was complete.``

Od verze OPmac May 2016 jsem přešel na separaci titulků koncem řádku a ne prázdným řádkem. Pravděpodobně máte v TeXové distribuci tuto novou verzi OPmac, ale k ní v aktuálním adresáři starší verzi ctustyle.tex, která s novou verzí OPmac bohužel nespolupracuje. Je třeba z této stránky stáhnout verzi CTUstyle aspoň Apr. 2016.

-- Používám svůj starý ctustyle.tex modifikovaný pro speciální účely z doby psaní předchozí závěrečné práce a ono to po upgrade TeXu (a OPmac) nefunguje

Pravděpodobně se objeví chyba jako je uvedeno výše (Paragraph ended before \eoldefA) a možná také nebude fungovat \verbinput a verbatim prostředí. Chcete-li zůstat u svého modifikovaného (starého) souboru maker, inspirujte se řádky 601 a 602 (\ifx\eoldef\undefined), dále řádky 632--636 (\ifx\eoldef\undefined) a konečně řádky 681--715 (\ifx\printttline\undefined) aktuálního a oficiálního souboru ctustyle.tex a alternativní definice z těchto řádků vložte do svého souboru. Pak by měl i Váš soubor fungovat s novou verzí OPmac.

-- Zjevilo se mnoho hlášení ,,OPmac WARNING: \dotocnum unused in printchap/printsec/printsecc`` a jsou pobořené nadpisy a obsah.

Použili jste verzi OPmac Jul. 2013 nebo nevější se starší verzí CTUstyle. Je třeba z této stránky stáhnout verzi CTUstyle aspoň Jul. 2013.

Důvod této nekompatibility spočívá v tom, že jsem do OPmac zapracoval požadavky uživatelů CTUstyle týkající se možnosti pracovat s nečíslovanou kapitolou (viz příkazy \nonum, \notoc v dokumentaci k OPmac).

-- Zjevilo se hlášení ,,ERROR -- OPmac older than Jun. 2013`` a dokument nejde TeXovat.

Použili jste verzi CTUstyle Jul. 2013 se starší verzí OPmac. Je potřeba stáhnout verzi OPmac aspoň Jul. 2013.

-- Zjevila se chyba ``Too many }'' při otevření *.ref

Chyba vypadá zhruba takto:

(./jmenodokumentu.ref
! Too many }'s.

Při přechodu na OPmac verze Apr. 2014 se pozměnila vnitřní struktura *.ref souboru. Stačí soubor *.ref vymazat a v klidu TeXovat dále.

-- Ve vnořených seznamech jsou nežádoucí vertikální mezery kolem seznamů.

Pokud chcete nechat vertikální mezery jen kolem hlavního seznamu, ale ve vnořených je nechcete, zaneste do svých definic tento kód

\addto\begitems{\def\iiskip{\endgraf}}

Pokud nechcete vertikální mezery nikde, pište:

\def\iiskip{\endgraf}

Konečně, pokud chcete malou vertikální mezeru kolem každé položky, vložte:

\newdimen\iiskipamount  \iiskipamount=3pt
\def\iiskip{\vskip\iiskipamount}
\addto\begitems{\removelastskip\parskip=\iiskipamount \def\iiskip{\endgraf}}

-- Jak přidám do prohlášení naskenovaný podpis?

Předpokládejme, že máte podpis naskenován v souboru podpis.jpg a má ořezány bílé okraje. Pak do parametru příkazu \declaration pod text prohlášení přidejte (místo příkazu \signature, který dělal tečky) následující kód:

\vskip3mm\hfill \picw=30mm \inspic podpis.jpg

Za koncovkou .jpg musí být mezera nebo konec řádku. Rozměry si můžete upravit dle svého podpisu jinak. Příkaz \signature (pro tečky) nepište, protože není potřeba.

-- Chci jinou úpravu odstavců: bez odstavcové zarážky a s mezerami mezi odstavci.

Tuto možnost jsem zapracoval od verze beta(u) Apr. 2014. Stačí na začátek dokumentu (po zavolání ctustyle.tex) napsat

\parskip=\medskipamount \parindent=0pt

-- Chci jinou úpravu popisků

Objevil se požadavek, aby popisky centrovaly, pokud jsou na samostatném řádku, ale jinak se chovaly jako obyčejný odstavec, pokud přetečou na více řádků. Viz OPmac trik 0059.

-- Chci mít celou maticí obrázků, každý se svým menším popiskem, a k tomu jeden velký popisek. Vše má být odkazovatelné

Dotaz: Mám skupinu obrázků, kterou popíši jedním caption a labelem. Každý obrázek zvlášť bych ale chtěl mít označen a) b) c) atd. Viděl jsem postup, který jste napsal na stránky CTUstyle, ale tento postup mi nedovolí přiřadit ještě jednotlivým obrázkům vlastní labely tak, abych se na ně mohl jednotlivě odkazovat v textu a nemusel natvrdo psát např. \ref[obrazek] a. Dá se v plainTexu tato funkcionalita nějak naimplementovat? (v LaTexu pro toto používám balíček subcaption a popisky se přiřazují k subfigure).

Odpověď: Sice přesně nevím, k čemu to potřebujete, když dopředu víte, jaké budou mít jednotlivé obrázky písmena (takže \ref[obrazek]~a dává smysl), ale přesto jsem se o něco pokusil. Možná jsem to ne zcela správně pochopil. Definujte si

\def\inlabel[#1]{\isdefined{lab:#1}\iftrue \csname lab:#1\endcsname \else ??\fi}
\def\setlabel[#1-#2]{\label[#1-#2]{\let~=\relax \wlabel{\inlabel[#1]~#2}}}

a pak do místa cíle (kde jsou jednotlivé podobrázky) můžete psát:

a)\setlabel[obrazek-a]
... b)\setlabel[obrazek-b]
...
Pod všemi obrázky naráz pak dáte
\label[obrazek]\caption/f Myšlenka je znázorněna na obrázcích a) až f)
Odkazovat nyní můžete pomocí \ref[obrazek-a], \ref[obrazek-b] atd.

Vysvětlení: Dvojice \label[cosi]\wlabel{neco} vytvoří cíl s lejblíkem [cosi], který se v místě \ref[cosi] promění v "neco". Vy ovšem chcete v textu "neco" mít obsaženo číslo vygenerované pomocí \caption pod všemi obrázky. Toto číslo je v době činnosti \wlabel neznámé, protože se vyhodnotí až později. Je to dopředná reference, která se musí udělat dalším odkazováním pomocí \inlabel. Fungovat to začne až ve třetím průchodu TeXu, protože to je dvojitá dopředná reference.

-- Chci více tabulek vedle sebe

Je třeba je zapouzdřit do \vtop s menším \hsize. Například takto:

\midinsert
\hbox to\hsize{\hsize=.45\hsize
\hfil
  \vtop{\ctable{cc}{
    prvni & druhy\cr
    treti & ctvrty
    }
    \caption/t První myšlenka\par}
\hfil
  \vtop{\ctable{cc}{
    dalsi & sesty\cr
    sedmy & osmy
    }
    \caption/t Druhá myšlenka\par}
\hfil}
\endinsert

-- Potřebuji další úroveň sekcí \seccc

Je možné použít myšlenku z OPmac triku 0055, jen mírně upravenou pro design CTUstyle:

\newcount\secccnum

\def\seccc#1\par{%
   \ifx\prevseccnum\theseccnum \global\advance\secccnum by1
   \else \global\let\prevseccnum=\theseccnum \global\secccnum=1
   \fi
   \edef\thesecccnum{\theseccnum.\the\secccnum}%
   \printseccc{#1\unskip}%
}
\def\printseccc#1{\norempenalty-100 \medskip
  \line{\locc\Blue\vrule height 3mm width4mm depth.1mm\Black
  \hss\vtop{\locc\advance\hsize by-8mm
   \bf \noindent \thesecccnum\quad \nBlue#1\strut\nbpar\kern-4.5pt}}%
  \nobreak\vskip-.5\parskip\smallskip\kern2pt
  \firstnoindent
}

-- Chci vložit azbuku

Je potřeba zavést soubor cyrchars.tex, ale to nestačí, protože ten je připraven pro výchozí fonty CM, zatímco CTUstyle využívá výchozí fonty LM. Je tedy přeba přidat ještě řádky, které oznamují návaznost LM fontů na příslušné fonty s azbukou:

\input cyrchars.tex
\setexfont cs-lmr10  X2  rxrm1000
\setexfont cs-lmbx10 X2  rxbx1000
\setexfont cs-lmri10 X2  rxti1000

Pak je možné přímo napsat v UTF-8 text v azbuce bez nutnosti v daném místě cokoli přepínat.

Je možné, že budou chybět návaznosti na fonty v jiných velikostech a variantách. Pak je třeba podobně doplnit deklaraci i pro další fonty.

Toto je použitelné pro krátké texty v azbuce. Chcete-li v azbuce psát celou práci, je třeba zavést pro příslušný jazyk vhodně kódované vzory dělení a návod pro toto už není tak jednoduchý.

-- CTUstyle nelze zprovoznit v MikTeXu

Setkvávám se, bohužel, s některými emaily od uživatelů MikTeXu, že nemohou zprovoznit CTUstyle a popisují různé okultní potíže. Například, že prý příkaz pdfcsplain dokument vygeneruje nesprávně dokument.dvi místo správného dokument.pdf. Tato kuriózní chyba, kdy není příkazen pdfcsplain spuštěna varianta CSplainu s přímým výstupem do PDF, má pak ještě kuróźnější vizáž na terminálu po zadání příkazu pdfcsplain minimal
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (MiKTeX 2.9) (preloaded
format=csplain-utf8 2015.2.7)  7 FEB 2015 19:15
entering extended mode
 encTeX v. Jun. 2004, reencoding enabled
**minimal
(C:\Users\...\minimal.tex
The format: csplain <Aug. 2014>.
The cs-fonts are preloaded and A4 size implicitly defined.
The utf8->iso8859-2 re-encoding of Czech+Slovak alphabet activated by encTeX
(C:\Users\...\ctustyle.tex 
CTUstyle: Thesis at Czech Technical University in Prague, <beta(Z) Oct. 2014>
ERROR -- pdfTeX isn't detected, use ``pdfcsplain minimal'' command. ) )

Tedy na prvním řádku to oznámi, že je spuštěn pdfTeX verze oné a na posledním řádku to prohlásí, že není pdfTeX detekován a že je třeba spustit příkaz, který byl právě spuštěn. No to jsme se tedy nasmáli. CTUstyle totiž detekuje, zda je použit csplain s přímým výstupem do PDF a pokud ne, oznámí tuto chybu. Že je použit pdfTeX ale bez přímého výstupu do PDF je z tohoto pohledu stejné, jakoby pdfTeX použit nebyl. A proč je na příkaz pdfcsplain navěšena nesprávně vygenerovaná verze formátu? Nevím. Do vnitřností MikTeXu nevidím, neboť nejsem (a nikdy jsem nebyl) uživatelem MS Win. Nemám možnost to vyzkoušet. Před dvěma lety jsem s Christianem Schenkem komunikoval a on přislbil, že provede veškeré opravy, které jsem do csplainu zapracoval. Kde se to pak zašantročilo, to může zjistit jen MikTeXový uživatel. Uživatelům, kteří mají tyto či podobné okultní problémy s MikTeXem radím: najděte si někoho, kdo má MikTeX nainstalovaný a chodí mu to a zkoumejte společně rozdíly. Nebo odstraňte MikTeX a nainstalujte TeXlive.