Как правильно сделать перекрестные ссылки на листинг программ в Lyx

Как правильно сделать перекрестные ссылки на листинг программ в Lyx

Из другого вопроса я узнал, что лучший способ включить код — создать дочерний документ с листингом программы, и это здорово.

У меня вопрос: как правильно маркировать листинг программ?

Для главы это так , chap:Nameа для подраздела — sub:Nameтак что же это за листинг программы?

Выравнивание — это когда я делаю перекрестную ссылку, мне нужно эквивалентное форматирование, как при ссылке на раздел ... section 2.1 ...при ссылке. (На самом деле я не пишу «раздел», который автоматически генерируется Lyx, мне нужно то же самое для листинга).

решение1

На самом деле нет «правильного» ответа, так как вам придется определить это самостоятельно. LyX использует пакеты refstyleдля таких форматированных ссылок, и, насколько я могу судить, в нем нет определений для листингов программ.

Так что, я думаю, вам следует добавить такое определение в преамбулу в Документ --> Настройки --> Преамбула LaTeX. Простой пример:

\newref{lst}{
   name   = listing~,
   names  = listing~,
   Name   = Listing~,
   Names  = Listings~,
   rngtxt = {~to~},
   lsttxt = { and }}

С этим определением вы должны использовать lst:в качестве префикса the в метках. Если вы хотите какой-то другой префикс, измените lstin \newref{lst}на префикс по вашему выбору.

Однако следует отметить, что если вы не используете ERT, то, по-моему, вам нужен только \newref{lst}{name = listing~}, поскольку LyX просто не поддерживает другие форматы ссылок, если я не ошибаюсь.

Последнее замечание: как правило, не существует правильного способа написания меток для глав, разделов и т. д. Использование chap, secи eqт. д. — это просто соглашение, это не то, что вам нужно делать.Пока невы используете refstyleпакет. На самом деле, для этого нужны правильные строки в качестве префиксов, чтобы выяснить, какой тип объекта упоминается. Пакет cleverefв этом смысле умнее, так как он сам во всем разбирается.

Связанный контент