Проблемы с leipzig и глоссариями, используемыми вместе

Проблемы с leipzig и глоссариями, используемыми вместе

Я готовлю документ, содержащий некоторые межстрочные глоссы, сами соглашения о глоссариях представлены в виде отдельного списка. Я используюлейпцигпакет для набора глосс,expexпакет для форматирования пронумерованных примеров иглоссариипакет для создания списка сокращений.

MWE#1 правильно передает форму глоссов как внутри пронумерованного примера, так и снаружи: в выходном PDF-файле нет пробелов между 1, SG, двоеточием и DAT.

\documentclass{article}

\usepackage{expex}
\usepackage{leipzig}

\begin{document}

\ex
\begingl
\gla mulle //
\glb \First\Sg:\Dat{} //
\endgl
\xe

go.\Pst{}

\end{document}

Однако, если я загружуглоссарииупаковать в соответствии с инструкциями влейпцигвручную, как показано в MWE#2, я получаю нежелательные пробелы по обе стороны от бита SG. Кроме того, в выходных данных, развернутых видти.PSTpastpst в отличие от желаемогоидти.ТИХООКЕАНСКОЕ СТАНДАРТНОЕ ВРЕМЯ

\documentclass{article}

\usepackage{expex}

\usepackage[nomain,nostyles]{glossaries}
\usepackage{glossary-inline}
\usepackage{leipzig}
\makeglossaries

\begin{document}

\ex
\begingl
\gla mulle//
\glb \First\Sg:\Dat{}//
\endgl
\xe

go.\Pst{}

\printglossary[style=inline,type=\leipzigtype]

\end{document}

Есть ли способ исправить это? Я компилирую эти конкретные MWE с помощью pdfTeX, версии 3.1415926-2.5-1.40.14 (TeX Live 2013), но пробовал и Xe-, и LuaLaTeX, оба раза с тем же результатом.

решение1

Мне не удалось воспроизвести проблему с интервалами вокруг SG, поэтому этот ответ может вам не помочь.

TheидтиПроблема .PSTpastpst связана с использованием устаревших glossariesкоманд \defglsdisplayи \defglsdisplayfirstв leipzig.sty.

Вот что находится в версии 1.0 leipzig.styстроки 128:

\newcommand*{\SetLeipzigDisplayStyle}[1]{%
    \defglsdisplay[#1]{\leipzigfont{##1}##4}%
    \defglsdisplayfirst[#1]{\firstleipzigfont{##1}##4}%
}

Вам следует создать копию leipzig.sty, сохранить ее под новым именем, а затем изменить приведенные выше строки на следующие. Затем вам нужно будет загрузить измененный файл стиля вместо leipzig.sty.

\newcommand*{\SetLeipzigDisplayStyle}[1]{%
    \renewcommand*{\glstextformat}[1]{\leipzigfont{#1}}%
}

Это избавит вас от устаревших ошибок команд, а также решит вашиидти.PSTpastpst проблема.

решение2

По крайней мере, с момента выпуска 16 июня 2017 года leipzigэто больше не кажется проблемой. Вам просто нужно использовать glossesопцию пакета. (Это объясняется в разделе «Несколько глоссариев» документации.)

\usepackage[glosses]{leipzig}

решение3

Изменение leipzig.sty— правильный путь. Однако есть небольшая путаница...

Есть два места, где leipzig.styпоявляется (в Miktex на Windows 7, 8, 8.1):
1. C:\Program Files\MiKTeX 2.9\tex\latex\leipzig
2. C:\Users\USERNAME\AppData\Roaming\MiKTeX\2.9\tex\latex\leipzig

При изменении первого я не добился успеха. При изменении второго перекомпиляция моего файла заставила обходной путь работать правильно. Спасибо, @Jason Zentz!

Связанный контент