TEXMACS在ubuntu下的使用

TEXMACS在ubuntu下的使用

1 编译好的texmacs

从官网下载编译好的texmacs,然后在linux下设置好环境变量后.运行texmacs,发现输入中文后,texmacs显示乱码(会显示一些奇怪的字符).如果打开工具栏的帮助-用户手册的一些中文文档,能够正常显示中文,那么该问题不是由于没有安装中文字体库引起的.
然后查看命令行终端显示:
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
之所以不能显示中文正是因为iconv_open这个函数打开失败
libiconv库是GNU下的一个项目.可以从官网重新编译安装.不过这样做后并没有解决原来的问题.事实上这个问题是因为在/usr/lib目录下有一个gconv文件夹,这个文件夹中存放了一些icov需要用到的国际编码转换的一些库.但是这个库在/usr/lib下并不存在.而是存在于/usr/lib/i386-linux-gnu/和/usr/lib/x86_64-linux-gnu/两个目录下.而texmacs在调用iconv_open时,试图在/usr/lib目录下寻找,但是无法找到.因此导致了上述问题.
解决办法:把/usr/lib/i386-linux-gnu/目录下的giconv拷贝到/usr/lib/目录下,但是这个只有在32位ubuntu下才能成功.在64位下不能成功.具体原因,我猜应该涉及到32位程序调用64位库的问题.要根本解决这个方法,只有下载源码包,重新安装

2 源码安装texmacs-1.99.5

从官网上下载texmacs-1.99.5源码.
解压缩
在texmacs解压缩目录下运行./configure
发现./configure错误,报出:

configure: error: compulsory library gmp not found

2.1最近研究GNU项目的编译automake工具后的解决方法

很简单,只要下载automake工具,然后在TexMacs根目录下执行autoconf语句就可以重新生成正确的configure文件,然后执行./configure

2.2以前的解决方法

然后我重新安装了gmp的库,发现这个问题仍然没有解决.到网上搜了一下,说是pkg-config的问题,没有pc文件.但是添加了后还是没有解决问题.
后来发现gmp是guile的依赖库,安装了guile后,gmp已经自动安装了.但是configure始终找不到.然后查看目录下的config.log(这个是运行./configure导出的日志文件),然后发现如下的log:
g++ -o conftest -pthread -I/usr/include -I/usr/include/guile conftest.cpp -lgmp -lguile -lltdl -lgmp -lcrypt -lm -lintl >&5
/usr/bin/ld: cannot find -lintl
collect2: error: ld returned 1 exit status
是因为缺失了intl的库导致出现这种奇怪的问题.至于为什么configure报gmp的错我也不知道.另外这个-lintl这个参数是configure自己添加进去得到的.而非运行guile-config得到的.
因此解决办法就比较简单了,sudo gedit configure,打开configure文件,搜索”-lintl”字符串,将其出现的地方全部删掉.这样编译configure就能通过.
或者有人担心删掉-lintl出现问题.那怎么办?intl这个库是gettext的依赖库,只要安装了gettext,这个库就会自动安装.但是编译时用-lintl选项仍然找不到intl库.可以cd /usr后,用命令locate libintl命令或者find /usr -name “libintl”命令查找libintl库所在的位置,我的64位ubuntu16.10下运行结果如下:
/usr/include/libintl.h
/usr/lib/x86_64-linux-gnu/preloadable_libintl.so
发现有一个preloadable_libintl.so的库,然后sudo cp preloadable_libintl.so libintl.so,把这个文件拷贝成libintl.so文件,这样configure就能找到这个库了.至于库名称前为什么有一个preloadable我也不清楚
继续./configure 又会发现报出 -lGuile错误
继续gedit configure ,然后搜索-lGuile,把它改成-lguile,这应该是一个bug,大小写错误
继续configure,这样就应该configure成功了

make出现的错误

然后make
发现又报错了
g++ -include config.h -ISystem -ISystem/Boot -ISystem/Misc -ISystem/Classes -ISystem/Files -ISystem/Language -ISystem/Link -IKernel -IKernel/Types -IKernel/Abstractions -IKernel/Containers -IData -IData/Convert -IData/Document -IData/String -IData/Observers -IData/Tree -IData/Drd -IData/History -IGraphics -IGraphics/Types -IGraphics/Colors -IGraphics/Fonts -IGraphics/Handwriting -IGraphics/Renderer -IGraphics/Gui -IGraphics/Mathematics -IGraphics/Spacial -IGraphics/Pictures -IGraphics/Bitmap_fonts -I../TeXmacs/include -IScheme -IPlugins -IPlugins/Iconv -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -D_REENTRANT -DG_gr_system_ -c ./System/Misc/._sys_utils.cpp -o Objects/._sys_utils.o
./System/Misc/._sys_utils.cpp:1:1: warning: null character(s) ignored
./System/Misc/._sys_utils.cpp:1:2: error: stray ‘\5’ in program
发现是因为这个文件._sys_utils.cpp导致错误.这个问题出现的原因是:这个文件也被makefile当成是源代码进行编译.事实上不是.把这个文件删除即可.
然后make install.成功

2.3运行出现的问题

然后运行texmacs,又发现关于输入法新的问题(我用的是fcitx).
1.输入法光标跟随问题.如果编辑界面不停下拉的话,那么输入法提示框会越来越低,直到消失到底部.但是升级到ubuntu17.04后,输入法提示框仍然会下降,但是不会消失(还是位置不对)
这是源码的一个bug,如果想解决这个问题,要修改源码.具体的解决方法见
https://www.douban.com/group/topic/55268688/
2.如果点击texmacs的工具栏(比如插入标题什么的),然后在编辑界面进行中文输入,这时texmacs不会响应中文输入.然后把texmacs程序切换出去(随便点个其它应用,调出中文输入法),再切换回来,中文输入法又能重新使用了(windows下的texmacs也有类似问题).但有时候又没这个问题.不知道在ibus输入法框架下,有没有这个问题.在texmacs下进行中文输入,会首先进入pre edit状态下(见工具栏,会转化状态),但是不响应的情况下,这个状态并不会出现.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值