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.

1 Like

即時ではないオプションとして、テキストの束が選択されている場合、アジア音声ガイドダイアログで、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.

2 Likes

たしかに、Ctrl-Aで全選択して「ルビ」ダイアログを表示すると、複数のルビにアクセスできますね。
ひとつのダイアログで何度かTabとDel押して、まとめて削除もできました。

2 Likes

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>
1 Like

マクロでこんな感じでしょうか?

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
1 Like

ありがとうございます。
一旦手動でタブとDelで対応してみました。

しかし、このルビ設定のウィンドウにはどうやら個数に上限があるみたいで、29か30個くらいまでしか表示されないようです。

ありがとうございます。
Wordでも全削除の機能はなさそう(検索と置換で対応はできる)なので、機能強化リクエストしてみようかと思いますが、リクエストはどこから行えるかご存知でしょうか?

無知で申し訳ありません。

ありがとうございます。
このマクロは感動ですね!

今回は手動でやってしまったのですが、次回活用させていただきます!

2 Likes

File an enhancement requests.

1 Like

少し補足します。機能追加のリクエストはBugzilllaで書きます。(上記のリンクだと自動的に選択されていますが)Severityでenhancementを選択します。