LaTeX отображает математическое выравнивание в Anki

1410
Guest

Я пытался создать математические карточки в Anki . Естественно, я хотел, чтобы LaTeX была системой набора текста по умолчанию для этих карт. Для этого я создал новый базовый тип заметки с именем basic math . Вот мой заголовок параметров:

\documentclass[10pt] \usepackage[paperwidth=5in, paperheight=100in] \usepackage[utf8] \usepackage \pagestyle \setlength{\parindent} \newcommand{\C}{\mathbb} \newcommand{\N}{\mathbb} \newcommand{\Q}{\mathbb} \newcommand{\R}{\mathbb} \newcommand{\Z}{\mathbb} \renewcommand{\Re}{\operatorname} \renewcommand{\Im}{\operatorname} \begin 

Тип моей карты (на французском):

[Латекс] {} [/ латекс]

Тип моей карты обратно (на французском):

{}  <hr id=answer> <br />  [latex]{}[/latex] 

И наконец, вот стиль моей карты:

.card { font-family: arial; font-size: 10px; text-align: center; color: black; background-color: white; } img { width: auto; height: auto; max-height:1000px; } 

Вот передняя часть карты (на французском):

Vrai ou faux ? \[ z-\overline=2\Im z \] 

и его спина:

Faux. En général, \[ z-\overline=2{\colori}\Im z \] 

Увы, вот рендеринг:

LaTeX отображает математическое выравнивание в Anki

Очевидно, что-то странное с выравниванием отображения математики. Если я изменю оборотную сторону карты для этого:

Faux. En général, bla bla bla bla bla bla bla bla bla bla bla \[ z-\overline=2{\colori}\Im z \]  

тогда уравнение будет правильно отцентрировано (как обычно должно быть по умолчанию с LaTeX):

LaTeX отображает математическое выравнивание в Anki

Итак, мой вопрос: как получить правильное выравнивание по центру, как в математической среде Anki [$$] [/ $$]?

2

1 ответ на вопрос

3
ELLIOTTCABLE

Во-первых, вы не можете делать то, что вы пытаетесь сделать [latex]{}[/latex]. Я отсылаю вас к руководству :

Медиа ссылки на поля не допускаются. Они могут отображаться или не отображаться во время просмотра и не будут работать при проверке неиспользуемых носителей, импорте / экспорте и т. Д. Примеры, которые не будут работать:

[latex]{}[/latex] 

Помимо этого, однако, то, что вы видите, является результатом \documentclass, в сочетании с тем, как Анка вызывает dvipngк обрезать полученное изображение. (Кроме того, какого черта у вас это установлено 100in?)

Давайте посмотрим, что происходит за кулисами, когда Anki генерирует изображение из LaTeX:

  1. latex( не pdflatex ! старой школы, если вы не изменяете вручную anki.latex.latexCmdsс помощью надстройки.) вызывается, чтобы сгенерировать файл DVI из сцепленного ввода LaTeX:

    latex -interaction=nonstopmode tmp.tex 
  2. dvipng вызывается для результата, чтобы преобразовать его в PNG, который может быть включен в вашу колоду Anki, и в процессе вырезает большую часть пробела:

    dvipng -D 400 -T tight tmp.dvi -o tmp.png 

Хорошо, давайте посмотрим на это в действии на вашем «рабочем» примере, за исключением очень высокой 100inинструкции (щелкните изображение, чтобы увидеть его в полном размере):

enter image description here

Внизу слева - ваш каскадный код LaTeX; вверху справа - документ, сгенерированный LaTeX; а справа внизу - окончательное обрезанное изображение.

Все идет нормально. Давайте попробуем ваш оригинальный код:

enter image description here

Ahhah! Вы видите, что там происходит?

Ваше уравнение является центр, с точки зрения LATEX в - то есть, в перспективе 5in-ный , который является то, что вы здесь, сказали его для создания; именно обрезка делает его похожим на центр. (Или, с другой стороны, мы могли бы сказать, что уравнение центрировано, и это текст, который выплачивается плохо - он смещен далеко налево, в вашем документе.)


Ладно, хватит «почему». К сожалению, насколько я знаю, эту проблему нелегко решить, и все же получаю то, что ожидает Анки.

Тем не менее, один подход, который будет работать на вашем конкретном примере, состоит в том, чтобы перейти от стандартного \documentclassк \documentclass- пакету с функцией, специально разработанной для того, чтобы делать то, что мы хотим, здесь (настроить макет - такие вещи, как ваше центрирование, для экземпляр - в LaTeX, чтобы набирать вещи до их наименьшего размера.)

В частности, давайте попробовать cropи varwidthварианты. Измените свою прелюдию LaTeX в Anki на следующую, настроенную по мере необходимости ¹ в соответствии с вашими потребностями: (обратите внимание, что я избавился от \specialстроки Anki по умолчанию, так как она больше не актуальна)

\documentclass[crop=true,varwidth=true] \usepackage[utf8] \usepackage \pagestyle \setlength{\parindent} \begin 

enter image description here

Тада!

Теперь давайте поговорим о предостережениях, прежде чем я уйду в закат SRS:

  1. Это может вызвать некоторые ошибки компиляции. Не спрашивайте меня, почему - я думаю, что standaloneпакету не нравится то, что мы делаем с ним (он создан для генерации собственных изображений? Хотя я не уверен в специфике.) Это не должно испортить изображение Анки поколение, хотя они могут появиться в окне предварительного просмотра для вас, я не уверен? YMMV.

  2. varwidthсреда имеет ... много предостережений. Куча вещей не работает в них. Я не знаю всех деталей - вам придется пройтись по TeX.se, чтобы найти ответы от людей, более знающих, чем я, скорее всего, при его использовании.

Из-за этого я хочу рассмотреть один последний вариант:

Во -первых, не набирайте всю свою карту в LaTeX !

Это повезло, что мы на суперпользователя, а не TeX.se - Я уверен, что это высокая Богохульство там, но, честно говоря, Computer Modern является Эффинг Гадкий на экранах в любом случае (он предназначен для печати, и это здорово там ... но не так много на экранах, где мы используем Anki); и, что более важно, Anki, скорее всего, в будущем перейдет на MathJax (то есть, будет более последовательный рендеринг в карточке, в отличие от использования таких хакерских предварительно скомпилированных PNG). Это более перспективно, чтобы полагаться на встроенную сеть Anki. движок (HTML, CSS, JavaScript) для стилизации и набора текста, а не для отправки всего этого в LaTeX! На данном этапе рендеринг уравнений в PNG с использованием LaTeX является эффективной мерой удержания.

В принципе, этого можно избежать, если вы просто наберете свою карту в HTML. Вместо:

[latex] Faux. En général, \[ z-\overline=2{\colori}\Im z \] [/latex] 

… пытаться:

Faux. En général, [$$]z-\overline=2{\colori}\Im z[/$$] 

enter image description here

Boom; текст центрируется по уравнению. Какой шедевр! (Мои настройки немного отличаются от ваших; ваши настройки не будут такими большими и т. Д.)


  1. Я понятия не имею, как заставить пакет, с которым вы работаете, работать . Я на самом деле не эксперт, я только что случайно столкнулся с этой конкретной проблемой - чтобы заставить ее работать с вашими конкретными потребностями, возможно, потребуется спор с самим LaTeX, в отличие от Anki. Удачи.
(PS - я отметил это, чтобы быть перемещенным в [TeX.se] (https://tex.stackexchange.com), поскольку это, вероятно, более подходящее место для таких вопросов!) ELLIOTTCABLE 6 лет назад 0

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