Your second example uses the long glossary style (set with style=long in the optional argument of \printunsrtglossary). This only shows the term (e.g. \ensuremath{x}) and the description (e.g. position) but it doesn't show any other information (except the location list, which isn't present in that example). You not only need to add the units but also provide a style which will show them.

Some of the predefined styles show the symbol field as well, so if you use this field to store the unit, then you can just use a style that shows the symbol. Table 15.1 in the glossaries user manual indciates which styles show the symbol.

For example,

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,sort=none]{glossaries-extra}

\glsxtrnewsymbol[description={position},symbol={\si{m}}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity},symbol={\si{\metre\per\second}}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration},symbol={\si{\metre\per\second\squared}}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time},symbol={\si{s}}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force},symbol={\si{N}}]{F}{\ensuremath{F}}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long4col]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$. Reference unit: $\glssymbol{v}$.

\end{document}

This produces:

This actually has four columns, but the fourth is empty as there's no location list. The \glssymbol command works like \gls but displays the symbol value (unit, in this case).

If you'd rather have a custom unit key, instead of using the provided symbol key, you can add one as in your first example. There are two commands that can add a new key: \glsaddkey and \glsaddstoragekey. It depends whether you want to use a command like \glssymbol in the above example. If you do, then you need:

\glsaddkey{unit}{}{\glsentryunit}{\Glsentryunit}{\glsunit}{\Glsunit}{\GLSunit}

(The case-changing commands don't make much sense for units, but the syntax requires them.) If you only need the unit to show in the list of symbols then you can do:

\glsaddstoragekey{unit}{}{\glsentryunit}

You also need to use \glsnoexpandfields to avoid problems caused by expansion.

You can use the glossary style in your first example, but it ought to use \glsentryunit instead of \glsunit:

\newglossarystyle{symbunitlong}{%
 \setglossarystyle{long3col}% base this style on the list style
 \renewenvironment{theglossary}{% Change the table type --> 3 columns
   \begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
   {\end{longtable}}%
 \renewcommand*{\glossaryheader}{%  Change the table header
   \bfseries Symbol & \bfseries Description & \bfseries Unit\\\hline
   \endhead}%
 \renewcommand*{\glossentry}[2]{%  Change the displayed items
    \glstarget{##1}{\glossentryname{##1}} %
    & \glossentrydesc{##1}% Description
    & \glsentryunit{##1}  \tabularnewline
 }%
}

The width of the description column is given by \glsdescwidth. You can change this if it's the wrong size. For example:

\setlength{\glsdescwidth}{.5\textwidth}

which makes it half the available text width or you can use an absolute value:

\setlength{\glsdescwidth}{3in}

Alternatively, you can just change all the columns to l if you have short descriptions:

 \renewenvironment{theglossary}%
   {\begin{longtable}{lll}}%
   {\end{longtable}}%

Complete example:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,sort=none]{glossaries-extra}

% new keys must be defined before use
\glsaddstoragekey{unit}{}{\glsentryunit}
\glsnoexpandfields

\glsxtrnewsymbol[description={position},unit={\si{m}}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity},unit={\si{\metre\per\second}}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration},unit={\si{\metre\per\second\squared}}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time},unit={\si{s}}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force},unit={\si{N}}]{F}{\ensuremath{F}}

\newglossarystyle{symbunitlong}{%
 \setglossarystyle{long3col}% base this style on the list style
 \renewenvironment{theglossary}{% Change the table type --> 3 columns
   \begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
   {\end{longtable}}%
 %
 \renewcommand*{\glossaryheader}{%  Change the table header
   \bfseries Symbol & \bfseries Description & \bfseries Unit\\\hline
   \endhead}%
 \renewcommand*{\glossentry}[2]{%  Change the displayed items
    \glstarget{##1}{\glossentryname{##1}} %
    & \glossentrydesc{##1}% Description
    & \glsentryunit{##1}  \tabularnewline
 }%
}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=symbunitlong]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$.

\end{document}

The list of symbols looks like:

This deals with how to display the units in the list of symbols, but the ordering is performed manually by defining each symbol in the desired order. If you want to automatically order first by Latin and then by Greek, you need to use an extra tool. The best one for this task is bib2gls because it recognises Greek commands such as \alpha, but for this you need to define all your symbols in a .bib file.

For example, symbols.bib:

% Encoding: UTF-8

@symbol{alpha,
  unit= {\si{\radian\per\second\squared}},
  name = {\ensuremath{\alpha}},
  description = {angular acceleration}
}

@symbol{x,
  unit = {\si{m}},
  name = {\ensuremath{x}},
  description = {position}
}

@symbol{v,
  unit = {\si{\metre\per\second}},
  name = {\ensuremath{v}},
  description = {velocity}
}

@symbol{a,
  unit = {\si{\metre\per\second\squared}},
  name = {\ensuremath{a}},
  description = {acceleration}
}

@symbol{t,
  unit = {\si{s}},
  name = {\ensuremath{t}},
  description = {time}
}

@symbol{F,
  unit = {\si{N}},
  name = {\ensuremath{F}},
  description = {force}
}

The document:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[record,% using bib2gls
 symbols % create list of symbols
]{glossaries-extra}

% new keys must be defined before \GlsXtrLoadResources    
\glsaddstoragekey{unit}{}{\glsentryunit}

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols % put these terms in the symbols list
]

% Define new glossary style

\newglossarystyle{symbunitlong}{%
 \setglossarystyle{long3col}% base this style on the list style
 \renewenvironment{theglossary}{% Change the table type --> 3 columns
   \begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
   {\end{longtable}}%
 %
 \renewcommand*{\glossaryheader}{%  Change the table header
   \bfseries Symbol & \bfseries Description & \bfseries Unit\\\hline
   \endhead}%
 \renewcommand*{\glossentry}[2]{%  Change the displayed items
    \glstarget{##1}{\glossentryname{##1}} %
    & \glossentrydesc{##1}% Description
    & \glsentryunit{##1}  \tabularnewline
 }%
}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=symbunitlong]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$.

\end{document}

If the document is called test.tex then the document build is:

pdflatex test
bib2gls test
pdflatex test

(If you need help integrating this with your text editor, see Incorporating makeglossaries or makeglossaries-lite or bib2gls into the document build.)

The sort=letter-nocase option performs a case-insensitive character sort, so the Latin characters will naturally end up before the Greek characters. The result is:

If you prefer to just use the long4col style, then the fourth column will now contain the location lists (where the term was used in the document). For example:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[record,% using bib2gls
 symbols % create list of symbols
]{glossaries-extra}

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols, % put these terms in the symbols list
  field-aliases={unit=symbol}% convert unit key to symbol
]

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long4col]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$. Unit for $\gls{v}$: $\glssymbol{v}$.

\end{document}

The option field-aliases={unit=symbol} makes bib2gls treat the custom unit field as though it was actually the symbol field, so there's no need to change the symbols.bib file. (Without this alias, bib2gls will ignore the unit field, since the unit key is no longer defined in the document.)

You can omit the location list with either the nonumberlist option. For example:

\usepackage[record,symbols,nonumberlist]{glossaries-extra}

or

\printunsrtglossary[type=symbols,style=long4col,nonnumberlist]

Alternatively, you can use save-locations=false in the resource options:

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols, % put these terms in the symbols list
  field-aliases={unit=symbol},% convert unit key to symbol
  save-locations=false % don't save location lists
]

The glossaries-extra package now comes with a supplementary package glossary-longextra that provides additional glossary styles that use the longtable environment. These are more flexible than the long styles provided with the base glossaries package, and so are easier to adjust. There are samples of each of the longextra styles in the glossaries gallery. (If glossary-longextra.sty isn't found, try upgrading your glossaries-extra installation.)

For example:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[record,% using bib2gls
 symbols, % create list of symbols
 stylemods={longextra} % load glossary-longextra.sty
]{glossaries-extra}

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols, % put these terms in the symbols list
  field-aliases={unit=symbol},% convert unit key to symbol
  save-locations=false % don't save location lists
]

% change column headers:
\renewcommand{\entryname}{Symbol}
\renewcommand{\symbolname}{Unit}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long-name-desc-sym]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$. Unit for $\gls{v}$: $\glssymbol{v}$.

\end{document}

This uses the long-name-desc-sym style that has the name in the first column, the description in the second column and the symbol in the third column. The header text for the name and symbol columns are given by the language-sensitive commands \entryname and \symbolname. These are redefined in the above example. This style doesn't show the location list, so I've instructed bib2gls to not bother saving the locations (with save-locations=false).

The column alignments can be changed by redefining \glslongextraNameAlign, for the name column, and \glslongextraSymbolAlign, for the symbol column. For example:

\renewcommand{\glslongextraNameAlign}{c}
\renewcommand{\glslongextraSymbolAlign}{r}

If you want a different column ordering, you can just use one of the other styles. For example, the long-name-sym-desc has the name in the first column, the symbol in the second column and the description in the third column.

Answer from Nicola Talbot on Stack Exchange
Top answer
1 of 2
11

Your second example uses the long glossary style (set with style=long in the optional argument of \printunsrtglossary). This only shows the term (e.g. \ensuremath{x}) and the description (e.g. position) but it doesn't show any other information (except the location list, which isn't present in that example). You not only need to add the units but also provide a style which will show them.

Some of the predefined styles show the symbol field as well, so if you use this field to store the unit, then you can just use a style that shows the symbol. Table 15.1 in the glossaries user manual indciates which styles show the symbol.

For example,

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,sort=none]{glossaries-extra}

\glsxtrnewsymbol[description={position},symbol={\si{m}}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity},symbol={\si{\metre\per\second}}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration},symbol={\si{\metre\per\second\squared}}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time},symbol={\si{s}}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force},symbol={\si{N}}]{F}{\ensuremath{F}}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long4col]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$. Reference unit: $\glssymbol{v}$.

\end{document}

This produces:

This actually has four columns, but the fourth is empty as there's no location list. The \glssymbol command works like \gls but displays the symbol value (unit, in this case).

If you'd rather have a custom unit key, instead of using the provided symbol key, you can add one as in your first example. There are two commands that can add a new key: \glsaddkey and \glsaddstoragekey. It depends whether you want to use a command like \glssymbol in the above example. If you do, then you need:

\glsaddkey{unit}{}{\glsentryunit}{\Glsentryunit}{\glsunit}{\Glsunit}{\GLSunit}

(The case-changing commands don't make much sense for units, but the syntax requires them.) If you only need the unit to show in the list of symbols then you can do:

\glsaddstoragekey{unit}{}{\glsentryunit}

You also need to use \glsnoexpandfields to avoid problems caused by expansion.

You can use the glossary style in your first example, but it ought to use \glsentryunit instead of \glsunit:

\newglossarystyle{symbunitlong}{%
 \setglossarystyle{long3col}% base this style on the list style
 \renewenvironment{theglossary}{% Change the table type --> 3 columns
   \begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
   {\end{longtable}}%
 \renewcommand*{\glossaryheader}{%  Change the table header
   \bfseries Symbol & \bfseries Description & \bfseries Unit\\\hline
   \endhead}%
 \renewcommand*{\glossentry}[2]{%  Change the displayed items
    \glstarget{##1}{\glossentryname{##1}} %
    & \glossentrydesc{##1}% Description
    & \glsentryunit{##1}  \tabularnewline
 }%
}

The width of the description column is given by \glsdescwidth. You can change this if it's the wrong size. For example:

\setlength{\glsdescwidth}{.5\textwidth}

which makes it half the available text width or you can use an absolute value:

\setlength{\glsdescwidth}{3in}

Alternatively, you can just change all the columns to l if you have short descriptions:

 \renewenvironment{theglossary}%
   {\begin{longtable}{lll}}%
   {\end{longtable}}%

Complete example:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,sort=none]{glossaries-extra}

% new keys must be defined before use
\glsaddstoragekey{unit}{}{\glsentryunit}
\glsnoexpandfields

\glsxtrnewsymbol[description={position},unit={\si{m}}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity},unit={\si{\metre\per\second}}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration},unit={\si{\metre\per\second\squared}}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time},unit={\si{s}}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force},unit={\si{N}}]{F}{\ensuremath{F}}

\newglossarystyle{symbunitlong}{%
 \setglossarystyle{long3col}% base this style on the list style
 \renewenvironment{theglossary}{% Change the table type --> 3 columns
   \begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
   {\end{longtable}}%
 %
 \renewcommand*{\glossaryheader}{%  Change the table header
   \bfseries Symbol & \bfseries Description & \bfseries Unit\\\hline
   \endhead}%
 \renewcommand*{\glossentry}[2]{%  Change the displayed items
    \glstarget{##1}{\glossentryname{##1}} %
    & \glossentrydesc{##1}% Description
    & \glsentryunit{##1}  \tabularnewline
 }%
}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=symbunitlong]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$.

\end{document}

The list of symbols looks like:

This deals with how to display the units in the list of symbols, but the ordering is performed manually by defining each symbol in the desired order. If you want to automatically order first by Latin and then by Greek, you need to use an extra tool. The best one for this task is bib2gls because it recognises Greek commands such as \alpha, but for this you need to define all your symbols in a .bib file.

For example, symbols.bib:

% Encoding: UTF-8

@symbol{alpha,
  unit= {\si{\radian\per\second\squared}},
  name = {\ensuremath{\alpha}},
  description = {angular acceleration}
}

@symbol{x,
  unit = {\si{m}},
  name = {\ensuremath{x}},
  description = {position}
}

@symbol{v,
  unit = {\si{\metre\per\second}},
  name = {\ensuremath{v}},
  description = {velocity}
}

@symbol{a,
  unit = {\si{\metre\per\second\squared}},
  name = {\ensuremath{a}},
  description = {acceleration}
}

@symbol{t,
  unit = {\si{s}},
  name = {\ensuremath{t}},
  description = {time}
}

@symbol{F,
  unit = {\si{N}},
  name = {\ensuremath{F}},
  description = {force}
}

The document:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[record,% using bib2gls
 symbols % create list of symbols
]{glossaries-extra}

% new keys must be defined before \GlsXtrLoadResources    
\glsaddstoragekey{unit}{}{\glsentryunit}

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols % put these terms in the symbols list
]

% Define new glossary style

\newglossarystyle{symbunitlong}{%
 \setglossarystyle{long3col}% base this style on the list style
 \renewenvironment{theglossary}{% Change the table type --> 3 columns
   \begin{longtable}{lp{\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
   {\end{longtable}}%
 %
 \renewcommand*{\glossaryheader}{%  Change the table header
   \bfseries Symbol & \bfseries Description & \bfseries Unit\\\hline
   \endhead}%
 \renewcommand*{\glossentry}[2]{%  Change the displayed items
    \glstarget{##1}{\glossentryname{##1}} %
    & \glossentrydesc{##1}% Description
    & \glsentryunit{##1}  \tabularnewline
 }%
}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=symbunitlong]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$.

\end{document}

If the document is called test.tex then the document build is:

pdflatex test
bib2gls test
pdflatex test

(If you need help integrating this with your text editor, see Incorporating makeglossaries or makeglossaries-lite or bib2gls into the document build.)

The sort=letter-nocase option performs a case-insensitive character sort, so the Latin characters will naturally end up before the Greek characters. The result is:

If you prefer to just use the long4col style, then the fourth column will now contain the location lists (where the term was used in the document). For example:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[record,% using bib2gls
 symbols % create list of symbols
]{glossaries-extra}

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols, % put these terms in the symbols list
  field-aliases={unit=symbol}% convert unit key to symbol
]

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long4col]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$. Unit for $\gls{v}$: $\glssymbol{v}$.

\end{document}

The option field-aliases={unit=symbol} makes bib2gls treat the custom unit field as though it was actually the symbol field, so there's no need to change the symbols.bib file. (Without this alias, bib2gls will ignore the unit field, since the unit key is no longer defined in the document.)

You can omit the location list with either the nonumberlist option. For example:

\usepackage[record,symbols,nonumberlist]{glossaries-extra}

or

\printunsrtglossary[type=symbols,style=long4col,nonnumberlist]

Alternatively, you can use save-locations=false in the resource options:

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols, % put these terms in the symbols list
  field-aliases={unit=symbol},% convert unit key to symbol
  save-locations=false % don't save location lists
]

The glossaries-extra package now comes with a supplementary package glossary-longextra that provides additional glossary styles that use the longtable environment. These are more flexible than the long styles provided with the base glossaries package, and so are easier to adjust. There are samples of each of the longextra styles in the glossaries gallery. (If glossary-longextra.sty isn't found, try upgrading your glossaries-extra installation.)

For example:

\documentclass{report}

\usepackage{siunitx}

\usepackage[colorlinks]{hyperref}
\usepackage[record,% using bib2gls
 symbols, % create list of symbols
 stylemods={longextra} % load glossary-longextra.sty
]{glossaries-extra}

\GlsXtrLoadResources[
  src={symbols}, % data in symbols.bib
  sort-field={name}, % sort by name field
  sort={letter-nocase}, % case-insensitive letter sort
  type=symbols, % put these terms in the symbols list
  field-aliases={unit=symbol},% convert unit key to symbol
  save-locations=false % don't save location lists
]

% change column headers:
\renewcommand{\entryname}{Symbol}
\renewcommand{\symbolname}{Unit}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long-name-desc-sym]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$. Unit for $\gls{v}$: $\glssymbol{v}$.

\end{document}

This uses the long-name-desc-sym style that has the name in the first column, the description in the second column and the symbol in the third column. The header text for the name and symbol columns are given by the language-sensitive commands \entryname and \symbolname. These are redefined in the above example. This style doesn't show the location list, so I've instructed bib2gls to not bother saving the locations (with save-locations=false).

The column alignments can be changed by redefining \glslongextraNameAlign, for the name column, and \glslongextraSymbolAlign, for the symbol column. For example:

\renewcommand{\glslongextraNameAlign}{c}
\renewcommand{\glslongextraSymbolAlign}{r}

If you want a different column ordering, you can just use one of the other styles. For example, the long-name-sym-desc has the name in the first column, the symbol in the second column and the description in the third column.

2 of 2
0

@Nicola Talbot Thank you for the excellent answer. It worked quite nicely! Maybe as a small extension for the last example. If you have multiple lists and don't want to make changes to all of them, you can also adjust the glossaries-extra styles as in the previous examples and define a new style based on them. You simply have more options with glossaries-extra, e.g.:

\documentclass{report}

\usepackage{siunitx}

\usepackage[abbreviations, % create list of abbreviations
            symbols, % create list of symbols
            nomain, % omit main glossary
            nopostdot, % remove dot at the end of entry
            nonumberlist, % don't show numbers where referenced
            stylemods={longextra} % load glossary-longextra.sty
            ]{glossaries-extra}

% new keys must be defined before use
\glsaddstoragekey{unit}{}{\glsentryunit}
\glsnoexpandfields

\glsxtrnewsymbol[description={position},unit={\si{m}}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity},unit={\si{\metre\per\second}}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration},unit={\si{\metre\per\second\squared}}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time},unit={\si{s}}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force},unit={\si{N}}]{F}{\ensuremath{F}}

\newglossarystyle{long-sym-desc-unit}{%
 \setglossarystyle{long-name-desc-sym}% base this style on the list style
    % change column headers:
    \renewcommand{\entryname}{Symbol}
    \renewcommand{\symbolname}{Unit}
    \renewcommand*{\glossentry}[2]{%  Change the displayed items
        \glstarget{##1}{\glossentryname{##1}} %
        & \glossentrydesc{##1} % Description
        & \glsentryunit{##1} % Unit
         \tabularnewline
 }%
}


\begin{document}

\printglossary[type=symbols,title=List of Symbols,style=long-sym-desc-unit]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$ and $\gls{alpha}$. Unit for $\gls{v}$: $\glssymbol{v}$.


\end{document}
🌐
OEISWiki
oeis.org › wiki › List_of_LaTeX_mathematical_symbols
List of LaTeX mathematical symbols - OeisWiki
All the predefined mathematical symbols from the TeX package are listed below. More symbols are available from extra packages. ... Scott Pakin, The Comprehensive LaTeX Symbol List, 2017.
Discussions

Using a Units column in the Glossary - LaTeX.org
Hi there, I'm currently using the ... fine and gives me a nice list of the symbols with the associated description. However, I want to add a column (after the symbols column) to the List of Symbols where I can display the units related to the symbols.... More on latex.org
🌐 latex.org
Generating a List of Symbols - LaTeX.org
I've also written a post on how ... (parts of) your thesis and don't want to check everything again. This is a very easy way as it is nothing more than creating a large table: check it out here. howtoTeX.com - Your LaTeX resource site (Tips, Tricks, Templates and more!) Follow howtoTeX on twitter ... Thanks a lot! I tried both the suggestions and all worked fine. Now I have few more questions. ... There are some symbols that are used ... More on latex.org
🌐 latex.org
November 23, 2012
Hot Linked Questions - TeX - LaTeX Stack Exchange
I'm trying to produce a list of symbols for my PhD thesis including a column with the units of the symbols. Therefore, I used the latex code provided in the following link: glossaries: add additional ... More on tex.stackexchange.com
🌐 tex.stackexchange.com
glossaries: How to customize list of symbols with additional column for units? - TeX - LaTeX Stack Exchange
I want to add an additional column to the list of symbols for inserting the belonging units to the preceding variables. In my case, it is necessary to use three different and independent glossary-... More on tex.stackexchange.com
🌐 tex.stackexchange.com
September 25, 2015
🌐
Overleaf
overleaf.com › learn › latex › Nomenclatures
Nomenclatures - Overleaf, Online LaTeX Editor
\usepackage{ifthen} \renewcommand{\nomgroup}[1]{% \item[\bfseries \ifthenelse{\equal{#1}{P}}{Physics constants}{% \ifthenelse{\equal{#1}{O}}{Other symbols}{% \ifthenelse{\equal{#1}{N}}{Number sets}{}}}% ]} This will produce the same nomenclature groups. Another interesting feature is using the siunitx package to add units, aligning them to the right of the corresponding entries.
🌐
LaTeX.org
latex.org › board index › general
Using a Units column in the Glossary - LaTeX.org
So that would basically create 3 columns, the first for the symbol, the 2nd for the unit and the 3rd for the description. Unfortunately I'm not able to do this for some reason. To add items to my List of Symbols I use the following commands: \newglossaryentry{deltac1}{type=symbols,name=\ensuremath{\delta_{c1}},text={\ensuremath{\delta_{c1}}},sort=dc1,description={Thickness of the coating deposited during one stroke},parent=romanletter} I can add in there the symbol={...} command, but that will result in the following display in my report: Scr ([km])Area of the supersonic nozzle throat T0 ([km])Stagnation temperature w ([km])Velocity of the coated surface with respect to the nozzle exit So the units are added not as a separate column, but as the start of the description column.
🌐
LaTeX.org
latex.org › board index › general
Generating a List of Symbols - LaTeX.org
November 23, 2012 - \documentclass{article} \usepackage{nomencl} \makenomenclature \begin{document} \section*{Main equations} \begin{equation} a=\frac{N}{A} \end{equation}% \nomenclature{$a$}{The number of angels per unit area}% \nomenclature{$N$}{The number of angels per needle point}% \nomenclature{$A$}{The area of the needle point}% The equation $\sigma = m a$% \nomenclature{$\sigma$}{The total mass of angels per unit area}% \nomenclature{$m$}{The mass of one angel} follows easily. \printnomenclature \end{document} If you save this as <filename>.tex and compile it once with pdflatex then with · Code: Select all · makeindex <filename>.nlo -s nomencl.ist -o <filename>.nls and then with pdflatex again you'll get the expected list.
🌐
Stack Exchange
tex.stackexchange.com › questions › linked › 269565
Hot Linked Questions - TeX - LaTeX Stack Exchange
I'm trying to produce a list of symbols for my PhD thesis including a column with the units of the symbols. Therefore, I used the latex code provided in the following link: glossaries: add additional ...
🌐
Fandom
latex-programming.fandom.com › wiki › List_of_LaTeX_symbols
List of LaTeX symbols | LaTeX Wiki | Fandom
3 days ago - The \pmb command is not supported by the Wikia's LaTeX parser. Other fonts are... ... Simple symbols (class 0) are rendered without any space between them. Operators (class 1) are rendered with spaces. Spacing symbols change the amount of spacing, either by adding more space or taking spaces away. Space is measured in math units, or mu.
Find elsewhere
🌐
CTAN
tug.ctan.org › info › symbols › comprehensive › symbols-a4.pdf pdf
The Comprehensive LaTeX Symbol List
Table 333: fontawesome5 Decorative Mathematical Symbols . . . . . . . . . . . . . . . . . . . . . . 157 · Table 334: Miscellaneous LATEX2" Math Symbols . . . . . . . . . . . . . . . . . . . . . .
Top answer
1 of 2
17

I suggest to use a separate unit key for the symbol unit and refer to it with \glsunit. (Alternative: Use the user1...user6 keys for this feature)

In addition, this key must be used in the glossarystyle. I've defined a new style based on the already provided long3col style which displays the symbols in the requested order.

\documentclass{book}                           
\usepackage{siunitx}
\usepackage[acronym,toc]{glossaries}              % use glossaries-package


\setlength{\glsdescwidth}{15cm}

\newglossary[slg]{symbolslist}{syi}{syg}{Symbolslist} % create add. symbolslist


\glsaddkey{unit}{\glsentrytext{\glslabel}}{\glsentryunit}{\GLsentryunit}{\glsunit}{\Glsunit}{\GLSunit}

\makeglossaries                                   % activate glossaries-package


% ==== EXEMPLARY ENTRY FOR SYMBOLS LIST =========================================
    \newglossaryentry{symb:Pi}{name=\ensuremath{\pi},
        description={Geometrical value},
        unit={},
        type=symbolslist}

    \newglossaryentry{height}{name=\ensuremath{h},
        description={Height of tower},
        unit={\si{m}},
        type=symbolslist}

    \newglossaryentry{energyconsump}{name=\ensuremath{P},
        description={Energy consumption},
        unit={\si{kW}},
        type=symbolslist}




% ==== EXEMPLARY ENTRY FOR ACRONYMS LIST ========================================
    \newacronym{VRBD}{VRBD}{Violet-Red-Bile-Glucose-Agar}


% ==== EXEMPLARY ENTRY FOR MAIN GLOSSARY ========================================
    \newglossaryentry{Biofouling}{name=Biofouling,description={Some description}}


\newglossarystyle{symbunitlong}{%
\setglossarystyle{long3col}% base this style on the list style
\renewenvironment{theglossary}{% Change the table type --> 3 columns
  \begin{longtable}{lp{0.6\glsdescwidth}>{\centering\arraybackslash}p{2cm}}}%
  {\end{longtable}}%
%
\renewcommand*{\glossaryheader}{%  Change the table header
  \bfseries Sign & \bfseries Description & \bfseries Unit \\
  \hline
  \endhead}
\renewcommand*{\glossentry}[2]{%  Change the displayed items
\glstarget{##1}{\glossentryname{##1}} %
& \glossentrydesc{##1}% Description
& \glsunit{##1}  \tabularnewline
}
}


\begin{document}

    \glsaddall

    \printglossary[type=\acronymtype,style=long]  % list of acronyms
    \printglossary[type=symbolslist,style=symbunitlong]   % list of symbols
    \printglossary[type=main]                     % main glossary

\end{document}

2 of 2
9

Just adding to Christian's answer: to use the unit macros inside the \si{unit} command defined by siunitx such as \metre and \kilo\watt used in his MWE, one should add the command \glssetnoexpandfield{unit} before setting any entries.

It is better explained in This Answer.

🌐
Rice University
cmor-faculty.rice.edu › ~heinken › latex › symbols.pdf pdf
LATEX Mathematical Symbols
LATEX Mathematical Symbols · The more unusual symbols are not defined in base LATEX (NFSS) and require �sepackage{amssymb}
🌐
Stack Exchange
tex.stackexchange.com › questions › 745606 › list-of-symbols-with-units-and-group-names
glossaries - List of Symbols with Units and Group Names - TeX - LaTeX Stack Exchange
I'm trying to create an alphabetically ordered list of symbols with two groups, Latin and Greek, with an additional unit column. At the moment I'm using this code \documentclass{article} \usepackage{
🌐
Wikipedia
en.wikipedia.org › wiki › List_of_mathematical_symbols_by_subject
List of mathematical symbols by subject
2 weeks ago - Most symbols have two printed versions. They can be displayed as Unicode characters, or in LaTeX format. With the Unicode version, using search engines and copy-pasting are easier. On the other hand, the LaTeX rendering is often much better (more aesthetic), and is generally considered a standard ...
🌐
UCSB
web.math.ucsb.edu › ~agboola › teaching › latex › latex_symbols_list.pdf pdf
The Comprehensive LATEX Symbol List Scott Pakin
June 25, 2020 - This document lists 14599 symbols and the corresponding LATEX commands that produce them. Some of these symbols are guaranteed to be available in every LATEX 2𝜀system; others require fonts and
🌐
Useoctree
tools.useoctree.com › symbols › units
LaTeX Units & Measurements - Degree, Angstrom, SI Units | Free Symbol Reference
January 17, 2014 - Complete list of LaTeX unit and measurement symbols. Copy-paste °, ′, ″, Å, μ, Ω, ℏ, SI units with LaTeX commands.
Top answer
1 of 1
84

Both the glossaries package and the glossaries-extra extension package provide the package option symbols, which creates a new list labelled symbols with the default title given by the language-sensitive \glssymbolsgroupname ("Symbols"). This list can be referenced with type=symbols. If you don't use this package option then you can use the default main glossary instead but the default title will be obtained from \glossaryname ("Glossary").

Table 1.1: Glossary Options: Pros and Cons in the glossaries manual summarises the key differences between the various options described below, and the glossaries performance page evaluates the performance (build time and sorting) of the various methods.

Method 1 (no external tools required, manual sorting)

This is the simplest method as it doesn't require any addition to the build process. Requires at least v1.08 of the glossaries-extra package.

Pros and Cons:

  1. you need to define the entries in the required order;
  2. there's no page list associated with each entry in the symbol list (although it's possible to add this manually);
  3. all defined entries will be included in the list regardless of whether or not they have been used in the document;
  4. all entries must be defined before the list is displayed;
  5. no external tools are required.

The first three points also apply to the manual method in your question that uses the tabular environment. The fourth point is automatically ensured by glossaries-extra's default behaviour, which prohibits entries from being defined in the document environment. (If you have a lot of symbols, I recommend you put the definitions in a separate file and load it in the preamble using \input or \loadglsentries.)

Each symbol must first be defined. If the symbols package option is used, this can be done with \glsxtrnewsymbol[options]{label}{symbol}. The symbol can then be referenced in the document using \gls{label}. For example, the symbol $t$ can be defined with the label t using:

\glsxtrnewsymbol[description={time}]{t}{\ensuremath{t}}

It can then be referenced using \gls{t}. An alternative way of defining this symbol is:

\newglossaryentry{t}{name={\ensuremath{t}},sort={t},description={time}}

or (if the symbols glossary has been defined):

\newglossaryentry{t}{name={\ensuremath{t}},sort={t},description={time},type={symbols}}

The \glsxtrnewsymbol command is more compact and is more appropriate for symbols, but the symbols package option is required to provide it.

With this method, I recommend the sort=none package option, as this switches off the redundant construction of the sort key. (This option may not be available if you have an old version of glossaries.)

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,sort=none]{glossaries-extra}

\glsxtrnewsymbol[description={position}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force}]{F}{\ensuremath{F}}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$.

\end{document}

If the file is called mydoc.tex, then the build process is:

pdflatex mydoc
pdflatex mydoc

(Replace pdflatex with xelatex etc as appropriate.) The second instance of pdflatex is only needed here to ensure the table of contents and the PDF bookmarks are up-to-date.

This produces the symbol list:

The list of symbols is automatically added to the table of contents:

You can change the title using the title key:

\printunsrtglossary[type=symbols,style=long,title={List of Symbols}]

I've used the long style, which is the closest match to your tabular example, but there are many predefined styles to choose from.

Make sure hyperref is loaded before glossaries-extra. (This is contrary to the general rule that hyperref should be loaded last.) This will allow commands like \gls to link to the relevant entry in the list of symbols.

It is possible to include a location, but as with all manual methods, this can be tiresome an error-prone. The following example only includes a location for the first symbol:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,record]{glossaries-extra}

\glsxtrnewsymbol[
 description={position},
 location={(see chapter~\ref{ch:sample}).}
]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force}]{F}{\ensuremath{F}}

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long]

\chapter{Sample}\label{ch:sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$.

\end{document}

The record option (amongst other things), creates a field called location which \printunsrtglossary checks for. The list of symbols now looks like:

Method 2 (using an external tool to sort)

This method is more complicated as it requires an extra step in the build process. It's much like the previous example, but there are a few modifications:

  • The nonumberlist option is added to suppress the location list that would automatically appear after each entry in the symbol list. (Remove this option if you actually want the locations.)
  • The command \makeglossaries must be added to the preamble (before the symbols are defined).
  • The command \printunsrtglossary must be replaced with \printglossary.

Pros and Cons:

  1. the entries are listed alphabetically (according to their sort value);
  2. each entry in the list can have a list of locations where that symbol has been used (with \gls) in the document;
  3. only those entries used (with \gls) in the document are included in the list;
  4. entries may be defined in the document (but this must be enabled with the docdef=restricted or docdef=true package option, which has some potentially problematic issues);
  5. an external tool is required in the build process.

Modified example:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,nonumberlist]{glossaries-extra}

\makeglossaries

\glsxtrnewsymbol[description={position}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force}]{F}{\ensuremath{F}}

\begin{document}
\tableofcontents
\printglossary[type=symbols,style=long,title={List of Symbols}]

\chapter{Sample}
Reference symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$.

\end{document}

Assuming the file is called mydoc.tex, the build process is:

pdflatex mydoc
makeglossaries mydoc
pdflatex mydoc

makeglossaries is a Perl script, so you need Perl installed to use it. If you don't have Perl, there's a light-weight Lua alternative called makeglossaries-lite which you can use instead. (Since modern TeX distributions come with LuaTeX, you should have a Lua interpreter already available.) The build process in this case is:

pdflatex mydoc
makeglossaries-lite mydoc
pdflatex mydoc

(makeglossaries-lite is actually distributed as makeglossaries-lite.lua, but TeX Live on Unix-like systems strip the .lua extension. I don't use Windows, but I think the extension can be omitted there as I believe the Windows distributions convert the Lua script to an executable makeglossaries-lite.exe.)

This produces an ordered list of symbols where the sort order is obtained from the first required argument of \glsxtrnewsymbol, which is also the label used to identify the term. If \newglossaryentry is used instead, the sort defaults to the name field, which causes problems for symbols that are defined in terms of LaTeX commands, such as \alpha or \sum. (This is why \glsxtrnewsymbol uses the label instead.)

Without the nonumberlist option the list includes a location list:

In this case, each location list consists of the number 3, which is the page on which all instances of \gls occur. You can switch to another counter if you prefer (for example, using the counter package option). The postpunc option allows a way of automatically inserting a punctuation character after the description but it's best used with the stylemods option. For example:

\usepackage[symbols,nogroupskip,stylemods,postpunc=dot]{glossaries-extra}

You can change the sort value using the sort key in the optional argument of \glsxtrnewsymbol. For example:

\glsxtrnewsymbol[description={time},sort={time}]{t}{\ensuremath{t}}

How you actually run makeglossaries/makeglossaries-lite depends on your setup. See, for example:

  • How to makeglossaries with TeXworks?
  • Incorporating makeglossaries or makeglossaries-lite or bib2gls into the document build.

If you're really stuck you can use the automake package option:

\usepackage[symbols,nogroupskip,nonumberlist,automake]{glossaries-extra}

This doesn't have the diagnostic tools provided by makeglossaries and requires the shell escape.

Both makeglossaries and makeglossaries-lite call an indexing application. You can call it directly, but you need to know all the necessary switches and file extensions. (The Perl and Lua scripts provided with the glossaries package find the necessary information in the .aux file.) The default behaviour is to use makeindex. You can switch to xindy by adding xindy to the list of package options:

\usepackage[symbols,nogroupskip,nonumberlist,xindy]{glossaries-extra}

(Note that xindy is a Perl script, so you need Perl installed to use it.) In the above example, there's no difference since \glsxtrnewsymbol sets the sort field to the label, which only contains ASCII characters.

Things become much more complicated if you directly use \newglossaryentry and the name field contains commands. For example:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,nonumberlist]{glossaries-extra}

\makeglossaries

\newglossaryentry{alpha}{
 name=\ensuremath{\alpha},
 description={angular acceleration},
 type=symbols
}
\newglossaryentry{delta}{
 name=\ensuremath{\delta},
 description={Kronecker delta},
 type=symbols
}
\newglossaryentry{lambda}{
 name=\ensuremath{\lambda},
 description={Lagrange multiplier},
 type=symbols
}
\newglossaryentry{chi}{
 name=\ensuremath{\chi},
 description={chromatic number},
 type=symbols
}
\newglossaryentry{zeta}{
 name=\ensuremath{\zeta},
 description={Riemann zeta function},
 type=symbols
}

\begin{document}
\tableofcontents
\printglossary[type=symbols,style=long,title={List of Symbols}]

\chapter{Sample}
Reference symbols: $\gls{delta}$, $\gls{chi}$, $\gls{alpha}$,
$\gls{zeta}$, $\gls{lambda}$.

\end{document}

In this case, the sort field is obtained from the name field, but neither makeindex nor xindy understand LaTeX commands. In the case of makeindex, it treats \ensuremath{\alpha} as a string containing 19 characters, starting with \ so the result is:

This doesn't follow the natural ordering of Greek letters (which should be α δ ζ λ χ) and will position the Greek symbols before Latin symbols (since \ is ordered before a by makeindex).

This example fails completely with xindy. If you use the makeglossaries-lite script, it fails with a cryptic message. If I just modify the document so that it includes the xindy package option:

\usepackage[symbols,nogroupskip,nonumberlist,xindy]{glossaries-extra}

then makeglossaries-lite reports:

Cannot locate xindy module for language english in codepage nil.
Cannot locate xindy module for language nil in codepage nil.

This is because the document doesn't have the codepage set. This needs to be added:

\usepackage[symbols,nogroupskip,nonumberlist,
 xindy={codepage=utf8,language=english}]{glossaries-extra}

(This isn't necessary with makeglossaries which falls back on -L english -C utf8 if this information is omitted.) However, even with this information, makeglossaries-lite fails with xindy's rather cryptic message:

ERROR: CHAR: index 0 should be less than the length of the string

Switching to makeglossaries provides a more intelligible explanation:

Sort key required for entries only containing command names.
Attempting to determine which entries have problem sort keys.
Parsing 'mydoc.slo'
5 problematic entries found:

Label: 'chi'. Sort value : '\\ensuremath {\\chi }'
(Try adding sort={chi} to the definition.)
Label: 'delta'. Sort value : '\\ensuremath {\\delta }'
(Try adding sort={delta} to the definition.)
Label: 'zeta'. Sort value : '\\ensuremath {\\zeta }'
(Try adding sort={zeta} to the definition.)
Label: 'alpha'. Sort value : '\\ensuremath {\\alpha }'
(Try adding sort={alpha} to the definition.)
Label: 'lambda'. Sort value : '\\ensuremath {\\lambda }'
(Try adding sort={lambda} to the definition.)

So with xindy you must supply a sensible sort value (or use \glsxtrnewsymbol to default to the label) for entries that only contain commands in the name field.

Method 3 (no external tools required, order by use in the document)

To order the symbol list according to the first time the symbol is used in the document, you need to make the following changes:

  • Add sort=use
  • Replace \makeglossaries with \makenoidxglossaries
  • Replace \printglossary with \printnoidxglossary

Pros and Cons:

  1. entries may be listed in alphabetical order (not recommended with this method) or by order of use (sort=use, as in this example) or by order of definition (sort=def);
  2. each entry in the list can have a list of locations where that symbol has been used (with \gls) in the document;
  3. only those entries used (with \gls) in the document are included in the list;
  4. all entries must be defined in the preamble;
  5. no external tools are required.

As you might be able to gather from the first point, you can also use this method as a substitute for the other two methods. However, when sorting alphabetically, Method 2 is far more efficient and can support various locales (when used with the xindy option), although this may not be applicable for symbols (especially when they just contain ASCII characters). For a large list, this method can take a long time when sorting alphabetically. When sorting by definition (sort=def), this method differs from Method 1 as it only includes those entries that have been used in the document (whereas Method 1 lists all defined entries).

Adjusted example (third page modified to show effect):

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,nonumberlist,sort=use]{glossaries-extra}

\makenoidxglossaries

\glsxtrnewsymbol[description={position}]{x}{\ensuremath{x}}
\glsxtrnewsymbol[description={velocity}]{v}{\ensuremath{v}}
\glsxtrnewsymbol[description={acceleration}]{a}{\ensuremath{a}}
\glsxtrnewsymbol[description={time}]{t}{\ensuremath{t}}
\glsxtrnewsymbol[description={force}]{F}{\ensuremath{F}}

\begin{document}
\tableofcontents
\printnoidxglossary[type=symbols,style=long,title={List of Symbols}]

\chapter{Sample}
Reference symbols: $\gls{F}$, $\gls{t}$, $\gls{x}$, $\gls{v}$, $\gls{a}$.

\end{document}

The build process is back to:

pdflatex mydoc
pdflatex mydoc

The list of symbols now looks like:

Again, removing the nonumberlist option makes the location list appear:

Things go badly wrong if you use this method with the default alphabetical sorting when the sort value contains commands. Adjusting the earlier example with Greek symbols:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,nonumberlist]{glossaries-extra}

\makenoidxglossaries

\newglossaryentry{alpha}{
 name=\ensuremath{\alpha},
 description={angular acceleration},
 type=symbols
}
\newglossaryentry{delta}{
 name=\ensuremath{\delta},
 description={Kronecker delta},
 type=symbols
}
\newglossaryentry{lambda}{
 name=\ensuremath{\lambda},
 description={Lagrange multiplier},
 type=symbols
}
\newglossaryentry{chi}{
 name=\ensuremath{\chi},
 description={chromatic number},
 type=symbols
}
\newglossaryentry{zeta}{
 name=\ensuremath{\zeta},
 description={Riemann zeta function},
 type=symbols
}

\begin{document}
\tableofcontents
\printnoidxglossary[type=symbols,style=long,title={List of Symbols}]

\chapter{Sample}
Reference symbols: $\gls{delta}$, $\gls{chi}$, $\gls{alpha}$,
$\gls{zeta}$, $\gls{lambda}$.

\end{document}

During sorting, the following error occurs:

! Improper alphabetic constant.
<to be read again> 
                   \protect 
l.36 ...ymbols,style=long,title={List of Symbols}]

This method is only designed for ASCII sorting. With this method, you must ensure that the sort value doesn't contain any commands (for example, use \glsxtrnewsymbol which obtains the sort value from the label) or use sort=def or sort=use.

Method 4 (external tool and .bib file(s) required)

This is a fairly new method. Instead of using makeindex or xindy (via makeglossaries or makeglossaries-lite), it requires bib2gls, which performs two functions:

  1. se­lects en­tries ac­cord­ing to records found in the .aux file (sim­i­lar to bib­tex);
  2. hi­er­ar­chi­cally sorts en­tries and col­lates lo­ca­tion lists (sim­i­lar to makein­dex or xindy).

Pros and Cons:

  1. you need to define the entries in a .bib file (not in the document);
  2. bib2gls allows any location format or you may instruct it to omit the location list;
  3. you can instruct bib2gls to select all defined entries or only recorded entries (and optionally their dependencies);
  4. can interpret common symbol commands;
  5. can sort according to locale, character code, letter-number mix, numeric, date, time, order of definition, order of use, or can shuffle or omit the sorting;
  6. requires at least Java 7.

The symbols are now defined in a .bib file. For example, instead of:

\glsxtrnewsymbol[description={angular acceleration}]{alpha}{\ensuremath{\alpha}}

the symbol is defined as:

@symbol{alpha,
 name={\ensuremath{\alpha}},
 description={angular acceleration}
}

Alternatively, instead of

\newglossaryentry{alpha}{
 name=\ensuremath{\alpha},
 description={angular acceleration},
 type=symbols
}

use

@entry{alpha,
 name={\ensuremath{\alpha}},
 description={angular acceleration}
}

(The type field has been omitted, as it's more flexible to assign it in the document.) As with \glsxtrnewsymbol, the @symbol definition uses the label as the fall back for the sort field, whereas the @entry definition uses the name as the fall back.

For example, the file greek-symbols.bib may contain:

% Encoding: UTF-8

@entry{alpha,
 name={\ensuremath{\alpha}},
 description={angular acceleration}
}
@entry{delta,
 name={\ensuremath{\delta}},
 description={Kronecker delta}
}
@entry{lambda,
 name={\ensuremath{\lambda}},
 description={Lagrange multiplier}
}
@entry{chi,
 name={\ensuremath{\chi}},
 description={chromatic number}
}
@entry{zeta,
 name={\ensuremath{\zeta}},
 description={Riemann zeta function}
}

The document needs the record package option. Instead of nonumberlist I can instruct bib2gls to not save the location list (which is more efficient). Instead of \makeglossaries/\makenoidxglossaries you need to use \GlsXtrLoadResources:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,nogroupskip,
   record % using 'bib2gls'
]{glossaries-extra}

\GlsXtrLoadResources[
 src={greek-symbols},% entries in 'greek-symbols.bib'
 type=symbols,% put these entries in the 'symbols' glossary
 save-locations=false% don't save locations
]

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=long,title={List of Symbols}]

\chapter{Sample}
Reference symbols: $\gls{delta}$, $\gls{chi}$, $\gls{alpha}$,
$\gls{zeta}$, $\gls{lambda}$.

\end{document}

This uses \printunsrtglossary from the earlier Method 1. Unlike the other methods, bib2gls works by selecting only those entries that are required and then writes the definition (\newglossaryentry) to the file input by \GlsXtrLoadResources in the appropriate order. This means that \printunsrtglossary automatically lists the entries in the requested order (since that's the order of definition from glossaries-extra's point of view).

The build process is now

pdflatex mydoc
bib2gls mydoc
pdflatex mydoc

This produces:

(Remove save-locations=false if you want the location list.)

Since bib2gls recognises commands like \ensuremath{\alpha}, it's used the correct Greek order. Alternatively you can instruct bib2gls to sort by the description instead:

\GlsXtrLoadResources[
 src={greek-symbols},
 type=symbols,
 sort-field=description,
 save-locations=false
]

If the file latin-symbols.bib similarly contains the Latin symbols:

% Encoding: UTF-8

@entry{x,
 name={\ensuremath{x}},
 description={position}
}
@entry{v,
 name={\ensuremath{v}},
 description={velocity}
}
@entry{a,
 name={\ensuremath{a}},
 description={acceleration}
}
@entry{t,
 name={\ensuremath{t}},
 description={time}
}
@entry{F,
 name={\ensuremath{F}},
 description={force}
}

Then they can be combined:

\GlsXtrLoadResources[
 src={greek-symbols,latin-symbols},% entries in 'greek-symbols.bib' and 'latin-symbols.bib'
 type=symbols,
 save-locations=false
]

or separated into two distinct groups within the same glossary:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage[symbols,
  stylemods={tree},% loads glossaries-extra-stylemods to patch styles
  record % using 'bib2gls'
]{glossaries-extra}

% assign titles to group labels:
\glsxtrsetgrouptitle{latin}{Latin}
\glsxtrsetgrouptitle{greek}{Greek}

\GlsXtrLoadResources[
 src={latin-symbols},
 type=symbols,
 group={latin},% assign group label
 set-widest,% needed for 'alttree' styles
 save-locations=false
]

\GlsXtrLoadResources[
 src={greek-symbols},
 type=symbols,
 group={greek},% assign group label
 set-widest,% needed for 'alttree' styles
 save-locations=false
]

\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,style=alttreegroup,title={List of Symbols}]

\chapter{Sample}
Reference Greek symbols: $\gls{delta}$, $\gls{chi}$, $\gls{alpha}$,
$\gls{zeta}$, $\gls{lambda}$.

Reference Latin symbols: $\gls{x}$, $\gls{v}$, $\gls{a}$, $\gls{t}$,
$\gls{F}$.

\end{document}

The group setting requires the --group (or -g) switch when calling bib2gls:

pdflatex mydoc
bib2gls --group mydoc
pdflatex mydoc

This setting also requires a style that supports group headings, which is why I changed to the style to altlistgroup.

🌐
Stack Exchange
tex.stackexchange.com › questions › tagged › units
Newest 'units' Questions - TeX - LaTeX Stack Exchange
I'm trying to create an alphabetically ordered list of symbols with two groups, Latin and Greek, with an additional unit column. At the moment I'm using this code \documentclass{article} \usepackage{... ... I am using the siunitx package to typeset units in my LaTeX document.
🌐
IIT
webmaster.iit.edu › files › graduate-academic-affairs › latex-symbols.pdf pdf
List of Mathematical Symbols
aUse the latexsym package to access this symbol · Binary Operators. + + − · - ± · \pm · ∓ · \mp · ◁ · \triangleleft · · · \cdot · ÷ · \div · ▷ · \triangleright · × · \times · \ \setminus · ⋆ · \star · ∪ · \cup · ∩ · \cap ·
🌐
Dickimaw Books
dickimaw-books.com › latex › thesis › html › makeglossaries.html
6.1.2 Creating Glossaries, Lists of Symbols or Acronyms (glossaries package)
You can see a list of available packages in the OnLine TeX Catalogue's Topic Index [3]. Here, I've chosen to describe the glossaries package. Firstly, it encompasses the functionality of both acronym and nomencl as glossaries allows you to define multiple lists of acronyms, lists of symbols or glossaries. Secondly, I wrote the glossaries package, so it's the one with which I am most familiar.
🌐
East China Normal University
math.ecnu.edu.cn › ~jypan › Latex › Ref_Cards › upgreek.pdf pdf
Table 190: txfonts/pxfonts Upright Greek Letters α \alphaup θ \thetaup π \piup
∆Θαβγ” (Symbol). Also note that the \var. . . forms do not always · a distinct glyph. extgreek (Table 6 on page 16), upgreek works in math mode. mbols in this table are intended to be used sporadically throughout · ment (e.g., to represent mathematical units or numerical quantities— · 14159”). In contrast, Greek body text can be typeset using the babel · s greek (or polutonikogreek) option—and, of ...