Como obter glossários de várias colunas com descrição de cabeçalho dentro de um cabeçalho?

Como obter glossários de várias colunas com descrição de cabeçalho dentro de um cabeçalho?

Atualmente estou tendo problemas para escrever siglas com múltiplas colunas e cabeçalho de coluna. Consegui escrever siglas apenas com cabeçalhos de coluna, mas não consigo descobrir como escrevê-las em várias colunas. Este é o MWE:

\documentclass[a4paper,openany]{report}


 \usepackage[breaklinks,draft]{hyperref}


 \usepackage[acronym,section,nopostdot,nonumberlist,nogroupskip,nostyles] 
 {glossaries}

 \usepackage{glossary-mcols}

 \makeglossaries

 \begin{document}

 \newglossaryentry{cur}{name=cur, description={Just a random name.}}

 \newglossaryentry{mmee}{name=mmee, description={Just a random name.}}

 \newglossaryentry{fsda}{name=fs, description={Just a random name.}}

 \newglossaryentry{dcsc}{name=ddad, description={Just a random name.}}

 \newglossaryentry{ccs}{name=adax, description={Just a random name.}}

 \newglossaryentry{ccc}{name=acDc, description={Just a random name.}}

 \newglossaryentry{vfvv}{name=gegfvv, description={Just a random name.}}

 \newglossaryentry{fvafv}{name=gdgdfv, description={Just a random name.}}

 \newglossaryentry{bgbb}{name=gegvf, description={Just a random name.}}

 \newglossaryentry{gfvfv}{name=qefrwfav, description={Just a random name.}}


 \gls{cur}

 \gls{mmee}

 \gls{fsda}

 \gls{dcsc}

 \gls{ccs}

 \gls{ccc}

 \gls{vfvv}

 \gls{fvafv}

 \gls{gfvfv}

 \gls{bgbb}

 \printglossary[style=mcolindex,title=List of Acronyms]


 \end{document}

A saída é: imagem atual

Mas eu quero meu resultado como: resultado desejado

Responder1

Não é possível ter uma longversão de um mcolsestilo. O longtableambiente não é permitido dentro de um multicolsambiente nem pode ser usado no twocolumnmodo (com \twocolumnou como opção de classe).

A maneira mais simples de implementá-lo seria ter longtablequatro colunas (como dois pares de Sigla e Descrição):

\documentclass[a4paper,openany]{report}

 \usepackage{array}
 \usepackage{longtable}
 \usepackage[breaklinks,draft]{hyperref}
 \usepackage[acronym,section,nostyles,entrycounter] 
 {glossaries}

 \makeglossaries

\newlength\descwidth
\setlength{\descwidth}{0.25\textwidth}
\renewcommand*{\glsentrycounterlabel}{}%

\newglossarystyle{pairedtable}%
{%
  \renewenvironment{theglossary}%
   {\begin{longtable}{l>{\raggedright}p{\descwidth}l>{\raggedright}p{\descwidth}}}%
   {\end{longtable}}%
    \renewcommand*{\glossaryheader}{%
    \bfseries \entryname & \bfseries
    \descriptionname &
    \bfseries \entryname & \bfseries
    \descriptionname
    \tabularnewline\endhead
   }%
  \renewcommand*{\glsgroupheading}[1]{}% no letter group headings
  \renewcommand*{\glsgroupskip}{}% no gap between letter groups
  \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \glossentrydesc{##1}% number list omitted
    \ifodd\value{glossaryentry}\def\next{&}\else\def\next{\tabularnewline}\fi
    \next
  }%
  \renewcommand{\subglossentry}[3]{\glossentry{##2}{##3}}%
}

 \newglossaryentry{cur}{name=cur, description={Just a random name.}}

 \newglossaryentry{mmee}{name=mmee, description={Just a random
name.}}

 \newglossaryentry{fsda}{name=fs, description={Just a random name.}}

 \newglossaryentry{dcsc}{name=ddad, description={Just a random
name.}}

 \newglossaryentry{ccs}{name=adax, description={Just a random
name.}}

 \newglossaryentry{ccc}{name=acDc, description={Just a random
name.}}

 \newglossaryentry{vfvv}{name=gegfvv, description={Just a random
name.}}

 \newglossaryentry{fvafv}{name=gdgdfv, description={Just a random
name.}}

 \newglossaryentry{bgbb}{name=gegvf, description={Just a random
name.}}

 \newglossaryentry{gfvfv}{name=qefrwfav, description={Just a random
name.}}

 \begin{document}


 \gls{cur}

 \gls{mmee}

 \gls{fsda}

 \gls{dcsc}

 \gls{ccs}

 \gls{ccc}

 \gls{vfvv}

 \gls{fvafv}

 \gls{gfvfv}

 \gls{bgbb}

 \printglossary[style=pairedtable,title=List of Acronyms]

 \end{document}

Infelizmente, a ordem está errada, pois a tabela é construída por linha:

Imagem do glossário: a ordem alfabética vai da esquerda para a direita.

Não há uma maneira fácil de makeindexclassificar as entradas para garantir a ordem de cima para baixo. Se você tiver apenas um pequeno número de entradas, poderá fazer a ordenação manualmente e usar glossaries-extra's \printunstglossary(já que não deseja uma lista de números). Exemplo:

\documentclass[a4paper,openany]{report}

 \usepackage{array}
 \usepackage{longtable}
 \usepackage[breaklinks,draft]{hyperref}
 \usepackage[acronym,section,nostyles,entrycounter] 
 {glossaries-extra}

\newlength\descwidth
\setlength{\descwidth}{0.25\textwidth}
\renewcommand*{\glsentrycounterlabel}{}%

\newglossarystyle{pairedtable}%
{%
  \renewenvironment{theglossary}%
   {\begin{longtable}{l>{\raggedright}p{\descwidth}l>{\raggedright}p{\descwidth}}}%
   {\end{longtable}}%
    \renewcommand*{\glossaryheader}{%
    \bfseries \entryname & \bfseries
    \descriptionname &
    \bfseries \entryname & \bfseries
    \descriptionname
    \tabularnewline\endhead
   }%
  \renewcommand*{\glsgroupheading}[1]{}% no letter group headings
  \renewcommand*{\glsgroupskip}{}% no gap between letter groups
  \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \glossentrydesc{##1}% number list omitted
    \ifodd\value{glossaryentry}\def\next{&}\else\def\next{\tabularnewline}\fi
    \next
  }%
  \renewcommand{\subglossentry}[3]{\glossentry{##2}{##3}}%
}

 \newglossaryentry{ccc}{name=acDc, description={Just a random
name.}}
 \newglossaryentry{fvafv}{name=gdgdfv, description={Just a random
name.}}
 \newglossaryentry{ccs}{name=adax, description={Just a random
name.}}
 \newglossaryentry{vfvv}{name=gegfvv, description={Just a random
name.}}
 \newglossaryentry{cur}{name=cur, description={Just a random name.}}
 \newglossaryentry{bgbb}{name=gegvf, description={Just a random
name.}}
 \newglossaryentry{dcsc}{name=ddad, description={Just a random
name.}}
 \newglossaryentry{mmee}{name=mmee, description={Just a random
name.}}
 \newglossaryentry{fsda}{name=fs, description={Just a random name.}}
 \newglossaryentry{gfvfv}{name=qefrwfav, description={Just a random
name.}}

 \begin{document}


 \gls{cur}

 \gls{mmee}

 \gls{fsda}

 \gls{dcsc}

 \gls{ccs}

 \gls{ccc}

 \gls{vfvv}

 \gls{fvafv}

 \gls{gfvfv}

 \gls{bgbb}

 \printunsrtglossary[style=pairedtable,title=List of Acronyms]

 \end{document}

Imagem do glossário: entradas ordenadas de cima para baixo aos pares.

Isto não é particularmente conveniente se você tiver muitas entradas. Uma alternativa é construir tabularambientes lado a lado, mas você terá que determinar o número correto de linhas. No exemplo abaixo, carreguei as entradas de teste fornecidas com o glossariespacote para preencher o glossário:

\documentclass[a4paper,openany]{report}

 \usepackage{array}
 \usepackage[breaklinks,draft]{hyperref}
 \usepackage[acronym,section,nostyles]{glossaries}

\makeglossaries

\loadglsentries[\acronymtype]{example-glossaries-acronym}% dummy entries

\newlength\descwidth
\setlength{\descwidth}{0.25\textwidth}

\newcounter{rowcount}

\newglossarystyle{table}%
{%
  \renewenvironment{theglossary}%
   {%
    \setcounter{rowcount}{0}%
    \begin{tabular}[t]{l>{\raggedright}p{\descwidth}}%
    \bfseries \entryname & \bfseries
    \descriptionname \tabularnewline
   }
   {\end{tabular}}%
   \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}% no letter group headings
  \renewcommand*{\glsgroupskip}{}% no gap between letter groups
  \renewcommand{\glossentry}[2]{%
    \stepcounter{rowcount}%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \glossentrydesc{##1}% number list omitted
    \ifnum\value{rowcount}=25 % 25 entries per column
      \def\next{%
        \end{tabular}\hfill
        \setcounter{rowcount}{0}%
        \begin{tabular}[t]{l>{\raggedright}p{\descwidth}}%
        \bfseries \entryname & \bfseries
        \descriptionname \tabularnewline
      }%
    \else
      \def\next{\tabularnewline}%
    \fi
    \next
  }%
  \renewcommand{\subglossentry}[3]{\glossentry{##2}{##3}}%
}

 \begin{document}
 \glsaddall

 \printglossary[type=\acronymtype,style=table,title=List of Acronyms]

 \end{document}

imagem do glossário

informação relacionada