Mailing List CyrTeX-ru@vsu.ru Message #1527
From: Isao YASUDA <CyrTeX-ru@vsu.ru>
Subject: Re: Можно ли отключить лигатуры?
Date: Wed, 29 Jul 2009 00:52:09 +0900 (JST)
To: <CyrTeX-ru@vsu.ru>
Уважаемый neGODnick!

"neGODnick" <CyrTeX-ru@vsu.ru> san wrote at :
- Message-ID: <list-192643363@relay1.vsu.ru>
- Subject: Re: Можно ли отключить лигатуры?
- Date: Tue, 28 Jul 2009 03:33:19 +0400
>Во-вторых, я попробовал Ваш пример в минимальном файле и в своём.
>Если заменить ~ и # на %7 и %23, то получается следующее:
>
>- в PDF ссылки так и отображаются "--- со знаками % и цифрами;
>
>- при этом PDF-XChange Viewer выдаёт запрос на подтверждение:
>
> "Приложение пробует открыть сайт:
> "_http://traffic.ru/%7user/index.html%23anchor"
> Вы доверяете этому сайту?"
>
>Если разрешить, выдёт сообщение об ошибке:
>
> "Не могу открыть ... :
> Error [Operating system]: Параметр задан неверно.";
>
>- Acrobat Reader выдаёт аналогичный запрос, но в нём адрес показан с ошибкой:
>
> "_http://traffic.ru/%257user/index.html%23anchor"
>

Извините. Мое объяснение было недостаточно.
Заменить ~ и # на %7E и %23 в PDF файле, это делает не LaTeX,
а PDF viewer.
Посмотрите на PDF файл помощью more, less, или type.
Думаю, нельзя подавить %7E, %23, и т.п.

Для отключения лигатуры от URL цепочки,
есть способ вставить \leavevmode\kern\z@ каждую букву.
Вот мой пример:

%------
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[pdftex]{hyperref}%    When using pdflatex
%\usepackage[ps2pdf]{hyperref}%   When using ps2pdf
%\usepackage[dvipdfm]{hyperref}%  When using dvipdfm(x)
\begin{document}
% default
0.\url{http://traffic.ru/~user/index.html#anchor}\par
% by roman fonts
\urlstyle{rm}%
1.\url{http://traffic.ru/~user/index.html#anchor}

\makeatletter
% \myurl для отключить лигатуры от URL цепочки.
% It is neccesary to make chars: #, %, etc. `\active'
% for more practical use.
% Here I consider ~(tilde) only.
\def\myurl#1{%
  \def\urls{}\let~=\hyper@tilde
  \expandafter\@tfor\expandafter\url@c\expandafter:\expandafter=#1\do{%
    \edef\urls{\urls\url@c\leavevmode\kern\z@}}%
  \href{#1}{\urls}%
}%
\makeatother

% exchange \url for \myurl.
\let\urlold=\url% save \url
\let\url=\myurl% exchange

% отключить лигатуры
2.\url{http://traffic.ru/~user/index.html\#anchor}% \#, а не #
\end{document}
%------ end of sample

С уважением,
Исао Ясуда, isao@yasuda.homeip.net
Subscribe (FEED) Subscribe (DIGEST) Subscribe (INDEX) Unsubscribe Mail to Listmaster