2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки





Начать новую тему Ответить на тему
 
 Если \label за пределами?
Сообщение21.12.2016, 20:39 


21/12/16
3
Всем доброго времени суток!
Есть проблема. Документы формируются в TeX путём подключения фрагментов через \input. Общий документ содержит все метки \label и ссылки \ref. Но есть ещё частные документы, которые могут ссылаться на метку во фрагменте, который к нему не подключен. В этом случае \ref возвращает ??, с чем не поспоришь. Хочется иметь механизм, который позволит в этом случае заменять ?? на заданный текст, а если метка присутствует, то иметь обычную ссылку (номер).
Всем спасибо!

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение21.12.2016, 21:50 
Заслуженный участник
Аватара пользователя


23/07/05
13985
Новомосковск
А повторная компиляция не помогает?
Я, например, сталкивался с тем, что для получения правильного содержания приходилось компилировать три раза, даже если весь документ в одном файле.
И у меня были документы, состоящие из нескольких файлов с перекрёстными ссылками. Никаких проблем я не заметил, кроме необходимости повторной компиляции.

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение21.12.2016, 23:47 
Заслуженный участник
Аватара пользователя


31/01/14
6094
Hogtown
Судя по всему Вы компилируете документ, который состоит из частей, но в настоящий момент компилируете только одну из них. Для этой цели есть механизм \include и \includeonly (вместо \input)

https://en.wikibooks.org/wiki/TeX/includeonly

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение21.12.2016, 23:55 
Заслуженный участник
Аватара пользователя


11/01/06
3498
Мне кажется, имеется в виду
http://tex.stackexchange.com/questions/47943/how-to-use-the-aux-file
Возможно, пакет xr — то, что нужно.

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение22.12.2016, 00:02 
Заслуженный участник
Аватара пользователя


31/01/14
6094
Hogtown
RIP в сообщении #1179048 писал(а):
Возможно, пакет xr
— то, что нужно.

Если с hyperref, то лучше xr–hyper ; см напр http://dxdy.ru/post865150.html#p865150

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение22.12.2016, 19:58 


21/12/16
3
Наверное меня не так поняли. Повторная компиляция не поможет так как фрагмент документа действительно отсутствует.
Пусть имеется полный документ, который описывает муравьёв, жуков и бабочек. В нём всё хорошо. Но вот я создаю документ с описанием муравьёв. Он имеет какие-то формализованные описания и включает содержательный фрагмент с описанием муравьёв. При этом этот документ содержит ссылку на описание жуков, а содержательный файл с описанием жуков тут не подключается. Хочется иметь что-то типа
\ifthenelse{ссылка_работает?}{смотри страницу \pageref{metka}}{описание жуков обсуждается в документе о жуках}.
Вот как написать выражение для ссылка_работает? Спасибо!

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение22.12.2016, 20:25 
Заслуженный участник
Аватара пользователя


31/01/14
6094
Hogtown
Peters в сообщении #1179258 писал(а):
Наверное меня не так поняли.

Я Вас понял правильно. Используйте, как указывалось, механизм \include / \includeonly

В теле документа т.е. после \begin{document} напишите

Используется синтаксис LaTeX
\include{ants}
\include{beetles}
\include{batterfies}

(вместо \input)

и скомпилируйте. Теперь Вы хотите только про муравьев. Оставьте все как было, а в преамбуле т.е. до \begin{document} добавьте
Используется синтаксис LaTeX
\includeonly{ants}

 Профиль  
                  
 
 Re: Если \label за пределами?
Сообщение22.12.2016, 20:50 


21/12/16
3
Спасибо. Буду пробовать.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Toucan, maxal, Karan, PAV, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group