本文记录如何利用 macOS 的「自动操作」,在 Finder 右键菜单中添加「Open in VSCode」功能。
使用 std::unique_ptr 管理 FILE 指针
尽管 C++ 提供了 fstream 文件流来读写文件,但对操作符 << 和 >> 的重载令很多 C++ 程序员不爽。因而这些程序员还会使用 C 风格的文件流 FILE 来读写文件。
不过,C++ 的好处也是显而易见的。RAII 的出现让资源的管理变得简单。文件流对于程序来说,也是一种资源。本文的目的是让 C 风格的文件流 FILE 可以更方便地享受 RAII 带来的便利。
利用 markdown 宏包实现手稿的双线发布
前作介绍了「你喜爱的 Markdown 写作,现更以 LaTeX 呈现」。
至此,Markdown 手稿在 markdown 宏包的帮助下,能被 LaTeX 解析,而它自身也能被很多其他的引擎解析。例如,可以被解析成 HTML 页面,而后发布成为网页。(如 GitHub Pages)那么,一个很自然的引申就来了:是否可以通过巧妙的设定,实现双线发布呢?
本文为解决这个问题提供一些思路。
手把手教你在 MacTeX 上使用 CJK
时至今日,劝说用户不使用 CJK 已磨破了无数张嘴皮。然而,因为各种各样的历史原因,仍然有很多用户因各种理由需要继续使用 CJK。当然,这些理由大多数是不充分的(在我看来),但仍有一些站在普通用户的角度是充分的。因此,如果你因为如下原因使用 CJK,我表示愿意提供一定的协助:
- 需要投稿某些中文期刊,但这些期刊的模板使用了 CJK 作为中文支持方式的;
- 与他人协作时,群体意志决定使用 CJK 而你无法反抗的。
对于 Windows 用户,出于上述原因需要使用 CJK 时,可在 TeX Live 中搭配王越、吴凌云等人提供的 zhwinfonts.tex,借助 zhmetrics 技术使用 CJK。但对于 macOS 用户,zhwinfonts.tex 则不好用。因为 zhwinfonts.tex 是为 Windows 上的中易字体编写的。
我曾经写过一篇文章在 MacTeX 中使用中文模板详细阐述这一系列问题。但其中关于 CJK 的部分,仍有用户反馈无法使用。于是有这篇文章——不介绍详细原理,只说详细步骤。
利用 Excel 当中的 MATCH 和 XLOOKUP 函数实现集合与字典(映射)访问
集合与字典(映射)是程序设计当中常见的两种容器类型。在 C++ 的标准模板库中,它们的实现分别是 std::set/std::multiset 与 std::map/std::multimap。(分别还有利用哈希表实现的 unordered 版本)其中,字典(映射)的键(Keys)可视作组成一个相应类型的集合。
对于集合或字典的读取,经典操作有两个:判断目标元素是否在集合当中、根据目标键获取相应值。
这篇文章讲讲在 Excel 中如何实现这两个功能。