
Я хочу объединить кириллицу и латиницу в межстрочном глоссе 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 и создание глоссария частей речи.
Включение в текстовый поток: добавление знаков препинания в различном формате.
Включение в текстовый поток: добавление опорных точек tikzmark для наложения.
Определение пользовательского разделителя строк.
Стек слов стал видимым.
Выделение набора слов.
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