Plain TeX plus OPmac 巨集:設定頁面(背景)顏色

Plain TeX plus OPmac 巨集:設定頁面(背景)顏色

摘要:在 TeX + OPmac 中新增巨集來設定頁面背景


在......之外http://petr.olsak.net/opmac-tricks-e.html#coltext...OPmac 提示和技巧將附加巨集清單新增至核心opmac.tex巨集包:

下面的程式碼建議作為在文件中更改顏色的方法,與\input color將顏色包整合到要在 TeX 中設定的文檔的可用巨集程式碼中的 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 輸出之間切換的眼睛負擔。為了使兩者之間的來回同質化,我們都將生命的一部分花在“螢幕上”,這並不是小事。到了列印時間,因為其餘的格式是相同的,編譯為黑白列印,就像\input opmacmodified_to_proofread_onscreento\input opmac_modified_to_print或添加一個或兩個條件一樣簡單opmac_modified.tex

簡化的問題:在 TeX + OPmac 中輕鬆設定頁面背景的附加宏

進一步研究這個問題,color.tex 巨集無論使用浮動還是簡單的\lipsum[2-10]文本,運行幾頁,都會在頁面的左側和底部/頂部給出“出血”,第二頁。

然後,在任何有關顏色及其在頁面背景顏色方面的使用的文檔中都絕對保持沉默。假設「顏色」意味著局部或全域的文字著色,而「背景」著色是局部問題,為「盒子」著色。

事後看來,理論上的能力應該是有的,畢竟乳膠都是建立在tex基元之上的,頁面的乳膠顏色背景不可能是從天上拉下來的,同樣OPmac宏可以輕鬆地在本地渲染背景顏色。

可以說,排版只是為了印刷而進行,使問題變得微不足道,然後,排版作為一個過程需要從源代碼跳到屏幕上的編譯,這足以在創作過程中將背景調整為背景源(如果是vim -solarized)的可用性。畢竟不是那麼微不足道。

以原則性的方式討論 tex 中頁面著色的能力將是非常令人滿意的,並且另一方面確信它的非必要性,然後是相關的明確的需要。

答案1

透過使用 OPmac 本機巨集解決了設定頁面背景顏色的問題,並省略了與某些 OPmac 顏色定義等產生衝突的 color.tex 巨集程式碼。第二個好處是緊湊性,一是編碼應該有據可查,二是緊湊。兩個條件都滿足了。

Macro (0021) - petr.olsak.net/opmac-tricks-e.html#coltext 公共頁面上的 PO 08. 2013 是在文件範圍內完美創建頁面背景顏色所需的所有緊湊程式碼。

Petr Olsak 在發布問題的第一天就提到了他的公開網頁上提供的宏。

這是程式碼範例:頁面著色所需的一切:

    \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

相關內容