переносы с языками в транслитерации // принудительный перенос?

переносы с языками в транслитерации // принудительный перенос?

Я набираю (lualatex) документ на нескольких языках. Основной язык — английский. Если я использую другие языки, то обычно использую такие команды, как \foreigntextquote{french}{text}и \foreignlanguage{german}{text}, надеясь, что это уладит пару вопросов, в частности, расстановку переносов. Я также мог бы справиться,с некоторой помощью, перенос древнегреческого языка ( polutonikogreek).

Моя главная проблема сейчас в том, что некоторые языки, которые не пишутся на латинице, иногда используются в транслитерации. Например, в арабском языке я иногда (обычно в основном тексте) пишу,яштарикувместо يشترك илиаль-мута'аллимвместо المتعلّم.

Но как мне сделать так, чтобы эти транслитерации были разделены дефисами?

Они не являются "известным" языком (по крайней мере, не в транслитерации). Я не знаю, существуют ли установленные правила, и предполагаю, что даже если они есть, они не были интегрированы в babel. Иногда слова даже имеют тире сами по себе (из-за артикляаль-), что является известной проблемой (но есть и некоторые решения).

Но в целом мой вопрос таков: поскольку я не могу заявить в своей преамбуле,всеслова, которые я буду использовать в транслитерации (команда \hyphenation{...}будет слишком длинной; это было бы просто безумием), я хотел бы узнать, есть ли способ, возможно,случайнопереносить те слова, которые babelне умеют переносить или простой способ создать новый язык переносов и объявить его правила? Или есть ли какие-либо другие рекомендации, как переносить все эти транслитерированные слова?

Без решения моей проблемы в моем документе есть ряд слов, написанных на полях или в строках, межсловное расстояние в которых слишком велико.

Это должно быть актуальной проблемой для набора текста во всех гуманитарных науках, поскольку издатели склонны использовать транслитерацию в своих публикациях. Я не знаю, как издатели с этим справляются.

решение1

Вот довольно грубое решение, которое просто вставляет a \- между гласной и некоторыми согласными:

\documentclass{article}

\usepackage{luacode}

\begin{luacode*}
function insdisc (s)
    -- add more letters if necessary
  s = s:gsub( [[([aeiou])([bcfgklmnpqtxz])]] , '%1\\-%2' )
    -- but don't leave a single char alone:
  s = s:gsub( '^(.)\\%-', '%1')
  s = s:gsub( '\\%-(.)$', '%1')
  return s
end
\end{luacode*}

\def\insdisc#1{\directlua{tex.print(insdisc(\luastring{#1}))}}

\begin{document}

\hsize1mm

Text \insdisc{umiq'utzexopab} umiq'utzexopab text text text text text
text text text text text text text text text text text text.

\end{document}

Связанный контент