BNU-FZH

fengzhenhua@outlook.com

近期想编写一个脚本,方便书写LaTeX文档,原因是当需要写的LaTeX文件变的越来越多的时候查找和编辑最新的文件就是一个问题了,同时在不同电脑上编辑一个LaTeX文件也会出现不同步的问题。虽然我们可以通过上传到gitlab仓库解决同步的问题,但是由于每次编写文件时都要逐步查找和Pull文件,写完之后又要Push, 这些重复的工作显然需要自动执行效率都会提高。这个脚本的目的就是来统一管理和简化使用vim写作的步骤。

目录的取得

由于系统语言的问题,默认保存目录的名称会有一些不同,但是规范的做法是将对应的文件保存到指定的位置。于是需要做的第一个工作就是取得正确的目录名称,当然我们可以使用ls -l 来查询目录,然后保存到一个变量中,也可以根据echo $LANGE变量先取得语言,当然我们一般只需要在中文和英文之间做出选择,然而这个方法却不是最佳的,因为如果增加支持的语言的话程序代码会相应增加。经过考虑,使用系统的目录变量是一个正确的选择,我使用提ArchLinux+Gnome3,这些默认的语言配置位于于~/.config/user-dirs.dirs

~/.config/user-dirs.dirs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/桌面"
XDG_DOWNLOAD_DIR="$HOME/下载"
XDG_TEMPLATES_DIR="$HOME/模板"
XDG_PUBLICSHARE_DIR="$HOME/公共"
XDG_DOCUMENTS_DIR="$HOME/文档"
XDG_MUSIC_DIR="$HOME/音乐"
XDG_PICTURES_DIR="$HOME/图片"
XDG_VIDEOS_DIR="$HOME/视频"

2023年09月15日星期五晴北京市北京师范大学, 在ArchLinux下使用pacman可以很方便的安装软件,但是一些官文源内没有且使用aur源也无法找到的软件就需要到软件官网下载对应的软件包,这里一个很方便的格式就是appimage, 原则上下载下软件包后赋与执行权限后就可以运行了,对于偶尔使用一二次的软件这个方法很省心,但是对于经学使用的软件则不方便,于是本文记录将appimage安装到gnome启动器的方法。

解压AppImage

AppImage格式是一种标准的Linux软件包格式,对于软件的.desktop文件和icon图片必须在包内指定位置,于是想要安装软件到启动器中,就需要先解压AppImage后取得.desktopicon文件。即

解压AppImage
1
alixby-3.23.62819-linux-x86_64.AppImage  --appimage-extract
阅读全文 »

2023年09月15日星期五晴北京市北京师范大学, 今天我的gitlab上配置的ssh密钥已经过期,所以需要重新配置一个新的密钥。于是重新一下ssh密钥

生成密钥

修改密钥存放目录.ssh权限

在生成密钥的存放时要注意,我今天多次测试不能保存,原来是.ssh目录所属权给了root而不是feng,于是修改了一下权限,即

修改.ssh的拥有者和组
1
2
sudo chmod feng ~/.ssh 
sudo chgrp feng ~/.ssh
阅读全文 »

2023年09月08日星期五雷阵雨北京市北京师范大学,打算尝试一下Archlinux下的新的Aur助手,安装命令为

paru
1
sudo pacman -S paru

详细用法参见: paru 进阶教程

使用paru安装软件时,首先解决github.com无法访问的问题,此参见: 解决ArchLinux使用yay或paru安装软件时从Github下载慢或不可下载的问题

为了避免每次下载时都进入审阅模式,请执行命令:

skipreview
1
paru --skipreview -S foobar

阅读全文 »

2023年08月12日星期六阴北京市北京师范大学, 离京前发一篇文章,以方便后面工作的需要。

绘图线型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'.'       point marker
',' pixel marker
'o' circle marker
'v' triangle_down marker
'^' triangle_up marker
'<' triangle_left marker
'>' triangle_right marker
'1' tri_down marker
'2' tri_up marker
'3' tri_left marker
'4' tri_right marker
's' square marker
'p' pentagon marker
'*' star marker
'h' hexagon1 marker
'H' hexagon2 marker
'+' plus marker
'x' x marker
'D' diamond marker
'd' thin_diamond marker
'|' vline marker
'_' hline marker
阅读全文 »

在使用 Neovim 后发现,配置好主题及底部状态栏后确定好看好用多了。于是在没有最终确定抛弃 vim 时,选择配置好 vim ,但是所有的文件都写入到 ~/.vimrc文件中,会影响vim的启动速度,于是这个问题的解决方法就是,将配置好的主题一并列在本博客,而在配置文件中只给出链接。

阅读全文 »

2023年08月02日星期三阴北京市北京师范大学, 前面文章写了一个克隆git仓库子目录的方法,此篇文章记录单独克隆一个仓库中子文件的方法。

克隆仓库中子文件
1
2
VimCFG=~/.vimrc
curl -o $VimCFG https://gitlab.com/fengzhenhua/script/-/raw/main/vimrc\?inline\=false

2023年08月02日星期三阴北京市北京师范大学, 为了保证 Neovim 的配置自动同步到 gitlab,再另外的机器上再同步升级配置和插件,这就需要将配置的子目录单独克隆到配置目录~/.config中,在网络上找到相应的方法,现记录于此方便大众。

clone 仓库的子目录
1
2
3
4
5
6
cd ~/.config/
git init # 初始化仓库
git remote add origin git@gitlab.com:fengzhenhua/neovimconfig.git #增加远程仓库
git config core.sparsecheckout true # 设置Sparse Checkout 为true
echo "nvim" >> .git/info/sparse-checkout # 将要克隆的目录下的子目录nvim加入
git pull --depth 1 origin main #pull 下来代码

注意:在上述代码中的第5行,nvim 是相对于目录 git@gitlab.com:fengzhenhua/neovimconfig 而言的,也就是完整目录应当为git@gitlab.com:fengzhenhua/neovimconfig/nvim 。 若是在nvim下的lua目录,则应当写为nvim/lua 做对应的取代。

参考文章:git clone仓库的一个子目录

2023年07月27日星期四小雨北京市北京师范大学, 最近开始准备写论文了,所以需要研究使用 LaTeX 写标准英文论文的方法。今天记录插入文献,插入参考文献有两种方式,用 BibTeX 和不用 BibTeX ,今天我们先来看使用 BibTeX 插入文献的方法.

生成文献引用的命令

创建完 .bib文件后,我们在\begin{document}后边正文里结尾处写上参考文献的类型

1
\bibliographystyle{unsrt}
  • plain-此格式的参考文献的条目的编号是按照作者的字母顺序

  • unsrt – 基本上跟 plain 类型一样,此格式的参考文献的条目的编号是按照引用的顺序,而不是按照作者的字母顺序

  • alpha – 类似于 plain 类型,当参考文献的条目的编号基于作者名字和出版年份的顺序

  • abbrv – 缩写格式

在源文件末尾加入以下命令,声明文献列表格式和调入数据库文件,同时在此位置处生成引用列表。

生成参考文献列表
1
2
\bibliographystyle{unsrt}
\bibliography{reference}

这里reference 就是你的 BibTeX 数据库文件 reference.bib

正文引用参考文献

LaTeX 提供了最基本的 \cite 命令用于在正文中引用参考文献:

1
\cite{引用文章名称}

“引用文章名称" 就是前边定义 @article 后面的名称,如下面的 \cite{simon2019sciences}

编译

编译带有参考文献列表的文件
1
2
3
4
xelatex foo.tex
bibtex foo.aux
xelatex foo.tex
xelatex foo.tex
  1. 第一次编译foo.tex文件,生成没有文献列表的PDF文件,同时将\cite命令产生的引用信息、\biblography指定的数据库名、\bibliographystyle指定的文献格式名写入到foo.aux辅助文件。
  2. 使用bibtex程序处理第一次编译得到的foo.aux辅助文件,按照其中记录的引用文献信息、从foo.bib数据库中提取出排版参考文献列表的LaTeX代码,写入foo.bbl文件。
  3. 再次编译foo.tex文件,读入上一步生成的foo.bbl文件,生成有文献列表的PDF文件,同时将\cite的引用信息再次写入foo.aux文件。
  4. 第三次编译foo.tex文件,读入前面生成的foo.bbl文件,在指定位置生成文献列表,读入上一步生成的foo.aux辅助文件,在引用处生成正确的引用编号信息,得到有正确文献列表和引用的PDF文件。
BibTex介绍

BibTeX 是什么?

BibTeX 是最为流行的参考文献数据组织格式之一。它的出现让我们摆脱手写参考文献条目的麻烦。我们还可以通过参考文献样式的支持,让同一份 BibTeX 数据库生成不同样式的参考文献列表。

BibTeX 数据库以 .bib 作为扩展名,其内容是若干个文献条目, 我们在此简单列举学术论文里使用较多的 BIBTEX 文献条目类别:

  1. article 学术论文,必需字段有 author, title, journal, year; 可选字段包括 volume, number,pages, doi 等;

  2. book 书籍,必需字段有 author/editor, title, publisher, year; 可选字段包括 volume/number,series, address 等;

  3. incollection 论文集中的一篇,必需字段有 author, title, booktitle, publisher, year; 可选字段包括 editor, volume/number, chapter, pages, address 等;

  4. inbook 书中的一章,必需字段有 author/editor, title, chapter/pages, publisher, year; 可选字段包括 volume/number, series, address 等。

阅读全文 »

2023年07月25日星期二晴北京市北京师范大学, 今天使用Python3绘图,发现当调用 tkinter 宏包时,系统报错, 解决方法为,安装 tkinter, 由于我使用的是 ArchLinux, 所以直接执行

install tkinter
1
sudo pacman -S tk