6

There's a new revision of the Mathematics Subject Classification scheme that was released recently this year (2020). However, when inserting a subjectclass in LyX to an amsart document, LyX outputs the following:

2000 Mathematics Subject Classification

The Code Preview Pane shows the following read-only TeX code:

\subjclass[2000]{Primary 60-01, 62-01; Secondary 05-01.}

LyX decided that I'm using the 2000 revision (whether it matters or not), and I don't know how to change this. I attempted to insert [2020] in RET (Red Evil Text, which is how the LyX wiki refers to raw TeX code) inside and after the sujbectclass, but it didn't work. I couldn't find any special item to insert in the context menu like with theorems.

3
  • Send this question to tech-support@ams.org. An update is underway, but feedback may help to hurry it up. Mar 9, 2020 at 16:48
  • @barbarabeeton, I think this is a limitation on LyX's part, so perhaps I should contact their team. I don't know how to access and change the year in the argument of the \subjclass because it is generated by LyX. I added Carlisle's segment to my preamble as a workaround to extend amsart's limitation on the years. If you still believe that my question is relevant to AMS, then I'll send them that too, although I merely like to write my own notes after class with amsart. Mar 9, 2020 at 17:11
  • 1
    The 2020 MSC has been released. If an article is submitted to an AMS journal, the author will want this to work, but it won't unless AMS releases an updated version of amsart. So this is relevant to AMS. (If there is a problem specific to LyX, then it would be good to report it there too. But I have a long history working in the AMS technical support group, and know how things work -- or don't -- in that environment.) Mar 9, 2020 at 17:16

2 Answers 2

2

One way to change the LaTeX command is to override the layout with a "local layout". I give a simple solution here and a larger explanation afterwards:

  1. Go to Document > Settings > Local Layout
  2. Paste in the following (adapt as desired):
Style Subjectclass
    CopyStyle             Address
    LatexName             subjclass[2020]
    LabelString           "2020 Mathematics Subject Classification:"
End
  1. Click on "Validate".
  2. Click on "OK".

A longer explanation on how to find what you should paste into your local layout:

  1. Go to Help > About LyX and find your "Library directory".
  2. Navigate to your library directory and search for a file that contains the word "subjclass". For example, on Linux, you can do use the command grep -IR "subjclass" *. This returns the file named layouts/amsdefs.inc.
  3. Open layouts/amsdefs.inc in a text editor and copy the layout that contains the subjclass string.

Note that you could edit the file layouts/amsdefs.inc directly and it would work. The advantage of putting it in your local layout is that if you compile the LyX file on a different system, you will get your desired output because the local layout is saved with the file.

For more information on layouts, see Help > Customization. It is a long and at times dry read, but if you plan on using LyX for a while, you will find it useful to know the details in there.

EDIT (thanks to Tamar's comment): we still need to add the following segment, which Carlisle posted, in the preamble, so that amsart would permit the year of 2020:

\makeatletter
\@namedef{subjclassname@2020}{%
  \textup{2020} Mathematics Subject Classification}
\makeatother

To do that in LyX, go to Document > Settings and paste the above into the preamble and then click "OK".

2
  • 1
    Thank you! This is exactly what I needed, now I can see the change in LyX's work area as well. It's worth mentioning that in the current version of amsart we still need to add the segment that Carlisle posted in the preamble, so that amsart would permit the year of 2020. Mar 10, 2020 at 15:39
  • @DavidTamar Thanks for the correction. I added this to the answer.
    – scottkosty
    Mar 10, 2020 at 15:45
6

amsart supports 1991, 2000 and 2010 versions of the subject classification, it still does not support the 2020 release. Presumably the AMS will issue an update soon.

I don't know how to add such a thing from lyx but all that would be needed to add to your document preamble is

\makeatletter
\@namedef{subjclassname@2020}{%
  \textup{2020} Mathematics Subject Classification}
\makeatother

So that it will accept 2020 as an argument without giving a warning, and adding the correct heading.

5
  • Is it possible to change the year in subjectclass in LyX at all? I tried to do RET with [2010] and it didn't work either. (I didn't find any relevant information in the LyX wiki about how to change the year argument of subjectclass). Mar 9, 2020 at 16:48
  • @DavidTamar you would need to add the definition that I show, I know nothing about lyx but \subjclass[2020]{...} will generate a warning in the underlying latex class about an unknown version and use a 1991 heading unless you add that definition. Mar 9, 2020 at 16:51
  • I'm now aware of amsart's limitation with the subjectclass years, so I added the segment you gave me to my preamble. However, I still don't know how to actually pass a different year in the subjectclass argument, LyX doesn't give me direct access to the TeX code that it generates. Mar 9, 2020 at 16:57
  • @DavidTamar if lyx is making things harder rather than easier typing the latex directly is always an option:-) But a perhaps simpler way would not be to use any year argument just \subjclass{...} and add another 4 or 5 line definition that makes 2020 the default year. I could add that to my answer if that would be useful. Mar 9, 2020 at 17:08
  • Indeed, that worked! I just removed LyX's automated subjectclass and then went to the premable and appended \subjclass[2020]{...} after the segment that you gave me, and it worked perfectly. For some odd reason I always try to keep my preamble as short as possible. Mar 9, 2020 at 17:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.