![从电子表格创建 gls](https://linux22.com/image/284590/%E4%BB%8E%E7%94%B5%E5%AD%90%E8%A1%A8%E6%A0%BC%E5%88%9B%E5%BB%BA%20gls.png)
我有一个包含 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
现在你可以使用datatool
和glossaries
如下:
\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}
结果是一样的,但是使用大型数据库(例如您的数据库),文档的编译速度会更快。