# Bug Tracker

ID: 92 🔗 Closed (Can Not Implement) glossaries 4.17 Markus 2015-07-31 08:52:24 To early usage of \hsize

## Report

Several glossaries styles use \hsize to set length before \begin{document} but the official setup of \hsize is in \begin{document} after calculation of \columnwidth in \begin{document}. This results in wrong lengths if e.g. geometry.sty or typearea.sty is used. Sometimes the value is almost correct, so it doesn't matter, but e.g. using a6paper with geometry results in completely unusable lists.

A workaround but be to use \AtBeginDocument for the lengths settings, e.g.

\AtBeginDocument{\setlength{\glslistdottedwidth}{.5\columnwidth}}

### MWE

\listfiles
\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage[acronym, style=listdotted, toc]{glossaries}
\makeglossaries

\newacronym{SOEP}{SOEP}{Sozio-Oekonomisches Panel}
%\AtBeginDocument{\setlength{\glslistdottedwidth}{.5\columnwidth}}
\begin{document}
\printacronyms

\section{Test}
\gls{SOEP}
\end{document}


## Evaluation

I've closed this as "Can not Implement" because I can't implement it in glossaries (reasons below), but it's addressed in glossaries-extra.

Unfortunately changing the current code to use \AtBeginDocument could break existing documents that change the length in the preamble. I'll leave this open for now, but I think it's better to just consider .5\hsize as a default value that may need changing depending on the document.

Comment from Markus
Date: 2015-08-01 00:42:47 CDT

You could additionally (to documentation of the problem) put

\if@twocolumn
\hsize=\dimexpr .5\textwidth-\columnsepwidth\relax
\else
\hsize=\textwidth}
\fi

before your first usage of \hsize. This shouldn't break anything, but would at least do it as long as the user does not change geometry e.g. using \geometry or \typearea or another \setlength{\textwidth}{â¦} after loading glossaries. So this would not be a real fix of the problem but it would decrease the probability of the event.

You could do something like:

\setlength{\glslistdottedwidth}{-\dimexpr\maxdimen-1sp\relax}
\AtBeginDocument{\ifdim\glslistdottedwidth=-\dimexpr\maxdimen-1sp\relax
\setlength{\glslistdottedwidth}{.5\columnwidth}\fi}

In real live values < 0 of \glslistdottedwidth mostly make no sense. So a very special value < 0 could be used as a marker value. Nevertheless, this would change documents, iff the user has not recognized, that the default has not been the intended choice. So maybe the other suggestion would be better.

PS: Many thanks for glossaries. It is a very useful package!

Comment from Nicola Talbot
Date: 2015-12-09 20:51:00 GMT

I've implemented your suggestion into glossaries-extra.sty. Since this extension to the glossaries package changes the defaults, backward-compatibility isn't an issue, so it seems the best solution. I'll close this after I upload glossaries-extra.sty to CTAN (once it has stabilized).

## Watch This Report

If you supply your name, it will be used in the email greeting, which provides a more personal message, otherwise you'll just get a generic greeting. If you have previously supplied your name when signing up for notifications, you don't need to resupply it unless you want to change it.

If you have previously subscribed to notifications for this report, you can unsubscribe by clicking on the "Stop Notification" button.

The "Confirm Bug ID" field helps to protect against spambots. Please enter the bug ID (which you can find at the top of this page).

Name: (Optional.)