From: Philipp Gesang <gesang@stud.uni-heidelberg.de>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: ConvertToConteXt 0.2 - convert special ConTeXt-characters (PHP)
Date: Tue, 1 Nov 2011 22:46:41 +0100 [thread overview]
Message-ID: <20111101214641.GB18862@aides> (raw)
In-Reply-To: <4EB0458D.6070108@gmx.de>
[-- Attachment #1.1: Type: text/plain, Size: 7613 bytes --]
On 2011-11-01 20:16, Jan Heinen wrote:
> @all: of course not every Character, i am converting, is a
> ConTeXt-special-character. Though I don't know all important
> characters I took all I could imagine. Shurly I converted
> too much however it is no problem:
> Which character must not be converted?
··· from catc-ctx.mkiv ··········································
\startcatcodetable \ctxcatcodes
\catcode\tabasciicode \spacecatcode
\catcode\endoflineasciicode \endoflinecatcode
\catcode\formfeedasciicode \endoflinecatcode
\catcode\spaceasciicode \spacecatcode
\catcode\endoffileasciicode \ignorecatcode
% \catcode\circumflexasciicode\superscriptcatcode
% \catcode\underscoreasciicode\subscriptcatcode
% \catcode\ampersandasciicode \alignmentcatcode
\catcode\underscoreasciicode\othercatcode
\catcode\circumflexasciicode\othercatcode
\catcode\ampersandasciicode \othercatcode
\catcode\backslashasciicode \escapecatcode
\catcode\leftbraceasciicode \begingroupcatcode
\catcode\rightbraceasciicode\endgroupcatcode
\catcode\dollarasciicode \mathshiftcatcode
\catcode\hashasciicode \parametercatcode
\catcode\commentasciicode \commentcatcode
\catcode\tildeasciicode \activecatcode
\catcode\barasciicode \activecatcode
\stopcatcodetable
·································································
So, afaict, assuming standard catcodes you should be safe with
escaping »~|\{}$%#« (of which the bar was missing in the snippet
I posted).
Good luck,
Philipp
>
> I had a mistake in the function, below is the next version:
>
> Regards, Janis
>
> function ConvertToConteXt ( $xstring ) {
> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * * * * *
> * ConvertToConteXt()
> * Version 0.2
> * 01.11.2011
> *
> * author: Jörg Kopp
> * www.dr-kopp.com
> *
> * Convert special ConTeXt-characters with php
> * Works with PHP5
> *
> * Call it with the string you want to convert ...
> * ConvertToConteXt ($xstring);
> *
> * ... and you get back the converted string
> *
> * e.g.:
> * Input:
> * $string = "My root-Directory: /home/hans";
> * $string = ConvertToConteXt ( $string );
> *
> * Output/Return:
> * $string = "My root\\char45Directory\\char58
> \\char47home\\char47hans";
> *
> * When you write this into a file ...
> * file_put_contents ( "example.tex", "My
> root\\char45Directory\char58 \\char47home\\char47hans", FILE_APPEND
> );
> *
> * ... You will find the following in example.tex:
> * My root\char45Directory\char58 \char47home\char47hans
> *
> * An when you compile example.tex with ConTeXt
> * context example.text
> *
> * You can read the following in the resulting example.pdf:
> * My root-Directory: /home/hans
> *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * * * */
>
> $xstring = html_entity_decode ( $xstring ); // convert
> HTML-entities into normal characters
>
> // Braces and Backslash need to be handled first otherwise trash
> will be produced
> $xstring = str_replace ( "{", "*$##char123##$*", $xstring );
> // geschweifte Klammer auf/left curly brace
> $xstring = str_replace ( "}", "*$##char125##$*", $xstring );
> // geschweifte Klammer zu/right curly brace
> $xstring = str_replace ( "\\", "{\\char92}", $xstring );
> // Backslash/backslash
> $xstring = str_replace ( "*$##char123##$*", "{\\char123}",
> $xstring ); // This trick is nessecary ...
> $xstring = str_replace ( "*$##char125##$*", "{\\char125}",
> $xstring ); // ... !!!
>
> $xstring = str_replace ( "!", "{\\char33}", $xstring ); //
> Ausrufungszeichen/ConvertToConteXt
> $xstring = str_replace ( "\"", "{\\char34}", $xstring ); //
> Anführungszeichen/quotation mark
> $xstring = str_replace ( "#", "{\\char35}", $xstring ); //
> Raute/number sign
> $xstring = str_replace ( "$", "{\\char36}", $xstring ); //
> Dollar-Zeichen/dollar sign
> $xstring = str_replace ( "%", "{\\char37}", $xstring ); //
> Prozent-Zeichen/percent sign
> $xstring = str_replace ( "&", "{\\char38}", $xstring ); //
> Kaufmännisches Und/ampersand
> $xstring = str_replace ( "'", "{\\char39}", $xstring ); //
> Apostroph/apostrophe
> $xstring = str_replace ( "(", "{\\char40}", $xstring ); //
> Klammer auf/left parenthesis
> $xstring = str_replace ( ")", "{\\char41}", $xstring ); //
> Klammer zu/right parenthesis
> $xstring = str_replace ( "*", "{\\char42}", $xstring ); //
> Stern/asterisk
> $xstring = str_replace ( "+", "{\\char43}", $xstring ); //
> Plus/plus sign
> $xstring = str_replace ( ",", "{\\char44}", $xstring ); //
> Komma/comma
> $xstring = str_replace ( "-", "{\\char45}", $xstring ); //
> Minus/hyphen
> $xstring = str_replace ( ".", "{\\char46}", $xstring ); //
> Punkt/period
> $xstring = str_replace ( "/", "{\\char47}", $xstring ); //
> Schrägstrich/period
> $xstring = str_replace ( ":", "{\\char58}", $xstring ); //
> Doppelpunkt/colon
> $xstring = str_replace ( ";", "{\\char59}", $xstring ); //
> Semikolon/semicolon
> $xstring = str_replace ( "<", "{\\char60}", $xstring ); //
> Kleinerzeichen/less-than
> $xstring = str_replace ( "=", "{\\char61}", $xstring ); //
> Gleichzeichen/equals-to
> $xstring = str_replace ( ">", "{\\char62}", $xstring ); //
> Größerzeichen/greater-than
> $xstring = str_replace ( "?", "{\\char63}", $xstring ); //
> Fragezeichen/question mark
> $xstring = str_replace ( "@", "{\\char64}", $xstring ); //
> at-Zeichen/at sign
> $xstring = str_replace ( "[", "{\\char91}", $xstring ); //
> eckige Klammer auf/left square bracket
> $xstring = str_replace ( "]", "{\\char93}", $xstring ); //
> eckige Klammer zu/right square bracket
> $xstring = str_replace ( "^", "{\\char94}", $xstring ); //
> Zirkumflex/caret
> $xstring = str_replace ( "_", "{\\char95}", $xstring ); //
> Unterstrich/underscore
> //$xstring = str_replace ( "°", "{\\char??}", $xstring ); //
> Grad/ < ------ missing
> $xstring = str_replace ( "`", "{\\char96}", $xstring ); //
> accent aigu/acute accent
> $xstring = str_replace ( "|", "{\\char124}", $xstring ); //
> Pipezeichen/vertical bar
> $xstring = str_replace ( "~", "{\\char126}", $xstring ); //
> Tilde/tilde
> //$xstring = str_replace ( "•", "{\\char??}", $xstring ); // ?/
> < ------ missing
> //$xstring = str_replace ( "º", "{\\char??}", $xstring ); // ?/
> < ------ missing
>
> return $xstring;
> }
>
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive : http://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________
--
() ascii ribbon campaign - against html e-mail
/\ www.asciiribbon.org - against proprietary attachments
[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________
prev parent reply other threads:[~2011-11-01 21:46 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 19:16 Jan Heinen
2011-11-01 21:46 ` Philipp Gesang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111101214641.GB18862@aides \
--to=gesang@stud.uni-heidelberg.de \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).