プレーンTeXプラスOPmacマクロ:ページ(背景)色の設定

プレーンTeXプラスOPmacマクロ:ページ(背景)色の設定

概要: TeX + OPmac でページ背景を設定するマクロを追加する


http://petr.olsak.net/opmac-tricks-e.html#coltext...OPmac のヒントとコツ、コアopmac.texマクロ パッケージへの追加マクロ リスト:

ドキュメント内の色を変更する方法として提案されている以下のコードは、\input colorTeX で設定されるドキュメントに使用可能なマクロコードにカラー パッケージを統合する TeX の方法と競合します。

\def\color#1{\localcolor\colorA#1\relax}
\def\colorA#1#2\relax{\uppercase{\csname#1}#2\endcsname\ignorespaces}

OPmac は色を提供しますが、文書のページの色を設定するマクロは含まれていません。文書のすべてのページを特定の背景色に色付けするには、適切なボックスを定義すれば解決します... まだ私のスキルを超えているため、 が発生します。\input color後者はほとんど冗長です。なぜなら、OPmac は、色/色付き背景をローカルでオンザフライで変更する上記のマクロを含め、すべてにおいて色機能を提供しているからです。

質問: 適切な「ボックス」を定義する短い追加マクロと、ページの背景を設定するための追加のユーザー コマンドを提供できる人はいますか。色が実装されているので。

理由:Petrは、スタイルではなく機能性に重点を置いたパッケージを提供した。追加のユーザー機能の要求。第二に、color.tex背景色を追加するだけのマクロ ファイルをインクルードし、競合を解決するために上記の OPmac-tricks マクロをコメント アウトするのは、報復行為です。第三に、最小限の堅牢なコード ベースを持つという Petr の哲学は、color.tex上記のコードだけをインクルードすることで抑制されています。

個人的な理由: 背景色とテキストの色分けによる校正は、著者/プログラマーにとって大きなメリットです。ほとんどの印刷された PDF の白地に黒は、ソース (vim-solarized) と PDF 出力を切り替えるときに目の負担になります。両者のやり取りを均一化することは、私たち全員が人生の一部を「画面上」で過ごすことであり、些細なことではありません。印刷時には、残りの書式設定は同一であるため、印刷用に白黒にコンパイルすることは、 または に 1 つまたは 2 つの条件を追加する\input opmacmodified_to_proofread_onscreenのと同じくらい簡単です。\input opmac_modified_to_printopmac_modified.tex

簡単な質問: TeX + OPmac でページの背景を簡単に設定するための追加マクロ

さらに詳しく調べてみると、color.tex マクロは、フロートや単純な\lipsum[2-10]テキストを使用しているかどうかに関係なく、数ページ実行すると、2 ページ目以降にページの左下/上部に「ブリード」を生成します。

次に、ページの背景色に関する色とその使用に関するドキュメントにはまったく何も記載されていません。 「色」はローカルまたはグローバルなテキストの色付けを意味し、「背景」の色付けはローカルな問題であり、「ボックス」の色付けであると考えられます。

後から考えると、理論的な機能はそこにあるはずです。結局のところ、LaTeX は TEX プリミティブの上に構築されており、ページの LaTeX カラー背景を簡単に空から引き出すことはできませんが、OPmac マクロを使用すると、背景色をローカルで簡単にレンダリングできます。

タイプセッティングは印刷のためだけに行われるため、この問題は些細なものであると主張することもできますが、タイプセッティングのプロセスでは、ソースから画面上のコンパイルにジャンプする必要があります。これは、オーサリングのプロセス中に、使いやすさのために背景をソースの背景(vim-solarized の場合)に適応させる十分な理由です。結局のところ、それほど些細なことではありません。

原則的に TEX でのページの色付け機能について議論し、その機能が必須ではないことを納得し、次に適切な明示的な必要性を納得することは、非常に満足のいくことでしょう。

答え1

ページの背景色の設定に関する問題は、OPmac ネイティブ マクロを使用し、一部の OPmac 色定義などと競合していた color.tex マクロ コードを除外することで解決しました。2 つ目のボーナスは、簡潔さという要素です。コーディングは、1 番目によく文書化され、2 番目に簡潔である必要があります。両方の条件が満たされました。

petr.olsak.net/opmac-tricks-e.html#coltext パブリック ページのマクロ (0021) -- PO 08. 2013 には、ドキュメント全体のページ背景色を完璧に作成するために必要なコンパクトなコードがすべて含まれていました。

Petr Olsak 氏は、質問を投稿した最初の日以内に、自身の公開 Web ページで利用可能なマクロを参照しました。

ここにコードサンプルがあります。ページの色付けに必要なのはこれだけです。

    \def\prepghook{\pdfliteral{q \bgcolor\space k -0.996264 0 0 0.996264 -72 72 cm
  \nopt{\hoffset} \nopt{\voffset} -\nopt{\pdfpagewidth} -\nopt{\pdfpageheight} re f Q}}
\def\nopt#1{\expandafter\ignorept\the#1}

\def\setbasecolor#1{#1\expandafter\setbasecolorA#1\pdfblackcolor}
\def\setbgcolor#1{\expandafter\setbasecolorA#1\bgcolor}
\def\setbasecolorA#1#2#3{\def#3{#2}}

例:

\setbasecolor\Yellow
\setbgcolor\Blue

関連情報