答案1
这是 LibreOffice 的一个已知限制,被列为以下错误:https://bugs.documentfoundation.org/show_bug.cgi?id=43254。
但是,可以通过解压 ODT 文件并content.xml
使用文本编辑器进行编辑来重命名参考。搜索并替换所有出现的Reference1
。
答案2
我找到了使用 LibreOffice Writer 扩展的替代解决方案。
安装扩展
安装Writer 的替代查找和替换 (AltSearch)Libre Office 的扩展(兼容 3.3 及以上版本)。下载扩展,然后在 Writer 中转到Tools
>,Extension Manager
然后单击Add
并选择您下载的扩展的文件。
可以通过Edit
>Alt. Find & Replace
或单击工具栏中的此图标来访问该扩展:
执行替换
使用原始帖子中的示例,假设我们有放以我们要重命名的reference1
值命名的交叉引用。假设我们还有test
reference5
插入文档中引用设置的交叉引用的一个或多个交叉引用。打开替代的查找和替换并执行以下步骤:
在Search for
:
- 方案一:
[::ReferenceMark::]\\Reference1
在框中输入。 - 方案 2:
Cross-ref. marker (text)
从Extended
下拉菜单中选择并\\Reference1
手动添加到搜索框)。
在Replace
:
- 方案一:
\B{Reference5|\o}
在框中输入。 - 方案 2:
Insert marker+text for cross-reference
从下拉菜单中选择Replace
。在框中,替换ref1
为Reference5
并替换text
为\o
。 - 笔记:如果你想改变价值设置的交叉引用,
\o
用新值替换。
单击replace all
,执行替换。
到目前为止,我们所做的就是改变放交叉引用。任何插入文档中的交叉引用现在将指向不再存在的交叉引用集合,因此我们也必须更改这些集合。这些步骤假设插入的交叉引用显示价值设置的交叉引用(而不是页码或其他属性)。如果您需要更新其他类型的交叉引用,请参阅下面的详细说明。
在Search for
:
- 方案一:
[::Reference::]\\Reference1
在框中输入。 - 方案 2:
Cross-reference (text)
从Extended
下拉菜单中选择并\\Reference1
手动添加到搜索框)。
在Replace
:
- 方案一:
\L{2,0,Reference5}
在框中输入。 - 方案 2:
Insert cross-reference to marker
从下拉菜单中选择Replace
。在框中,替换0,0
为2,0
并替换ref1
为Reference5
。
单击replace all
,执行替换。
分解
在[::ReferenceMark::]\\Reference1
:
[::ReferenceMark::]
意味着我们正在寻找放交叉引用。\\
意味着我们想通过它的姓名。Reference1
是我们正在搜索的参考的名称。
在\B{Reference5|\o}
:
\B
意味着我们将用新的引用替换找到的引用。Reference5
是个姓名以供新的参考。\o
意味着价值新的参考将是价值找到的旧参考资料。
在[::Reference::]\\Reference1
:
[[:Reference:]]
意味着我们正在寻找插入交叉引用。\\
意味着我们想要通过姓名它所指的。Reference1
是我们正在搜索的参考的名称。
在\L{2,0,Reference5}
:
\L
意味着我们将取代插入与新插入的交叉引用进行交叉引用。2
意味着新插入的交叉引用将是“引用”类型,即它将显示价值设置交叉引用。0
表示引用的类型是集合交叉引用(而不是编号段落等)。Reference5
是新插入的交叉引用将引用的名称。
要替换其他类型的交叉引用(例如页码),2
需要将其修改为以下内容之一(摘自文档):
0 - 阿拉伯数字页码,1 - 章节编号,2 - 参考文本,3 - 上方/下方,4 - 使用页面样式中定义的编号类型的页码,5 - 标题类别和编号,6 - 标题文本,7 - 序列字段(标题)的编号
其他用途
另外,该扩展提供了标准查找和替换中缺少的各种其他有用功能。例如,你可以用另一种样式替换所有样式实例(这是我安装它的最初原因),以及你能想到的几乎所有其他功能。请参阅扩展的主页以获得详细的(如果有点难以解析)说明。