QL.túra

Kulturális smörgåsbord Esterházytól Wass Albertig, a gumicsizmától az iPad-ig, a Teletabiktól Sexpírig, a makrofágtól a mikrokontrollerig, miazmás...

Címkék

2000 (20) 2001 (6) 2002 (16) 2003 (164) 2004 (61) 2005 (40) 2006 (31) 2007 (28) 2008 (33) 2009 (175) 2010 (188) 2011 (201) 2012 (86) 2013 (40) 2014 (36) 2015 (26) 2016 (10) adáshiba (91) android (1) animáció (93) cygwin (3) film (410) gezarol (13) hájtek (159) hangoskönyv (32) ipad (17) klip (12) könyv (191) linux (29) színház (169) vers (17) windows (37) zene (111) Címkefelhő

+jegyzések

Most ...

... múlok .osan

bmi_tiny.png


... hallgatom
Szabó Magda: Régimódi történet
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSqTmZEqlCRFgojyt52Q2n_qiMTyVlt-zJu-DpbNKVY6OQbBh4u


... olvasom
Alexander Steele (szerk.): Kezdő írók kézikönyve


... (Kik ezek? Kik ezek az embek? Kik ezek?)
profile for TrueY on Stack Exchange, a network of free, community-driven Q&A sites
free counters

[Hájtek] LaTeX tippek és trükkök

2011.10.20. 11:00 | TrueY | Szólj hozzá!

Címkék: 2011 hájtek

hu.wikipedia.org, en.wikibooks.org

(Itt most nem a fétis szexről lesz szó. Sokkal inkább matematikai képleteket is szépen megjelenítő kiadványszerkesztőről. Már a kiejtése sem ugyanaz!)

A Mandelbrot-halmaz korlátossági feltételének bizonyítsa során kissé el kellett mélyednem a LaTeX rejtelmeiben. A közben szerzett tapasztalataimat osztom meg itt. A bizonyítás a hivatkozott pdf doksiban van leírva. Ez a cikk inkább a LaTeX finomságokkal foglalkozik.

Debian alatt a LaTeX alapban fent van. A magyar elválasztás viszont nagyon nem okés. Keresgéltem, hogyan tudok ezen segíteni. Találtam egy magyar nyelvű leírást, ami 2011.jan.19-én frissült ugyan, de nekem réginek tűnik. Öt évvel korábban is így nézett ki. Ezért inkább megnéztem, hogy van-e valami idevágó Linux csomag:
apt-cache search babel
apt-get install texlive-lang-hungarian
No, ettől megjavult az elválasztás!

Emlékszem, hogy sokat kellett kavarni, hogy egy jó induló csomagot definiálgassak össze. A pdf kéthasábos, ISO-8859-2 kódkészlettel készült. Sok matekkel kapcsolatos csomagot tettem bele, plusz a pdf kezelés. A legújabb verzióban végül áttértem az utf-8 kódolásra (iconv -f L2 -t UTF-8 file_in > file_out paraccsal), amihez a fejléc elején egyetlen sort kellett átírnom.

A fejléc elején definiálom a papír és a betű méretét, a nyelvet, a két oszloposságot és a szöveg kódolását.

%\tracingmacros=9
%\NeedsTexFormat{LaTeX2e}

%fejlesztés alatt az első sor kell használni
%\documentclass[a4paper, 11pt, magyar, draft, twocolumn]{article}
\documentclass[a4paper, 11pt, magyar, twocolumn]{article}

% Ide kell tenni a definíciót, különben a \Title rossz lesz
\usepackage[utf8]{inputenc}     % encoding of the input file
%\usepackage[latin2]{inputenc}  % encoding of the input file

\newcommand{\Title}{Mandelbrot- és Júlia-halmazokról}
\newcommand{\Author}{TrueY}
\newcommand{\Version}{v0.005}
Utána betöltöm a használt csomagokat:

\usepackage[T1]{fontenc} % elvalasztas jo magyar karakterekkel is
%\usepackage[magyar]{babel} % Ez itt nem jó. Később kell definiálni!
%\usepackage{t1enc}      % elvalasztas jo magyar karakterekkel is

\usepackage{xspace}      % spaces after macros
\usepackage{calc}        % to do length calculations

\usepackage{ifthen}      % package for if-then-else constructions
%\usepackage{latexsym}   % symbols for diagrams
\usepackage{amsmath}     % Full math capability
\usepackage{amssymb}     % symbols for diagrams
%\usepackage{amsthm}     % Theorem styles
%\usepackage{theorem}    % Theorem styles
\usepackage[thmmarks, standard]{ntheorem} % Theorem styles

%\usepackage{subfigure}  % subfigures
\usepackage{fancyhdr}    % Define headers and footers
%\usepackage{afterpage}  % to handle the float pages
Mivel dönthetünk úgy, hogy nem pdf formátumra konvertáljuk egyből, hanem mondjuk dvi-re, azért pár csak pdf-re jellemző beállítást kell végeznünk.

\newif\ifPDF
\ifx\pdfoutput\undefinied\PDFfalse
\else\ifnum\pdfoutput > 0\PDFtrue
    \else\PDFfalse
    \fi
\fi

\ifPDF
    %\usepackage[pdftex]{graphicx}
    \usepackage[pdftex]{graphicx, color}
    \usepackage[pdftex,
    bookmarks=false,
    %%%pdftoolbar=false,
    %%%pdfmenubar,
    pdffitwindow,
    %pdfpagemode=FullScreen, % Open Full Screen
    pdfpagemode=UseNone,
    %, pdfpagemode=None, pdfstartview=FitH
    %pdfwindowui=false,
    %pdfcenterwindow,
    colorlinks,
    linkcolor=red
    ]{hyperref}
    %\pdfimageresolution=288
    \pdfimageresolution=300
    \pdfcompresslevel=9
\else
    \usepackage[dvips]{graphicx}
    \usepackage[dvips]{hyperref}
\fi

\usepackage[magyar]{babel} % Ide kell tenni, kulonben a pdf elhal

% Ehhez már kell a babel csomag!
\ifPDF
    \hypersetup{
    pdftitle={\Title},
    pdfauthor={\Author},
    pdfsubject={\Version},
    pdfkeywords={Mandelbrot, Julia}
    }
\fi
És most jönnek a formázó utasítások.

\renewcommand{\headheight}{14pt}

% Setting penalties for clubs and widows
\clubpenalty=1000          % fattyusor - lap aljan
\widowpenalty=1000         % ozvegy - lap tetejen
\displaywidowpenalty=1000
%\overfullrule=6pt         % show slug right to ugly lines
\hyphenpenalty=0           % Hungarian likes the hyphenation
\brokenpenalty=200         % Dont hyphen at the last line of page
\doublehyphendemerits=0    % Hungarian likes the hyphenation. 2 elvalaszt 1 par-ban
\finalhyphendemerits=0     % Hungarian likes the hyphenation. par utcso soraban

%\renewcommand{\floatpagefraction}{.6}  % instead of .5
%\renewcommand{\textfraction}{.15}      %  .2
%\renewcommand{\topfraction}{.8}        %  .7
%\renewcommand{\bottomfraction}{.5}     %  .3
\setcounter{topnumber}{3}               % 2
\setcounter{bottomnumber}{1}            % 1
\setcounter{totalnumber}{5}             % 3
\setlength{\parskip}{1.5 ex plus 1 ex minus 0.5 ex}
%\setlength{\parindent}{0 em}

\fancypagestyle{myfancy}{ %declearing the modified fancy
    \lhead{\Title}
    %\chead{\Cat}
    \rhead{\Author}
    %\lfoot{left}
    %\cfoot{center}
    %\rfoot{\thepage}
    %\renewcommand{\headrulewidth}{0pt} 
    %\renewcommand{\footrulewidth}{0pt} 
    %\renewcommand{\plainheadrulewidth}{0pt} 
    %\renewcommand{\plainfootrulewidth}{0pt}%
}
\pagestyle{myfancy}
Az egészet pdflatex-hel fordítottam le, a szokásos tex -> dvi -> pdf helyett. Így a belső és a külső linkek is elérhetők maradnak. Sajnos a belső referenciákat a pdflatex valami miatt rosszul kezeli. Bármely belső hivatkozásra klikkelve az első oldalra ugrik a célállomás helyett. Ennek okát nem sikerült megfejtenem.

Bár a Tex nyelvet nem sikerült megszeretnem és teljesen megértenem, de pár saját függvény definiáltam. Az első a magyar bábel csomagból használható \aref, \Aref parancsok kiegészítése. Ezek eredetileg arra jók, hogy névelővel lehessen referenciákra hivatkozni (pl. "lásd a 6. ábrán", "Az 5. fejezetben"). Összeházasítottam a \eqref és az \aref parancsokat és készítettem egy \aeqref, és egy \Aeqref parancsot, ami az egyenletek névelőhelyes hivatkozását teszi lehetővé, ahol is az egyenlet száma zárójelben van (pl. "Lásd a (3) egyenlőtlenséget", "Az (5) egyenletből következik"). Íme a definíció:

%generic/babel/magyar.ldf-bol ollózva!
%3 betüsnek kell lennie, ezért az eredeti azr-t aze-nek írtam át
% és az \eqref-t használtam \ref helyett
\makeatletter
\def\aeqref{\aze}
\def\Aeqref{\Aze}
\def\aze{a\@ifstar{\@aze}{\aze@}}
\def\Aze{A\@ifstar{\@aze}{\aze@}}
\def\aze@{\@ifnextchar ({\aze@@@}{\aze@@}}
\def\aze@@#1{\@aze{#1}\nobreakspace\eqref{#1}}
\def\aze@@@(#1{\@aze{#1}\nobreakspace(\eqref{#1}}
\def\@aze#1{%
  \hun@tempadef{hun@r@#1}{r@#1}{}%
  \ifx\@tempa\empty
  \else
    \edef\@tempb{\noexpand\@@az\expandafter\@firstoftwo\@tempa\hbox!}%
    \@tempb
  \fi
}
\makeatother
A \makeatletter-rel engedjük, hogy a függvény nevében '@' lehessen. Nem mondom, hogy minden porcikáját értem, de működik. Vigyázni kell! Én először \azeq-kra cseréltem az eredeti \azr-eket, de úgy nem működött. Úgy tűnik, hogy fontos, hogy három betűs a függvények neve. Ezért \aze-k lettek.

A másik egy olyan módosítás, ami a bizonyítás utolsó sorába, jobbra igazítva egy kis fekete négyzetet tesz. Ezzel nagyon sokat szenvedtem, mert a jobbra igazítás nem ment.

% Állítás
%http://en.wikibooks.org/wiki/LaTeX/Theorems
\providecommand{\QED}{\ensuremath{\blacksquare}}
\theoremstyle{change}
\theoremseparator{:}
\newtheorem{allitas}{Állítás}[subsection]
{\theorembodyfont{\upshape}
\theoremsymbol{\QED}
\renewtheorem{proof}{Bizonyítás}[subsection]}
Itt definiáltam egy Állítás - Bizonyítás párt, ami konzekvensen számozódik és a kis négyzet jobbra lesz igazítva. Ehhez nekem a fejlécbe be kellett tennem a\usepackage[thmmarks, standard]{ntheorem} % Theorem styles
sorban a "standard"-ot is.

Még pár, kisebb segédfüggvényt követtem el.

% \A or \A[z_1]
\newcommand{\A}[1][z]{\ensuremath{\left|#1\right|}}

A default formában (\A) egy z vektor nagyságát fogja kiírni (=|z|). Ha adunk egy opcionális argumentumot, akkor annak a nagyságát, amit megadtunk (\A[z_1] = |z1|).

\newcommand{\FI}[1][]{
    \ifthenelse{\equal{#1}{}}
    {\ensuremath{\varphi}}
    {\ensuremath{\varphi_#1}}
}

Használata \FI (=φ), vagy \FI[1] (=φ1).

\newcommand{\ii}[0]{\ensuremath{\mathbf{i}}}
\newcommand{\ef}[2][z]{\ensuremath{\left|#1\right| e^{\ii \FI[#2]}}}

Ez a két függvény pedig az Euler alak kiírásában segít. A \ii egy szép kövér i-t ír ki, a \ef{} = |z|eiφ , \ef{z_1}[1] = |z1|eiφ1 (azért ez LaTex-ben szebben mutat). Most vettem észre, hogy a \FI-hez hasonlóan elegendő lenne az indexet átadni. Itt is és a \A-nál is. No, majd legközelebb!

És meg egy kis trükk. Alapban az amsmath csomag nem húzza le a négyzetgyök végét. Ez kicsit furcsává teszi a gyökjelet. Erre találtam orvoslatot a neccen >itt<.

\let\oldsqrt\sqrt
\def\sqrt{\mathpalette\DHLhksqrt}
\def\DHLhksqrt#1#2{\setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}

Sajnos az évek során változtak a dolgok. Az equation-ban definiált label-ekre pl. nem értem, hogy miért nem tudok hivatkozni. Illetve csak bizonyosakra. Mindegy, átírtam gather-re és úgy már megy. Az align az egyenlőtlenségeket tudja összerendezi. A gather itt jobbnak tűnt.

Helyesírás ellenőrzéshez hunspell-t használtam.

apt-get install hunspell hunspell-hu hunspell-tools
hunspell -d hu_HU -t Mandelbrot.tex

Kicsit sok a fel nem ismert szöveg. Még a TeX label-ekben is keres. Nem értem miért. Leírások a hunspell-ről: hunspell.sourceforge.net, hu.wikipedia.org .

Kérem, hogy akinek van lelki ereje, vessen egy pillantást a bizonyítást tartalmazó pdf-re és jelezze, ha valamilyen problémát talál! Előre is köszönöm! A teljes LaTeX forrás file is elérhető >itt<.

Aki hozzá szeretne olvasni, az belenézhet ebbe a könyvbe: Wettl Ferenc; Mayer Gyula; Sudár Csaba: LaTeX kezdőknek és haladóknak

Bizonyítsunk be valamit minden nap!

A bejegyzés trackback címe:

https://qltura.blog.hu/api/trackback/id/tr433214311

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása