LaTeX отображает математическое выравнивание в Anki
Я пытался создать математические карточки в Anki. Естественно, я хотел, чтобы LaTeX была системой набора текста по умолчанию для этих карт. Для этого я создал новый базовый тип заметки с именем basic math. Вот мой заголовок параметров:
\documentclass[10pt]{article}
\usepackage[paperwidth=5in, paperheight=100in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{amssymb,amsmath,amsfonts,mathrsfs,color}
\pagestyle{empty}
\setlength{\parindent}{0in}
\newcommand{\C}{\mathbb{C}}
\newcommand{\N}{\mathbb{N}}
\newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\Z}{\mathbb{Z}}
\renewcommand{\Re}{\operatorname{Re}}
\renewcommand{\Im}{\operatorname{Im}}
\begin{document}
Тип моей карты (на французском):
[Латекс]{{Ректо}}[/ латекс]
Тип моей карты обратно (на французском):
{{FrontSide}}
<hr id=answer>
<br />
[latex]{{Verso}}[/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{z}=2\Im z
\]
и его спина:
Faux. En général,
\[
z-\overline{z}=2{\color{red}i}\Im z
\]
Увы, вот рендеринг:
Очевидно, что-то странное с выравниванием отображения математики. Если я поменяю оборотную сторону карты для этого:
Faux. En général, bla bla bla bla bla bla bla bla bla bla bla
\[
z-\overline{z}=2{\color{red}i}\Im z
\]
тогда уравнение будет правильно отцентрировано (как обычно должно быть по умолчанию с LaTeX):
Итак, мой вопрос: как получить правильное выравнивание по центру, как в математической среде Anki [$$][/$$]?
1 ответ
Во-первых, вы не можете делать то, что вы пытаетесь сделать с [latex]{{Recto}}[/latex]
, Я отсылаю вас к руководству:
Медиа ссылки на поля не допускаются. Они могут отображаться или не отображаться во время просмотра и не будут работать при проверке неиспользуемых носителей, импорте / экспорте и т. Д. Примеры, которые не будут работать:
[latex]{{Field 1}}[/latex]
Кроме того, однако, что вы видите, является результатом \documentclass{article}
в сочетании с тем, как Анки вызывает dvipng
обрезать полученное изображение. (Кроме того, какого черта у вас это установлено 100in
?)
Давайте посмотрим, что происходит за кулисами, когда Anki генерирует изображение из LaTeX:
latex
(неpdflatex
! старая школа, если вы не меняете вручнуюanki.latex.latexCmds
с надстройкой.), чтобы сгенерировать файл DVI из каскадного ввода LaTeX:latex -interaction=nonstopmode tmp.tex
dvipng
вызывается для результата, чтобы преобразовать его в PNG, который может быть включен в вашу колоду Anki, и в процессе вырезает большую часть пробела:dvipng -D 400 -T tight tmp.dvi -o tmp.png
Хорошо, давайте посмотрим на это в действии на вашем "рабочем" примере, за исключением сверхвысоких 100in
инструкция (нажмите на изображение, чтобы увидеть его в полном размере):
Внизу слева - ваш каскадный код LaTeX; вверху справа - документ, сгенерированный LaTeX; а справа внизу - окончательное обрезанное изображение.
Все идет нормально. Давайте попробуем ваш оригинальный код:
Ahhah! Вы видите, что там происходит?
Ваше уравнение центрировано с точки зрения LaTeX, то есть с точки зрения 5in
-широкий {article}
, что вы сказали здесь, чтобы генерировать; это обрезка, которая делает его похожим на центр. (Или, с другой точки зрения, мы могли бы сказать, что уравнение центрировано, и текст плохо оплачивается - он смещен далеко налево, в вашем документе.)
Ладно, хватит "почему". К сожалению, насколько я знаю, эту проблему нелегко решить, и все же получаю то, что ожидает Анки.
Тем не менее, один подход, который будет работать на вашем конкретном примере, - это переключиться со стандартного \documentclass{article}
, чтобы \documentclass{standalone}
- пакет с функцией, специально разработанной для того, чтобы делать то, что мы хотим, здесь (настройте макет - например, такие как центрирование - в LaTeX, чтобы набирать вещи до их наименьшего размера.)
В частности, давайте попробуем crop
а также varwidth
опции. Измените вашу прелюдию LaTeX в Anki на следующую, настроенную по мере необходимости ¹ в соответствии с вашими потребностями: (обратите внимание, что я избавился от настроек Anki по умолчанию \special{papersize=3in,5in}
линия, так как она больше не актуальна)
\documentclass[crop=true,varwidth=true]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amssymb,amsmath}
\pagestyle{empty}
\setlength{\parindent}{0in}
\begin{document}
Тада!
Теперь давайте поговорим о предостережениях, прежде чем я уйду в закат SRS:
Это может вызвать некоторые ошибки компиляции. Не спрашивайте меня, почему - я думаю,
standalone
Пакету не нравится то, что мы делаем с ним (он создан для генерации своих собственных изображений? Хотя я не уверен в специфике.) Это не должно испортить генерацию изображений Anki, хотя они могут отображаться в предварительном просмотре. окно для вас, я не уверен? YMMV.varwidth
среда имеет... много предостережений. Куча вещей не работает в них. Я не знаю всех деталей - вам придется пройтись по TeX.se, чтобы найти ответы от людей, более знающих, чем я, скорее всего, при его использовании.
Из-за этого я хочу рассмотреть одну последнюю альтернативу:
Во -первых, не набирайте всю свою карту в LaTeX!
К счастью, мы находимся в SuperUser, а не в TeX.se - я уверен, что там самое высшее богохульство, но, честно говоря, Computer Modern все равно уродлив на экранах (в любом случае он предназначен для печати, и это здорово… но не очень) так много на экранах, где мы используем Anki); и, что более важно, Anki, вероятно, перейдет в MathJax в будущем (то есть, будет более последовательный рендеринг в карточке, в отличие от использования таких хакерских предварительно скомпилированных PNG). Это более перспективно, чтобы полагаться на встроенную сеть Anki. движок (HTML, CSS, JavaScript) для стилизации и набора текста, а не для отправки всего этого в LaTeX! На данном этапе рендеринг уравнений в PNG с использованием LaTeX является эффективной мерой удержания.
В принципе, этого можно избежать, если вы просто наберете свою карту в HTML. Вместо:
[latex]
Faux. En général,
\[
z-\overline{z}=2{\color{red}i}\Im z
\]
[/latex]
… пытаться:
Faux. En général,
[$$]z-\overline{z}=2{\color{red}i}\Im z[/$$]
Boom; текст центрируется по уравнению. Какой шедевр! (Мои настройки немного отличаются от ваших; ваши настройки не будут такими большими и т. Д.)
- Я понятия не имею, как сделать
{geometry}
пакет, с которым вы работаете{standalone}
, Я на самом деле не эксперт, я только что случайно столкнулся с этой конкретной проблемой - для того, чтобы она работала с вашими конкретными потребностями, возможно, потребуется спор с самим LaTeX, в отличие от Anki. Удачи.