A5paper nefunguje

Vit Zyka vit.zyka at seznam.cz
Wed Aug 3 18:02:50 CEST 2005


Petr Olsak wrote:
> 
> On Tue, 2 Aug 2005, Vit Zyka wrote:
> 
> 
>>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.
> 
> 
> Dobry den,
> 
> ja taky nevim, proc tam je to \expandafter. Makro \PDFtrue nema parametry,
> takze je zbytecne paranoidni odklizet za nim pripadna \fi (a navic ne
> vsechna). Take vysvetleni uvedene nize je podle meho nazoru ponekud mimo.
> 
> Domnivam se, ze alokator \newif se pouziva prave proto, aby vznikla makra
> \xxxtrue a \xxxfalse, ktera, na rozdil od tokenu ve vyznamu \if.., \else,
> \fi jsou pri nesplneni podminky preskakovatelna. Takze se s vyhodou tato
> makra pouzivaji prave uvnitr kosatych vetveni \if..\if..\fi\fi apod., kde
> primy zapis \let\ifxxx=\iffalse vede samozrejme k chybe. Totiz: pri
> preskakovani podminky se makra neexpanduji, takze TeX nepozna, ze uvnitr
> makra \xxxtrue je skryty token typu \if.
> 
> Mozna nekdo nekdy napsal:
> 
> \else\ifnum\pdfoutput>0\PDFtrue\fi
> 
> (bez mezery za nulou) a divil se zahadnemu chovani (protoze nyni se makro
> \PDFtrue v ramci vyhodnoceni \ifnum expanduje) a jal se problem

Ahaa. Je to presne tak, jak Petre pises. A tim nekdo jsem byl ja. Ze k 
expanzi dojde kvuli skenovani cisla 0, jsem si neuvedomil. Resil to 
expandaftrama a falesnyma teoriema. Omlouvam se za zmatky a diky za 
vysvetleni.

Takze jeste jednou a spravne:

\newif\ifPDF
\ifx\pdfoutput\undefined
\else\ifnum\pdfoutput>0 \PDFtrue\fi % space is important !!!
\fi

Vit Zyka

> zachranovati nejakymi expandaftery a ty pak v kodu jako urcity druh
> folkloru zustaly.
> 
> Zdravim
> 
> Petr Olsak
> 
> 
> 
>>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
>>=======================================================
>>
>>
> 
> 
> 

-- 
=======================================================
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