このスクリプトから繰り返しエラーメッセージを削除するにはどうすればよいですか?

このスクリプトから繰り返しエラーメッセージを削除するにはどうすればよいですか?
#!/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

ベストアンサー1

2つの質問があります。まず、間違った形式のLaTeXファイルをコンパイルしたいようです。これはLaTeXエラーで、スクリプト自体とは何の関係もありません。

! LaTeX Error: File `\def {\char `\\}.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name: ! Argument of \@firstofone has an extra }.
<inserted text> 
                \par 
l.105 \AtBeginDocument
                                 { \xeCJK@document@hook } 
? 
! Emergency stop.
<inserted text> 
                \par 
l.105 \AtBeginDocument
                                 { \xeCJK@document@hook } 

これを調べるには、LaTeXコードを確認する必要があります。コードを投稿してみてください。https://tex.stackexchange.com/そしてそこに尋ねてください。


あなたが得る唯一のシェルエラーは、コマンドが欠落しているようです。

./src2pdf.sh: line 65: pdfcrop: command not found

名前付きコマンドを実行しようとしましpdfcropたが、そのコマンドはシステムに存在しません。どのOSを実行しているのかわからないので、どのように見つけるのかわかりませんが、解決する必要があるのはそれです。 Ubuntuではツールは、texlive-extra-utilsツールはソフトウェアパッケージです。、Ubuntuを実行している場合は、次のことを試すことができます。

sudo apt install texlive-extra-utils

ArchではAURの一部として見つけることができるので、pdfcropmargins試してみてください(trizenお気に入りのAURマネージャに置き換えます)。

trizen -S pdfcropmargins

おすすめ記事