我明白發生了什麼情況。您的詞彙條目是 haruanga babuna,它對應到 pasilanga babuna。第一個單字的開頭大寫會被保留,但第二個單字不會。FLExTrans 的轉換引擎無法處理這種情況,因此您必須進行合成後的修改。
以 Sipsipka 變成 Sipsip xa 的情況為例,由於這是由規則產生的,您可以使用 'get-case-from' 元素來包裹您輸出的字面字串。它看起來會像這樣:

這意味著如果傳入的原始單字是大寫,xa 也會以大写形式輸出。同樣地,如果是小寫,它也會以小寫形式輸出。
但是,您可能會發現章節標題中的其他單字因各種原因而變成小寫。因此,您可能需要一個通用解決方案,將所有單字轉換為標題大小寫(Title Case)。
沒有單行正規表達式可以做到這一點。因此,我看到兩種可能的解決方案:
1) 在您的 Drafting 模組集合中添加一個自訂模組,執行一些 Python 程式碼來將章節標題中的所有單字首字母大寫。
2) 為字母表中的每個字母添加一個正規表達式。在 Text Out 規則中有 26 個表達式並不那麼優雅,但它是可行的。
針對 'a' 的表達式為 Search For: (^\\s.*?\b)a(\w*) Replace with: \1A\2
為了方便添加所有這些,您可以在檔案 Output\fixup_synthesis_rules.xml 中的 <SearchReplaceRules> 下方添加以下 xml 行:
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)a(\w*)</SearchString>
<ReplaceString>\1A\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)b(\w*)</SearchString>
<ReplaceString>\1B\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)c(\w*)</SearchString>
<ReplaceString>\1C\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)d(\w*)</SearchString>
<ReplaceString>\1D\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)e(\w*)</SearchString>
<ReplaceString>\1E\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)f(\w*)</SearchString>
<ReplaceString>\1F\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)g(\w*)</SearchString>
<ReplaceString>\1G\2</ReplaceString>
</SearchReplaceRule>
等等。
I see what is going on. Your lexical entry is haruanga babuna which is mapped to pasilanga babuna. The capitalization of the first word gets retained but not the second. FLExTrans' transfer engine can't handle this so you will have to do a post-synthesis change.
In the case of Sipsipka going to Sipsip xa, since this gets produced by a rule you could wrap the literal string you are outputting with the 'get-case-from' element. It would look like this:

This means if the original word coming in is uppercase, the xa will come out in uppercase. Likewise if it is lowercase, it will come out in lowercase.
But, you may have other words in a section title that are coming out lowercase for various reasons. So you may want a general solution to make all the words title case.
There isn't a one-line regular expression that would do this. So I see two possible solutions:
1) Add a custom module to your Drafting set of modules that would run some Python code to capitalize all words in a section header.
2) Add a regular expression for each letter of the alphabet. This is not so nice to have 26 expressions in your Text Out rules, but it works.
The expression for 'a' would be Search For: (^\\s.*?\b)a(\w*) Replace with: \1A\2
To make it easy to add all these, you can add the following xml lines below <SearchReplaceRules> in the file Output\fixup_synthesis_rules.xml:
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)a(\w*)</SearchString>
<ReplaceString>\1A\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)b(\w*)</SearchString>
<ReplaceString>\1B\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)c(\w*)</SearchString>
<ReplaceString>\1C\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)d(\w*)</SearchString>
<ReplaceString>\1D\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)e(\w*)</SearchString>
<ReplaceString>\1E\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)f(\w*)</SearchString>
<ReplaceString>\1F\2</ReplaceString>
</SearchReplaceRule>
<SearchReplaceRule RegEx="yes" Inactive="no" Comment="">
<SearchString>(^\\s.*?\b)g(\w*)</SearchString>
<ReplaceString>\1G\2</ReplaceString>
</SearchReplaceRule>
etc.
機器翻譯自 English