ConTeXt 中的浮动:更改标题名称并使 \input 命令起作用

ConTeXt 中的浮动:更改标题名称并使 \input 命令起作用

我为逻辑电路定义了一个新的浮点数logigram

\definefloat [logigram] [logigrams]

利用 ConTeXt 模式(即条件处理),我可以同时制作我的文档的法语和英语版本:

\starttext
    \startmode [english]
        \placelogigram [right] {Logigram of a negation} {\input negation.tikz}
        The logic circuit of a negation is the opposite logigram.
    \stopmode

    \starmode [french]
        \placelogigram [right] {Logigramme d'une négation} {\input negation.tikz}
        Le circuit logique d'une négation est le logigramme ci-contre.
    \stopmode
\stoptext

现在,我想\placelogigram生成英文默认标题名称“Logigram”,但法语默认标题名称为“Logigramme”。

我还注意到,当在里面使用negation.tikz.tex该命令时,ConTeXt 找不到我的 Tikz 图片。这是文件:\input\placelogigramnegation.tikz.tex

%\usemodule [tikz]
%\usetikzlibrary [circuits.logic.US]
\starttikzpicture [circuit logic US]
    \node [not gate, point down, draw] at (0, 0) (notGate) {};
    \draw (notGate.input) -- ++(up:0.5) node [above] {$\phi$};
    \draw (notGate.output) -- ++(down:0.5);
\stoptikzpicture

在此先感谢您的帮助。

答案1

将法语设置为模式下编译时使用的语言french

\startmode [french]
    \language [french]
    \setcharacterspacing [frenchpunctuation]
    \mainlanguage [french]
\stopmode

并改变:

\definefloat [logigram] [logigrams]

到:

\definefloat [logigram] [logigrams]
\setuplabeltext [fr] [logigram=Logigramme~]

解决了字幕名称的问题。

我使用\startplacelogigram ... \stopplacelogigram而不是\placelogigram来获取我的\input

\startmode [english]
    \startplacelogigram [location=right, title={Logigram of a negation.}]
        \input negation.tikz
    \stopplacelogigram
    The logic circuit of a negation is the opposite logigram.
\stopmode

\startmode [french]
    \startplacelogigram [location=right, title={Logigramme d'une négation.}]
        \input negation.tikz
    \stopplacelogigram
    Le circuit logique d'une négation est le logigramme ci-contre.
\stopmode

编辑。如评论中所述,为避免\startplacelogigram ... \stopplacelogigram使用\input filename \relax\ReadFile {filename}代替\input filename

相关内容