[texhax] scrambled text

Daniel Greenhoe dgreenhoe at gmail.com
Mon Aug 27 21:42:07 CEST 2012


Thank you!
Dan

On Mon, Aug 27, 2012 at 2:38 PM, Paul Isambert <zappathustra at free.fr> wrote:
> Daniel Greenhoe <dgreenhoe at gmail.com> a écrit:
>>
>> On Sun, Aug 26, 2012 at 8:55 PM, Paul Isambert <zappathustra at free.fr> wrote:
>> > Indeed you can "\input random.tex" at the beginning of your document and
>> > replace \extractletters in my original code with this new definition:
>>
>> I tried your new code and it works great---Thanks!!!
>>
>> For a long time I have been using the lcg package for random number
>> generation. I modified your code to use lcg instead of random.tex.
>> However I don't know much about TeX programming. Would some one want
>> to take a look at the code below to see if anything is amiss?
>
> As far as I can see it's ok. I've read the lcg doc quickly and it seems
> that you can use "\reinitrand[first=1]" at the beginning of your document
> and then only "\chrand[last=\letters]" in the code, but the only
> improvement, if any, is speed. Also, the "%" after "\rand" on a line
> of its own is useless, but it is harmless too.
>
> Best,
> Paul
>
>> Many thanks in advance,
>> Dan
>>
>> %============================================================================
>> % Code: see email from Paul Isambert (2012 August 25 Saturday 2:49pm)
>> %============================================================================
>> % Code 1
>> \newcount\letters
>> %\newcount\random
>> \newcount\scratch
>> \def\endofword{\endofword}
>>
>> \def\scramble#1{%
>>   \letters=0
>>   \countletters#1\endofword
>>   \extractletters{#1}%
>>   }
>>
>> \def\countletters#1{%
>>   \unless\ifx #1\endofword
>>     \advance\letters 1
>>     \expandafter\countletters
>>   \fi
>>   }
>>
>> \def\extractletters#1{%  see email from Paul Isambert (2012 August 26
>> Sunday 8:55pm)
>>   \def\rest{}%
>>   \ifnum\letters>1
>>     \chgrand[first=1,last=\letters]%   <--edit
>>     \rand%                             <--edit
>>     %\setrannum{\random}{1}{\letters}%   <--previous
>>     \advance\letters-1 \scratch=1
>>     \getletter#1\endofword%
>>   \else
>>     #1%
>>   \fi
>>   }
>>
>> \def\getletter#1{%
>>   \ifnum\scratch=\value{rand}%  <--edit
>>     #1%
>>     \expandafter\getrestofword
>>   \else
>>     \advance\scratch 1
>>     \edef\rest{\rest#1}%
>>     \expandafter\getletter
>>   \fi
>>   }
>>
>> \def\getrestofword#1\endofword{%
>>   \expandafter\extractletters\expandafter{\rest#1}%
>>   }
>>
>> %\scramble{scramble}
>> % End of code 1
>>
>>
>> On Sun, Aug 26, 2012 at 8:55 PM, Paul Isambert <zappathustra at free.fr> wrote:
>> > Reinhard Kotucha <reinhard.kotucha at web.de> a écrit:
>> >>
>> >> On 2012-08-26 at 08:46:26 +0800, Daniel Greenhoe wrote:
>> >>
>> >>  > Hi Paul,
>> >>  >
>> >>  > Thank you for the source code. I use XeLaTeX and I tried your "Code
>> >>  > 1". But it said that
>> >>  >   \pdfuniformdeviate
>> >>  > was undefined. Is \pdfuniformdeviate only defined in PDFTex? Is there
>> >>  > some workaround for XeTeX?
>> >>
>> >> XeTeX is based on Knuth's TeX and thus doesn't inherit pdfTeX
>> >> extensions.
>> >>
>> >> Maybe you can use Donald Arseneau's random.tex package instead of
>> >> \pdfuniformdeviate.
>> >
>> > Indeed you can "\input random.tex" at the beginning of your document and
>> > replace \extractletters in my original code with this new definition:
>> >
>> >     \def\extractletters#1{%
>> >       \def\rest{}%
>> >       \ifnum\letters>1
>> >         \setrannum{\random}{1}{\letters}%
>> >         \advance\letters-1 \scratch=1
>> >         \getletter#1\endofword%
>> >       \else
>> >         #1%
>> >       \fi
>> >       }
>> >
>> > Best,
>> > Paul
>> >
>> > _______________________________________________
>> > TeX FAQ: http://www.tex.ac.uk/faq
>> > Mailing list archives: http://tug.org/pipermail/texhax/
>> > More links: http://tug.org/begin.html
>> >
>> > Automated subscription management: http://tug.org/mailman/listinfo/texhax
>> > Human mailing list managers: postmaster at tug.org
>
> _______________________________________________
> TeX FAQ: http://www.tex.ac.uk/faq
> Mailing list archives: http://tug.org/pipermail/texhax/
> More links: http://tug.org/begin.html
>
> Automated subscription management: http://tug.org/mailman/listinfo/texhax
> Human mailing list managers: postmaster at tug.org



More information about the texhax mailing list