[cstex] posunutie vlozenych pdf stran k okrajom
Petr Olsak
petr at olsak.net
Thu Sep 19 08:10:15 CEST 2013
On Wed, 18 Sep 2013, Jaromír Kuben wrote:
> Dobrý den.
>
> Zdenek Wagner napsal(a):
>> Dne 18. září 2013 16:12 Petr Mikulik <mikulik at physics.muni.cz> napsal(a):
>> > > > Muzete zde prosim publikovat makro, ktere vrati pocet stran pdf
>> > > > souboru?
>> > >
>> > > % Makro na zjištění počtu stran v souboru a uložení do zadané
>> > > kontrolní
>> > > sekvence
>> > > \def\ZWPDFgetnum #1 #2{\pdfximage{#1}\edef#2{\the\pdflastximagepages}}
>> >
>> > Díky, funguje to.
>> >
>> > > Zrovna tento problém popisuji v další kapitole TeXu pro pragmatiky,
>> > > kterou
>> > > ještě nemám ve stadiu celkového zveřejnění. Nicméně, vyškubal
>> > > http://petr.olsak.net/ftp/olsak/tpp/tpp-s.pdf
>> >
>> > Se zájmem jsem si tento popis přečetl. Díval jsem se pak na to, jak
>> > závisí
>> > velikost výstupního souboru, když si makrem \ZWPDFgetnum načtu počet
>> > stránek, a ta se nemění, proto se dotazovaný pdf soubor určitě do
>> > výstupního
>> > pdf
>> > nevloží.
>> >
>> > Proto si myslím, že v tpp-s.pdf hned na první stránce, kde se diskutují
>> > parametry pro \pdfximage, by mělo být napsáno, že když parametry
>> > "height" a
>> > "width" chybí, tak se obrázek netiskne, nikoliv že se tiskne v přirozené
>> > velikosti. Nebo že se data načtou do paměti, ale ne že se vloží do
>> > výstupního PDF.
>> >
>> Ne, ten popis je dobře. Všimněte si, že potřebujete dva primitivy.
>> Prvním primitivem se načte objekt do paměti, druhým primitivem se
>> objekt pošle do výstupního souboru. Když si schováte číslo objektu
>> tak, jak je to v popisu uvedeno, můžete jej vložit opakovaně, ale ve
>> výsledném PDF bude jenom jednou. Představte si, že máte
>> tisícistránkovou knihu a na každou stránku chcete vložit bitmapové
>> logo. LaTeXový příkaz \includegraphics vloží do výsledného PDF tisíc
>> identických objektů, zatímco popisovanou metodou vytvoříte jeden
>> objekt v PDF, který bude tisíckrát použit. Rozdíl ve velikosti
>> výsledného souboru může být obrovský. V jednom ze Zpravodajů to popsal
>> i Vít Zýka.
> Nicméně já jsem tomu rozuměl tak jako pan Mikulík. Petr Olšák píše, že příkaz
> \pdfximage vloží data obrázku do výstupního PDF. Pak by se velikost souboru
> musela změnit, i když by obrázek nebyl ani jednou zobrazen příkazem
> \pdfrefximage. Vypadá to tedy, že se načte do paměti a do souboru je
> přemístěn až po prvním zobrazení. Případná další zobrazení ho už pak znovu
> nepřesouvají. Nebo je to ještě nějak jinak? Rozhodně by mne to zajímalo, jak
> přesně to funguje a kdy vlastně dojde k přesunutí dat obrázku do souboru, je
> to užitečný poznatek.
>
> Zdraví
> Jaromír Kuben
Připouštím, že v textu mám nepřesnost, které jsem se v zájmu jednoduchosti
dopustil záměrně, ale asi to ještě opravím. Opravdu přesný popis
\pdfximage je tento:
Není-li \pdfximage prefixován pomocí \immediate, pak si pdfTeX přečte z
obrázku jen minimální potřebné údaje. Alokuje číslo objektu do
\pdflastximage, případně nastaví \pdflastximagepages. Dále z přečtených
dat zjistí, jak velký by vzniknul box po případném následném použití
\pdfrefximage.
V okamžiku použití \pdfrefximage se taky nic moc neděje, jen se do sazby
vloží box potřebných rozměrů a značka. Teprve při výskytu této značky
během \shipout pdfTeX vyhodnotí, zda to je první výskyt obrázku. Pokud
ano, pak přesně v tomto okamžiku znovu otevře soubor s obrázkem a nyní
jeho data přemístí (a případně konvertuje) do výstupního PDF. To poznáme v
logu tak, že se tam zjeví <obrazek.pripona>. Je-li v shipout druhý nebo
další výskyt stejné značky, realizuje pdfTeX obrázek odkazem.
No, a nyní mi poraďte, jak toto napsat stručně a pragmaticky v jedné
větě...
Zdravím
Petr Olšák
>> > > V TeX Live je program pdfcrop, který ořeže i ve vícestránkovém souboru
>> > > každou stránku samostatně.
>> >
>> > Já tento program dosud používal pouze na jednostránkové obrázky, ale
>> > opravdu
>> > funguje i na vícestránkové (na každou stránku zvlášť).
>> >
>> > ---
>> > Petr Mikulík
>> > _______________________________________________
>> > csTeX mailing list
>> > csTeX at cs.felk.cvut.cz
>> > https://lists.felk.cvut.cz/mailman/listinfo/cstex
>> >
>>
>>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> https://lists.felk.cvut.cz/mailman/listinfo/cstex
>
More information about the csTeX
mailing list