|
27.07.09, Андрей Севастьянов<CyrTeX-ru@vsu.ru> написал(а):
>
>
> Вообще говоря, URL-ы в тексте -- это тяжёлый случай, ведь они бывают в
> две строки длинной, плохо работают правила переносов, и текст выглядит
> некрасиво, на мой взгляд.
Ну да, а что делать? Зато при распечатке не теряются.
> Есть ещё вариант: использовать для URL-ов сноски (немного облегчается
> проблема с переносами) или вообще оформить их как библиографические
> ссылки.
>
Да, это возможный компромисс. А сами длинные ссылки разбиваем, включая
настройку breaklinks=true пакета hyperref (хотя бывают случаи, когда рабиваются
всё равно плохо).
>> Ну, \href, по крайней мере, выход из положения, хотя и не очень.
>> Но остаётся проблема с листингами.
>
> То есть, окружением verbatim и командой \verb вы не хотите пользоваться
> из-за tt-шрифта? Можно, конечно, печатать листинги как у Кнута в WEAVE,
> есть даже какие-то пакеты для LaTeX для печати листингов с выделением
> синтаксиса.
>
Не только из-за tt-шрифта. Ещё из-за подстветки синтаксиса и параметров
оформления. Как у Кнута, я не смотрел, а вот насчёт выделения
синтаксиса "--- вот в том числе по этой причине мне понравился пакет listing.
Пробую сейчас подобрать настройки:
% ------------------------------------------------------------------------- %
% П О Д С В Е Т К А К О Д А
%
% ------------------------------------------------------------------------- %
\usepackage{listings}
%\usepackage{listingsutf8} % разницы не заметил
\let\OLDlstlisting\lstlisting
\def\lstlisting{\footnotesize\OLDlstlisting} % Уменьшаем шрифт
вынесенных в отд. абзац листингов здесь, чтобы внутритекстовые не
менять.
\let\OLDlstinline\lstinline
\def\lstinline{\color{textcolor}\small\OLDlstinline} % Уменьшаем шрифт
внутритекстовых листингов.
% подгружаемые языки — подробнее в документации listings
\lstloadlanguages{[LaTeX]TeX, bash, MetaPost, Fortran, Perl,C++,make}
% включаем кириллицу и добавляем кое-какие опции
\lstset{language=[LaTeX]TeX, % выбираем язык по умолчанию
extendedchars=true, % включаем не латиницу
%
emph={in, cm, cc, pc, mm, dd, bp, pt, sp, ex, em}, % список ключевых слов
emphstyle=\sffamily, % стиль
%emph=[2]{}, % список ключевых слов -2
%emphstyle=[2]{},
%
escapechar=|, % |«выпадаем» в LATEX|
%
moredelim=**[is][\color{lst-emphcolor}]{""}{""}, % специальное выделение
moredelim=*[is][\tiny\itshape]{**}{**},%\rmfamily
%
% ----------------------- ШРИФТЫ ---------------------------------
% не надо задавать размер здесь, потому иначе этот размер будет везде
--- в вынесенных листингах, во внутритекстовых листингах, в заголовках
и т. д.!
%
basicstyle=\sffamily\color{lst-basiccolor}, % базовый шрифт
keywordstyle=\fontfamily{cmss}\fontseries{sbc}\selectfont\color{lst-keywordcolor},%
identifierstyle=\fontfamily{cmbr}\mdseries\color{lst-identifiercolor}, %
commentstyle=\rmfamily\mdseries\itshape\color{lst-commentcolor}, %
шрифт для комментариев
stringstyle=\color{lst-stringcolor}, % не понял, что это за строки
%
% ----------------- рамка, фон, тень --------------------------
%frame=l, % рамка: trbl; t - сверху, b - снизу и т.д.
framesep=1em,
backgroundcolor=\color{lst-filcolorlight}, % цвет фона
rulecolor=\color{lst-basiccolor}, % цвет рамки/кромки
%shadowbox,
%rulesepcolor=, % цвет тени
% ---------------------- ОТСТУПЫ -----------------------------
%resetmargins=true,
xleftmargin=\parindent,
% ---------------------- ЗАГОЛОВКИ -------------------------------
captionpos=t, % заголовок t - сверху или b - снизу
belowcaptionskip=\medskipamount, % отступ от заголовка вниз
%captionstyle=\bfseries, % Вызывает проблемы с пакетом keyval.
ИСПОЛЬЗОВАТЬ НЕ ПОЛУЧИЛОСЬ, НО ВСЁ МОЖНО ЗАДАТЬ пакетом caption или
др.!!!
%
% ----------------------- ТАБУЛЯТОРЫ И ПРОБЕЛЫ -----------------------
%showspaces=true,
tabsize=4,
showtabs=true,
tab=, % если задать знак табуляции (\rightarrowfill, \hrulefill или
др.) --- то эти знаки копируются, после вставки в др. документ
придётся чистить от них код.
%
columns=spaceflexible, % ПРЕДОТВРАЩАЕТ ОТ РАЗРЯДКИ И ВСТАВКИ ПРОБЕЛОВ!
breaklines=true, % автоматически переносит длинные строки --- ОБЯЗАТЕЛЬНО!
breakatwhitespace=true, % автоматически переносит длинные строки
только по пробелам --- ОБЯЗАТЕЛЬНО!
prebreak=\llap{\mbox{\color{red}\bfseries\textvisiblespace}},%
вставляется вместо знака переноса. Другие знаки, например
\mbox{$\Rightarrow$} или \mbox{\textcolor{red}{\textbullet}}
копируются, после вставки в др. документ придётся чистить от них код.
showstringspaces=false}%
% Цвета задаём отдельно:
\usepackage[dvipsnames,svgnames,x11names]{xcolor}
\definecolor{textcolor}{named}{black}
\definecolor{lettrinecolor}{named}{shade-of-red}
\definecolor{linkcolor}{named}{shade-of-red}
\definecolor{citecolor}{rgb}{0,0.65882,0}
\definecolor{filecolor}{named}{shade-of-magenta}
\definecolor{urlcolor}{named}{shade-of-blue}
\definecolor{lst-basiccolor}{named}{textcolor}
\definecolor{lst-stringcolor}{named}{red}
\definecolor{lst-keywordcolor}{named}{textcolor}
\definecolor{lst-identifiercolor}{named}{textcolor}
\definecolor{lst-commentcolor}{named}{citecolor}
\definecolor{lst-emphcolor}{named}{shade-of-magenta}
\definecolor{lst-filcolorlight}{gray}{.95}
и т.д. (цвета тут некоторые мои, я не всё написал, просто принцип показываю)
--
С уважением — Эдуард
|
|