2014 dxdy logo

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

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




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


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

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


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

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


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

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

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


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

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


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

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

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


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

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


31/01/14
11467
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
5
Спасибо. Буду пробовать.

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

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



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

Сейчас этот форум просматривают: Lenchik


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

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