Котельников И., Чеботаев П. LaTeX2e по-русски (1185906), страница 90
Текст из файла (страница 90)
Путь на ресурс в пределах компьютера также зависит от выбранного протокола. Для протокола file:// — это просто полный или относительныйпуть до каталога, где размещён нужный файл. Строка поиска используется приобращении к динамическим ресурсам, которые способны возвращать разный результат в зависимости от значениий параметров, переданных в этой строке. Использование закладок поясняет следующий пример:Вот пример на\href{file://primer#page.2}{странице 2}.Вот пример на странице 2.Если щёлкнуть на подчёркнутом тексте в окне обозревателя, будет выполненпереход на вторую страницу в файле primer.dvi, если текущий документ просматривается в обозревателе документов DVI, или на вторую страницу в файлеprimer.pdf, если просматривается документ PDF.
Предполагается, что оба файла находятся в том же каталоге, что и документ, который содержит гиперссылку.Чтобы исключить неопределённость с расширением имени файла, можно либоявно указать в гиперссылке имя файла вместе с расширением, либо задать расширение по умолчанию с помощью параметра extension при загрузке пакетаhyperref. Как ясно из примера, команда \href использует свой первый аргументurl в качестве адреса перехода, а второй аргумент text выводит в текст документа. Вместо относительного пути на каталог, где расположен файл, можно указатьпуть полностью:Вот пример на\href{file://e:/platon/primer#page.2}{странице 2}.Вот пример на странице 2.Если большинство адресов имеет общую часть, её можно объявить с помощьюдекларации\hyperbaseurl{url}(hyperref)или через параметр baseurl.
Знатоки языка разметки HTML легко догадаются, что \hyperbaseurl имеет то же действие, что и таг <baseurl> в документахHTML. Объявленную общую часть url можно исключить из адресов любых гиперссылок. Если протокол отсутствует в url (даже после присоединения общейчасти), обозреватель подбирает протокол по своему разумению.Команда\hypertarget{key}{label-text}(hyperref)присваивает фрагменту текста label-text закладку с меткой вида key.
На эту закладку затем можно дать гиперссылку различными способами. Можно использовать команду \href, указав в качестве url строку #key (если переход производится в пределах одного документа). Можно также использовать команду424Глава 18. Окно в интернет\hyperlink{key}{text}(hyperref)Добавить гиперссылку на метку, поставленную стандартной командой LATEX’а\label{key}, проще всего при помощи команды \hyperlink, указав в первомаргументе тот же ключ key.
Стандартная команда \ref{key} делает примерното же, но в качестве текста text обычно печатает номер объекта, на который данассылка.Мы не упомянули ещё несколько команд, которые пакет hyperref вводит дляорганизации гиперссылок. И поэтому, завершая книгу, вновь повторим слова,сказанные нами в её начале.Из нескольких решений одной задачи мы стремились выбрать одно, самое эффективное,не затрудняя Читателя сравнением всех альтернатив. Сделать правильный выбор частосоставляет самую сложную часть задачи. Именно эту часть мы постарались решить,отбирая самое необходимое, чтобы очистить LATEX от археологических наслоений.Остаётся просто опыт, который зовётсяслучайным, если приходит сам,и экспериментом, если его отыскивают.Ф. Бэкон. Новый ОрганонПриложение AРежим эмуляции LATEX 2.09LATEX 2ε может компилировать почти любой входной файл, предназначенный дляLATEX версии 2.09, за счёт перехода в режим эмуляции LATEX 2.09.
Оговорку приходится делать из-за наличия некоторого количества пакетов, которые использовали недокументированные команды LATEX 2.09 низкого уровня. Большинствостарых пакетов успешно работают с LATEX 2ε , а лучший способ узнать, пригодентот или иной пакет,— просто испытать его.Режим эмуляции есть почти полная имитация LATEX 2.09 как на внешнем(пользовательском), так и на внутреннем уровнях.
Однако такая имитация достигается ценой уменьшения скорости компиляции примерно на 50% по сравнениюс компиляцией с настоящим форматом LATEX 2.09. Большинство нововведений,появившихся в LATEX 2ε , отключено в режиме эмуляции LATEX 2.09.LATEX 2ε автоматически переходит в режим эмуляции, когда обнаруживаетдекларацию\documentstyle[options,pkgs]{class}вместо \documentclass. Режим эмуляции предназначен для компиляции старыхфайлов. Его не следует использовать для компиляции вновь подготавливаемыхдокументов.
Чтобы компилировать старые файлы быстрее и получить доступ кновым возможностям, открываемым переходом к LATEX 2ε , следует преобразовать\documentstyle в две декларации\documentclass[options]{class}\usepackage{latexsym,pkgs}Чтобы определить, какие опции из \documentstyle следует перенести в списокопций \documentclass, а какие перенести в \usepackage, следует изучить списоксуществующих опций декларации \documentclass, приведённый в разделе 3.2.Всё, что отсутствует в этом списке, является пакетом, а пакеты загружаютсяпри помощи \usepackage. Например,\documentstyle[12pt,russian]{article}надо переделать в426Приложение A.
Режим эмуляции LATEX 2.09\documentclass[12pt]{article}\usepackage{latexsym}\usepackage[cp866]{inputenc}\usepackage[russian]{babel}Пакет latexsym содержит определения нескольких редко используемых команд,которые имелись в формате LATEX 2.09, но удалены из LATEX 2ε .
Эти командывыделены в таблицах 6.4, 6.5, 6.6 и 6.9. Опция russian в LATEX 2.09 относиласьк числу недокументированных; в разных диалектах LATEX 2.09 её действие былоразлично.Совершенно новым моментом для пользователей, знакомых с LATEX 2.09, является необходимость указывать кодировку исходного текста во входном файле.Кодировка указывается в необязательном аргументе декларации \usepackage,которая загружает пакет inputenc. В данном примере использована опция cp866,соответствующая кодировке русской версии операционной системы MS DOS.
Если исходный текст документа подготовлен в операционной системе Unix, вероятно, следует выбрать опцию koi8-r, koi8-ru или koi8-u.В LATEX 2ε поддержку русского языка в числе десятков других языков народовмира осуществляет пакет babel. В документах на русском языке опция russianдолжна быть указана в необязательном аргументе декларации \usepackage, которая загружает пакет babel.
Не будет ошибкой, если опции пакетов перенести внеобязательный аргумент декларации \documentclass:\documentclass[12pt,cp866,russian]{article}\usepackage{latexsym,inputenc,babel}Однако расстановка опций «по месту употребления пакета» авторам данной книги представляется более правильным решением, поскольку при удалении пакетанужно удалять и принадлежащие ему опции из \documentclass.Большинство старых документов LATEX 2.09 успешно компилируются в естественном режиме LATEX 2ε после внесения указанных выше изменений. Однаконекоторые документы, успешно компилируемые в режиме эмуляции LATEX 2.09,не удаётся без ошибок обработать в естественном режиме LATEX 2ε . Некоторыедокументы вызывают появление сообщений об ошибках из-за улучшенной диагностики ошибок, введённой в LATEX 2ε .
Некоторые старые пакеты работают сLATEX 2ε только в режиме эмуляции. И тут мы можем повторить, что лучшийспособ выяснить, будут ли проблемы с компиляцией в естественном режиме,—просто попробовать её выполнить!Затруднения возникают чаще всего из-за команд переключения шрифтов. Этикоманды либо вызывают сообщения об ошибках, либо делают не то, что от нихожидалось.В первом случае возможно, что входной файл или стиль (в LATEX 2ε стильназывается пакетом), использованный в нём, содержит устаревшие внутренниекоманды, которые более не поддерживаются.
Вот их неполный перечень:427\tenrm \elvrm \twlrm . . .\tenbf \elvbf \twlbf . . .\tensf \elvsf \twlsf . . ....Их использование вызывает сообщение об ошибке типа! Undefined control sequence.l.5 \tenrmЛучше всего получить более свежую версию пакета, не содержащую такие команды. Если это невозможно, то в качестве последнего средства следует загрузить пакет rawfonts из коллекции tools, который обеспечивает доступ более чемк 70 шрифтам через устаревшие команды.
Можно ограничить количество загружаемых шрифтов, используя опцию only, перечислив вслед за ней только тешрифты, которые нужны. Например,\usepackage[only,tenrm,tenbf]{rawfonts}загружает только шрифты, вызываемые командами \tenrm и \tenbf.Если после приведения документа к стандарту LATEX 2ε сообщения об ошибках не генерируются, но команды переключения шрифтов делают не то, чтоожидалось (особенно в математических формулах), лучше всего их заменить накоманды, описанные в разделе 1.11. Другой вариант выхода из встретившихсязатруднений — загрузить пакет oldlfont.Существовал также диалект формата LATEX 2.09, в котором двухбуквенныекоманды типа \sf и \it переключали только один атрибут шрифта, т.
е. действовали так же, как в LATEX 2ε работают декларации \sffamily и \itshape. Еслиесть потребность восстановить такое поведение команд \sf, \it и им подобных,нужно загрузить пакет newlfont.Одинаковые ошибки необязательно делатькаждый раз, достаточно сделать одну,а затем обращаться к ней по меренеобходимости.В. Тихонов. Теория ошибокПриложение BОшибкиВ разделе 1.13 изложены первоначальные сведения об ошибках и способах их локализации во входном файле.