長い説明を処理できる複数列の用語集スタイル ( を使用) を作成しようとしていますglossaries
が、用語集スタイルの書き方にあまり詳しくなく、どのように実現すればよいのかよくわかりません。
私が欲しいのは、略語と説明のペアが 2 つずつ、合計 4 つの列がある用語集です。説明が 1 行を超える場合、説明は独自の列内でのみ折り返され、略語の列は、各略語が説明の先頭と揃うように何行でもスキップする必要があります。
私が知っている方法は、合計列を 2 つ作成し、略語と説明を手動で分離することだけです。次のコードを使用します (これは、しばらく前に StackExchange からコピーして貼り付けたものだと思います)。
\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}
}
}
このコードの問題は、長い説明がある場合、LaTeX が略語と説明を別のブロックとして処理しないため、説明が略語の列に折り返されてしまうことです。問題は、赤で強調表示されている次の部分で確認できます。
最終的に私がやりたいのは、囲まれた説明部分 (小文字でない部分) を単に押し込んで、説明の列に限定し、略語の列に現在の場所に空白を残すことです。どうすればそれが実現できるでしょうか?
問題のある用語集スタイルの MWE:
\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}
答え1
これは完全なソリューションへの良いスタートとなるはずです:
\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}
とminipage
の周囲に追加された環境に注目してください。これは、一種の未熟な回避策です。glossentryname
glossentrydesc
環境を必要に応じて調整してみてください。幅を広げることもできます (おそらく可能ですが、これで問題なさそうです)。また、用語集エントリの垂直方向の配置を中央ではなく上部に設定するのに問題があります。
それはあなたの研究に任せます ;)