私はいくつかの言語で文書をタイプセット(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}