从电子表格创建 gls

从电子表格创建 gls

我有一个包含 1925 个术语的电子表格,我想为它建立一个词汇表。除了手动为每行添加标签并导出到纯文本文件之外,有没有办法将电子表格转换为 gls 文件?

电子表格将每个术语分成单独的列,包括术语、其类型(名词、动词等)和定义。

答案1

假设你的电子表格如下所示:

包含四列的电子表格图像

方法 1:

将电子表格导出为 CSV。例如sample.csv

Name,Type,Past Tense,Description
sit,verb,sat,rest on one's hind quarters
cat,noun,---,small domesticate feline animal
mat,noun,---,floor covering
the,determiner,---,the definite article

现在你可以使用datatoolglossaries如下:

\documentclass{article}

\usepackage{datatool}
\usepackage{glossaries}

\makeglossaries

\DTLloaddb{data}{sample.csv}

% Ensure these fields are expanded
\glssetexpandfield{name}
\glssetexpandfield{desc}
\glssetexpandfield{descplural}
\glssetexpandfield{sortvalue}
\glssetexpandfield{symbol}

\DTLforeach*{data}% data set
 {% assignments
  \Name=Name,%
  \Type=Type,%
  \PastTense=Past Tense,%
  \Desc=Description%
 }
 {%
   \newglossaryentry{\Name}{name={\Name},description={\Desc},%
   symbol={\Type},user1={\PastTense}}%
 }

\newcommand*{\glstype}{\glssymbol}
\newcommand*{\glspast}{\glsuseri}

\begin{document}

\Gls{the} \gls{cat} \glspast{sit} on \gls{the} \gls{mat}.

\printglossary[style=index]

\end{document}

这需要:++(pdf)latex创建:makeglossaries(pdf)latex

生成的文档的图像

方法 2:

.dbtex使用以下方式将电子表格转换为文件datatooltk通过 GUI ( datatooltk-gui) 或通过命令行:

datatooltk --xls sample.xls --output sample.dbtex

该文档与上面的第一种方法只有一点点不同:

\documentclass{article}

\usepackage{datatool}
\usepackage{glossaries}

\makeglossaries

\DTLloaddbtex{\mydata}{sample.dbtex}

% Ensure these fields are expanded
\glssetexpandfield{name}
\glssetexpandfield{desc}
\glssetexpandfield{descplural}
\glssetexpandfield{sortvalue}
\glssetexpandfield{symbol}

\DTLforeach*{\mydata}% data set
 {% assignments
  \Name=Name,%
  \Type=Type,%
  \PastTense=Past Tense,%
  \Desc=Description%
 }
 {%
   \newglossaryentry{\Name}{name={\Name},description={\Desc},%
   symbol={\Type},user1={\PastTense}}%
 }

\newcommand*{\glstype}{\glssymbol}
\newcommand*{\glspast}{\glsuseri}

\begin{document}

\Gls{the} \gls{cat} \glspast{sit} on \gls{the} \gls{mat}.

\printglossary[style=index]

\end{document}

结果是一样的,但是使用大型数据库(例如您的数据库),文档的编译速度会更快。

相关内容