вторник, 11 октября 2011 г.

Выделение «маркером» в LaTeX

Иногда бывает полезно выделить в тексте небольшой фрагмент так, как это делается на бумаге маркером. В HTML это делается посредством указания атрибута стиля background-color соответствующему элементу (<span> в предыдущем предложении). В LaTeX для этой цели используется \colorbox{цвет}{текст}. Но есть нюанс.

По умолчанию \colorbox вставляет отступы со всех сторон бокса, что неприятно выглядит, если тот граничит, например, со знаками препинания. Если указать размер этих отступов (\fboxsep) равным нулю, граница окрашенного фона пойдет точно по границе букв, что хорошо справа и слева, но некрасиво сверху и снизу. Далее см. пример:

\colorbox{red!50}{неправильно}, {\fboxsep=0pt\colorbox{yellow!50}{тоже
неправильно}}, {\fboxsep=0pt\colorbox{green!50}{\strut правильно}}!

Результат выглядит примерно так (обратите внимание на знаки препинания):

Волшебное слово \strut создает бокс нулевой ширины и максимальной для текущего шрифта выноски вверх и вниз. Соответственно, действует как распорка и передает свою высоту окружающему боксу. Можно определить себе команду, например, такую:

\newcommand\marker[2]{{\fboxsep=0pt\colorbox{#1}{\strut #2}}}

Комментариев нет:

Отправить комментарий