是否有可能在标题中设置一个键来定义文档的所需输出?我可以想象三种模式:
- 打印(黑白)
- 打印(彩色)
- 显示视图的 PDF
使用ifthen
它应该很容易为这些模式定义不同的命令或插入空白页等等。以下是一些使用示例:
- 打印空白页
- 颜色开/关
- RGB(PDF)或 CMYK(打印)颜色定义
- 忽略超链接
- 打印待办事项
- 等等...
这个开关可以是类似于draft
中的模式。或者可能是像(我发明的命令)scrreprt
这样的单个标记。\setcustomswitch{mode=printColored %,printBW,PDF}
答案1
您列出的大部分内容都可以通过对提供您想要修改的功能的软件包使用选项来实现。例如,传递选项gray
或cmyk
对 xcolor 软件包进行切换颜色空间。同样,hyperref 也有选项可以修改文档中超链接的行为。
为文档的每个所需状态制作一个包,即和,mydoc-print.sty
并mydoc-online.sty
在两者之间切换。
生成彩色显示但黑白打印的文档的更有趣的方法是使用ocg-p打包并定义在打印可选内容组中生成黑白输出以及在可见可选内容组中生成彩色输出的命令。
编辑:
以下是使用条件语句更改文档输出的示例。我仍然认为,最好将每个预期输出的设置和样式收集到自定义包中
\documentclass{article}
\newif\ifcolor
\newif\ifonline
\onlinetrue % toggle true/false to change between cmyk/rgb
\colortrue % change to grayscale
\usepackage{xcolor}
\ifcolor
\ifonline
\selectcolormodel{rgb}%
\else
\selectcolormodel{cmyk}%
\fi
\else
\selectcolormodel{gray}%
\fi
\begin{document}
\textcolor{red}{Test}
\end{document}
答案2
正如@Martin Heller 所建议的,有一个很好的解决方案。以下是使用这些条件的一些示例。也许,它们也为其他人服务。
定义布尔值:
在顶部header.txt
\newif\ifcolor %bool for toggling color mode to b/w mode
\newif\ifprint %bool fot toggling web mode to print mode
\colortrue
%\colorfalse
%\printtrue
\printfalse
定义徽标等命令(用于打印的真正黑色而不是灰度):
\newcommand{\Logo}{\ifcolor ... \else ... \fi}
一般使用颜色xcolor
:
\usepackage{xcolor}
\definecolor{aBlueSample}{cmyk}{1.00, 0.80, 0.00, 0.10}
\ifcolor
\ifprint\selectcolormodel{cmyk}%
\else\selectcolormodel{rgb}\fi
\else\selectcolormodel{gray}\fi
处理超链接:
\usepackage[colorlinks=true]{hyperref}
\ifprint\ifcolor\hypersetup{colorlinks=false, urlcolor=blue}\else\hypersetup{hidelinks}\fi\fi
之后使用的空白页示例\begin{document}
:
\ifprint\cleardoublestandardpage\fi
或者一般的空白页:
\documentclass[]{scrreprt}
\ifprint\KOMAoptions{twoside=true}\else\KOMAoptions{twoside=false}\fi