Список символов для каждой главы

Список символов для каждой главы

Я пишу диссертацию с несколькими главами, и некоторые символы используются в нескольких главах, но их определения различаются от главы к главе. Я хотел бы иметь один список символов в начале документа, но символы каждой главы будут разделены названием главы. Что-то вроде этого:

Список символов

chapter 1

   S size

  chapter 2

   S area

Chapter 1

  S is the radius of the cell.

Chapter 2

  S is the area.

решение1

Как говорит Марко в своем комментарии, это нехороший стиль. Ваш читатель приходит к вашемуСписок символовожидая поиска определенного символа в алфавитном списке. Разделение этого списка на несколько списков по главам усложняет их работу, если они не знают, в какой главе символ был впервые определен.

Кроме того, если вы разделите свой список на несколько списков по главам, ваш читатель может не ожидать, что "S" имеет разные значения в разных главах. Они могут увидеть, что "S" - это "радиус ячейки" в списке Главы 1, и не потрудиться читать дальше, чтобы узнать, что на самом деле это означало "площадь" в главе, которую они читали.

Если вам действительно нужно присвоить «S» разные значения в разных главах, то, я думаю, проще всего будет иметь единый список символов, а для записи «S» явно указать два значения, например:

List of symbols
---------------

R:    random reachability relation
S:    cell radius (in Chapter 1) / area (in Chapter 2)
T:    terrifyingly transitory transaction

решение2

Отказ от ответственностиЯ полностью согласен с комментариями о том, что создание глоссария для каждой главы — не очень хорошая идея, а использование одного и того же символа для разных определений в разных главах — еще хуже!

Однако вот решение, основанное наglossariespackage. Сначала я предоставлю код, а затем по частям объясню, что он делает.

\documentclass{report}
\usepackage{hyperref}
\usepackage[nonumberlist,nomain]{glossaries}

\renewcommand*{\glspostdescription}{}
\newglossary{chap1}{chap1}{sbl1}{Chapter 1: Symbols}
\newglossary{chap2}{chap2}{sbl2}{Chapter 2: Symbols}
\newcommand{\addgloss}[2]{\newglossaryentry{#1}{type=chap\thechapter,name=#1,description={#2}}}
\newcommand{\addglossmath}[3]{\newglossaryentry{#3}{type=chap\thechapter,name=\ensuremath{#1},description={#2}}}
\newcommand{\printchapglossary}{\glsaddall%
\printglossary[type=chap\thechapter]}
\makeglossaries

\begin{document}

\chapter{First chapter}
\begin{equation}
E=mc^2
\end{equation}
\addglossmath{E}{Total energy}{E}
\addglossmath{m}{Mass}{m}
\addglossmath{c}{Celerity}{c}

\printchapglossary

\chapter{Second chapter}
\addgloss{test}{This is a test entry}
\addglossmath{\pi}{Famous symbol...}{pi}
Here is a \gls{test} to see the value of \gls{pi}.

\printchapglossary

\printglossaries

\end{document}

Прежде всего, вам не нужен пакет hyperref, но если он вам нужен для других целей, вам нужно загрузить его перед glossariesпакетом. Параметры, используемые здесь с этим пакетом, следующие: ( nonumberlist) для удаления номера страницы после каждой записи глоссариев и ( nomain) для избавления от основного файла глоссария, который не используется, если вы не хотите иметь основную номенклатуру, включающую все записи.

Используется \renewcommand*{\glspostdescription}{}для удаления точки в конце каждой записи глоссария при печати. ​​Затем следует «раздражающая» часть: чтобы иметь один небольшой глоссарий для каждой главы, вам нужно определить один за другим эти глоссарии с помощью команды \newglossary. Первый аргумент — это метка подглоссария, два следующих — это расширения файлов, которые будут созданы для хранения записей, а последний — это имя подглоссария, которое будет напечатано как заголовок (не стесняйтесь переименовывать его по своему вкусу!).

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

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

Другая команда \addglossmath— для математических символов. Первый аргумент — это символ (например, \pi), второй аргумент — это определение, а третий аргумент — это метка, в которой не следует использовать никаких специальных символов (например, pi).

Наконец, я определил третью команду \printglossaryдля использования там, где вы хотите иметь глоссарий текущей главы. Команда, \glsaddallиспользуемая здесь, позволяет вам иметь записи в глоссарии, определенные предыдущей командой, даже если они не используются ни с одной из команд \gsl, \Gsl, ....

Если вы хотите, чтобы все записи были отсортированы по главам, вам просто нужно вызвать \printglossariesнужную функцию в документе.

ПРИМЕЧАНИЕПредположим, что ваш документ называется mydoc.tex, вам необходимо выполнить следующие команды в терминале:

  1. latex mydoc
  2. makeglossaries mydoc
  3. latex mydoc

Это необходимо для создания всех необходимых ссылок.

РЕДАКТИРОВАТЬКак предположила Никола Тэлбот, возможно, было бы неплохой идеей загрузитьmorewritesпакет перед glossariesпакетом, чтобы убедиться, что регистры не закончились.

Кроме того, это всего лишь грубое представление о том, что возможно, и результат неудовлетворителен (отсутствие однородности в записях и т. д.), но это можно исправить, если вы хотите двигаться в этом направлении.

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