我正在尝试创建一个从命令行编译我的 latex 文档的函数。我的问题是第一次运行时引用从未显示出来,所以我通常最终会运行这个函数两次……除非我正在处理大型文档,否则这通常不是什么大问题。
有人知道为什么参考文献第一次可能不会显示出来吗?
我根据 TexMaker 的功能来设计我的功能:选项/配置 TexMaker/快速构建
PdfLaTeX + Bib(la)tex + PdfLaTeX (x2) + View Pdf
有什么想法吗?
generatePDF() {
GREEN='\033[1;32m'
NC='\033[0m' # No color
echo -e "${GREEN}Running pdflatex ${NC}"
pdflatex -synctex=1 -interaction=nonstopmode -enable-write18 -shell-escape $1.tex
# TODO: needs more error testing for next commands...
echo -e "${GREEN}Running bib(la)tex...${NC}"
bibtex $1.aux
echo -e "${GREEN}Running pdflatex again...${NC}"
pdflatex -synctex=1 -interaction=nonstopmode -enable-write18 -shell-escape $1.tex
echo -e "${GREEN}Opening pdf... ${NC}"
gnome-open $1.pdf
}
cleanPDFdir() {
GREEN='\033[1;32m'
NC='\033[0m' # No color
echo -e "${GREEN}Removing auxiliary files...${NC}"
rm -v $1.pdf
rm -v $1.aux
rm -v $1.bbl
rm -v $1.bbg
rm -v $1.log
rm -v $1.synctex*
}
alias pdfmake='generatePDF'
alias pdfclean='cleanPDFdir'
我仅通过指定主文件的名称(不带扩展名)来运行该函数:
pdfmake my_tex_file
来自评论的附加信息:我正在使用 emacs,因此开始将这个脚本放在一起,以便我可以像使用 TexMaker 的快速构建时一样快速进行编译。
我刚刚在这里和 Stack Overflow 上找到了各个命令,所以我真的不明白每个命令在做什么。
答案1
尝试latexmk my_tex_file
或
latexmk -xelatex my_tex_file