我正在使用幾種語言排版(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}