Hi Hans, you showed a while ago how the actualtext function of pdf works and i have a module where i would use it but letters outside of ascii appear wrong when i copy the text \starttext text \pdfliteral{/Span <> BDC}Meier\pdfliteral{EMC} text \stoptext becomes text Müller text when i copy the text from the pdf (Adobe Reader) and insert it in my editor. Wolfgang
Wolfgang Schuster wrote:
Hi Hans,
you showed a while ago how the actualtext function of pdf works and i have a module where i would use it but letters outside of ascii appear wrong when i copy the text
\starttext text \pdfliteral{/Span <> BDC}Meier\pdfliteral{EMC} text \stoptext
Is /ActualText supposed to be in PDFDoc Encoding? Best wishes, Taco
Taco Hoekwater wrote:
Wolfgang Schuster wrote:
Hi Hans,
you showed a while ago how the actualtext function of pdf works and i have a module where i would use it but letters outside of ascii appear wrong when i copy the text
\starttext text \pdfliteral{/Span <> BDC}Meier\pdfliteral{EMC} text \stoptext
Is /ActualText supposed to be in PDFDoc Encoding?
nopdfcompression \def\pdfactualtext#1#2% {\pdfliteral direct{/Span <> BDC}#1\pdfliteral direct{EMC}} \starttext text \pdfactualtext{Meier}{Müller} text \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Wolfgang Schuster wrote:
Am 07.12.2009 um 09:46 schrieb Hans Hagen:
\def\pdfactualtext#1#2% {\pdfliteral direct{/Span <> BDC}#1\pdfliteral direct{EMC}}
\starttext text \pdfactualtext{Meier}{Müller} text \stoptext
Perfect, will this end in the core?
hm, doesn't that kind of functionality demands a bit more 'thinking'? what exactly is needed? how does it relate to linebreaks? other content? etc .. actually, such a mechanism should be implemented a bit differently (maybe attributes and delayed processing) or maybe dictionary driven .. i have no problem with adding this two line hack as it has a \pdf prefix anyway so it sits in the category wolfgangs-only -) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Am 07.12.2009 um 10:11 schrieb Hans Hagen:
hm, doesn't that kind of functionality demands a bit more 'thinking'? what exactly is needed? how does it relate to linebreaks? other content? etc .. actually, such a mechanism should be implemented a bit differently (maybe attributes and delayed processing) or maybe dictionary driven ..
there is no linebreak in the text because it's a boxed content, a simple version of my macro is \def\pdfactualtext#1#2% {\pdfliteral direct{/Span <> BDC}#1\pdfliteral direct{EMC}} \def\ruby#1#2% {\dontleavehmode\bgroup \setbox\scratchboxone\hbox{#1}% \setbox\scratchboxtwo\hbox{#2}% \scratchdimen\wd\scratchboxone \setbox\scratchbox\vbox {\hbox to \scratchdimen{\hss\box\scratchboxtwo\hss} \hbox to \scratchdimen{\hss\box\scratchboxone\hss}}% \pdfactualtext{\box\scratchbox}{#1 (#2)}% \egroup} \starttext text \ruby{base text}{ruby text} text \stoptext Wolfgang
Wolfgang Schuster wrote:
Am 07.12.2009 um 10:11 schrieb Hans Hagen:
hm, doesn't that kind of functionality demands a bit more 'thinking'? what exactly is needed? how does it relate to linebreaks? other content? etc .. actually, such a mechanism should be implemented a bit differently (maybe attributes and delayed processing) or maybe dictionary driven ..
there is no linebreak in the text because it's a boxed content, a simple version of my macro is
\def\pdfactualtext#1#2% {\pdfliteral direct{/Span <> BDC}#1\pdfliteral direct{EMC}}
\def\ruby#1#2% {\dontleavehmode\bgroup \setbox\scratchboxone\hbox{#1}% \setbox\scratchboxtwo\hbox{#2}% \scratchdimen\wd\scratchboxone \setbox\scratchbox\vbox {\hbox to \scratchdimen{\hss\box\scratchboxtwo\hss} \hbox to \scratchdimen{\hss\box\scratchboxone\hss}}% \pdfactualtext{\box\scratchbox}{#1 (#2)}% \egroup}
\starttext
text \ruby{base text}{ruby text} text
\stoptext
detail ... \def\ruby#1#2% {\dontleavehmode\bgroup \setbox\scratchboxone\hbox{#1}% \setbox\scratchboxtwo\hbox{#2}% \scratchdimen\wd\ifdim\wd\scratchboxone>\wd\scratchboxtwo\scratchboxone\else\scratchboxtwo\fi \setbox\scratchbox\vbox {\hbox to \scratchdimen{\hss\box\scratchboxtwo\hss} \hbox to \scratchdimen{\hss\box\scratchboxone\hss}}% \pdfactualtext{\box\scratchbox}{#1 (#2)}% \egroup} \starttext text \ruby{lua text}{ruby or perl text which is more blabla} text \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
Am 07.12.2009 um 11:21 schrieb Hans Hagen:
detail ...
\def\ruby#1#2% {\dontleavehmode\bgroup \setbox\scratchboxone\hbox{#1}% \setbox\scratchboxtwo\hbox{#2}% \scratchdimen\wd\ifdim\wd\scratchboxone>\wd\scratchboxtwo\scratchboxone\else\scratchboxtwo\fi \setbox\scratchbox\vbox {\hbox to \scratchdimen{\hss\box\scratchboxtwo\hss} \hbox to \scratchdimen{\hss\box\scratchboxone\hss}}% \pdfactualtext{\box\scratchbox}{#1 (#2)}% \egroup}
\starttext text \ruby{lua text}{ruby or perl text which is more blabla} text \stoptext
this was just a simplified example, the real implementation is more complex by default ruby text overlaps the surrounding text (like in my example) and what you suggested can be activated but it's not so nice because you get unwanted whitespace in the text Wolfgang
participants (3)
-
Hans Hagen
-
Taco Hoekwater
-
Wolfgang Schuster