A5paper nefunguje

Vit Zyka vit.zyka at seznam.cz
Tue Aug 2 21:58:56 CEST 2005


Marcel Svitalský wrote:
> Vit Zyka wrote:
> 
>> Marcel Svitalský wrote:
>>
>>> Mně funguje pro PDF toto v LaTeXu:
>>>
>>> \documentclass[a5paper]{article}
>>> \ifx\pdfoutput\undefined\else
>>
>>
>>
>> Lepe:
>> \newif\ifPDF
>> \ifx\pdfoutput\undefined
>> \else\ifnum\pdfoutput>0 \expandafter\PDFtrue\fi
>> \fi
>>
>> \ifPDF
>>
>> Vit Zyka
>>
>>>   % PDF
>>>   \setlength{\pdfpagewidth}{148.5mm}
>>>   \setlength{\pdfpageheight}{210mm}
>>> \fi
>>>
> 
> Ta výhoda je zřejmá, nerozumím ale tomu, proč je tam třeba ten
> \expandafter, tedy za jakých okolností by to bez něj nemělo stejný 
> výsledek.
 >
 > Marcel Svitalský

Pravdou je, ze mne tam jedno \expandafter vypadlo:
\newif\ifPDF
\ifx\pdfoutput\undefined
\else\ifnum\pdfoutput>0 \expandafter\PDFtrue\expandafter\fi
\fi

TeX pred vyhodnocenim podminky provadi plnou expanzi. Protoze 
\newif\ifPDF definuje \PDFtrue na \let\ifPDF=\iftrue, pak je-li 
\pdfoutput=1 bude TeX ve verzi bez expandafteru postupne zpracovavat

\ifx\pdfoutput\undefined
\else\ifnum\pdfoutput>0 \let\ifPDF\pdftrue\expandafter\fi
\fi

kde \pdftrue se provede v prikazu \let. Pak se ukonci obe podminky a vse 
bude v poradku. Kdyz vsak \pdfoutput=0, TeX zkouma ne jen, kde je konec 
podminky \ifnum, ale take, zda neni uvnitr nejaka jina vnorena podminka. 
A najde \iftrue. Ten pozere jedno \fi a to pak bude schazet k ukonceni 
predchozich podminek. A dojde k chybe.

S expandafter expanze zpusobi, ze \PDFtrue se ocitne jakoby az za 
\fi\fi. Diky tomu se podminky uzavrou spravne, protoze vsak TeX 
nezapomnel, ze \PDFtrue pochazi z nepravdive vetve, neprovede jej.

S pozdravem
Vit Zyka


=======================================================
Ing. Vít Zýka, Ph.D.                         TYPOkvítek

database publishing              databazove publikovani
data maintaining and typesetting in typographic quality
priprava dat a jejich sazba v typograficke kvalite

tel.: (+420) 777 198 189     www: http://typokvitek.com
=======================================================





More information about the csTeX mailing list