Фон

Фон

Фон

В настоящее время я работаю над отправкой рукописи журнала и пытаюсь преобразовать свою оригинальную рукопись из elsarticleкласса в cas-dcоснованную на отзывах и рекомендациях Elsevier. Мой код успешно наберет мой документкаждый второй раз. Он запускается, создает следующее сообщение об ошибке, я перезапускаю, а затем он удаляет файл .auxи успешно компилируется.

Сообщение об ошибке:! Missing = inserted for \ifnum.

Обычно это не является проблемой, но как отметил @PhelypeOleinik вего ответ на мой первоначальный вопрос, мне нужно успешно скомпилировать документдваждыдля того, чтобы такие вещи, как примечания к автору и названию, работали.

Похожие вопросы

Я рассмотрел следующие ответы/вопросы, но без особого успеха:

МВЭ

Ниже приведен минимальный рабочий пример, который воспроизводит проблему. Я использую \inputмного, чтобы поддерживать отдельные файлы в чистоте, и воспроизвел эту структуру здесь на случай, если это как-то связано. Все отдельные файлы находятся в одной папке.

Вdraft_paper.tex

\listfiles

\documentclass[sort&compress]{cas-dc} 

\input{settings_options_parameters} % contains all of the settings/options that I don't think we'll need to change very often

\begin{document}

\input{frontmatter} 

\end{document}

Вsettings_options_parameters.tex

\usepackage{natbib}
\usepackage{lipsum}  

\ExplSyntaxOn
\keys_set:nn { stm / mktitle } { nologo }
\ExplSyntaxOff

Вfrontmatter.tex

Основываясь в значительной степени на документации дляcas-dc здесь.


\title[mode=title]{Test Title: 101 Reasons Why I Can't \LaTeX}

\tnotemark[1]

\tnotetext[1]{This document is the result of blood, sweat, tears and taxpayer money.}

\author[1]{Dummy Author One}[%
    type=author,
    orcid=]
\cormark[1]
\fnmark[1]
\ead[url]{[email protected], \url{fakewebaddress.com}}
\credit{Everything}
\address[1]{Nowheresville, North America}


\author[1]{Dummy Author Two}[%
    type=author,
    orcid=]
\cormark[2]
\fnmark[2]
\ead[url]{[email protected], \url{phishingsupplies.com}}
\credit{Nothing}


\author[1]{Dummy Author Two}[%
    type=author,
    orcid=]
\cormark[1,2]
\fnmark[1,2]
\ead[url]{[email protected], \url{hackingsupplies.com}}
\credit{Nothing}
\address[1]{Nowheresville, North America}

\cortext[cor1]{Corresponding author}
\cortext[cor2]{Principal corresponding author}
\fntext[fn1]{This is the first author footnote. but is commonto third author as well.}
\fntext[fn2]{Another author footnote, this is a very longfootnote and it should be a really long footnote. But thisfootnote is not yet sufficiently long enough to make two linesof footnote text.}


% Abstract
\begin{abstract}[SUMMARY]
\lipsum[1-1]
\end{abstract}

% Key words
\begin{keywords}
\LaTeX \sep Science \sep Crying
\end{keywords}

\maketitle

Полученные результаты

Это изображения конечного результата, когда он компилируется в первый раз, во второй раз он выдает ошибку, упомянутую выше, и он никогда не показывает примечания к заголовку \tnotemarkили примечания автора.\cormark

введите описание изображения здесь введите описание изображения здесь

Файл logпосле возникновения ошибки можно найтиздесь. \listfilesдобавлено, но если нужно добавить что-то еще, пожалуйста, дайте мне знать.

Большое спасибо за любую помощь по этому вопросу!

решение1

els-casимеет... проблемы. Вы нашли две.

Первый:необязательный документ\cormark долженбыть числом, и этонетнеобязательный: если вы его опустите, вы получите ошибку. Да, :-)
\cormark[]недействителен, как есть \cormark[1,2], поэтому в принципе вы не можете указать более одного аргумента \cormarkна автора (кто знает, сделано ли это намеренно или это ошибка). Вот патч, чтобы сделать необязательный аргумент \cormarkдействительно необязательным и разрешить \cormark[1,2](добавьте его в свою преамбулу):

\ExplSyntaxOn
\makeatletter
\RenewDocumentCommand \process@marks { }
   {
     \bool_lazy_or:nnTF
         { \cs_if_free_p:c { mark@corau\theauthor } }
         { \tl_if_empty_p:c { mark@corau\theauthor } }
       { \ignorespaces }
       { \str_set:Nx \l_tmpa_str { \use:c{ mark@corau\theauthor } }
         \clist_map_inline:Nn \l_tmpa_str
           {
             \int_case:nn { ##1 }
               {
                 { 1 } { \sep$\ast$ }
                 { 2 } { \sep$\ast\ast$ }
                 { 3 } { \sep$\ast\!\ast\!\ast$ }
               }
               \tex_def:D \sep{\unskip,}
           }
         }
      \cs_if_free:cTF { mark@fnau\theauthor }
        { \ignorespaces }
        { \sep\use:c { mark@fnau\theauthor }
          \tex_def:D \sep{\unskip,}
        }
      }
\makeatother
\ExplSyntaxOff

Второй:Необязательный аргумент \eadничего не делает. так же допустим, как и . Да :-) Единственное отличие в том, что если необязательный аргумент не пустой, используется , в противном случае он использует вокруг аргумента. Не имеет особого смысла, если вы меня спросите. В любом случае,\ead[url]{[email protected]}\ead[mashed potatoes]{[email protected]}
els-cas\url\detokenize\eadнет(правильно) поддерживать более одного адреса.

В документации предлагается использовать и сделать из всего этого один URL, что неправильно (но, вероятно, нормально, поскольку ваша статья будет редактироваться людьми из Elsevier, а шаблон LaTeX не будет использоваться в процессе, поэтому я бы, пожалуй, выбрал этот вариант).\ead{[email protected], [email protected]}

Другой вариант — использовать \eadдважды, когда вам нужны два адреса:

\author[1]{Dummy Author Two}
\ead{[email protected]} % e-mail adrress
\ead[mashed potatoes]{hackingsupplies.com} % website

решение2

У меня была точно такая же проблема. Она была вызвана отсутствующим yearполем в одной из записей BibTeX. Я смог исправить проблему, добавив поле года следующим образом:

@online{arXiv,
    title = {arXiv.org e-Print archive},
    url = {https://arxiv.org/},
    author = {arXiv},
    year= {2023},
    urldate = {2023-08-07}
}

Связанный контент