如何编译 LibreOffice

一、安装编译环境依赖
$ sudo dnf builddep libreoffice
$ sudo. dnf install. ccache # 安装 ccache,从而能够在重新编译时复用之前编译的缓存以加速编译。您也可以不用ccache$ ccache -M 10G # 将 ccache 缓存大小限制设置为 10G$ ccache –set-config=cache_dir=# 若空间不足,可将 ccache 的缓存目录设置为其他的位置(比如挂载的其他分区目录)$ sudodnf installpatch avahi-devel # builddep 没有安装好这两个编译依赖的包$ sudodnf installfakeroot rpm-build # 若您需要 rpm 或 deb 格式的安装包,则需要安装这两个依赖项
二、克隆源代码及子模块(git clone)
首先克隆主代码。此处克隆 libreoffice-7-1 分支。克隆时,因为我只需要最新的源代码(不需要历次的所有commit),因此使用了depth=1选项。
$ gitclone –depth=1–branch libreoffice-7-1 git://go.suokunlong.cn/lo/core ./libreoffice-7-1
正克隆到 ‘./libreoffice-7-1’…
remote: 枚举对象: 120360, 完成.
remote: 对象计数中: 100% (120360/120360), 完成.
remote: 压缩对象中: 100% (86011/86011), 完成.
remote: 总共 120360(差异 46040),复用 87907(差异 32504)
接收对象中: 100% (120360/120360), 272.72MiB |9.36MiB/s, 完成.
处理 delta 中: 100% (46040/46040), 完成.
正在更新文件: 100% (120889/120889), 完成.
然后,配置子模块。若不进行如下配置,则若启用中文用户界面选项,会默认去git.libreoffice.org克隆子模块代码,速度较慢并且无法观察克隆进展:
$ cdlibreoffice-7-1/
$ gitsubmodule init
子模组 ‘dictionaries’(https://git.libreoffice.org/dictionaries)已对路径 ‘dictionaries’注册
子模组 ‘helpcontent2’(https://git.libreoffice.org/help)已对路径 ‘helpcontent2’注册
子模组 ‘translations’(https://git.libreoffice.org/translations)已对路径 ‘translations’注册
我们编译时只需要 translations 子模块,没有启用帮助及词典,因此到 .git/config 中将 dictionaries 和 helpcontent2 两个子模块删除。然后,将translations模块的url修改为国内镜像地址(比如 git://go.suokunlong.cn/lo/translations),以加快克隆速度。
然后,抓取子模块。此处使用 –depth=1 选项以只获取最新的翻译字符串,并且使用 –progress 选项以显示克隆进展。
$ gitsubmodule update –progress –depth=1正克隆到 ‘/home/suokunlong/build/lo/libreoffice-7-1/translations’…
remote: 枚举对象: 45290, 完成.
remote: 对象计数中: 100% (45290/45290), 完成.
remote: 压缩对象中: 100% (11030/11030), 完成.
remote: 总共 45290(差异 22278),复用 37455(差异 14997)
接收对象中: 100% (45290/45290), 107.72MiB |7.20MiB/s, 完成.
处理 delta 中: 100% (22278/22278), 完成.
remote: 总共 0(差异 0),复用 0(差异 0)
remote: 枚举对象: 14403, 完成.
remote: 对象计数中: 100% (14403/14403), 完成.
remote: 压缩对象中: 100% (3316/3316), 完成.
remote: 总共 11565(差异 5892),复用 9773(差异 4229)
接收对象中: 100% (11565/11565), 89.61MiB |3.06MiB/s, 完成.
处理 delta 中: 100% (5892/5892), 完成 155个本地对象.
来自 git://go.suokunlong.cn/lo/translations

  • branch 4a12b40c8751323705d82539be43d04990f934a9 ->FETCH_HEAD
    子模组路径 ‘translations’:检出 ‘4a12b40c8751323705d82539be43d04990f934a9’
    最后,获取 external_tarballs. 这是 libreoffice 在编译时使用的第三方库等包,默认是从境外服务器去抓取,速度很慢。我已将常用的包放在了境内服务器,您需要从以下位置下载。可以使用下载器一次性全部下载,或者在下面的 make 阶段根据终端输出再去仅下载需要的文件。下载的文件请放置到下列autogen.input中设定的路径下。
    https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/
    三、配置编译选项(autogen.input)
    你可以不指定编译选项,直接按照下一部分介绍的 autogen.sh命令生成makefile,这样做就会按照默认的编译选项进行。你也可以将编译选项作为autogen.sh运行时的参数传递给它,这种情况下就会使用命令行参数作为编译选项。
    但最方便的是通过autogen.input来设置编译选项。这个文件仅在不存在任何命令行参数时才会生效。在克隆的源代码根目录下建立 autogen.input 文件,内容如下。完整的编译配置选项及其含义,见源代码根目录下的configure文件。

我一般直接在线浏览帮助文档,因此将帮助禁用了–without-help

–without-helppack-integration

启用简体及繁体中文用户界面–with-lang=zh-CN zh-TW

自己编译的话在线更新及崩溃报告功能就没啥用了,禁用–disable-online-update

–disable-breakpad

禁用 Office Development Kit。若启用 ODK,则额外需要doxygen依赖项。–disable-odk

–without-doxygen

若编译好之后您需要rpm (或deb)包,则需要启用下列两项:–enable-epm

–with-package-format=rpm

若您需要在多个不同版本的编译之间共享external_tarballs第三方源代码包,则可设置下列选项:# –with-external-tar=# 现在很多功能都用不到java了,因此我直接将其禁用–without-java

我需要用到firebird数据库,因此启用–enable-firebird-sdbc

–without-system-firebird
–enable-python=internal
四、编译(autogen.sh && make)
在源代码根目录下运行 autogen.sh。该脚本会调用 autogen.input中定义的编译选项。
./autogen.sh
若提示缺少某个包,则很可能是需要手动安装这个包的devel版本。若看到如下的提示,则表示autogen.sh运行无错误:


To build, run:
/usr/bin/make
To view some help, run:
/usr/bin/make helpAfter the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice
If you want to run the smoketest, run:
/usr/bin/make check


此时就可以运行 make 命令进行编译了:
make
此时,若提示正在从 dev-www.libreoffice.org 下载各种包,但墙内速度很慢的情况下,可以按下 Ctrl-C键中断,然后手动从我的墙内缓存链接下载,并放入 –with-external-tar 编译选项指定的目录。也可以从其他任何地方下载,比如提示下载 Python-3.7.7.tar.xz 时也可以从 http://npm.taobao.org/mirrors/python/3.7.7/ 下载。
编译比较耗时。按照官方wiki上的说法,首次编译大约耗时约 = 8小时 / cpu核心数,后续更改源代码后增量编译耗时从几秒钟到几小时不等,取决于代码更改的程度。若需要频繁重新编译,则安装ccache包是个不错的选择,autogen.sh若检测到你安装了ccache则会自动启用。你也可以用icecream等分布式编译方式加速编译。
编译完成后,执行 .instdir/program/soffice 即可运行。若在autogen.input 中启用了 “–with_package_format=rpm deb” ,则生成的安装包在 workdir/installation中。

Git word docx版本控制

1、创建 .gitattributes 文件

在项目根目录或者全局home目录

*.docx diff=word 文件匹配

2、编辑 home/.gitconfig 或项目下.git/config

或者命令添加

git config –global diff.word.textconv docx2txt

[diff “word”]

        textconv = ./doc2txt

 git config –global alias.pandiff “diff –word-diff=color –unified=1”

Office使用正则表达式实现高级查找替换

Office查找和替换是经常使用的功能,可以非常方便快捷的批量操作,完成繁琐的工作。Office的查找替换不仅仅是简单的文字替换这么简单,还可以借助正则表达式,完成复杂的工作。

问题场景:参考文献标号全部上标

很多撰写毕业论文的同学一定遇到过设置论文参考文献标号为上标格式的问题,一篇论文至少也有五、六十篇参考文献,标号也就五六十甚至更多,如果一个个的修改,非常麻烦,还可能有遗漏。此时,可以利用正则表达式一次全部修改。

一般学校要求都采用[1][1,2,3] 格式的参考文献标号方式。由于撰写论文过程中可能仅注重内容,忽略了格式,或者使用Office自带的参考文献格式生成的,默认是不上标的[1]、[1,2,3],要实现批量格式化,方法如下:

1、Ctrl+F,打开查找替换对话框,切换到替换页

2、在查找内容处输入(\[*\]),在替换为输入\1 ,这些都是正则表达式,字符都是英文半角的。

3、展开更多,选择使用通配符

4、文本输入定位到替换为,设置替换为内容的格式,点击格式〉字体〉选择上标,全部替换

如果有些同学甚至在标号时不规范,使用的是这种形式格式[1][2][3],正确格式应为[1,2,3],这种可以可以一次格式化。在上面的1~4步骤中,2查找内容处输入(\[*)(\]\[)(*\]),替换为设置为\1,\3 ,详细操作方法见下图

查找替换

Office正则表达式可以实现很多的功能,常见操作例如,转置带中间名首写字母的姓名转置日期向称呼添加句号,或从称呼删除句号查找重复段落或行等等。

正则表达式通配符见下表

用于查找

类型

示例

任一字符

?

s?t 可找到“sat”和“set”。

任何字符串

*

s*d 可找到“sad”和“started”。

单词开头

<

<(inter) 可找到“interesting”和“intercept”,但找不到“splintered”。

单词结尾

>

(in)> 可找到“in”和“within”,但找不到“interesting”。

指定字符之一

[ ]

w[io]n 可找到“win”和“won”。

此范围内的任一字符

[-]

[r-t]ight 可找到“right”和“sight”。范围必须是升序。

除了括号内范围中的字符之外的任一字符

[!x-z]

t[!a-m]ck 可找到“tock”和“tuck”,但找不到“tack”或“tick”。

前一个字符或表达式的 n 个匹配项

{n}

fe{2}d 可找到“feed”,但找不到“fed”。

前一个字符或表达式的至少 n 个匹配项

{n,}

fe{1,}d 可找到“fed”和“feed”。

前一个字符或表达式的 n 到 m 个匹配项

{n,m}

10{1,3} 可找到“10”、“100”和“1000”。

前一个字符或表达式的一个或多个匹配项

@

lo@t 可找到“lot”和“loot”。

如果要查找[、@等通配符时,要使用转义字符 \[,\@,例如本文介绍中就用到了转义字符。

更多正则表达式的使用方法参考微软Office官方教程使用正则表达式来查找和替换文本(高级)

http://office.microsoft.com/zh-cn/word-help/HA102350661.aspx#_Toc286834986

word设置页眉页脚常见问题

一些专业文档,例如论文等,常需要设置不同的页眉页脚,在百度知道上面有很多网友问到此类问题,现在集中回答这类问题。

1、设置不同的页眉,例如第一章节和第二章节不同。

首先,在第一章后插入分节符,可以是连续分节符,也可以是下一页分节符,根据需要而定。插入连续分节符后,两个章节仍在同一页,下一页分节符从下一页开始第二章节。然后插入页眉,定位到第二章节的页眉,取消选择链接到前一条页眉,然后就可以分别设置第二章页眉与第一章了。

yemei

2、不同章节设置不同页码格式

与设置页眉类似,首先要确定已经在第一章节和第二章节之间插入了分节符。同样定位到第二章节,然后跟页眉方法类似,取消链接到前一条页眉。有时需要两个章节之间页码格式不同、是否序前节编号等等。选择页眉页脚〉页码〉设置页码格式,若选择续前节,页码就继续第一章节继续编号,若想开始新的编号,就设置起始页码。

yejiao

3、每一章节页眉中插入章节标题,例如:

文章                         第一章 AAAA

文章                         第二章 BBBB

当然可以手工输入不同的内容,但是效率显然不高。word还有强大的域功能。此时,利用域可以免去繁琐的手工输入。首先设置每一章节的标题为某种统一格式,例如可以设置为标题1格式,然后双击打开页眉,选择插入选项卡〉文档部件〉域,在弹出的对话框中,类别选择链接和引用,域名选择StyleRef,样式名选择标题1,确定这样就插入了随标题内容变化的页眉。注意:此时不需要在两章节之间插入分节符了。

yu

4、页眉设置复杂下划线,例如上粗下细的文武线,此时用文字下划线无法解决,要用文字边框。选中所有页眉文字,开始选项卡〉段落〉边框和底纹

biankuang

word快速输入数学公式

微软的word可以说是最常用的办公软件,word的功能更是博大精深,其实有很多技巧可以帮助我们简化操作,提高输入速度。

相信很多理工科的朋友都有这种体会,输入数学公式是一件非常令人头疼的事情。即使使用MathType等其他工具也快不了多少,用鼠标点啊点啊的。自从word2007开始,公式可以采用线性输入的方法,然后配合使用快捷键,输入公式跟输入文本一样轻松。

例如,在word2007以及2010中,要输入下面的公式:

image

按下 Alt+= ,然后在键盘输入 [-ℏ^2/2m d^2/(dz^2 )+U(z) ]ξ(z)=Eξ(z)

然后回车即可。然而一些特殊字符ℏ,ξ的输入还是比较麻烦。通过定义快捷键,例如定义Alt+H,输入ℏ,定义Alt+A,输入α,这样输入特殊符号就快多了。

通过这两个技巧,轻松输入数学公式。

谷歌文档 Google Docs

几年前,谷歌就推出了Google Docs(谷歌文档)(可能是最早的),谷歌文档可以上传、在线编辑或创建word、ppt、excel、绘图文档。现在谷歌文档支持微软Office格式和OpenOffice格式。谷歌文档推出比较早,技术也相当成熟,使用谷歌文档在线编辑的文档能达到专业Office软件的效果,并且还能在线共享。

gd

谷歌文档的word功能能编辑复杂的数学公式、图文混排、项目编号、下载离线文档、绘图、在线共享等等,非常不错,推荐大家试试。

gd2

试用Office 365

前天申请了Office 365 Beta Small Business的试用,今天收到了注册邮件,注册过程没什么特别就是暂时还没有中国大陆语言也没有简体中文,下图是Office 365的首页

365o

Office 365 outlook和软件界面完全一样,注册时会根据注册邮箱分配一个邮箱,另外还可以配置其他电子邮件账户,就和使用软件版一样。更强大的是office 365有sharepoint服务。

365

下图是sharepoint个人主页

365share

另外我试用了一下word,office 365的word功能和hotmail邮箱免费使用的web office app界面和功能都一样,office 365里面word的功能和软件的差距仍然比较大,其他的基本能实现和软件一样的功能。该word功能适合阅读word文档,但是排版功能欠缺,不能按照页面视图排版,图片不能设置环绕格式。不过,这只是Beta版,正式版也许会增强此功能。

weboffice

word快速输入数学公式

微软的word可以说是最常用的办公软件,word的功能更是博大精深,其实有很多技巧可以帮助我们简化操作,提高输入速度。

相信很多理工科的朋友都有这种体会,输入数学公式是一件非常令人头疼的事情。即使使用MathType等其他工具也快不了多少,用鼠标点啊点啊的。自从word2007开始,公式可以采用线性输入的方法,然后配合使用快捷键,输入公式跟输入文本一样轻松。

例如,在word2007以及2010中,要输入下面的公式:

clip_image002[6]

按下 Alt+= ,然后在键盘输入

[-ℏ^2/2m d^2/(dz^2 )+U(z) ]ξ(z)=Eξ(z)

然后回车即可。然而一些特殊字符ℏ,ξ的输入还是比较麻烦。通过定义快捷键,例如定义Alt+H,输入ℏ,定义Alt+A,输入α,这样输入特殊符号就快多了。

通过这两个技巧,轻松输入数学公式。

腾讯云图