音译语言中的连字符//强制连字符?

音译语言中的连字符//强制连字符?

我正在用几种语言排版 (lualatex) 一份文档。主要语言是英语。如果我使用其他语言,我通常会使用诸如\foreigntextquote{french}{text}和 之类的命令\foreignlanguage{german}{text},希望这能解决一些问题,特别是连字符问题。我也可以管理,在一些帮助下,古希腊语的连字符(polutonikogreek)。

我现在的主要问题是,有些非拉丁字母的语言有时会被用在音译中。例如,在阿拉伯语中,我有时会(通常在正文中)写成:亚什塔利库而不是 يشترك 或穆塔阿利姆而不是 المتعلّم。

但是,我怎样才能将这些音译用连字符连接起来呢?

它们不是“已知”的语言(至少在音译方面不是)。我不知道是否有既定的规则,我认为即使有,它们也没有融入其中babel。有时这些词本身甚至带有破折号(由于冠词艾尔),这是一个已知问题(但也有一些解决方案)。

但一般来说,我的问题是这样的:因为我不能在序言中声明全部我将用音译来表达这些单词(这个命令\hyphenation{...}太长了;这太疯狂了),我想知道是否有办法随机给那些babel不知道如何连字的单词连字,或者有没有一种简单的方法来创建一个新的连字语言并声明它的规则?或者有没有其他关于如何给所有这些音译单词连字的建议?

没有解决办法,我的文档中有许多单词写在了字间间隙过大的边缘或行内。

这其实应该是所有人文学科排版的一个迫切问题,因为出版商倾向于在出版物中使用音译。我不知道出版商如何处理这个问题。

答案1

\- 这是一个相当粗略的解决方案,只是在元音和一些辅音之间插入:

\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}

相关内容