I need writing normal text and some sentences in artifical conscript language.

How writing small as possible package and how use it (include?) in file? My language have my own font and each glyphs is defined as one or more chars.



sh[number] -> x or x1 or x2 ...


for example:

Simple text in english and example :\lang_begin{foo}Kuuejshsh6 2kkkks defefe fg re5rdga'derg gre g \ang_end{foo}

If it is possible Lua script to convert char into directly glyph

  • 1
    Welcome. From the top of my head i would say verbatim or a package like listings` willl do the job. But i am not even sure i understand the question?
    – Johannes_B
    Feb 1, 2016 at 12:55
  • If the string urgh means one glyph from your special font, better use a screenshot and include that in your document ;-)
    – Johannes_B
    Feb 1, 2016 at 12:58
  • @Johannes_B please lokk this omniglot.com/writing/coptic.htm the letter b or v have this same glyph b, other g,gh,ng have this same glyph g in my language this is more complicated and I need a script lua to convert normal words to 'my words' ;-) Feb 1, 2016 at 14:16
  • As far as i understood that right now, a word is spelled one way, but depending on the context, one letter can have different sounds. You mention a Lua script (in a comment, not the question) for conversion. How will you determin ng in hong from ng in mingong (min-gong). Please add some more explanations to the question (extensive explanation) and also your replacement thingy using Lua.
    – Johannes_B
    Feb 1, 2016 at 14:30
  • I need all sentence. not only word. ng on end of the word is different in middle and different in begining of sentence. I need 2 function in tex \lang_begin \lang_end and one function in lua to convert sentence in my own lang. Feb 1, 2016 at 21:28

1 Answer 1


EDIT 2: Added lots of new thoughts and suggestions

As far as I understand your question, you have created a constructed language with a constructed script with own characters not in Unicode. In addition, you have created a transcription of the conscript into latin letters and digits. Now you want to typeset some texts in your conlang.

I suggest that you create a third thing: A LaTeX Input Convention for your constructed language. I suggest using macros, one macro for each character of the constructed script. This is easy to implement, and you can switch the interpretation of the macros for the conscript to the transcription and back. This way you can typeset your conlang both in its original script and in transcription.

When you have higher programming skills, you may also write a parser for the transcription that outputs your conscript. This is a difficult task but it has been done successfully before, e.g., in the ArabTeX package.

You may also want to look into the the babel system of language packages; they offer convenient language specific shorthands to macros. As long as you do not want to include hyphenation, it shouldn't be overly difficult to read off the necessary code changes from one of the language packages with another script (e.g. Russian, Bulgarian, or Greek) to write your own conlang babel package.

Start with the documented .ldf (language description file) format and run the docstrip utility to get the actual package file.

EDIT: in the LuaTeX context, look at polyglossia instead of babel.

  • how create lua script to change input text? Feb 1, 2016 at 14:12
  • @Marko Lustro: I don't have specific Lua knowledge, I don't know. You can specify the input sequence in your font (using ligatures; Greek does this for the vowels with accents and spiritus). Feb 1, 2016 at 14:22
  • you may avoid using lua if you try encTeX in 8bit TeXes.
    – jarnosz
    Feb 1, 2016 at 18:09
  • @Marko Lustro: Look againt at my answer, I have added a lot to it. Feb 3, 2016 at 9:16
  • I'd rather insist in using an 8bit encTeX enabled engine; that way you could define \mubyte\myglyph token [token [token...]] \endmubyte and have a full transcription for your conscript without Lua.
    – jarnosz
    Feb 3, 2016 at 20:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .