#!/bin/bash
PREAMBLE='\usepackage{fontspec}\setmonofont{Source Code Pro}\usepackage{xeCJK}\setCJKmonofont{Noto Sans Mono CJK SC}\pagestyle{empty}'
for f in "$@"; do
if [[ -s "$f" ]]; then
pygmentize -f tex -O "style=$STYLE,linenos,full,preamble=$PREAMBLE" $f \
| xelatex -jobname=$(basename $f) -output-directory=$SCRATCH
else
echo $ERR "Error: File <$f> not found." && exit 1
fi
[[ "$STYLE" = "default" ]] \
&& pdfcrop $SCRATCH/$(basename $f.pdf) $(basename $f | tr . -).pdf \
|| pdfcrop $SCRATCH/$(basename $f.pdf) $(basename $f | tr . -)-$STYLE.pdf
(( ALL == 1 )) \
&& { pygmentize -f tex -O "style=bw,linenos,full,preamble=$PREAMBLE" $f \
| xelatex -jobname=$(basename $f) -output-directory=$SCRATCH; \
pdfcrop $SCRATCH/$(basename $f.pdf) $(basename $f | tr . -)-bw.pdf; }
done发布于 2020-06-13 15:19:33
你有两个问题。首先,您似乎试图编译格式错误的LaTeX文件。这些是LaTeX错误,与脚本本身无关:
! LaTeX Error: File `\def {\char `\\}.sty' not found.
Type X to quit or to proceed,
or enter new name. (Default extension: sty)
Enter file name: ! Argument of \@firstofone has an extra }.
\par
l.105 \AtBeginDocument
{ \xeCJK@document@hook }
?
! Emergency stop.
\par
l.105 \AtBeginDocument
{ \xeCJK@document@hook } 为了解决这些问题,您需要检查您的LaTeX代码。您可能想尝试将代码张贴在https://tex.stackexchange.com/上并询问那里。
您所得到的唯一shell错误是,您似乎缺少了一个命令:
./src2pdf.sh: line 65: pdfcrop: command not found您正在尝试运行一个名为pdfcrop的命令,但这在您的系统中并不存在。我不知道你在运行哪个操作系统,所以我不知道你怎么能找到它,但这就是你需要解决的问题。在Ubuntu上,该工具是texlive-extra-utils套餐,所以如果您正在运行Ubuntu,您可以尝试:
sudo apt install texlive-extra-utils在Arch上,您可以在AUR上找到它作为pdfcropmargins的一部分,所以尝试(用您喜欢的AUR管理器替换trizen ):
trizen -S pdfcropmarginshttps://unix.stackexchange.com/questions/592709
复制相似问题