[cstex] Kopírování češtiny z PDF

Zdenek Wagner zdenek.wagner at gmail.com
Thu Feb 16 11:18:36 CET 2012


2012/2/16 Petr Vokac <vok at ujv.cz>:
> Myslim, ze zachovani diakritiky pri kopirovani z pdf zajistuje
> balicek cmap:
>
Tohle je pravda pouze částečná. Balíček cmap vloží do PDF tabulku
toUnicode. Tato tabulka obsahuje mapování byte (v kódování fontu) ->
string (unicode). Pokud font nemá příslušný glyf a je to řešeno jako
sekvence combining diacritical mark + character, pak to v principu
nejde, protože toUnicode nepovoluje zapsat mapování typu string ->
string. Problém by se dal vyřešit mapováním pomocí ActualString. V
popisu PDF je to demonstrováno na němčině, kde např. slovo Zucker
rozdělíte jako Zuk-/ker. Vložíte tedy mapování k- -> c. Na rozdíl od
toUnicode, což je tabulka vázaná na daný font, ActualString musíte
znovu uvést u každého výskytu. TeX má při sazbě pouze metrické
informace, ale neví, jak bude nakonec znak realizován. Tuto informaci
nezjistíte ani v pdftexu, ani v xetexu, jedinou možností je luatex,
kdy se dostanete programově k jakékéliv vlastnosti fontu. Musíte tedy
naprogramovat stejný algoritmus, který bude používán interně. Tím
zjistíte, jak bude slovo vloženo do PDF. K tomuto řetězci pak musíte
vygenerovat řetězec, který bude použit při kopírování a při
vyhledávání. Nezapomeňte vložit BOM (viz odpovědi Petra Sojky).

Závěr: Pokud jde o vytvoření PDF, který si (skoro) každý přečte a
vytiskne, pak máte hodně volnou ruku (ale je téměř nezbytné všechny
fonty vložit). Pokud je cílem PDF, z něhož jde i kopírovat, musíte
použít font, který to umožňuje.

> \documentclass[12pt,onecolumn,twoside,a4paper]{article}
> % cmap zajistí správné kopírování textů v češtině
> \usepackage{cmap}
> \usepackage[czech,english]{babel}
> \usepackage[utf8]{inputenc}
> \usepackage[T1]{fontenc}
> \usepackage{lmodern}
> ...
>
> Diakritiku ze zalozek vyhazuji pomoci \texorpdfstring,
> napriklad:
>
> \section{
> \texorpdfstring
> {Závěry}
> {Zavery}
> }
>
> Petr Vokac
>
> On Wed, 2012-02-15 at 12:56 -0800, petr zemánek wrote:
>> Dobrý den,
>> měl bych dotaz ohledně nastavení pro pdfLaTeX, aby bylo možné korektně
>> kopírovat text z PDF souboru. Používat toto nastavení
>>
>> \usepackage[utf8]{inputenc}
>> \usepackage[T1]{fontenc}
>> \usepackage[czech]{babel}
>> \usepackage{mathptmx}
>>
>> A když zkopíruji text "Plné jméno autora včetně titulů" (takto je i
>> zadán ve zdrojovém souboru; ale předpokládám, ze zadání pomocí \v{c}
>> apod., by ke změně nevedlo), tak dostanu toto
>>
>> Plné jméno autora v*cetn*e titul°u
>>
>> Je to možné docílit správného kopírování?
>>
>> S pozdravem
>> Petr Zemánek
>> _______________________________________________
>> csTeX mailing list
>> csTeX at cs.felk.cvut.cz
>> http://lists.felk.cvut.cz/mailman/listinfo/cstex
>
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list