Объединение кириллического и латинского текста в подстрочном глоссарии gb4e

Объединение кириллического и латинского текста в подстрочном глоссарии gb4e

Я хочу объединить кириллицу и латиницу в межстрочном глоссе gb4e. Но я всегда получал ошибку.

Это мой текстовый документ:

\documentclass{article}

\usepackage{gb4e}

\begin{document}

\begin{exe}

\ex
\gll Путин опроверг дискриминацию геев в России \\
putin oproverg diskriminatsiju gejev v rossii \\
putin membantah-V-LAMP-PERF diskriminasi-AKU gay-GEN di rusia-PREP \\
\trans Putin membantah adanya diskriminasi terhadap kelompok gay di Rusia

\end{exe}

\end{document}

И он выдал мне эту ошибку:

This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./gloss.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-02-20>
(/usr/local/texlive/2024/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2024/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2024/texmf-dist/tex/latex/gb4e/gb4e.sty
(/usr/local/texlive/2024/texmf-dist/tex/latex/gb4e/cgloss4e.sty))
(/usr/local/texlive/2024/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
(./gloss.aux)

./gloss.tex:11: LaTeX Error: Unicode character П (U+041F)
               not set up for use with LaTeX.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.11 ...oproverg dis
./gloss.tex:11: LaTeX Error: Unicode character у (U+0443)
               not set up for use with LaTeX.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.11 ...oproverg diskriminatsiju gejev v rossii \\
                                                  
? kriminatsiju gejev v rossii \\
                                                  
? 

Есть ли способ улучшить мой документ?

Я использую TeXShop на Mac.

решение1

Вам нужно загрузить русский язык babel. Однако, поскольку \gllхочет разделить ввод пробелами, вы не можете этого сделать \foreignlanguage{russian}{<sentence>}, а обрабатываете каждое слово отдельно.

По моему мнению, лучше использовать короткую команду.

\documentclass{article}
\usepackage[russian,indonesian]{babel}

\newcommand{\?}[1]{\foreignlanguage{russian}{#1}}

\usepackage{gb4e}

\begin{document}

\begin{exe}

\ex
\gll \?{Путин} \?{опроверг} \?{дискриминацию} \?{геев} \?{в} \?{России} \\
putin oproverg diskriminatsiju gejev v rossii \\
putin membantah-V-LAMP-PERF diskriminasi-AKU gay-GEN di rusia-PREP \\
\trans Putin membantah adanya diskriminasi terhadap kelompok gay di Rusia

\end{exe}

\end{document}

введите описание изображения здесь

решение2

пример форматирования

Пользовательский макрос \glinlines{}может применить форматирование ко всей строке, сохраняя пробелы в качестве разделителей.

МВЭ



\documentclass{article}
%\usepackage[russian,indonesian]{babel}
 
%\newcommand{\?}[1]{\foreignlanguage{russian}{#1}}

\usepackage{xcolor,luacolor,lua-ul}
\usepackage{fontspec}
\setmainfont{Noto Serif}
\setsansfont{Noto Sans}
\setmonofont{Noto Sans Mono}
\input{in-glinlines2.tex}
\setmainlanguage{indonesian}
\setotherlanguage{russian}
\usepackage{tikz} % before gb4e
\usepackage{gb4e}


\begin{document}

\glsetfirstlineformat{\selectlanguage{russian}\large}
\glsetsecondlineformat{\sffamily\color{brown}}
\mfssetposformat{\scshape \bfseries\sffamily}

 before::

\begin{document}

\begin{exe}

\ex
\glinlines{%
    Путин опроверг дискриминацию геев в России:ldots
*/ putin oproverg diskriminatsiju gejev v rossii\ldots
*/ putin membantah.V.Lamp.Perf diskriminasi.Aku gay.Gen di rusia.Prep\ldots
glt \itshape ’Putin membantah adanya diskriminasi terhadap kelompok gay di Rusia'
}
\end{exe}

::after

\end{document}

Применение: Внутри лингвистического примера вместо одной команды для каждой строки один макрос охватывает все типы строк: межстрочные строки разделяются строкой символов, которая больше нигде не используется (по умолчанию */), а строки текста свободной формы разделяются другой строкой символов, которая также больше нигде не используется (по умолчанию glt).

Структура данных следующая: одна или несколько межстрочных строк, за каждой из которых следует ноль или более строк текста свободной формы.

«Традиционный» лингвистический пример, если его можно так назвать, структурирован следующим образом: одна, две или три междустрочные строки, за последней междустрочной строкой следует ноль или одна строка текста свободной формы.

Если в тексте присутствуют разделители, то xxс помощью опции для каждого примера можно задать разные разделители (например, ).

Макрос также можно использовать везде, где ожидается обычный текст, например, в сносках, встроенном тексте и т. д.

Как это работает: Слова помещаются в рамки, затем рамки слов складываются в стеки слов, ширина которых устанавливается равной ширине самого широкого блока слов в стеке плюс немного больше для удобства чтения. Для этого используется Expl3.

Пространстваиспользуются как разделители. Все межстрочные строки должны иметь одинаковое количество пробелов, чтобы слова выстраивались в линию. Чтобы рассматривать два или более как единое целое, заключите их в фигурные скобки {}.

Словаможет быть индивидуально отформатировано (или вставлен код) с использованием базовой разметки, прикрепленной к слову (для сохранения пробелов), а затем преобразовано обратно в команды Latex. Например, text:commandстановится text\command. Смотрите справочное руководство для многих других примеров.

Линииможно форматировать для повышения читаемости. См. MWE для некоторых примеров.

Стопки словтакже может быть отформатирован, например, для выделения особой функции.

ДругойВозможности: текст Ruby, выбор нужного тона из базы данных xpinyin.def и создание глоссария частей речи.

стр1

Включение в текстовый поток: добавление знаков препинания в различном формате.

стр2

Включение в текстовый поток: добавление опорных точек tikzmark для наложения.

стр3

Определение пользовательского разделителя строк.

стр5

Стек слов стал видимым.

стр7

Выделение набора слов.


экран1

экран2

Termux: экраны «микро»-редактора на планшете Android.

Вспомогательный код для макроса слишком большой, чтобы вписаться в этот ответ. Предполагается "полная" установка TexLive. rмимо любых сообщений шрифтов (или отредактируйте имена шрифтов) в качестве обходного пути, пока я/вы не сделаете их условными или иным образом не дехардкодите их. ((В идеале для этого должна быть функция. Хм...))

Копировать in-glinlines2.texи in-glossing.texизhttps://github.com/texcicada/expl3

Ссылка PDF:https://github.com/texcicada/expl3/blob/main/glinlines-demo2.pdf

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