为了方便给学生展示Stata运行结果,尝试搭建一个支持Stata
和R
的Jupyter Notebook。
考虑到只使用32个学时,直接上Docker算了。结果碰到一些坑,记录一下以备后续查看。
Docker 镜像选择的问题
为了方便,选择使用 Jupyter Docker Stacks所提供的jupyter/minimal-notebook
。结果遇到几个坑:
- 由于上游源的问题,环境变量里无法设置密码。只好将密码加入到启动命令里:
start-notebook.sh --NotebookApp.password=*****
中文字体问题
默认镜像并不支持中文字体,导出PDF时,所有的中文都变成了空白字符。因此需要手动添加中文支持。
- root权限进入docker
docker exec -it --user root Jupyter /bin/sh
- 安装中文字体
sudo apt update && sudo apt upgrade -y && sudo apt install fonts-wqy-microhei
可通过fc-list
查看是否安装成功
3.修改 latex 模板
修改/opt/conda/share/jupyter/nbconvert/templates/latex/base.tex.j2
文件。
在文档开头添加
\setmainfont{WenQuanYi Micro Hei}
\setsansfont{WenQuanYi Micro Hei}
\setmonofont[Scale=0.9]{WenQuanYi Micro Hei Mono
可放置于 fPDFTeX
部分后面。
添加Stata
支持
虽然Stata 17.0
正式支持Python了,但是还是选择使用stata_kernel
,因为看起来更直观。
具体安装回头再写。
注意要点
1, Stata 16 需要 libpng 12.0 的支持,然而需要额外安装
sudo apt install software-properties-common
sudo add-apt-repository ppa:linuxuprising/libpng12
sudo apt update
sudo apt install -y libpng12-0
2, 为了显示图片,使用svg 格式,
需要在notebook 里运行 %set graph_format svg 一次