私のプログラムは複数の出力を生成します。.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
、出力のないコマンド (:
コマンド) をパイプします。
議論についても説明しましょうgrep
:
^!.*
- pdflatex の出力で検索する文字列
- で始まるすべての行に一致し
!
、エラー行と見なされます。
-A200
- マッチするたびに200行を出力する
- こうすることで私は確実に一致したエラー行の後に続く関連情報も印刷します。
--color=always
- これにより、色付きの出力が提供され、何が問題で、なぜ問題があったのかが明確にわかります。問題は太字の赤です
ラッパースクリプト
この目的のために、より便利なソリューションを提供するラッパースクリプトを作成しました。使い方はpdflatex
/pdftex
自体とほぼ同じです。CTANパッケージまたはGitLabリポジトリ。
クイックインストール
このワンライナーを使用して最新バージョンをインストールする方法は次のとおりです。
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これは、この問題を解決するための私の試みでした -- テキサス エンジンからの冗長な出力を排除しながら、興味深いメッセージ (実際に対処したいメッセージ) を表示しました。 --karl
答え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