Использование цвета в LaTeX

    Сегодня я хочу вам представить ещё одну статью, посвящённую графическим возможностям издательской системы LaTeX. На сей раз речь пойдёт о цвете. Чаще всего эти возможности LaTeX игнорируются, так как доля цветных публикация довольна мала. К тому же чрезмерное использование цвета может только навредить — пёстрый многоцветный документ трудно читать и смотрится он малопривлекательно. Но умелое использование цвета может очень способствовать восприятию контента: выделение заголовков, подзаголовков, цитат, важных частей текста и даже ячеек таблиц помогает быстро уловить суть, не вчитываясь в подробности.
    Так что кому стало интересно, жмём по ссылке:

    Цвет в LaTeX


    С цветом в системе LaTeX позволяют работать два пакета из коллекции graphics: color и colortbl. Первый позволяет задавать цвет текста и фона, как отдельного блока, так и всего документа, а второй — закрашивать таблицы. Подключим оба пакета в преамбуле документа:
    \usepackage[usenames]{color}
    \usepackage{colortbl}

    Все команды переключения цвета имеют опцию, в которой указывается цветовая модель и обязательные аргументы, в которых задаётся цвет.
    Модель named является цветовой моделью по умолчанию. Цвет задаётся одной из восьми констант:
    • black
    • red
    • blue
    • magenta
    • white
    • green
    • cyan
    • yellow

    Напоминает восьмибитную палитру DOS. Вот небольшой пример:
    \textcolor{blue}{Синий \hbox{$x^2$}}
    Синий x2

    Цвета именнованные в драйвере dvips. Драйвер dvips содержит определение имён 68 цветов:
    • GreenYellow
    • Yellow
    • Goldenrod
    • Dandelion
    • Apricot
    • Peach
    • Melon
    • YellowOrange
    • Orange
    • BurntOrange
    • Bittersweet
    • RedOrange
    • Mahogany
    • Maroon
    • BrickRed
    • Red
    • OrangeRed
    • RubineRed
    • WildStrawberry
    • Salmon
    • CarnationPink
    • Magenta
    • VioletRed
    • Rhodamine
    • Mulberry
    • RedViolet
    • Fuchsia
    • Lavender
    • Thistle
    • Orchid
    • DarkOrchid
    • Purple
    • Plum
    • Violet
    • RoyalPurple
    • BlueViolet
    • Periwinkle
    • CadetBlue
    • CornflowerBlue
    • MidnightBlue
    • NavyBlue
    • RoyalBlue
    • Blue
    • Cerulean
    • Cyan
    • ProcessBlue
    • SkyBlue
    • Turquoise
    • TealBlue
    • Aquamarine
    • BlueGreen
    • Emerald
    • JungleGreen
    • SeaGreen
    • Green
    • ForestGreen
    • PineGreen
    • LimeGreen
    • YellowGreen
    • SpringGreen
    • OliveGreen
    • RawSienna
    • Sepia
    • Brown
    • Tan
    • Gray
    • Black
    • White

    Тут, как видим, возможности несколько шире. Пример мало отличается от предыдущего:
    \textcolor{Orange}{Оранжевый $\bigcup$.}
    Оранжевый ∪

    Модель rgb. В модели rgb любой цвет получается в результате смешения лучей света трёх базовых цветов: красного (red), зелёного (green) и синего (blue). Вообще данную модель не применяют в полиграфии, так как она основана на цветных лучах света (как в кинескопе, наших ЖК-мониторах или на фотоплёнке). Для печати традиционно используется модель cmyk, о которой речь пойдёт ниже.
    Спецификация цвета в модели rgb задаётся трёмя перечисленными через запятую числами в диапазоне от 0 до 1, которые соответствуют интенсивности базовых составляющих цвета. Например, желтый цвет задаётся как 1, 1, 0, белый — как 1, 1, 1, а 0, 0, 0 — даёт чёрный цвет.

    Модель gray. Серый цвет получается при смешении в равных пропорциях базовых цветов из модели rgb с интенсивностью меньше единицы. Спецификация цвета в модели gray задаётся одним числом от 0 до 1, например 0.5 вместо 0.5, 0.5, 0.5 в модели rgb. Чёрному цвету соответсвует 0, белому — 1.

    Модель cmyk. Если на лист бумаги нанести красную краску и затем осветить его белым светом, то только красная составляющая света отразится от бумаги. Нанесём теперь на бумагу красную краску густо посаженными точками, а затем заполним все промежутки между красными точками зелёной краской. Теперь от листа бумаги отразится как красный, так и зелёный свет. Издали различить отдельные точки нельзя, поэтому глаз получит смесь красного и зелёного цвета и бумага выглядит жёлтой. [Если краски наносить не точками, а сплошной заливкой, то краска перемешается и получится грязный красноватый цвет.]
    На этом основывается цветовая модель cmyk. В этой модели спецификация цвета задаётся четырьмя перечисленными через запятую числами от 0 до 1, которые соответствуют «количеству» голубой (cyan), пурпурной (magenta), жёлтой (yellow) и чёрной (black) краски на белом листе бумаги. Белому цвету соответствует спецификация 0, 0, 0, 0 (на белом листе бумаги нет никакой краски), а чёрному — 0, 0, 0, 1.

    Цветной текст


    Изменить цвет текста в документе можно либо командой
    \textcolor[model]{spec}{text}
    либо декларацией
    {\color[model]{spec}text}
    Здесь model — цветовая модель, spec — спецификация цвета.
    Пример:
    \textcolor{red}{Красный,} \textcolor[cmyk]{0,1,1,0}{опять красный,}
    \textcolor[rgb]{1,0,0}{и ещё раз красный!}

    Красный, опять красный, и ещё раз красный!

    Цветные боксы


    Команда
    \colorbox[model]{spec}{lr-text}
    помещает, подобно команде \mbox, текст lr-text в бокс, у которого цвет фона задан аргументами model и spec. Здесь model — цветовая модель, spec — спецификация цвета. Команда
    \fcolorbox[model]{fr-spec}{spec}{lr-text}
    дополнительно обводит этот бокс рамкой цвета fr-spec. Пример:
    \fcolorbox{red}{yellow}{Текст\dots}
    Текст...

    Цветной фон страницы


    Изменить цвет страницы можно декларацией
    \pagecolor[model]{spec}
    Здесь model — цветовая модель, spec — спецификация цвета. Область действия декларации не ограничевается никакими скобками. Чтобы вернуть белый цвет страниц, надо вызвать команду \pagecolor{white}.

    Цветные таблицы


    Пакет colortbl, используя пакеты color и array, позволяет раскрашивать таблицы. Цвета задаются также, как в пакете color.
    Команда
    \columncolor[model]{spec}[left-overhang][right-overhang]
    задаёт цвет столбца таблицы цветом, заданным первыми двумя аргументами. Опции left-overhang и right-overhang задают расстояния слева и справа между краями окрашенной области и текстом. Если указан только один аргумент, то он задаёт оба расстояния.
    Команда
    \rowcolor[model]{spec}[left-overhang][right-overhang]
    окрашивает строку таблицы. Её место в начале строки.
    Следующие примеры помогут во всём разобраться.
    \begin{tabular}{%
    |>{\color{white}\columncolor{black}}l|
    >{\columncolor{yellow}[.6\tabcolsep]}c|
    >{\columncolor[gray]{.8}}r|}
    один & два & три \\ четыре & пять & шесть
    \end{tabular}



    \begin{tabular}{|l|c|}
    \rowcolor[gray]{.9} один & два \\
    \rowcolor[gray]{.6} три & четыре
    \end{tabular}



    \newcolumntype{H}{>{\columncolor{magenta}}c}
    \begin{tabular}{%
    |>{\columncolor{yellow}}l|
    >{\color{white}\columncolor{black}}l|}
    \multicolumn{2}{|H|}{один} \\
    два & три \\ четыре & пять
    \end{tabular}



    \def\tabrowsep{\noalign{\vskip 2pt}}
    \newcolumntype{H}{%
    >{\columncolor[gray]{.9}}p{1.7cm}}
    \begin{tabular}[t]{*2H}
    \rowcolor[gray]{.6}один & два\\\tabrowsep три & четыре \\\tabrowsep
    пять & шесть
    \end{tabular}



    \setlength\arrayrulewidth{2pt}\arrayrulecolor{blue}
    \setlength\doublerulesep{2pt}\doublerulesepcolor{yellow}
    \begin{tabular}{||l||c||}
    \hline\hline
    один & два \\ три & четыре \\
    \hline\hline
    \end{tabular}



    \begin{tabular}{||l|c||}
    \hhline{|t:=:t:=:t|}
    один & два \\ три & четыре \\
    \hhline{|b:=:b:=:b|}
    \end{tabular}



    \newcommand\rgbline[1]{\hhline{>{\arrayrulecolor{red}}|#1:=%
    >{\arrayrulecolor{green}}=>{\arrayrulecolor{blue}}=:#1|}}
    \arrayrulecolor{red}
    \begin{tabular}{||*3c||}\rgbline{t}
    red & green & \multicolumn{1}{c||}{blue}\\
    \rgbline{b}\end{tabular}



    Ну вот собственно и всё. Для написания статьи использовалась книга Владимира Сюткина «Цвет в LaTeX2e». Надеюсь, кому-нибудь будет полезной эта статья. Тут лежит оригинал статьи. Спасибо.
    Метки:
    • +15
    • 22,1k
    • 8
    Поделиться публикацией
    Похожие публикации
    Комментарии 8
    • +2
      К сожалению, habra не поддерживает in-line стили, поэтому текстовые примеры выглядят чёрнобелыми. Позже исправлю на тег font. Пока в цвете можно увидеть в моём блоге: alex.kotomanov.com/2009/02/16/graph_in_latex_3/
      • –1
        не боитесь что на блог скажется хабраэффект?)
        • 0
          ну как видите, хабраэффекта не произошло))
          • 0
            весь народ пропал. небось сидят книжки по латеху читают :-)
      • 0
        На бумаге как ни смешивай красный с зеленым — желтый из них точно не получится. Да и нет зеленой составляющей в модели CMYK.
        • –1
          на данном примере объясняется откуда появилась модель CMYK, как она действует в общем. нужно было просто для примера другие цвета взять из модели, например голубой и жёлтый.
          просто хотелось сказать, что художники смешивают краски, чтоб получить нужный оттенок. а вот принтер — нет. печатается растр — аналог пикселя на мониторе. только растр может быть разного размера. и краска обычно ложиться слоями, перекрывая одними растрами другие. получаемый цвет всего-лишь зрительный обман. возьмите лупу и посмотрите на любую цветную печать. какие цвета вы там видите? в газетах это особенно хорошо заметно из-за крупного растра.
          • +1
            Я далеко не первый год в полиграфии работаю. Просто удивил и даже рассмешил выбор цветов — красный + зеленый = желтый :) Наверно, я забыл смайлик вставить :) А на счет растра — тут можно много рассказать о том, что за картинка получится, если, например, неправильно выбрать углы растра или неправильно выбрать последовательность пантонов (не треппинге получаются просто изюмительные вещи). К тому-же в модели CMYK вообще есть два черных цвета. А еще способы печати на цветных струйниках отличаются от цветных лазерников и сильно отличаются от офсета, который отличается от трафаретной печати. Можно еще затронуть тему того, почему на бумаге лажает RGB и почему за это его не любят полиграфисты. Ох, это целый отдельный блог можно сделать, только уже есть немало ресурсов посвященных этой тематике. Но про LaTeX было интересно почитать в качестве общего развития.
            • 0
              я прекрасно понимаю, что это звучит по-дилетантски. я же не называл себя профи в полиграфии. знания мои поверхностны и носят теоретический характер. хотя мне очень интересна эта тема и было и было бы интересно почитать. думаю на хабре не я один такой любопытный. так что может поделитесь знаниями? ;)
              p.s. и ссылки на ресурсы тоже пожалуйста. заранее благодарен
              =)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.