Ошибки при использовании «Списка символов» для диссертации с использованием файлов .bib?

Ошибки при использовании «Списка символов» для диссертации с использованием файлов .bib?

Я хотел бы использовать эффективный метод создания глоссария и иметь возможность классифицировать различные «типы» записей в разных списках (аббревиатуры, аббревиатуры, символы, глоссарий и т. д.).

Я подписался на два поста, которые просто потрясающие и которые я советую:

Theпервый, показывает, как классифицировать различные записи, используя файлы .bib для символов. Я следовал этому, используя метод 4.второй постпоказывает, как следовать этому методу, создавая глоссарий, содержащий символы, аббревиатуры, определения и т. д.

Я новичок в LaTex, но многому научился, следуя этим методам (спасибо большое Николе Тэлбот). Я почти у цели, но в результате все еще есть некоторые ошибки. Я создал тестовые файлы, чтобы проверить, чего я хотел бы добиться.

Вот код, который я тестирую:

\documentclass{report}

\usepackage{amssymb}
\usepackage{siunitx}


\usepackage[record,abbreviations,acronyms,symbols,stylemods={tree},style=treegroup]{glossaries-extra}


% always set the abbreviation style before \GlsXtrLoadResources
\setabbreviationstyle{short-long-desc}
\setabbreviationstyle[acronym]{short-long}


% Assign group titles:
\glsxtrsetgrouptitle{latin}{Latin Symbols}
\glsxtrsetgrouptitle{greek}{Greek Symbols}

\GlsXtrLoadResources[
  src={no-interpret-preamble,glossary},% bib files
  sort={en-US},% sort according to this locale
  set-widest,% needed for 'alttree' styles
%  save-locations=false % use this command to pring only the acronyms you are using
  selection=all% select all entries in the .bib files
]


\GlsXtrLoadResources[
 src={symbols-greek},
 sort={letter-case}, % sort according Unicode value
 field-aliases={
   unitname=name,
   unitsymbol=symbol,
   measurement=description
 },
 symbol-sort-fallback=name,
 type=symbols,
 group=greek,
 set-widest,% needed for 'alttree' styles
 save-locations=false % pring only used symbols.
]

\GlsXtrLoadResources[
 src={symbols-latin},
  sort={letter-case},% sort according Unicode value
  symbol-sort-fallback=name,
  type=symbols,
  group=latin,
  set-widest,% needed for 'alttree' styles
  selection=all% select all entries in the .bib files
]




\begin{document}

\section*{Examples}
In this section, I will use the following greek symbols: \gls{alpha}, \gls{alphalin} and \gls{delta}.

One acronym is for example \glstext{ad} and one abbreviation is given by \glstext{html}.



\printunsrtglossary[type=acronyms,style=alttree,title={List of Acronyms}]
\printunsrtglossary[type=abbreviations,style=alttree,title={List of Abbreviations}]
\printunsrtglossary[style=alttree,title={Glossary}] % By not specifing the type, I pring only the entries
\printunsrtglossary[type=symbols,style=alttreegroup,title={List of Symbols}]
\end{document}

Вы можете найти файлno-interpret-preamble.bibздесь. Файлы glossary.bibиsymbols-latin.bibsymbols-greek.bib выглядят так (вдохновлено работами Николы Тальбот):

глоссарий.bib:

% glossary.bib

% This file is public domain. See the "Examples" chapter
% in the bib2gls user manual for a more detailed description
% of this file.

% Encoding: UTF-8

@preamble{"\providecommand{\abbrvtag}[1]{#1}"}
@string{markuplang="\abbrvtag{m}arkup \abbrvtag{l}anguage"}

@entry{TeX,
  name={{}\TeX},
  description={a format for describing complex type and page layout
    often used for mathematics, technical, and academic publications},
  identifier={markuplanguage}
}

@entry{LaTeX,
  name={{}\LaTeX},
  description={a format of \glstext{TeX} designed to separate
   content from style},
  identifier={markuplanguage}
}

@entry{markdown,
  name={markdown},
  description={a lightweight markup language with plain text
    formatting syntax},
  identifier={markuplanguage}
}


@acronym{ad,
  short={AD},
  long={Affinity Diagram},
  description={Tool that gathers large amounts of language data and organizes them into groupings based on their natural relationships},
  identifier={acronym}
}

@acronym{dom,
  short={DOM},
  long={Document Object Model},
  description={Cross-platform and language-independent application programming interface},
  identifier={acronym}
}


@acronym{spa,
  short={SPA},
  long={Single Page Application},
  description={Web applicaiton of web site that interacts with the user by dynanically rewriting the current page},
  identifier={acronym}
}


@acronym{svp,
  short={SVG},
  long={Scalable Vector Graphics},
  description={{}\glstext{xml}-based vector image format for two-dimensional graphics with support for interactivity and animation},
  identifier={acronym}
}

@abbreviation{xml,
  short={XML},
  long={e\abbrvtag{x}tensible }#markuplang,
  description={a markup language that defines a set of rules for
    encoding documents},
  identifier={markuplanguage}
}

@abbreviation{html,
  short={HTML},
  long={\abbrvtag{h}yper\abbrvtag{t}ext }#markuplang,
  description={the standard markup language for creating web pages},
  identifier={markuplanguage}
}

@abbreviation{mathml,
  short={MathML},
  long={\abbrvtag{m\NoCaseChange{ath}}ematical }#markuplang,
  description={markup language for describing mathematical notation},
  identifier={markuplanguage}
}

@abbreviation{xhtml,
  short={XHTML},
  long={e\abbrvtag{x}tensible \abbrvtag{h}yper\abbrvtag{t}ext }
    # markuplang,
  description={{}\glstext{xml} version of \glstext{html}},
  identifier={markuplanguage}
}

символы-греческий.bib:

% symbols-greek.bib

% Put here all greek symbols
% Encoding: UTF-8

@symbol{alpha,
 name={\ensuremath{\alpha}},
 description={angular acceleration},
 indentifier={mathgreek}
}
@symbol{alphalin,
 name={\ensuremath{\alpha_{L}}},
 description={linear coefficient of thermal expansion},
 indentifier={mathgreek}
}
@symbol{delta,
 name={\ensuremath{\delta}},
 description={Kronecker delta},
 indentifier={mathgreek}
}
@symbol{lambda,
 name={\ensuremath{\lambda}},
 description={Lagrange multiplier},
 indentifier={mathgreek}
}
@symbol{chi,
 name={\ensuremath{\chi}},
 description={chromatic number},
 indentifier={mathgreek}
}
@symbol{rho,
 name={\ensuremath{\rho}},
 description={density},
 indentifier={mathgreek}
}
@symbol{zeta,
 name={\ensuremath{\zeta}},
 description={Riemann zeta function},
 indentifier={mathgreek}
}

символы-латинские.bib:

% symbols-latin.bib

% Put here all latin symbols
% Encoding: UTF-8

@symbol{x,
 name={\ensuremath{x}},
 description={position},
 indentifier={mathlatin}
}
@symbol{v,
 name={\ensuremath{v}},
 description={velocity},
 indentifier={mathlatin}
}
@symbol{a,
 name={\ensuremath{a}},
 description={acceleration},
 indentifier={mathlatin}
}
@symbol{t,
 name={\ensuremath{t}},
 description={time},
 indentifier={mathlatin}
}
@symbol{E,
 name={\ensuremath{E}},
 description={Young's modulus},
 indentifier={mathlatin}
}
@symbol{F,
 name={\ensuremath{F}},
 description={force},
 indentifier={mathlatin}
}
@symbol{Tm,
 name={\ensuremath{T_{m}}},
 description={melting point temperature},
 indentifier={mathlatin}
}
@symbol{KIC,
 name={\ensuremath{K_{IC}}},
 description={stress intensity factor},
 indentifier={mathlatin}
}
@symbol{Z,
 name={\ensuremath{Z}},
 description={atomic number},
 indentifier={mathlatin}
}

Однако полученный результат неудовлетворителен.

Что я делаю не так? Почему я не могу получить список сокращений? Как сделать список сокращений читабельным?

Я был бы очень благодарен за вашу помощь. Я почти у цели...

решение1

В стенограмме вы найдете несколько предупреждений:

Package glossaries-extra Warning: Glossary type `acronyms' doesn't exist on input line 65.
Package glossaries-extra Warning: No entries defined in glossary `acronyms' on input line 65.

Название глоссария сокращений acronymне является acronymsтаким, какое вам нужно:

\printunsrtglossary[type=acronym,style=alttree,title={List of Acronyms}]

или

\printunsrtglossary[type=\acronymtype,style=alttree,title={List of Acronyms}]

Опция set-widestпытается определить, какая запись имеет самое широкое имя, но bib2glsне знает nameдля сокращений/акронимов (так как у нее нет доступа к информации о стиле, установленной в документе), поэтому она предполагает, что имя является просто краткой формой по умолчанию, поэтому она не учитывает длинную форму при выполнении измерений. Однако стиль не alttreeподходит для сокращений с описаниями, потому что в итоге у вас останется только крошечное количество места для описания. Лучше использовать бегущий стиль (например, tree) или стиль, который ставит разрыв перед описанием (например, altlist).

Например:

\printunsrtglossary[type=abbreviations,style=altlist,title={List of Abbreviations}]

Кстати, лучше не использовать \glstextс аббревиатурами. Если вы хотите, чтобы отображалась только краткая форма (независимо от того, использовалась ли аббревиатура), то используйте \glsс одним из short-nolongстилей.¹ (Если вы хотите обеспечить краткую форму для подписей или заголовков, используйте \glsfmtshort.) Использование \glsвместо \glstextпомогает обеспечить правильный стиль аббревиатуры.


¹В стиле есть ошибка short-nolong-desc, которая исправлена ​​в glossaries-extraверсии 1.39.

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