簡體   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