Jinwen-XU / create-theorem

Initializing and configuring theorem-like environments, with multilingual support
https://ctan.org/pkg/create-theorem
LaTeX Project Public License v1.3c
5 stars 0 forks source link

Providing interface for setting up QED symbol #1

Closed atxy-blip closed 2 years ago

atxy-blip commented 2 years ago

Hello! Thanks for your excellent work. I am considering switching from ntheorem to create-theorem, since with the former package the adjustment of any theorem-like environment can only be done by redefining it.

However, there is one major feature that I believe is absent from create-theorem, the QED symbol, which is particularly useful in proof environment and has already been implemented by many of the package's counterparts. Therefore, would you please add the above-mentioned feature?

A desired example may look like

\CreateTheorem{proof}{
    name = {
        heading = {证明}
    },
    numberless,
    qed-symbol = {\ensuremath{\QED}} # new interface
}
Jinwen-XU commented 2 years ago

Thank you for mentioning this, indeed a good suggestion :)

When I created this package, there was already built-in setup for QED symbols in my own document class so I didn't think about it. I shall adopt your syntax but this might take a day or two to be done.

Also, taking advantage of this opportunity, I suggest that one could define in the same time two more environments, say with a + sign, for usual theorem-type environments (say proposition), for example, proposition+ and proposition+*, for numbered and unnumbered proposition environment with a QED symbol, which are for those propositions without proof in the document. But this is not a final decision, I would like to hear your opinion about it (especially on the syntax).

Jinwen-XU commented 2 years ago

This has been achieved in Update 2022-05-31 (b2f3e92c120fd86e2a3d9d19c1dbee11db69655b).

Note that: 1) The key is named qed, but qed-symbol also works. 2) You may directly use the key qed-symbol without specifying its value, the default would be \qedsymbol. 3) I have already added \ensuremath in the code. If you wish to use regular text, you shall have to write \mathrm (which is actually a good thing as text in \mathrm shall not be affected by the surrounding text style).

As for my suggestion above, after some consideration, I decided to left it to the users. It's not hard, by the way, the following two lines would be suffice (provided that proposition and proposition* are already defined):

\CreateTheorem { proposition+ } { copy-existed = proposition, qed }
\CreateTheorem { proposition+* } { copy-existed = proposition*, qed }
atxy-blip commented 2 years ago

I am totally astonished at your efficiency. Honestly during the last few hours I was still hesitating about how the syntax should look like.

Thanks for the enhancement anyway : D