繁体   English   中英

如何在乳胶上制作字典

[英]How to make a dictionary on the Latex

我想要这种乳胶命令:

\\ setdictionary {dictionary_name} {key} {value}

\\ getdictionary {dictionary_name} {key}

这些命令应与C ++中的map <string,string>相同。

要定义一个关联容器,有几种工具。 最老的是keyval软件包,它以某种方式被LaTeX3的pgfkeys和l3keys等更新的软件包所取代。

l3keys和pgfkeys最初是作为将参数以key=value形式传递给宏的方法而开发的。 l3keys是用户界面,应与l3prop一起使用,该l3prop实现可与对象关联并检索的属性列表。 如果不需要key=value语法,也可以直接使用l3prop。

pgfkeys可能更易于使用。 您可以按分层方式定义键,设置这些键的值并进行检索。

pgfkeys和l3的基本用法是

\documentclass{article}
\usepackage{pgfkeys}
\usepackage{expl3,xparse}
\begin{document}
% pgfkeys version
\pgfkeyssetvalue{/my dictionary/my entry1}{Hello world!}
\pgfkeysvalueof{/my dictionary/my entry1}

% with latex3 prop
\ExplSyntaxOn
\prop_new:N \mydict    % define a container (property list)
\prop_new:N \myotherdict % and another one
\NewDocumentCommand \AddToDict { O{\mydict} m m } % add a key to a dictionary default to \mydict
{
  \prop_put:Nnn #1 {#2}{#3}
}
\NewDocumentCommand \GetFromDict { O{\mydict} m } % get a key from a dictionary default \mydict
{
  \prop_item:Nn #1 {#2}
}
\ExplSyntaxOff

\AddToDict{my entry1}{Hello again world!}
\GetFromDict{my entry1}

\AddToDict[\myotherdict]{my entry1}{Hello again again world!}
\GetFromDict[\myotherdict]{my entry1}
\end{document}

LaTeX3的方式有点复杂,因为捆绑包仅包含低级库例程。 但这可能更灵活。 查看interface3手册中的l3prop条目。

使用pgfkeys,有很多方法可以输入值,检索值,设置默认值,将代码与键关联等。请参阅tikz手册中的“键管理”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM