XeLaTeX 在 Mac 上报 Font xxx does not contain script 'CJK' 的解决办法

在新的 Mbp 上新装的 XeLaTeX,编译一个之前写好的文档,报 Font 'Songti SC' does not contain script 'CJK'。打开 Mac 的 Font Book 应用,试了几种中文字体都不行。Google 了一下,这里列出了所有支持 CJK 的字体。下载了其中列举的文泉驿和网上找到的微软字体都有一些问题,特别是微软的字体,放到 Mac 中都是方块。

Wiki 中提到了微软的 Office 中是有简体中心字体的,搜索一下本机:locate ttf|grep -i song|grep -i micro,得到以下结果:

/Applications/Microsoft Excel.app/Contents/Resources/DFonts/Fangsong.ttf
/Applications/Microsoft OneNote.app/Contents/Resources/DFonts/Fangsong.ttf
/Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/Fangsong.ttf
/Applications/Microsoft Word.app/Contents/Resources/DFonts/Fangsong.ttf

open /Applications/Microsoft\ Word.app/Contents/Resources/DFonts/Fangsong.ttf 打开字体文件,点击安装,忽略报错,直接安装。拿到 PostScript 名称 FangSong,放到代码中,编译成功。


2018-03-29 XeLaTeX

XHProf 定制采样方法

XHProf

XHProf 是 Facebook 开源出来的一个php轻量级的性能分析工具,跟Xdebug 类似,但性能开销更低,还可以用在生产环境中,也可以由程序开关来控制是否进行 profile。


2017-10-19 Performance, PHP

Laravel 5.2 的一处严重性能问题

mb_strpos 的性能问题

最近发现 Laravel 在处理某类队列任务时时间超长,经排查发现 src/Illuminate/Queue/Jobs/Job.php 文件中的 rolveQueueableEntity 使用了 Illuminate Str 的 startsWith,此方法中使用了 mb_strpos 方法。mb_strpos 的性能非常差1,在处理大 string (100M以上) 时会产生严重性能问题。可以看到这里处理的数据有一种是序列化后的 Job 实例,是有可能出现大的 string.


2017-10-08 Laravel, Performance, PHP

Elasticquent 的两个bug

Elasticquent 是与 Larave Model Eloquent 结合的 Elasticsearch 客户端,它可以轻松的将 Eloquent 中定义好的数据和关系映射并同步到 Elasticsearch 中。


2016-05-29 Laravel, Elasticsearch

Laravel 取出所有的 router 信息列表

在做后台权限系统的时候需要将所有在框架中注册的 Router Names 同步到数据库中以便后台配置权限,可以使用 Laravel 中全局变量 $app 中获取到相关信息:

global $app;

//Illuminate\Routing\Router Object
$routers = $app['router'];

//Illuminate\Routing\RouteCollection Object
$router_collection = $routers->getRoutes();

取出 Route Collection 后就可以遍历取出 Illuminate Routing Route 对象,读出需要的信息。比如:

$router->domain();
$router->getName();

2016-01-31 Laravel, Web

迎面可以碰到几辆车

2014 年的最后一天,写个小问题,没有答案。

A, B 两地,A 开往 B 的列车每整点发车,10 小时到达;B 开往 A 的列车,每半点发车,12 小时到达。那么问题来了,A 出发的列车到达 B 时迎面会遇到多少辆从 B 驶向 A 的列车。 限时 3 分钟。


2014-12-31 puzzle