내 프로그램은 여러 출력을 생성합니다. .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