Ich habe ein ziemlich spezielle Frage zu dem Paket chemnum:

Ich habe meine Grafiken fröhlich mit tags versehen und immer mit

Open in Online-Editor
\replacecmpd[tag=irgend-ein-tag]{tag1}

gelabelt.

Funktioniert alles schön und gut soweit, nur nun habe ich folgendes Problem:

Ich möchte ein Label in einer Grafik zwar ersetzen, aber nicht als neue Zählung definieren, sprich ich hätte gerne ein Äquivalent beim Ersetzen eines tags zu \cmpd+{tag1} im freien Textfluss.

Ist so eine Option in das Packet eingearbeitet?
Beim Durchlesen der Dokumentation ist mir nichts aufgefallen.

gefragt 12 Mai '15, 12:21

otti's gravatar image

otti
2312
Akzeptiert-Rate: 0%

bearbeitet 12 Mai '15, 21:52

cgnieder's gravatar image

cgnieder
22.1k243463

1

@otti: Willkommen auf TeXwelt!.

Es ist hier üblich und immer sinnvoll ein vollständiges Minimalbeispiel und nicht nur ein Codefragment anzugeben. Das gilt auch bei grundsätzlichen oder allgemeinen Fragen, damit nicht diverse Helfer sich für ihre Tests und Antworten erst Beispiele einfallen lassen müssen. Es ist also auch eine Frage der Effizienz. In vielen Fällen ist es sogar eine schlichte Notwendigkeit, um die Frage überhaupt verstehen und zielgerichtet bearbeiten zu können.

(13 Mai '15, 09:07) saputello

Im Manual zu chemnum fehlt die vollständige Beschreibung von \replacecmpd. Sie lautet:

  • \replacecmpd+[<Optionen>]{<Label-Angaben>}

Das optionale + sollte hier die gleiche Funktion haben, wie bei \cmpd: [it] only refers to an already defined label but does not define a label itself. Das heißt, der Befehl sollte die analoge Option haben. Tatsächlich stimmt das bis Version 1.1 aber leider nicht:

Der Befehl ruft intern \labelcmpd auf, das heißt [it] [...] defines a new label, und zwar unabhängig von gesetztem +, was eindeutig ein Fehler in der Definition ist. Es sollte natürlich geprüft werden, ob das + gesetzt wurde oder nicht. In Version v1.1a ist das behoben. Mit älteren Versionen (ab v1.0) bleibt Dir nur, folgendes in die Präambel zu kopieren, damit die +-Option auch funktioniert:

Open in Online-Editor
\ExplSyntaxOn
\cs_set_protected:Npn \chemnum_cmpd_replace:nnn #1#2#3
  {
    \bool_if:nF {#1} { \labelcmpd[{#2}]{#3} }% <<<< geänderte Zeile
    % set specific replacement options
    \keys_set_groups:nnn {chemnum} {replace} { replace=false, #2 }
    \bool_if:nTF
      {
        \l__chemnum_compound_replace_auto_bool &&
        \l__chemnum_compound_replace_auto_this_bool
      }
      {
        \int_incr:N \l__chemnum_compound_replace_int
        \tl_set:Nx \l__chemnum_compound_replace_tl
          {
            \exp_not:V \l__chemnum_compound_replace_tag_tl
            \exp_not:V \l__chemnum_compound_replace_int
          }
      }
      {
        \tl_set_eq:NN
          \l__chemnum_compound_replace_tl
          \l__chemnum_compound_replace_tag_tl
        \bool_set_true:N \l__chemnum_compound_replace_auto_this_bool
      }
    % replace in EPS, this must not be in a group:
    \bool_if:NTF \l__chemnum_replace_local_bool
      {
        \__chemnum_psfrag:VVVx
          \l__chemnum_compound_replace_tl
          \l__chemnum_psfrag_local_texpos_tl
          \l__chemnum_psfrag_local_pspos_tl
          {
            \group_begin:
              \exp_not:V \l__chemnum_compound_replace_local_format_tl
              \exp_not:n
                { \chemnum_cmpd:nnnn { \c_false_bool } { #1 } { #2 } { #3 } }
            \group_end:
          }
      }
      {
        \__chemnum_psfrag:VVVx
          \l__chemnum_compound_replace_tl
          \l__chemnum_psfrag_texpos_tl
          \l__chemnum_psfrag_pspos_tl
          {
            \group_begin:
              \exp_not:V \l__chemnum_compound_replace_format_tl
              \exp_not:n
                { \chemnum_cmpd:nnnn { \c_false_bool } { #1 } { #2 } { #3 } }
            \group_end:
          }
      }
    % clean up local options:
    \keys_set_groups:nnn {chemnum} {replace} { replace=false }
    \__chemnum_set_psfrag_local_pos:VV
      \l__chemnum_psfrag_texpos_tl
      \l__chemnum_psfrag_pspos_tl
    \tl_set_eq:NN
      \l__chemnum_compound_replace_local_format_tl
      \l__chemnum_compound_replace_format_tl
  }
\ExplSyntaxOff
Permanenter link

beantwortet 13 Mai '15, 10:26

cgnieder's gravatar image

cgnieder
22.1k243463
Akzeptiert-Rate: 60%

bearbeitet 15 Mai '15, 15:40

1

Update an CTAN ist raus

(13 Mai '15, 10:57) cgnieder

wow, vielen Dank für deine schnelle Antwort und deine tolle Arbeit bzgl des Pakets, habe es in jeder meiner bisherigen Arbeiten verwendet. Mit der Präambel funktioniert es auch einwandfrei, danke ;)

(13 Mai '15, 13:26) otti
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×10

gestellte Frage: 12 Mai '15, 12:21

Frage wurde gesehen: 6,891 Mal

zuletzt geändert: 15 Mai '15, 15:40