pdflatex 명령줄 컴파일 출력 숨기기

pdflatex 명령줄 컴파일 출력 숨기기

내 프로그램은 여러 출력을 생성합니다. .tex 파일을 컴파일했고 그 중 일부는 명령줄에서 생성됩니다. pdf-latex의 편집 정보는 나에게 쓸모가 없으며 명령줄 출력을 읽을 수 있도록 숨기고 싶습니다.

나는 보았다이것사이트에서는 일부 상자 두께를 지정해야 한다고 언급했지만 이에 상응하는 명령줄을 찾지 못했습니다.

답변1

모든 pdflatex출력을 리디렉션할 수 있습니다.

  • sh의 경우:pdflatex ... > /dev/null 2>&1
  • cmd의 경우:pdflatex ... > NUL 2>&1

또는 다음 옵션을 사용할 수 있습니다 -quiet.

pdflatex -quiet ...

답변2

제 경우에는 모드가 없습니다 -quiet. 그래서 나는 -interaction=batchmode제안한대로 논쟁을 사용해야했습니다 .앤드류'에스논평.

그러나 또 다른 문제가 발생했습니다. 무엇이 잘못되었고 왜 잘못되었는지 알 수 없습니다.오류도 억제됩니다.batchmode.

내가 사용한 결과는 오류만 출력하기 위해 pdflatex를 사용하여 모든 의 출력을 억제하는 것입니다.grep

: | pdflatex -halt-on-error src.tex | grep '^!.*' -A200 --color=always 

-halt-on-error기본적으로 오류 발생 시 대화형 모드를 사용할 수 없기 때문에 사용합니다 ( grep프로그램과 사용자 간의 대화가 비활성화됨). 또한 pdflatex입력 메시지가 표시되지 않도록 하려면 출력 없이 명령을 파이프로 연결해 보겠습니다( :command).

또한 주장을 설명하겠습니다 grep.

  • ^!.*
    • pdflatex의 출력에서 ​​검색할 문자열
    • !오류 줄로 간주되는 로 시작하는 모든 줄과 일치합니다 .
  • -A200
    • 매 경기 후 200줄 출력
    • 이렇게 해서 나는 확실히일치하는 오류 줄 다음에 관련 정보도 인쇄합니다.
  • --color=always
    • 이는 무엇이 잘못되었고 왜 발생했는지 명확하게 알 수 있도록 컬러 출력을 제공합니다.문제는 굵은 빨간색이에요

래퍼 스크립트

저는 이 목적을 위해 더욱 편리한 솔루션을 제공하기 위해 래퍼 스크립트를 만들었습니다. 사용법은 pdflatex/ 자체 와 거의 동일합니다 pdftex. 로 확인하시면 됩니다CTAN 패키지또는GitLab 저장소.

빠른 설치

이 oneliner를 사용하여 최신 버전을 설치하는 방법은 다음과 같습니다.

curl -s https://gitlab.com/jirislav/pdftex-quiet/raw/latest/pdftex-quiet | \
    sudo tee /usr/local/bin/pdftex-quiet >/dev/null \
    && sudo chmod +x /usr/local/bin/pdftex-quiet \
    && sudo ln -sf /usr/local/bin/pdftex-quiet /usr/local/bin/pdflatex-quiet

다음은 래퍼 스크립트를 실행하는 방법의 예입니다.

pdftex-quiet compile-me.tex
# You may also provide additional attributes to `pdflatex`
pdflatex-quiet -output-format=dvi -output-directory=/tmp compile-me.tex

pdflatex-quiet/ 스크립트 의 버전이나 도움말을 표시할 수도 있습니다 pdftex-quiet.

pdflatex-quiet -v  # or --version
pdflatex-quiet -h  # or --help

pdflatex-quiet또한 와 의 차이점은 pdftex-quiet,여기에 설명된 대로존경받습니다 - Denis Bitouzé의 의견 덕분입니다.

답변3

앞으로,https://ctan.org/pkg/texfot이 문제를 해결하려는 시도는 tex 엔진의 장황한 출력을 제거하는 동시에 흥미로운 메시지(실제로 뭔가 하고 싶은 메시지)를 표시하는 것이었습니다. --칼

답변4

업데이트 2023-02-05

나는로 전환했다지각의더 이상 아래 솔루션을 사용하지 마세요.

tex-to-pdf 컴파일러 bash 함수

나는 결국 다음의 답변을 결합했습니다. 루벤브브, 앤드류그리고 지리슬라프 그리고 그것을 내 .bashrc.

짧은 버전

모든 출력은 .txt파일로 리디렉션됩니다. 해당 파일의 오류 메시지가 표시되고 .txt파일이 제거됩니다.

다음 기능을 다음과 같이 넣을 수 있습니다 .bashrc.

function tex-pdf {
        pdflatex -halt-on-error -interaction=nonstopmode $1 > $1.txt
        grep '^!.*' --color=always $1.txt
        rm $1.txt
}
export -f tex-pdf

다음과 같이 사용할 수 있습니다.

$ tex-pdf report

긴 버전

BibTeX를 사용하거나 컴파일 중에 생성된 파일을 제거하고 싶지만 필요하지 않은 경우 다음 방법으로 기능을 확장할 수 있습니다.

function tex-pdf {
    printf "Step 1/4 - pdflatex\n"
    pdflatex -halt-on-error -interaction=nonstopmode $1.tex > $1.txt
    grep '^!.*' --color=never $1.txt

    printf "Step 2/4 - bibtex\n"
    bibtex $1.aux > $1.txt
    grep '^!.*' --color=never $1.txt

    printf "Step 3/4 - pdflatex\n"
    pdflatex -halt-on-error -interaction=nonstopmode $1.tex > $1.txt
    grep '^!.*' --color=never $1.txt

    printf "Step 4/4 - pdflatex\n"
    pdflatex -halt-on-error -interaction=nonstopmode $1.tex > $1.txt
    grep '^!.*' --color=never $1.txt

    rm -f $1.txt $1.aux $1.bbl $1.blg $1.log $1.out $1.toc
}
export -f tex-pdf

코드에 오류가 없으면 출력은 다음과 같습니다.

$ tex-pdf report
Step 1/4 - pdflatex
Step 2/4 - bibtex
Step 3/4 - pdflatex
Step 4/4 - pdflatex

관련 정보