Ich versuche, einen mehrspaltigen Glossarstil (mit glossaries
) zu erstellen, der lange Beschreibungen verarbeiten kann, bin jedoch nicht sehr vertraut damit, wie man einen Glossarstil schreibt, und weiß nicht genau, wie ich das hinbekommen soll.
Was ich gerne hätte, ist ein Glossar mit vier Spalten, zwei Paaren Abkürzung und Beschreibung. Wenn eine Beschreibung mehr als eine Zeile umfasst, sollte die Beschreibung nur innerhalb einer eigenen Spalte umbrochen werden, und die Abkürzungsspalte sollte so viele Zeilen überspringen, dass jede Abkürzung mit dem Anfang ihrer Beschreibung übereinstimmt.
Ich weiß nur, wie man zwei Gesamtspalten erstellt und die Abkürzung und die Beschreibung manuell trennt, und zwar mit diesem Code (den ich mit ziemlicher Sicherheit vor einiger Zeit von StackExchange kopiert und eingefügt habe):
\newglossarystyle{glossabbr}{%
\renewenvironment{theglossary}%
{\begin{multicols}{2}\raggedright}
{\end{multicols}}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}
\renewcommand*{\glsgroupskip}{}
\renewcommand*{\glsclearpage}{}
% set how each entry should appear:
\renewcommand*{\glossentry}[2]{
\noindent\makebox[7em][l]{\glstarget{##1}{\textsc{\glossentryname{##1}}}}
\glossentrydesc{##1}\\
}
\renewcommand*{\subglossentry}[3]{%
\glossentry{##2}{##3}
}
}
Das Problem mit diesem Code ist, dass bei einer langen Beschreibung diese einfach in die Abkürzungsspalte übergeht, da LaTeX die Abkürzung und die Beschreibung nicht als separate Blöcke behandelt. Sie können das Problem hier sehen, rot hervorgehoben:
Letztendlich möchte ich nur die umbrochenen Beschreibungsteile (die Teile, die nicht in Kapitälchen geschrieben sind) nehmen und sie verschieben, sie in der Spalte für Beschreibungen einschließen und Leerzeichen in der Abkürzungsspalte lassen, wo sie jetzt sind. Wie mache ich das?
MWE mit dem problematischen Glossarstil:
\documentclass{article}
\usepackage[acronym,nomain]{glossaries}
\setacronymstyle{long-sc-short}
\makeglossaries
\newacronym
{inform}{inform}{informative illocutionary force}
\newacronym
{point}{point}{demonstrative illocutionary force}
\usepackage{multicol}
\newglossarystyle{glossabbr}{%
\renewenvironment{theglossary}%
{\begin{multicols}{2}\raggedright}
{\end{multicols}}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}
\renewcommand*{\glsgroupskip}{}
\renewcommand*{\glsclearpage}{}
% set how each entry should appear:
\renewcommand*{\glossentry}[2]{
\noindent\makebox[7em][l]{\glstarget{##1}{\textsc{\glossentryname{##1}}}}
\glossentrydesc{##1}\\
}
\renewcommand*{\subglossentry}[3]{%
\glossentry{##2}{##3}
}
}
\begin{document}
\glsunsetall
\gls{point}
\gls{inform}
\printglossary[style=glossabbr]
\end{document}
Antwort1
Dies sollte ein guter Anfang für eine vollständige Lösung sein:
\documentclass{article}
\usepackage[acronym,nomain]{glossaries}
\setacronymstyle{long-sc-short}
\makeglossaries
\newacronym
{inform}{inform}{informative illocutionary force}
\newacronym
{point}{point}{demonstrative illocutionary force}
\usepackage{multicol}
\newglossarystyle{glossabbr}{%
\renewenvironment{theglossary}%
{\begin{multicols}{2}\raggedright}
{\end{multicols}}
\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}
\renewcommand*{\glsgroupskip}{}
\renewcommand*{\glsclearpage}{}
% set how each entry should appear:
\renewcommand*{\glossentry}[2]{
\noindent\makebox[7em][l]{\glstarget{##1}%
{\begin{minipage}[t]{0.2\textwidth}
\textsc{\glossentryname{##1}}
\end{minipage}
}}
\begin{minipage}{0.2\textwidth}
\glossentrydesc{##1}
\end{minipage}\\
}
\renewcommand*{\subglossentry}[3]{%
\glossentry{##2}{##3}
}
}
\begin{document}
\glsunsetall
\gls{point}
\gls{inform}
\printglossary[style=glossabbr]
\end{document}
Beachten Sie die hinzugefügten minipage
Umgebungen um glossentryname
und glossentrydesc
. Dies ist eine Art grober Workaround.
Sie sollten versuchen, die Umgebung Ihren Bedürfnissen anzupassen – die Breite könnte erhöht werden (vielleicht, aber das sieht akzeptabel aus) und ich habe Probleme, die vertikale Ausrichtung des Glossareintrags oben und nicht zentriert einzustellen.
Das überlasse ich Ihrer Recherche ;)