úterý 28. dubna 2009

Instalace LaTeXu a šablona diplomové práce (MiKTeX 2.7, cslatex, dvipdfmx, PSPad)

Rozhodla jsem se psát diplomovou práci v LaTeXu. Přestože jsem s LaTeXem už nějaké zkušenosti měla, zabrala mi instalace a vytvoření přesně takového vzhledu, jaký jsem si představovala, dva dny. Práci mi výrazně usnadnil Tom, který LaTeX ovládá lépe než já a nedávno ho také instaloval. Tady je postup, jak na to, a přikládám také šablonu.



1. Požadavky na vzhled diplomové práce
  • Písmo 12, 1,5 řádkování, jednostranný dokument, zleva o 0,5 cm větší odsazení kvůli vazbě.
  • Automaticky generovaný obsah, seznam obrázků a literatura.
  • Možnost vkládat přílohy.
  • Čístý list papíru na začátku a na konci dokumentu.
  • Výstup v PDF.
  • Vkládání obrázků ve formátu PNG.
  • Čára oddělující záhlaví, názvy kapitol a čísla stránek v záhlaví.
  • Hypertextové odkazy v PDF dokumentu, záložky v PDF dokumentu.
  • Sofistikované číslování stránek.
  • Jméno autora a název dokumentu ve vlastnostech PDF dokumentu.
  • Fungující vyhledávání v PDF dokumentu včetně slov s diakritikou, fungující kopírování (copy-paste) z PDF včetně slov s diakritikou.
  • Čeština pro cslatex (nikoliv Babel, která má horší písmenka).
  • Odsazení i prvního odstavce následujícího po nadpisu.
  • Široká "česká" A4ka.
2. MiKTeX 

Vybrala jsem si distribuci MiKTeX. Tato distribuce je určená pro windows. MiKTeX můžete stáhnout z http://miktex.org/. V levém menu zvolte download. Ke stáhnutí se nabízí dvě verze. Buď provedete kompletní instalaci (Installing the complete MiKTeX system) nebo základní (Installing a basic MiKTeX system).

Kompletní instalace je mnohem rozsáhlejší, během instalace se postahují všechny balíčky a takto naistalovaný MiKTeX zabere samozřejmě více místa na disku.

Základní instalace je menší a potřebné balíčky si MiKTeX instaluje sám až ve chvíli, kdy je potřebuje. Při první kompilaci (pokud používáte nějaký dosud nestažený balík) je proto potřeba, abyste byli připojeni na internet. Tato kompilace může trvat o něco déle (než se stáhnou potřebné balíky). Po stáhnutí MiKTeX nainstalujte a pokud jste instalovali základní verzi, proveďte Update (ve Start Menu Windows).

3. Nastavení češtiny

Existují dvě verze češtiny pro LaTeX. Čestinu z balíku Babel lze začít používat v podstatě okamžitě použitím příkazu \usepackage[czech]{babel}, ale výsledný PDF dokument nemá příliš pěkná písmenka s diakritikou (čárky a háčky jsou příliš vysoko a mírně posunuté do leva) a má problém s větší mezerou za písmenky ď a ť.

Já používám verzi češtiny od sdružení CSTUG - češtinu pro CSLaTeX. Instalace je sice trochu složitější, ale výsledek stojí za to. Postup instalace češtiny pro CSLaTeX (převzato z http://www.kiv.zcu.cz/~lobaz/dtp1/cviceni/miktex27_cestina.txt):
  1. Pokud jste instalovali pouze základní verzi MiKTeXu, tak je potřeba nejprve stáhnout balíček cslatex. To se provede spuštěním "Browse packages" ze Start Menu Windows). Vyberte balíček cslatex a klikněte na znaménko + v levém horním rohu.
  2. V adresáři miktex 2.7/miktex/config udělejte kopii souboru cslatex.ini s názvem pdfcslatex.ini
  3. V adresáři miktex 2.7/tex/cslatex/base udělejte kopii souboru cslatex.ini s názvem pdfcslatex.ini (pozor - tyto dva soubory nejsou stejné!)
  4. Spusťte MikTeX Settings (ve Start Menu Windows)

    • V záložce General dát Refresh FNDB
    • V záložce Formats dát New:
      Format Name: pdfcslatex
      Compiler: pdftex
      Input file name: pdfcslatex.ini
      Output file name: (nechat prazdne)
      Description: pdfcsLaTeX
      Exclude... zaskrtnout
    • V záložce Formats vybrat položku pdfcslatex a stisknout Build
    • V záložce Formats vybrat položku cslatex a stisknout Build
    • V záložce General dát Update Formats
    • V záložce General dát ještě jednou Refresh FNDB

4. Kompilace a vytvoření PDF dokumentu

Programy pro kompilaci LaTeXového zdrojového souboru *.tex jsou v adresáři C:\Program Files\MiKTeX 2.7\miktex\bin\. Opět existuje více možností, jak vytvořit PDF dokument.

Nejsnazší cesta je použít pdfcslatex, který převádí soubor *.tex přímo do PDF. Při použití tohoto kompilátoru vzniká nepříjemná chyba v PDF dokumentu. Přestože se diakritika zobrazuje správně, některá písmenka jsou trochu zvláštní. Pokud text z PDF dokumentu zkopírujete a vložíte do jiného programu, budou některá písmenka s diakritikou změněná. Problém vzniká také při vyhledávání v PDF dokumentu, kdy slova s těmito písmenky nejdou vyhledat. Zatím se mi nepodařilo zjistit, čím to je a jak toto divné chování odstranit. 

Proto používám pro kompilaci programy cslatex a dvipdfmx. Cslatex vytvoří z *.tex DVI soubor (původní formát pro LaTeX). Dvipdfmx poté z tohoto dvi souboru vytvoří PDF dokument (Dvipdfmx je rozšíření původního kompilátoru dvipdfm. Tento rozšířený program je zapotřebí pro správnou funkčnost diakritiky při vyhledávání a při copy-paste).

 Kompilátory můžete používat z příkazové řádky, ale jednodušší je nastavit si vhodný textový editor, ve kterém pak kompilaci provádíte. Já používám výborný český program PSPad, ve kterém kromě LaTeXu píši také webové stránky a na který jsem zvyklá.

5. Textový editor PSPad - nastavení pro LaTeX

PSPad editor si můžete stáhnou z http://www.pspad.com/cz/. V levém menu klikněte na "stažení editoru" a stáhněte si instalátor. PSPad naistalujte.

Spusťte PSPad a v menu "Nastavení" zvolete "Nastavení zvýrazňovačů". V levé části otevřeného dialogu zvýrazněte položku "TeX". Na záložce Kompilátor vyplňte:

Kompilátor: C:\Program Files\MiKTeX 2.7\miktex\bin\cslatex.exe
Parametry: %Name% Log soubor: %Name%.log
Spustit po kompilaci: C:\Program Files\MiKTeX 2.7\miktex\bin\dvipdfmx.exe %Name%.dvi

Podle vlastního uvážení zaškrtněnte:

"Před kompilací uložit všechny soubory"
"Zachytit výstup programu" - průběh kompilace budete sledovat přímo v PSPadu, ale nebudete moci v průběhu kompilace nic zadat, ani umožnit pokračování při závažné chybě
"Skrýt okno výstupu" - nebudete moci v průběhu kompilace nic zadat, ani umožnit pokračování při závažné chybě

Na záložce "Externí programy" vyplňte:
Jméno: Otevřít PDF Program
C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe %Dir%%Name%.pdf

Klikněte na tlačítko "Přidat". Potvrďte nastavení zvýrazňovačů tlačítkem OK.

6. Psaní zdrojáku a kompilace v PSPadu

Teď už můžete začít vytvářet vlastní LaTeXové soubory *.tex (menu: Soubor - Nový - TeX) nebo použít mojí šablonu. Kompilaci a vytvoření PDF dokumentu provedete stisknutím kláves CTRL+F9 (nebo z menu: Soubor - Kompilovat). Pozor, pokud PDF soubor už existuje, nesmíte ho mít otevřený, jinak nedojde k jeho přepisu. Pro správné vytvoření obsahu, seznamu tabulek, záložek a pod. může být někdy potřeba provést kompilaci dvakrát za sebou. Otevření PDF dokumentu přímo z PSPadu provedete stisknutím klávesy F9 (nebo z menu: Soubor - Otevřít v programu - Otevřít PDF).

7. Šablona pro diplomovou práci

Šablonu si můžete stáhnout tady (aktualizováno 14.6.09): http://uloz.to/1942114/diplomka-sablona.tex

Kódování češtiny je ISO 8859-2 (neboli Latin 2) - výchozí pro LaTeX. Aby čeština fungovala správně, musíte u této šablony používat toto kódování. V jakém kódování otevřel PSPad soubor vidíte ve stavovém řádku v pravém dolním rohu editoru. Pokud kódování není ISO 8859-2 nebo Latin 2, zvolte toto kódování v menu: Formát - ISO 8859-2. Poté stiskněte CTRL+R (znovunačtení souboru), aby se soubor načetl ve správném kódování. Pozor, pokud soubor otevřete ve špatném kódování a v tomto kódování ho uložíte, dojde k nevratnému poškození češtiny!


8. Poděkování

Díky patří Tomovi, bez jehož znalostí, postřehů, nápadů a důslednosti by šablona neznikla. Jemu vděčím především za bezproblémovou instalaci MiKTeXu, za výběr a instalaci češtiny a za zjištění, že existuje problém s copy-paste z PDF dokumentu.

9. Odkazy

Nastavení Češtiny v MiKTexu: http://www.kiv.zcu.cz/~lobaz/dtp1/cviceni/miktex27_cestina.txt
Instalace PSPadu: http://latex.feec.vutbr.cz/cz/latex/lokalni-instalace/instalace-pspad/
Hypertextové odkazy: http://www.tug.org/applications/hyperref/manual.html#x1-30002
Dvipdfmx: http://project.ktug.or.kr/dvipdfmx/
Jak vytvořit PDF z LaTeXu: http://www.docstoc.com/docs/2558801/How-to-Create-PDF-from-LaTeX

23 komentářů:

  1. Dobrý den, už jsem dříve s LaTeXem pracovala, chtěla jsem si ho znovu nainstalovat, ale i po několika instalacích mi pořád při převodu hlásí toto: This is pdfTeX, Version 3.1415926-1.40.9 (MiKTeX 2.7)
    entering extended mode
    ! I can't write on file `test.log'.
    Please type another transcript file name:

    Nevíte náhodou, co s tím? Děkuji za pomoc, Markéta

    OdpovědětVymazat
  2. Dobrý den Markéto,

    zkuste se ujistit, zda nemáte soubor test.log otevřený v nějakém editoru. Nebo zda máte nastaveno právo pro zápis do adresáře, ve kterém se pdfTeX snaží vytvořit soubor test.log. Můžete vyzkoušet napsat za "Please type another transcript file name:" jiné jméno (např. test2.log) případně celou cestu k souboru (např. c:\pokus.log).

    Dejte mi vědět, jestli vám to pomohlo.

    OdpovědětVymazat
  3. Děkuji moc za pomoc, zkusila jsem to dát do jiného adresáře a už to funguje. Markéta

    OdpovědětVymazat
  4. Ahoj Kristýno,
    právě začínám psát diplomovou práci prostřednictvím LaTeXu. Díky moc za šablonu i za návod pro lepší češtinu. Ještě sice v něčem tápu, ale věřím, nebo možná spíš doufám, že se mi ta snaha o pochopení a poznání LaTeXu vrátí :-).
    Soňa

    OdpovědětVymazat
  5. Moc díky za tu šablonu:-) mam sice teprve bakalarsky projekt, ale ta sablona je super!:-)

    OdpovědětVymazat
  6. Zdravím, začínám psát bakalářku a i když jsem v TeXu něco málo už dělal, tahle šablona mi určitě ušetří hodně práce. Moc díky!

    OdpovědětVymazat
  7. Ahoj, tento článek mi dost pomohl sblížit se zase trochu více s LaTeXem, ale jedinou věc jsem se tu nedočetl.
    Jak jsi proboha do toho vkládala obrázky ve formátu PNG? Vidím o tom zmínku pouze v zadání a pak nic. Toto je poslední co mě vrtá v hlavě.
    Díky, Jakuje

    OdpovědětVymazat
  8. Ahoj Jakuje :-)

    takhle (rozliseni obrazku 604 x 301 px):

    \begin{figure}[ht]
    \begin{center}
    \includegraphics[width=120mm, bb=0 0 604 301]{obrazek.png}
    \caption{Popis}
    \label{fig:odkaz}
    \end{center}
    \end{figure}

    OdpovědětVymazat
  9. Ahoj Kristýno, šablona je perfekní včetně komentářů. Zvláště mě zaujaly záložky v pdfku. Díky a pozdravuj na katedře od bývalého studenta :-) Zdraví Petr Vacek

    OdpovědětVymazat
  10. Díky.
    Na katedru se ale moc nedostanu, protože už FEL nestuduju ;-). Dodělala jsem totiž diplomku a státnice a vrhla se do praxe.

    OdpovědětVymazat
  11. Ahoj, tohle jsem přesně potřeboval.
    Díky.

    Pokud někdo pořád tápe, tak pěkný návod k instalaci je na
    http://mks.mff.cuni.cz/info/tex/instalace.html

    A na
    http://www.mff.cuni.cz/studium/obecne/bplayout/
    najdete předlohu pro bakalářskou práci na MFF UK. Můžete pozměnit pro svoje účely.

    Snad to někomu pomůže.

    OdpovědětVymazat
  12. Ahoj,
    pouzivam Tvoji sablonu na psani bakalarky a mel bych dotaz, jestli se nejak da nastavit, aby se odkazy na literaturu v textu a obsah zobrazovaly cerne misto barevne?
    Dekuji Lukas

    OdpovědětVymazat
  13. Ahoj,
    zkus nastavit colorlinks=false nebo linkcolor=black na řádku 14 v šabloně.

    OdpovědětVymazat
  14. Ahoj,
    dekuji za postouchnuti spravnym smerem, nakonec jsem to po par pokusech nastavil takto:
    \usepackage[dvipdfm,unicode,colorlinks=false,linkcolor=blue,pdfborder={0 0 0}]{hyperref}

    Pri nastaveni colorlinks=false je jedno, jakou barvu ma nastavenou linkcolor, ale objevovaly se ramecky (cervene okolo odkazu z obsahu, zelene okolo odkazu na literaturu). Po pridani pdfborder={0 0 0} ramecky zmizely.

    Pekny odkaz je zde: http://en.wikibooks.org/wiki/LaTeX/Hyperlinks

    Lukas

    OdpovědětVymazat
  15. Ahoj,
    dekuji za postouchnuti spravnym smerem, nakonec jsem to po nekolika malo pokusech nastavil nasledovne:

    \usepackage[dvipdfm,unicode,colorlinks=false,linkcolor=blue,pdfborder={0 0 0}]{hyperref}

    Pokud je colorlinks=false, tak uz je jedno, jakou hodnotu ma linkcolor. Ale objevovaly se ramecky okolo odkazu (cerveny okolo odkazu z obsahu, zeleny okolo odkazu na literaturu). Po pridani pdfborder={0 0 0} ramecky zmizely.

    Pekny odkaz je zde:
    http://en.wikibooks.org/wiki/LaTeX/Hyperlinks


    Lukas

    OdpovědětVymazat
  16. Ahoj, predovsetky sa chcem podakovat za dobre napisany navod (a hlavne sablonu, potreboval som nieco, od coho sa odpichnut).

    Chcel by som sa spytat na moznost odstranenia automatickeho otitulkovania kapitol - s kazdou \chapter LaTeX automaticky vlozi do vysledneho dokumentu text 'Kapitola n', a rad by som okolo toho obisiel.

    Bol som v pokuseni pouzit documentclass 'strreprt', ktory ich tam sice nevklada, ale namiesto toho pouziva pre vsetky headingy nejaky sans-serif font...

    Este raz vdaka za navod.

    OdpovědětVymazat
  17. Ahoj,

    bohužel nevím, jak se zbavit samotného slova "Kapitola".

    Pokud napíšeš:

    \chapter*{titulek}
    \addcontentsline{toc}{chapter}{titulek do obsahu}

    Tak to budeš mít bez čísel a myslím že také bez slova "Kapitola".

    Nebo můžeš použít documentclass article nebo report, kde ale chapter není vůbec k dispozici.

    OdpovědětVymazat
  18. Ahoj,
    děkuji za pěknou šablonu.
    Bohužel při exportu se mi nějak přebije a4wide a výsledné PDF má formát letter. Způsobuje to nějaký ten balíček.
    Můžu za to moje instalace (mám MikTex 2.9 v podobném nastavení jak je zde napsáno) nebo může být problém ještě někde jinde?
    Franta

    OdpovědětVymazat
  19. Ahoj,
    tak už se mi to podařilo vyřešit - problém vznikal při přepisu do PDF. Řešení jsem našel na http://www.abclinuxu.cz/poradna/linux/show/131981
    Stačí dát pod řádek \documentclass[12pt, oneside, dvipdfm]{report}
    toto:
    \usepackage[a4paper]{geometry}

    Proč ale šablona ve verzi 2.7 bez toho zřejmě fungovala a nyní nefunguje mi je záhadou.
    Zdraví Franta

    OdpovědětVymazat
  20. Ahoj Franto,

    díky za informaci a řešení problému, na který jsi narazil. Určitě se to může někomu hodit. Už je to přecijen pár let, co jsem šablonu vytvářela, a nové verze MikTexu mohou být trochu odlišné. Taky mě moc těší, že šablonu stále někdo používá ;-).

    Týna

    OdpovědětVymazat
  21. Soubor na uloz.to uz byl smazan, bylo by mozne sablonu jeste nekde najit, prosim?

    OdpovědětVymazat
    Odpovědi
    1. Bohužle, už je to 7 let a nevím, kde šablona zkončila. Kdybych ji někde objevila, tak ji nahraji, ale nemohu to slíbit.

      Vymazat