이 스크립트에서 반복 오류 메시지를 제거하려면 어떻게 해야 합니까?

이 스크립트에서 반복 오류 메시지를 제거하려면 어떻게 해야 합니까?
#!/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

두 가지 질문이 있습니다. 첫째, 잘못된 형식의 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를 실행하고 계신지 몰라서 어떻게 찾으시는지는 모르겠지만, 해결하셔야 할 부분이 바로 그것입니다. 우분투에서는도구는 texlive-extra-utils도구는 소프트웨어 패키지입니다., Ubuntu를 실행 중인 경우 다음을 시도해 볼 수 있습니다.

sudo apt install texlive-extra-utils

Arch에서는 AUR의 일부로 찾을 수 있으므로 pdfcropmargins시도해 보십시오( trizen선호하는 AUR 관리자로 교체).

trizen -S pdfcropmargins

관련 정보