自动表格生成

自动表格生成

我正在写一本书,里面有需要放在表格中的逐字翻译。平均页面的格式如下:

  1. 常规段落文本。
  2. 诗。
  3. 翻译部分。
  4. 常规段落文本。

下图说明了这种格式:

在此处输入图片描述

我的问题是关于第 3 部分。

我想将这节经文的逐字翻译放在一个有两列的表格中 - 一列是单词,一列是含义/翻译。此节/段落本身必须分成两列。它必须支持出现在第二列末尾的自己的脚注(可选)。

理想情况下我想要这样的东西:

\begin{mytable}
    \entry[Word]Meaning
    \entry[Apple]Apple is a fruit
    \entry[Banana]Banana is also a fruit
    \entry[Cat]Cat is an mammal\myfootnote{A mammal is an animal}.
\end{mytable}

mytable 宏应创建一个 2 列表格,该列表格本身会流入页面上的两列。myfootnote 函数可根据需要在第二列末尾创建脚注。排版时,两列的高度应相同。

遇到分页符时,必须在流程中保留每页上的条目顺序。因此,拆分时包含 10 个条目的表格应导致:

Entry1    Entry4
Entry2    Entry5
Entry3    Footnote for Entry 2
----PAGE BREAK----
Entry 6   Entry 9
Entry 7   Entry 10
Entry 8   Footnote for Entry 9

答案1

借鉴 David Carlisle 的multicol想法,我建议创建一个环境来设置翻译,并创建一个命令将每个词义对按表格对齐。该footnote包允许在表格内部添加脚注。

\documentclass{article}
\usepackage{multicol,footnote}

\newenvironment{translation}
    {\par\begin{multicols}{2}\setlength\parindent{0pt}}
    {\end{multicols}}
\makesavenoteenv{translation}   % allows footnotes in tabular

% Set width of tabular columns
\newcommand{\gloss}[2]{%
    \begin{tabular}{p{0.22\linewidth} c p{0.22\linewidth}}
    #1 & --- & #2\\ 
    \end{tabular}\newline%
    }
\usepackage{lipsum}

\begin{document}
\lipsum[1]

\begin{translation}
\gloss{Pollo}{Chicken}
\gloss{Burrito}{Burrito}
\gloss{Grande}{Big}
\gloss{Cerveza}{Beer}
\gloss{Alegre}{Happy}
\gloss{Cansado}{Tired%
    \footnote{\lipsum[10]}%
    }
\end{translation}

\lipsum[2]
\end{document}

在此处输入图片描述

答案2

我不确定,但你的意思是这样吗?

在此处输入图片描述

\documentclass{article}

\usepackage{multicol}

\newcommand\entry[2]{\par#1~---~#2\par}
\newcommand\myfootnote[1]{%
\stepcounter{mpfootnote}%
\footnotemark[\value{mpfootnote}]%
\edef\tmp{\toks0\par\noexpand\footnotemark[\the\value{mpfootnote}]}%
\toks0\expandafter{\the\tmp#1\par}}

\begin{document}

\noindent blah \dotfill blah \dotfill blah\\
blahlah \dotfill blah \dotfill blah


\begin{multicols}{2}\setlength\parindent{0pt}
    \entry{Word}{Meaning}
    \entry{Woord}{Meeaning\myfootnote{my spelling is poor}}
    \entry{Apple}{Apple is a fruit}
    \entry{Worrrd}{Meannnning}
    \entry{Wordddd}{More meaning}
    \entry{Banana}{Banana is also a fruit}
    \entry{Bananana}{Bananaanana is also a fruit}
    \entry{Banana}{Banana is also a fruit}
    \entry{Cat}{Cat is an mammal\myfootnote{A mammal is an animal}}
\the\toks0\relax
\end{multicols}

\noindent blah \dotfill blah \dotfill blah\\
blahlah \dotfill blah \dotfill blah

\noindent blah \dotfill blah \dotfill blah\\
blahlah \dotfill blah \dotfill blah

\end{document}

相关内容