긴 설명을 처리할 수 있는 여러 열로 된 용어집 스타일( 을 사용하여)을 만들려고 하는데 glossaries
용어집 스타일을 작성하는 방법이 다소 낯설고 어떻게 풀어내는지 정확히 모르겠습니다.
제가 갖고 싶은 것은 4개의 열로 구성된 용어집입니다. 두 쌍의 약어와 설명. 설명이 두 줄 이상인 경우 설명은 자체 열 내에서만 줄바꿈되어야 하며, 약어 열은 각 약어가 설명의 시작 부분과 정렬되도록 몇 줄을 건너뛰어야 합니다.
내가 아는 방법은 총 두 개의 열을 만들고 약어와 설명을 수동으로 분리하는 것뿐입니다. 이 코드를 통해(저는 얼마 전에 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
필요에 따라 환경을 조정해야 합니다. 너비를 늘릴 수 있고(어쩌면 허용 가능해 보이지만) 용어집 항목의 수직 정렬을 가운데가 아닌 위쪽으로 설정하는 데 문제가 있습니다.
나는 그것을 당신의 연구에 맡깁니다;)