我已经设置了文件来创建双语文本(本例中使用俄语)。我使用来自同一网站的各种代码片段创建了它。
问题是,这里已经讨论过的直行文本都处理整个句子或段落直行的情况,就像我当前的代码一样。
但我想要做的是使用主要语言,然后简单地指定一个或多个词用于直行注释(即对句子中单个单词的注释,而不是对整个句子本身的注释)。
在这张图片中,除了一个单词之外,其他每个单词我都进行了注释。
\newenvironment{interlinear}%
{\begin{russian} \begingl}%
{\endgl \end{russian}}%
\begin{document}
\begin{interlinear}
\gla Now {\hspace{0em}} {the possibility} {to print} simple documents
with English and Russian. //
\glb Теперь есть возможность печатать простые документы с английскими и
русскими.//
\end{interlinear}
\end{document}
如您所见,我可以使用 h 空格将单词留空。但我想将大部分内容留空,如下所示:
\gla {\hspace{0em}} {\hspace{0em}} {\hspace{0em}} {to print}
{\hspace{0em}} {\hspace{0em}} with {\hspace{0em}} {\hspace{0em}}
{\hspace{0em}}. //
\glb Теперь есть возможность печатать простые документы с английскими и русскими.//
问题是,即使我没有有效地利用 h 空间,这显然似乎不是一种有效或合适的方法。
那么有没有办法做类似“Это простой{^simple} Русский язык”的事情,然后获得该单词的英文注释?
编辑:我正在使用的软件包:
\documentclass[draft, a4paper]{article}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setotherlanguage{english}
\newfontfamily\russianfont[Script=Cyrillic]{Lava Pro Reg}
\newfontfamily\englishfont{Equity Text B}
\usepackage{expex}
答案1
命令
\translate{lower word}{upper word}
将lower word
在当前位置插入,并upper word
在其上方用小字体显示。该命令定义为
\newcommand\translate[2]%
{\begin{tabular}[b]{@{}c@{}}
\footnotesize #2\\
#1
\end{tabular}%
}
根据需要进行修改;如果您经常需要它,您可能需要缩写宏名称。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\newcommand\translate[2]%
{\begin{tabular}[b]{@{}c@{}}
\footnotesize #2\\
#1
\end{tabular}%
}
\begin{document}
\noindent
\translate{Теперь}{Now}
есть
\translate{возможность}{possibility}
печатать
простые
\translate{документы}{documents}
с
английскими
и
\translate{русскими}{Russian}%
.
\end{document}
如果有一些行没有任何翻译,并且希望行间距均匀,请增加\baselineskip
。
...
\baselineskip26pt
\begin{document}
...
答案2
也许我误解了你的问题,但使用现有的修线包可以轻松完成选择性修线。这是一个使用 ExPex 的示例,我认为它最适合你的目的。我使用了居中修线设置如何在 LaTeX 中实现文本居中要选择性地注释单词,您只需要{...}
在分组在一起的组周围使用,并确保源行中的组数与注释行中的组数相匹配。
\documentclass{article}
\usepackage{expex}
% Settings from https://tex.stackexchange.com/a/224154/
\lingset{everygla=\footnotesize\sffamily, % formatting the numbers in the gla line
glwordalign=center, % center alignment within glwords
aboveglbskip=-0.4ex, % narrows the vertical gap between the gla and glb lines
glhangstyle=none, % no hanging indent
glspace=!0pt plus .2em, % widens the allowable space between glwords to avoid overfull lines
glrightskip=0pt plus .5\hsize, % widens the allowable space between the right margin and the end of the last glword on a line to avoid overfull lines
everyglb=\textrussian}
\usepackage{polyglossia}
\setmainfont{Linux Libertine O}
\setmainlanguage{english}
\setotherlanguage{russian}
\begin{document}
\exdisplay
\begingl
\gla Now {} {the possibility} {to print} simple documents with English and Russian.//
\glb Теперь есть возможность печатать простые документы с английскими и
русскими//
\endgl
\xe
\exdisplay
\begingl
\gla {} {to print} {} with {}//
\glb {Теперь есть возможность} печатать {простые документы} с {английскими и
русскими}//
\endgl
\xe
\end{document}