MakeIndex, Nomenclature, Glossaries and AcronymsGlossary package and russian GOST

Information and discussion about MakeIndex - the tool to generate subject indices for LaTeX documents.
Post Reply
Eternal_student
Posts: 8
Joined: Mon Nov 22, 2021 12:35 pm

Glossary package and russian GOST

Post by Eternal_student »

Hi all, sorry for the bad English. I am using the glossary package in my master's thesis . However, I need to customize the output according to the GOST requirement. I am asking for help.

Here is a sample output.

Image

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

Bartman
Posts: 369
Joined: Fri Jan 03, 2020 2:39 pm

Glossary package and russian GOST

Post by Bartman »

As you have probably already read in other topics, the helpers like to see a Infominimal working example given.

In addition to my idea of the vertical space between the glossary entries, I also left a different approach to the solution as a comment.

The reason for my approach is that the optional argument of the first \tabularnewline command doesn't give me even spaces.

Code: Select all

Code, edit and compile here:
\documentclass{article}
\usepackage{array}% makes >{decl.} available
\usepackage[automake, nogroupskip]{glossaries}
% source: styles/glossary-long.sty
\newglossarystyle{longwithseparator}{%
\setglossarystyle{long}%
% \renewcommand{\arraystretch}{2}%
\renewenvironment{theglossary}%
{\begin{longtable}[l]{
>{\raggedright}p{.2\textwidth}
c%@{\quad---\quad}
>{\raggedright}p{\glsdescwidth}}
}%
{\end{longtable}}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} & --- &
\glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
& \tabularnewline
}%
}
\makeglossaries
% source: test-entries
\loadglsentries{example-glossaries-long}
\renewcommand{\glsnumberformat}[1]{[\glshypernumber{#1}]}
\glsaddall
\begin{document}
\printglossary[style=longwithseparator]
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User avatar
Ijon Tichy
Posts: 640
Joined: Mon Dec 24, 2018 10:12 am

Glossary package and russian GOST

Post by Ijon Tichy »

@Bartman Why not the somehow more simple \arraystretch variant?

Code: Select all

Code, edit and compile here:
\documentclass{article}
\usepackage{array}% makes >{decl.} available
\usepackage[automake, nogroupskip]{glossaries}
% source: styles/glossary-long.sty
\newglossarystyle{longwithseparator}{%
\setglossarystyle{long}%
\renewcommand{\arraystretch}{2}%
\renewenvironment{theglossary}%
{\begin{longtable}[l]{
@{}% no extra indent before the entries
>{\raggedright}p{.2\textwidth}
@{\quad---\quad}
>{\raggedright}p{\glsdescwidth}
@{}% no extra horizontal space after the entries
}
}%
{\end{longtable}}%
}
\makeglossaries
% source: test-entries
\loadglsentries{example-glossaries-long}
\renewcommand{\glsnumberformat}[1]{[\glshypernumber{#1}]}
\glsaddall
\begin{document}
\printglossary[style=longwithseparator]
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
You even could use package xltabular to automatically stretch the table to the whole text width. But this is a little bit tricky, because \end{xltabular} in the <end code> of a \newenvironment does usually result in an error. So you have to use the (somehow internal) \xltabular, \endxltabular:

Code: Select all

Code, edit and compile here:
\documentclass{article}
\usepackage{array}% makes >{decl.} available
\usepackage[automake, nogroupskip]{glossaries}
\usepackage{xltabular}
% source: styles/glossary-long.sty
\newglossarystyle{xlongwithseparator}{%
\setglossarystyle{long}%
\renewcommand{\arraystretch}{2}%
\renewenvironment{theglossary}%
{\xltabular{\linewidth}{% Note: You cannot use \begin{xltabular} here.
@{}% no extra indent before the entries
>{\raggedright}p{.2\textwidth}
@{\quad---\quad}
%>{\raggedright}% optional ragged right for last column
X
@{}% no extra horizontal space after the entries
}%
}%
{\endxltabular}% Note: You cannot use \end{xltabular} here.
}
\makeglossaries
% source: test-entries
\loadglsentries{example-glossaries-long}
\renewcommand{\glsnumberformat}[1]{[\glshypernumber{#1}]}
\glsaddall
\begin{document}
\printglossary[style=xlongwithseparator]
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This is the same trick, that is also documented for tabularx.
Sorry, but I can no longer participate here as the administrator is trampling on my wishes on one of his other platforms. :cry:
Eternal_student
Posts: 8
Joined: Mon Nov 22, 2021 12:35 pm

Glossary package and russian GOST

Post by Eternal_student »

Ijon Tichy wrote:

Code: Select all

Code, edit and compile here:
\begin{document}
\printglossary[style=longwithseparator]
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
You even could use package xltabular to automatically stretch the table to the whole text width. But this is a little bit tricky, because \end{xltabular} in the <end code> of a \newenvironment does usually result in an error. So you have to use the (somehow internal) \xltabular, \endxltabular:

Code: Select all

Code, edit and compile here:
\documentclass{article}
\usepackage{array}% makes >{decl.} available
\usepackage[automake, nogroupskip]{glossaries}
\usepackage{xltabular}
% source: styles/glossary-long.sty
\newglossarystyle{xlongwithseparator}{%
\setglossarystyle{long}%
\renewcommand{\arraystretch}{2}%
\renewenvironment{theglossary}%
{\xltabular{\linewidth}{% Note: You cannot use \begin{xltabular} here.
@{}% no extra indent before the entries
>{\raggedright}p{.2\textwidth}
@{\quad---\quad}
%>{\raggedright}% optional ragged right for last column
X
@{}% no extra horizontal space after the entries
}%
}%
{\endxltabular}% Note: You cannot use \end{xltabular} here.
}
\makeglossaries
% source: test-entries
\loadglsentries{example-glossaries-long}
\renewcommand{\glsnumberformat}[1]{[\glshypernumber{#1}]}
\glsaddall
\begin{document}
\printglossary[style=xlongwithseparator]
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This is the same trick, that is also documented for tabularx.


Thank you so much!
Bartman
Posts: 369
Joined: Fri Jan 03, 2020 2:39 pm

Glossary package and russian GOST

Post by Bartman »

Ijon Tichy wrote:@Bartman Why not the somehow more simple \arraystretch variant?
The command increases the space between the heading and the first entry. Since I didn't know whether this would bother the topic starter, I decided against it.
User avatar
Ijon Tichy
Posts: 640
Joined: Mon Dec 24, 2018 10:12 am

Glossary package and russian GOST

Post by Ijon Tichy »

Bartman wrote:
Ijon Tichy wrote:@Bartman Why not the somehow more simple \arraystretch variant?
The command increases the space between the heading and the first entry. Since I didn't know whether this would bother the topic starter, I decided against it.
You can simply change \LTpre to compensate this, e.g. add

Code: Select all

\setlength{\LTpre}{0pt}% No initial vertical skip.
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
or

Code: Select all

\setlength{\LTpre}{\smallskipamount}% Only a small initial vertical skip.
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
before \begin{longtable} resp. \xltabular.
Sorry, but I can no longer participate here as the administrator is trampling on my wishes on one of his other platforms. :cry:
Eternal_student
Posts: 8
Joined: Mon Nov 22, 2021 12:35 pm

Glossary package and russian GOST

Post by Eternal_student »

Hello, friends! There are new requirements for the formation of the glossary. Now terms in Russian must go first in the glossary. Is it possible to implement this functionality?
Eternal_student
Posts: 8
Joined: Mon Nov 22, 2021 12:35 pm

Glossary package and russian GOST

Post by Eternal_student »

I have a list of acronyms and a glossary of names in Russian and English. Is there a parameter that allows to display the names first in Russian, then in English.

I've seen sort recipes that use the "sort" key, but I have too many names in the list to add the key manually.

Code: Select all

Code, edit and compile here:
\documentclass[a4paper,14pt, oneside]{extarticle}
\usepackage{fontspec}
\setmonofont{CMU Typewriter Text}
\newfontfamily\cyrillicfonttt{CMU Typewriter Text}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}
\setsansfont{Arial}
\newfontfamily\cyrillicfontsf{Arial}
\usepackage{microtype}
\sloppy
\usepackage[english, russian]{babel}
\makeatletter\AtBeginDocument{\let\@elt\relax}\makeatother % babel 3.40 fix
% ГОСТовские настройки для полей
\usepackage[left=30mm,right=10mm,top=20mm,bottom=20mm, nofoot, nomarginpar]{geometry}
\setlength{\topskip}{0pt}
\setlength{\footskip}{12.3pt}
\usepackage{misccorr}
\usepackage{indentfirst}
\usepackage{enumitem}
\setlength{\parindent}{1.25cm}
\usepackage{setspace}
\onehalfspacing
\usepackage{tabularx}
\usepackage{multirow, longtable}
\usepackage{booktabs} %Книжные таблицы
\usepackage{xltabular}
\usepackage[xindy={glsnumbers=false}, nonumberlist, nopostdot, nogroupskip, toc, translate=babel, acronym, automake]{glossaries}
%\usepackage{glossaries-extra}
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
We get that the terms and abbreviations in English come first. And I need to get the Russian terms first.
Post Reply