
Мне интересно отображать некоторые вещи (например, титульный лист) в полноцветном виде на экране, а при печати тот же объект/страницу отображать в черно-белом удобном виде.
В соответствии сэтот ТАК вопрос, в спецификации PDF есть встроенная функциональность для объектов Screen-Only и объектов Screen-And-Print. Также может быть способ добавить слой поверх черно-белой страницы, который отображает только полноцветную страницу на экране через PDF 1.5Дополнительные группы контентаособенность.
Сходным образом,этот вопросдемонстрирует выборочную печать текста через ocg-p
. Но не совсем понятно, как я могу использовать этот пакет так, как мне нужно.
Моя ситуация усугубляется тем фактом, что текст на моей цветной странице белый на темном фоне.
МВЭ:
Этот код показывает, как я в данный момент переключаюсь между цветным и черно-белым режимами. Я изменяю printincolor
переменную bool, чтобы внести изменения.
\documentclass[11pt]{article}
\usepackage[demo]{graphicx}
\usepackage{etoolbox}
\providebool{printincolor}
% Will set color title page and section headings
\setbool{printincolor}{false}
% Setup color if needed
\ifbool{printincolor}{%
\usepackage[pagecolor=none]{pagecolor}%
\definecolor{MyBlue}{HTML}{1b3667}%
\usepackage{afterpage}}{}
\begin{document}
% Begin Title Page
{
\thispagestyle{empty}
\ifbool{printincolor}{%
\pagecolor{MyBlue}%
\afterpage{\nopagecolor}}{}
\begin{center}
{\ifbool{printincolor}{\color{white}\sffamily}{\sffamily}% Set text color white or leave [default] black
\ifbool{printincolor}{\includegraphics[width=1.5in]{logo-gold}}{\includegraphics{logo-blue}}% put logo gold or blue
\\ \vskip 1in
\begin{huge}
\textbf{Title}
\vskip 0.1ex\rule{0.5\textwidth}{0.8pt}\vskip 1ex
Subtitle
\\
\end{huge}
\vfill\vfill
\begin{large}
Authors:\\
John Doe and Jane Doe\\
\end{large}
}
\end{center}
}
\end{document}
Как можно наложить друг на друга (или иным образом отобразить) две версии титульного листа таким образом, чтобы на экране отображался цветной вариант, а на печати он был черно-белым?
решение1
Решение, к которому я пришел (с большой благодарностью)cfrиСтивен Б. Сеглетеcза их ответы на моисвязанный вопрос) используется tikz
для наложения цветного слоя, а затем наложения на него монохромной версии, которая отображается только при печати.
Однако, поскольку решение использует Optional Content Groups (package ocg-p
), оно не имеет полной поддержки во всех просмотрщиках PDF. В частности, Adobe Reader является единственным просмотрщиком, который полностью поддерживает OCG, в то время как многие другие (Apple Preview, Skim и другие) будут откатываться к монохромной версии (они просто показывают все слои на экране по умолчанию, не учитывая флаги «только для печати» или «исходное состояние»). Несколько просмотрщиков (те, что основаны на poppler, т. е. в первую очередь те, что в Linux) будут деградировать, показывая только цветной слой на экране и на печати (соблюдая флаг «исходное состояние», но не включая монохромный слой для печати). Итак, суть в том, что ваш Milage может отличаться.
Но вот решение:
\documentclass[11pt]{article}
\usepackage[demo]{graphicx}
\usepackage{tikz} % Needed to draw titlepage elements
\usepackage{ocg-p} % For optional content groups
% Things to typeset on titlepage (since they are repeated twice
\newcommand{\titlematter}{%
\node [font={\huge\bfseries\sffamily}] at (.5\linewidth,-7) {Title};
\node [font={\huge\sffamily}] at (.5\linewidth,-10.625) {Subtitle};
\node [font={\large\sffamily}] at (.5\linewidth,-17) {Authors:\\ John Doe and Jane Doe};
\node (p) at (.25\linewidth,-9.00) {}; % nodes for line to connect later
\node (q) at (.75\linewidth,-9.00) {};
}
% Setup color if needed
\usepackage[pagecolor=none]{pagecolor}%
\definecolor{MyBlue}{HTML}{1b3667}%
\usepackage{afterpage}
\begin{document}
% Begin Title Page
{\thispagestyle{empty}%
\noindent
%% Color Version
\begin{tikzpicture}[overlay, remember picture, text=white, align=center]
\fill [fill=MyBlue] (current page.south west) rectangle (\paperwidth,\paperheight);
\node at (.5\linewidth,-2.125) {\includegraphics[width=1.5in]{logo-color}};
\titlematter
\draw [color=white](p) -- (q);
\end{tikzpicture}
%% Monochrome Version
\begin{ocg}[printocg=always]{MonochromeVersion}{monochrome}{0}
\begin{tikzpicture}[overlay, remember picture, text=black, align=center]
\fill [fill=white] (current page.south west) rectangle (\paperwidth,\paperheight);
\node at (.5\linewidth,-2.125) {\includegraphics[width=1.5in]{logo-monochrome}};
\titlematter
\draw (p) -- (q);
\end{tikzpicture}
\end{ocg}
%% Reset page color
\afterpage{\nopagecolor}%
\newpage
}
\end{document}
В Acrobat это отображается на экране в цвете:
И напечатает в монохромном режиме:
Выбрав вкладку «Слои» на боковой панели (расположение может различаться в зависимости от средства просмотра; некоторые старые версии средств просмотра вообще не поддерживают слои), вы также можете при желании переключиться на монохромный вид на экране: