お世話になります。
LibreOffice Writerでふりがなを振る機能 (ルビ…) があると思いますが、一旦振り終わったふりがなを一括削除する方法がれば教えていただきたく思います。
お世話になります。
LibreOffice Writerでふりがなを振る機能 (ルビ…) があると思いますが、一旦振り終わったふりがなを一括削除する方法がれば教えていただきたく思います。
ヘルプ ページには削除については何も記載されていません。ただし、テキストを書式なしまたは HTML として貼り付けると、ルビ テキストは消えます。
まだテストしていませんが、content.xml サブファイルを編集してコードからルビ テキストを削除できると思います。
これは機能強化のリクエストに値します。
en:
The help page says nothing about deleting. But if the text is pasted as unformatted or as HTML, the ruby text is gone.
I have not tested yet, but think that it is possible to edit the content.xml subfile to delete the ruby text from the code.
This is worth of an enhancement request.
即時ではないオプションとして、テキストの束が選択されている場合、アジア音声ガイドダイアログで、Tab キーを使用して各ルビテキストに移動し、Del キーを押すことができます。
en:
As a non-instant option: If a bunch of the text is selected, in the Asian Phonetic Guide dialog, we can use the Tab key to reach each Ruby text, and press Del.
That’s very complex, so, I wouldn’t recomend it if you are not sure.
Here’s the code for a simple “Base text” with “Ruby text”.
-<text:ruby text:style-name="Ru1">
-<text:ruby-base>
<text:span text:style-name="T1">Base text</text:span>
</text:ruby-base>
<text:ruby-text>Ruby text</text:ruby-text>
</text:ruby>
マクロでこんな感じでしょうか?
Sub EraseRuby()
oText = ThisComponent.getText()
line_enum = oText.createEnumeration()
Do While line_enum.hasMoreElements
line_elem = line_enum.nextElement()
word_enum = line_elem.createEnumeration()
Do While word_enum.hasMoreElements()
word_elem = word_enum.nextElement()
If word_elem.RubyText <> "" Then
word_elem.RubyText = ""
End If
Loop
Loop
End Sub
ありがとうございます。
一旦手動でタブとDelで対応してみました。
しかし、このルビ設定のウィンドウにはどうやら個数に上限があるみたいで、29か30個くらいまでしか表示されないようです。
ありがとうございます。
Wordでも全削除の機能はなさそう(検索と置換で対応はできる)なので、機能強化リクエストしてみようかと思いますが、リクエストはどこから行えるかご存知でしょうか?
無知で申し訳ありません。
ありがとうございます。
このマクロは感動ですね!
今回は手動でやってしまったのですが、次回活用させていただきます!
少し補足します。機能追加のリクエストはBugzilllaで書きます。(上記のリンクだと自動的に選択されていますが)Severityでenhancementを選択します。