我正在尝试创建一个包含 3 列的宏,第一列是中文,第二列是拼音,第三列是英文。行被分成不同的部分,以代表书中的不同章节。它应该看起来像这样。
我厌倦了写出来,想让我的 LaTeX 文档更干净,这样我才能看得更清楚。这是我的宏:
\newcounter{magicrownumbers}
\newcommand\rownumber{\stepcounter{magicrownumbers}\arabic{magicrownumbers}}
\longtable[p{.02\textwidth}p{.40\textwidth} p{.40\textwidth} p{.4\textwidth}]{4}{*}{
& Chinese Characters & Pinyin & English Translation \\ \hline
\section*{Lesson {#1}: {#2}} \\
\newcommand\row{\rownumber& {#3} & {#4} & {#5} \\}}
用相同的格式书写 300 行确实很麻烦。
\rownumber & 昨天比今天暖和。& Zuótiān bǐ jīntiān nuǎnhuo. & Yesterday was warmer than today. \\
如果宏不起作用,也许我可以从文件中输入一些表格数据?所以我将格式和文本分开。有些文本我想保留在我的主 .tex 文件中,也许可以从文件中加载大部分内容。
答案1
我可能会做类似的事情(虽然我不太确定为单行定义宏是否真的能简化事情……)。无论如何,我不会将\section
s 放在tabular
类似环境中。实际上,我认为拆分表格甚至对文档的结构也有好处:
\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{Noto Serif CJK SC}
\usepackage{longtable}
\usepackage{calc}
\newcounter{magicrownumbers}
\newcommand\rownumber{\stepcounter{magicrownumbers}\arabic{magicrownumbers}}
\newenvironment{mytable}
{\begin{longtable}
{@{} p{.1\textwidth-6\tabcolsep} p{.3\textwidth} p{.3\textwidth} p{.3\textwidth} @{}}
}
{\end{longtable}}
\newcommand{\sentencerow}[3]{
\rownumber & #1 & #2 & #3 \\
}
\begin{document}
\begin{mytable}
& \textbf{Chinese Characters} & \textbf{Pinyin} & \textbf{English Translation} \\ \hline
\end{mytable}
\section*{Lesson 1: Weather}
\begin{mytable}
\sentencerow{昨天比今天暖和。}{Zuótiān bǐ jīntiān nuǎnhuo.}{Yesterday was warmer than today.}
\sentencerow{名天比昨天冷。}{Míngtiān bǐ zuótiān lěng.}{Tomorrow will be colder than yesterday.}
\end{mytable}
\section*{Lesson 2: Transportation}
\begin{mytable}
\sentencerow{我想坐火车去北京。}{Wǒ xiǎng zuò huǒchē qù Běijīng.}{I want to go to Beijing by train.}
\end{mytable}
\end{document}