Введите математические формулы в Microsoft Word способом LaTeX?
Интересно, есть ли какие-нибудь бесплатные решения для ввода математических формул способом LaTeX в документе Microsoft Word (Office 2007)?
Интересно, есть ли какие-нибудь бесплатные решения для ввода математических формул способом LaTeX в документе Microsoft Word (Office 2007)?
Если вы работаете с Office 365 версии 1707 или более поздней, редактор уравнений позволяет конвертировать LaTex в исходный формат. См. первую часть этого ответа.
В более старых версиях Office редактор уравнений может понимать некоторые компоненты LaTeX. Тем не менее, он строит уравнение в процессе работы, и вы не можете преобразовать весь LaTeX-управление. См. вторую часть этого ответа, если вы используете:
MacWord 2011 и 2016
Переведите редактор уравнений в режим LaTeX. В редакторе уравнений Design ленты, перейдите в группу Conversions и нажмите кнопку LaTeX.
Введите LaTeX.
Откройте выпадающее меню Convert и нажмите Current - Professional.
LaTeX будет обработан в исходном формате редактора уравнений.
Можно также преобразовать обратно в LaTeX для редактирования уравнения.
Вы должны использовать выпадающее меню, потому что кнопка Convert не переключается автоматически между линейным и профессиональным. Она сохраняет последнюю использованную команду.
Есть некоторые ограничения. Например, редактор уравнений Office 365 не понимает команды \begin и \end. Смотрите документацию Microsoft для примеров и возможных обходных путей:
Очень немногие понимают, что встроенный редактор уравнений в Word 2007 на самом деле понимает запись уравнения в стиле LaTeX. Просто вставьте новое уравнение, а затем введите в него LaTeX. По мере ввода, Word построит графическое представление уравнения.
Как только оно появится в графическом интерфейсе, вы больше не сможете редактировать его как LaTeX. Word не имеет встроенного процессора TeX - он просто выполняет сопоставление шаблонов для преобразования простого синтаксиса LaTeX в родной формат уравнения. Поэтому не стоит ожидать идеальной точности для суперсложных уравнений LaTeX. Однако, наверное, этого достаточно для любого, кроме математика, и это lot быстрее, чем нажимать на элементы мышью.
В редакторе уравнений Word 2007 также есть формат ввода линейных уравнений, который достаточно интуитивно понятен и не требует знакомства с LaTeX. Например, ввод (a+b)/(c+d)
приведет к хорошо отформатированной дроби.
Примечания:
Многие научные журналы не примут документы Word с новым форматом уравнения - даже если вы сохраните их как .docx, а не как .docx.
Это не превращает Word в LaTeX. Он просто делает сами уравнения, и ничего больше. Вы даже не получаете нумерацию уравнений.
Запишите свои математические формулы в LaTeX → Трансформируйте формулы LaTeX в MathML Code → Копируйте/Вставьте MathML Code в Word (после вставки нажмите CTRL, а затем T). Вуаля!
Возьмем, к примеру, эту Формулу:
Это исходный код LaTeX из вышеприведенной Формулы:
0 \leq \lim_{n\to \infty}\frac{n!}{(2n)!} \leq \lim_{n\to \infty} \frac{n!}{(n!)^2} = \lim_{k \to \infty, k = n!}\frac{k}{k^2} = \lim_{k \to \infty}\frac{1}{k} = 0.
Теперь откройте редактор и поместите вышеприведенный исходный код между знаками $$ $$ следующим образом:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<title>tex texample</title>
</head>
<body>
$$ 0 \leq \lim_{n\to \infty}\frac{n!}{(2n)!} \leq \lim_{n\to \infty} \frac{n!}{(n!)^2} = \lim_{k \to \infty, k = n!}\frac{k}{k^2} = \lim_{k \to \infty}\frac{1}{k} = 0.$$
</body>
</html>
Сохраните файл как . html и откройте его с помощью браузера, например Chrome.
Щелкните правой кнопкой мыши на формуле и выберите Показать MathML как → MathML код.
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mn>0</mn>
<mo>≤<!-- ≤ --></mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mrow>
</munder>
<mfrac>
<mrow>
<mi>n</mi>
<mo>!</mo>
</mrow>
<mrow>
<mo stretchy="false">(</mo>
<mn>2</mn>
<mi>n</mi>
<mo stretchy="false">)</mo>
<mo>!</mo>
</mrow>
</mfrac>
<mo>≤<!-- ≤ --></mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mrow>
</munder>
<mfrac>
<mrow>
<mi>n</mi>
<mo>!</mo>
</mrow>
<mrow>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo>!</mo>
<msup>
<mo stretchy="false">)</mo>
<mn>2</mn>
</msup>
</mrow>
</mfrac>
<mo>=</mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
<mo>,</mo>
<mi>k</mi>
<mo>=</mo>
<mi>n</mi>
<mo>!</mo>
</mrow>
</munder>
<mfrac>
<mi>k</mi>
<msup>
<mi>k</mi>
<mn>2</mn>
</msup>
</mfrac>
<mo>=</mo>
<munder>
<mo form="prefix" movablelimits="true">lim</mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo stretchy="false">→<!-- → --></mo>
<mi mathvariant="normal">∞<!-- ∞ --></mi>
</mrow>
</munder>
<mfrac>
<mn>1</mn>
<mi>k</mi>
</mfrac>
<mo>=</mo>
<mn>0.</mn>
</math>
Теперь скопируйте/вставьте MathML-код в Word 2013 (или 2007) и последовательно щелкните CTRL, а затем T (Paste Options: keep the text only) или перейдите к маленькому изображению Ctrl в конце вставленного MathML-кода и выберите опцию вручную.
Я создал LatexToWordEquation на основе ответов.
Это Word AddIn.
Исходный код, который я толкнул на Github. Ссылка здесь
Если вы предпочитаете, вы можете загрузить программу установки прямо из здесь .
Заметка: Это активная ссылка на загрузку, которая сразу же загрузит файл, когда вы нажмете на него._
Как это сделать
Я предпочитаю TeXsword, а не Latex в Word TeXsword скачать ). Он имеет все возможности Latex in Word, плюс дает обработку ссылок на уравнения. И он не требует подключения к Интернету, что я вижу в качестве функции, а не ограничения: В конце концов, MikeTeX не так уж и велик, а наличие локального LaTeX позволяет набирать документ во время путешествия.
@ Ответ Девида отлично, но у меня были трудности с конкретными инструкциями. Вот что сработало со мной. Сделайте шаги Девида по копированию MathML кода.
Затем вставьте пустое уравнение. В Word 2013 переключитесь на вид Разметка для печати (Вид вкладки на ленте). На вкладке Вставить выберите Уравнение. Вы увидите Type equation here
выбранным.
На вкладке Home (Главная) выберите раскрывающееся меню Вставить, а затем Вставить Специальное (или просто нажмите CTRLALTV). Выберите Unformatted Unicode Text.
Уравнение должно заполнить в основном правильно, как на последнем рисунке Девида.
Еще одна вещь - на рисунке команды “лим” выделены курсивом, где их не было в оригинале. Чтобы исправить это, для каждого “лимузина” наведите курсор сразу после “m” и нажмите Space, чтобы заставить Word проверить “лимузин” по его таблице функций и скорректировать форматирование. (Затем удалите лишний пробел, который создал).
Вы можете использовать Latex in Word .
Он предоставляет макросы для Microsoft Word, которые позволяют использовать вход LaTeX для создания образов уравнений как в последовательном режиме, так и в режиме отображения без необходимости установки какого-либо программного обеспечения на локальном компьютере. Насколько я знаю, это единственная бесплатная альтернатива таким платным программам, как Aurora и TexPoint .
Для Office 2007 перейдите на страницу Latex in Word Project Page в разделе Source Forge и нажмите на Word 2007 в разделе Files .
LaTeX в Word - это GPL-лицензионный инструмент, позволяющий использовать уравнения в документах Microsoft Word. Клиентская часть программы реализована в виде макросов VBA в документе “LaTeXinWord_v_0_3_1.docm” вместе с инструкциями. Следовательно, этот файл содержит исходный код, реализацию и документацию.
Я написал инструмент для генерации MathML, я улучшил код с Devid, и добавил несколько функций для легкого редактирования. Вот код:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<title>tex texample</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\(','\)']]}});
</script>
<script>
function SelectText(element) {
var doc = document
, text = doc.getElementById(element)
, range, selection
;
if (doc.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(text);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(text);
selection.removeAllRanges();
selection.addRange(range);
}
}
$(document).ready(function(){
$("#latexContent").val("$$ $$");
$('#latexContent').bind('input propertychange', function() {
$("#myoutput").text($("#latexContent").val());
// MathJax.Hub.Queue(["TypeseTextt",MathJax.Hub,"myoutput"]);
MathJax.Hub.Typeset("myoutput")
});
$("#btnShowMathML").click(function(){
var con = $(".MJX_Assistive_MathML").html();
$("#myMathml").text(con);
SelectText("myMathml");
});
$("#btnClear").click(function(){
$("#latexContent").val("$$ $$");
$("#myoutput").html("<p style='color: grey; font-style: italic;'> The LaTeX will display here ! </p>");
$("#myMathml").text("");
});
});
</script>
</head>
<body>
<center>
<p> Enter LaTeX here! </p>
<textarea id="latexContent" rows="5" cols="100"> </textarea>
<button id="btnClear" type="button">clear</button>
<button id="btnShowMathML" type="button">Show The MathML</button> </br></br>
<span id="myoutput">
<p style="color: grey; font-style: italic;"> The LaTeX will display here ! </p>
</span> </br>
<span id="myMathml"> </span>
</center>
</body>
</html>
При копировании MathML в Word убедитесь, что скопировали чистый текст, используя клавиши Ctrl+Alt+V (или сначала скопируйте его в блокнот, а затем скопируйте в слово).
Microsoft Office ProPlus версии 1902 с активированным LaTeX Format.
Следующий макрос изменяет все LaTeX формулы, разделенные на пары $
в рамках текущего Выбор документа Word в Word формулы:
Sub LaTeX()
If Selection.Start < Selection.End Then
Set myRange = ActiveDocument.Range(Selection.Start, Selection.End)
Do While myRange.Find.Execute(FindText:="$*$", Forward:=True, MatchWildcards:=True) = True
ActiveDocument.OMaths.Add Range:=myRange
ActiveDocument.OMaths.BuildUp
Set myRange = ActiveDocument.Range(myRange.Start, Selection.End)
Loop
End If
End Sub
Это технико-экономическое обоснование и не предназначен для производства. Макрос можно легко обмануть с помощью шарообразных знаков $
в тексте. Это также является основной причиной для разграничения действия макроса к текущему выбору.
Более того, он не работает со средами уравнения дисплея, как equation
или align
.
Ответ, упомянутый выше, является правильным, но есть также встроенный ярлык, который является математической автокорректности. Это очень похоже на LaTeX. По умолчанию он неактивен, но вы можете его активировать, и он очень полезен, если вы хотите писать большие уравнения. Например, если вы хотите набрать H2, вам нужно просто набрать H_2 и т.д., и многие другие опции доступны, как для суперскриптового символа, следующий за знаком caret (^) будет преобразован в суперскрипт. Многие из таких ярлыков рассмотрены в этом видео или вы можете просто искать Как вставить математическое уравнение (например, LaTeX) в Ms-Office: Советы и трюки на youtube.
Этот метод будет особенно полезен, если вы быстро набираете текст. Более того, он сэкономит ваше время, которое вы теряете при переключении между клавиатурой и мышью и поиске нужной опции по слову.