#latex #doxygen #mathjax
Вопрос:
в некоторых проектах LaTeX я хочу использовать файл с некоторыми инструкциями newcommand, которые облегчают (или, по крайней мере, ускоряют) написание уравнений линейной алгебры. Поэтому я скопировал этот файл в свой проект и настроил файл Doxyfile с переменной FORMULA_MACROFILE
, установленной на macros.inc
Теперь, если я использую команду, определенную в macros.inc
doxygen, я не смогу использовать эти команды ни с помощью latex, ни с помощью mathjax.
Это мой доксфайл
PROJECT_NAME = <...>
OUTPUT_DIRECTORY = <...>
INPUT = <...>
RECURSIVE = YES
MARKDOWN_SUPPORT = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LIMIT_NUM_FIELDS = 50
TEMPLATE_RELATIONS = YES
DOT_GRAPH_MAX_NODES = 100
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = YES
DOT_IMAGE_FORMAT = svg
USE_MATHJAX = YES
FORMULA_MACROFILE = macros.inc
GENERATE_HTML = YES
GENERATE_XML = NO
GENERATE_LATEX = NO
С некоторыми короткими macros.inc
это тоже не работает:
newcommand{mA}{mathbf{A}}
macros.inc
находится в том же каталоге, что и Doxyfile!
Теперь, если я позволю doxygen генерировать html-документ, он ни на что не жалуется, но при просмотре страницы, на которой использовалась команда latex mA
, mathjax жалуется на ошибку Undefined control sequence mA
Я не смог найти ни одного примера Doxyfile, который действительно используется FORMULA_MACROFILE
. У кого-нибудь есть какие-нибудь идеи?
Комментарии:
1. Какая версия доксигена? Какая версия MathJax?
2. Я попробовал последовательность
f$ mA f$
, и у меня не было проблем. Где вы видели предупреждение?3. > Какая версия доксигена? Какая версия MathJax? Я использую doxygen 1.9.1. Doxygen сгенерировал следующее для mathjax: <тип сценария=»текст/javascript» асинхронный=»асинхронный» src=» cdn.jsdelivr.net/npm/mathjax@2/MathJax.js»>></скрипт >
4. Предупреждение появляется в браузере (chrome)
Ответ №1:
Я решил эту проблему… Похоже, что в объявлении команд может не отображаться никаких пробелов.
Это не работает (обратите внимание на пробел):
newcommand{mA} {mathbf{A}}
Это действительно работает:
newcommand{mA}{mathbf{A}}
Комментарии:
1. Вы также получили предупреждение:
warning: file contains non valid code, expected '[' or '{' got ' '
в файле макроса? На данный момент Doxygen немного более ограничен, чем сам латекс.