
Ich möchte kyrillischen und lateinischen Text in der Interlinearglosse von gb4e kombinieren. Dabei wird jedoch immer ein Fehler angezeigt.
Dies ist mein Tex-Dokument:
\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}
Und es hat mir diesen Fehler zurückgegeben:
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 \\
?
Gibt es eine Möglichkeit, mein Dokument zu verbessern?
Ich verwende TeXShop auf dem Mac.
Antwort1
Sie müssen Russisch laden babel
. Da die Eingabe jedoch \gll
an Leerzeichen aufgeteilt werden soll, können Sie dies nicht tun \foreignlanguage{russian}{<sentence>}
, sondern müssen jedes Wort einzeln behandeln.
Meiner Meinung nach ist die Verwendung eines kurzen Befehls besser.
\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}
Antwort2
Mithilfe eines benutzerdefinierten Makros \glinlines{}
können Sie die Formatierung auf die gesamte Zeile anwenden und dabei Leerzeichen als Trennzeichen beibehalten.
MWE
\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}
Verwendung: In einem linguistischen Beispiel deckt statt eines Befehls für jede Zeile ein Makro alle Zeilentypen ab: Interlinearzeilen werden durch eine Zeichenfolge abgegrenzt, die sonst nirgendwo verwendet wird (Standard */
), und Textzeilen in freier Form werden durch eine andere Zeichenfolge abgegrenzt, die ebenfalls sonst nirgendwo verwendet wird (Standard glt
).
Die Datenstruktur besteht aus einer oder mehreren Interlinearzeilen, denen jeweils null oder mehr Textzeilen in freier Form folgen.
Ein „traditionelles“ linguistisches Beispiel, wenn man es so nennen kann, ist wie folgt strukturiert: eine, zwei oder drei Interlinearzeilen, wobei auf die letzte Interlinearzeile keine oder eine frei formulierte Textzeile folgt.
Wenn Trennzeichen im Text vorhanden sind, xx
können über eine Option je Beispiel unterschiedliche (z. B. ) festgelegt werden.
Das Makro kann auch überall dort verwendet werden, wo normaler Text erwartet wird, beispielsweise in einer Fußnote, einem Inline-Text usw.
Wie es funktioniert: Wörter werden in Kästen eingeteilt, dann werden die Wortkästen zu Wortstapeln gestapelt, deren Breite auf die Breite des breitesten Wortkastens im Stapel plus etwas mehr für die Lesbarkeit eingestellt ist. Dafür wird Expl3 verwendet.
Gemeinsam genutzte Bereichewerden als Trennzeichen verwendet. Alle Interlinearzeilen müssen die gleiche Anzahl Leerzeichen aufweisen, damit die Wörter in einer Reihe stehen. Um zwei oder mehr als eine Einheit zu behandeln, klammern Sie sie ein {}
.
Wörterkann individuell formatiert werden (oder Code eingefügt werden), indem ein einfaches Markdown an das Wort angehängt wird (um die Leerzeichen beizubehalten) und dann per Regex wieder in Latex-Befehle umgewandelt wird. Beispielsweise text:command
wird aus text\command
. Viele weitere Beispiele finden Sie im Referenzhandbuch.
Linienkann formatiert werden, um die Lesbarkeit zu verbessern. Einige Beispiele finden Sie im MWE.
Wortstapelkönnen auch formatiert werden, um zum Beispiel eine Besonderheit hervorzuheben.
AndereZu den Funktionen gehören Ruby-Text, die Auswahl der gewünschten Tonmarkierung aus der xpinyin.def-Datenbank und die Erstellung eines Wortartenglossars.
Einklinken in den Textfluss: Hinzufügen von Satzzeichen in anderen Formaten.
Einklinken in den Textfluss: Hinzufügen von Tikzmark-Ankerpunkten, um eine Überlagerung zu erstellen.
Definieren eines benutzerdefinierten Zeilentrennzeichens.
Wortstapel sichtbar gemacht.
Hervorheben eines Wortstapels.
Termux: „Mikro“-Editor-Bildschirme auf Android-Tablets.
Der unterstützende Code für das Makro ist zu groß, um in diese Antwort zu passen. Eine „vollständige“ TexLive-Installation wird vorausgesetzt. r
Als Workaround können Sie alle Schriftmeldungen weglassen (oder die Schriftnamen bearbeiten), bis ich/Sie sie bedingt machen oder sie anderweitig decodieren. ((Idealerweise sollte es dafür eine Funktion geben. Hmmmm...))
Kopieren in-glinlines2.tex
und in-glossing.tex
vonhttps://github.com/texcicada/expl3
Referenz-PDF:https://github.com/texcicada/expl3/blob/main/glinlines-demo2.pdf