带有部分翻译的直行文本

带有部分翻译的直行文本

我已经设置了文件来创建双语文本(本例中使用俄语)。我使用来自同一网站的各种代码片段创建了它。

问题是,这里已经讨论过的直行文本都处理整个句子或段落直行的情况,就像我当前的代码一样。

但我想要做的是使用主要语言,然后简单地指定一个或多个词用于直行注释(即对句子中单个单词的注释,而不是对整个句子本身的注释)。

在这张图片中,除了一个单词之外,其他每个单词我都进行了注释。

几乎全光泽

\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}

代码输出

相关内容