A5paper nefunguje

Marcel Svitalský marcel.svitalsky at centrum.cz
Wed Aug 3 01:01:13 CEST 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.
>
>  >
>  > 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
>

Tohle (jak pracuje \newif) vím (no tedy, v zásadě vím :-)) ), avšak mám
právě za to, že při \let=\neco se \neco dále nezkoumá (vizte též TBN
385-386). Zkuste:

\ifx\huhu\undefined
\let\huhu=\ifx
\fi

\huhu\hehe\undefined
hehe undefined
\else
hehe defined
\fi

\huhu\huhu\undefined
huhu undefined
\else
huhu defined
\fi

\bye

kde také jsou v prvním testu jakoby dva \ifx s jen jedním \fi, ale
ničemu to nevadí, protože to \ifx v \let je pouze považováno za token,
jenž je přiřazen povelu \huhu. A funguje i poslední test, kde po expanzi
vlastně mám opět dvakrát \ifx se znovu jen jedním \fi.

Marcel Svitalský
--

**********************************************************
   GPG public key (ID 0xD98EC83A) fingerprint:
   3BEB 4658 A998 B9B3 3476  AD64 EF87 D0A5 D98E C83A

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 252 bytes
Desc: not available
URL: <http://lists.felk.cvut.cz/pipermail/cstex/attachments/20050803/686f0637/attachment-0002.bin>


More information about the csTeX mailing list