IPython नोटबुक में LaTeX कैसे लिखें?


296

मैं IPTthon नोटबुक में LaTeX कोड कैसे प्रदर्शित कर सकता हूं?


3
@duffymo भले ही आप कैसे LaTeX की बात करते हैं, यह एक बहुत अच्छा सवाल है। आइपीथॉन नोटबुक वास्तव में क्या है इस पर एक नज़र डालें । शायद यह मदद करता है अगर मैं आपको बताता हूं कि यह 'बिट्स पर ऑर्गमोड जैसा है (लेकिन दुर्भाग्य से एक अच्छे संपादक के बिना, और लाटेक्स के बजाय मार्कडाउन के साथ, इसलिए ओपी का सवाल है)।
कोनराड रूडोल्फ

1
मैं इससे अनभिज्ञ हूँ, निर्देश के लिए धन्यवाद, कोनराड।
duffymo

2
और, स्पष्ट होना, मैं प्यार LaTeX। (मैंने इसे अपने शोध प्रबंध टाइप करने के लिए इस्तेमाल किया।) कोई आपत्ति नहीं; बस इस मुद्दे को समझने में विफल रहा।
duffymo

जवाबों:


155

यह एक खोज में आया था जो मैं बस कर रहा था, कुछ और खोज के साथ एक बेहतर समाधान मिला, आईपीथॉन नोटबुक में अब एक %%latexजादू है जो $$प्रत्येक पंक्ति के लिए आवरण के बिना पूरे सेल लेटेक्स बनाता है ।

रिच डिस्प्ले सिस्टम के लिए नोटबुक टूर देखें


33
जुपिटर में, यह एक मार्कडाउन सेल में काम नहीं करता है, लेकिन यह एक कोड सेल में काम करता है।
jwe

287

IPython नोटबुक HTML / markdown के अंदर LaTeX रेंडर करने के लिए MathJax का उपयोग करता है । बस अपने LaTeX गणित को अंदर रखें $$

$$c = \sqrt{a^2 + b^2}$$

sqrt

या आप पायथन से लाटेक्स / मैथ आउटपुट प्रदर्शित कर सकते हैं, जैसा कि नोटबुक टूर के अंत में देखा गया है :

from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))

अविभाज्य


19
मुझे लगता है कि ओपी मार्कडाउन के बजाय सिर्फ समीकरणों के लिए लाटेक्स का उपयोग करना चाहता है। मैं अनुरोध के साथ सहानुभूति रखता हूं - जितना मैं मार्कडाउन को पसंद करता हूं, उतने जटिल दस्तावेजों के लिए मैं हमेशा लाटेक का उपयोग करता हूं।
कोनराड रूडोल्फ

16
पकड़ लिया। उस समय के लिए सबसे अच्छा समाधान अब मार्कडाउन के बजाय 'कच्ची' कोशिकाओं का उपयोग करना होगा, और जैसे ही आप लाटेक्स टाइप करेंगे। फिर ipbb को TeX (कोड, आंकड़े और सभी) को चालू करने के लिए nbconvert का उपयोग करें , और पीडीएफ, आदि को रेंडर करने के लिए लेटेक्स चलाएं। आपको ब्राउज़र में लाइव-गाया हुआ TeX नहीं मिलता है जैसे आप MathJax / Markdown के साथ करते हैं, लेकिन आप अभी भी एक दस्तावेज़ में TeX / कोड है।
minrk

1
एक ही सवाल है, लेकिन qtconsole में
MySchizoBuddy

8
और समीकरण को बनाए रखने के लिए एकल $ (डबल $ $ के बजाय) का उपयोग करें। stackoverflow.com/q/19412644/1224255
TheGrimmScientist

6
आप पाठ सेल में पहली पंक्ति के रूप में LaTeXलिखकर पूरे सेल को प्रस्तुत कर सकते हैं %%latex
फॉकबी

81

लाटेक्स संदर्भ:

Udacity के ब्लॉग में बेस्ट LaTeX प्राइमर है जिसे मैंने देखा है: यह स्पष्ट रूप से दिखाता है कि LaTeX कमांड का उपयोग कैसे करें पढ़ने में आसान, और आसान तरीके से याद रखें !! अत्यधिक की सिफारिश की

इस लिंक में दोनों कोड और उत्कृष्ट परिणाम दिखाने वाले उत्कृष्ट उदाहरण हैं !
आप उदाहरण के लिए LaTeX लिखने का तरीका जानने के लिए इस साइट का उपयोग कर सकते हैं।

और, यहाँ LaTeX कमांड / प्रतीकों के लिए एक त्वरित संदर्भ दिया गया है ।


संक्षेप में: जुपिटर / आईपीथॉन में लाटेक्स को इंगित करने के विभिन्न तरीके:

मार्कडाउन सेल के लिए उदाहरण :

इनलाइन, रैप इन: $

The equation used depends on whether the the value of  
$V​max​​$ is R, G, or B.  

ब्लॉक करें, लपेटें: $$

$$H←  ​​​​​0 ​+​ \frac{​​30(G−B)​​}{Vmax−Vmin}  ​​, if V​max​​ = R$$

ब्लॉक, रैप इन:\begin{equation} और\end{equation}

\begin{equation}
H← ​​​60 ​+​ \frac{​​30(B−R)​​}{Vmax−Vmin}  ​​, if V​max​​ = G
\end{equation}

ब्लॉक, रैप इन:\begin{align} और\end{align}

\begin{align}
H←120 ​+​ \frac{​​30(R−G)​​}{Vmax−Vmin}  ​​, if V​max​​ = B
\end{align}

कोड सेल के उदाहरण :

LaTex सेल: %%latex मैजिक कमांड पूरे सेल को LaTeX सेल में बदल देता है

%%latex
\begin{align}
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}

मैथ ऑब्जेक्ट एक कच्चे LaTeX स्ट्रिंग में पास करने के लिए :

from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')

लेटेक्स क्लास । नोट: आपको खुद ही सीमांकक को शामिल करना होगा। यह आपको अन्य लाटेक्स मोड का उपयोग करने की अनुमति देता है जैसे eqnarray:

from IPython.display import Latex
Latex(r"""\begin{eqnarray}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0 
\end{eqnarray}""")

रॉ सेल के लिए दस्तावेज़ :

(क्षमा करें, यहां कोई उदाहरण नहीं, बस डॉक्स)

कच्ची कोशिकाएँ कच्ची कोशिकाएँ एक ऐसी जगह प्रदान करती हैं जिसमें आप सीधे आउटपुट लिख सकते हैं। नोटबुक द्वारा कच्चे कोशिकाओं का मूल्यांकन नहीं किया जाता है। जब से गुजरा जाता है nbconvert, तो कच्ची कोशिकाएं गंतव्य प्रारूप में पहुंच जाती हैं। उदाहरण के लिए, यह आपको पूर्ण एलएटीएक्स को एक कच्चे सेल में टाइप करने की अनुमति देता है , जिसे केवल रूपांतरण के बाद एलएटीएक्स द्वारा प्रदान किया जाएगा nbconvert

अतिरिक्त दस्तावेज:

मार्कडाउन सेल के लिए, जैसा कि जुपिटर नोटबुक डॉक्स से उद्धृत किया गया है :

: Markdown कोशिकाओं के भीतर, आप भी एक सरल तरीके से गणित, मानक LaTeX अंकन का उपयोग शामिल कर सकते हैं $ ... इनलाइन गणित के लिए $ और प्रदर्शित किया गणित के लिए $$ ... $$ । जब मार्कडाउन सेल निष्पादित होता है, तो एलईटीएक्स भाग स्वचालित रूप से HTML आउटपुट में उच्च गुणवत्ता वाली टाइपोग्राफी के समीकरणों के रूप में प्रस्तुत किया जाता है। यह MathJax द्वारा संभव है, जो कि LaTeX कार्यक्षमता के एक बड़े उपसमूह का समर्थन करता है

LaTeX और AMS-LaTeX (amsmath पैकेज) द्वारा परिभाषित मानक गणित वातावरण भी काम करते हैं, जैसे कि \ start {समीकरण} ... \ end {समीकरण} , और \ start {align} ... \ end {align} । नए लाटेकस मैक्रोज़ को मानक तरीकों का उपयोग करके परिभाषित किया जा सकता है, जैसे कि \ newcommand, एक मार्कडाउन सेल में गणित के सीमांकक के बीच कहीं भी रखकर। ये परिभाषाएँ तब शेष IPython सत्र के दौरान उपलब्ध हैं।


Udacity पेज का लिंक किसी भी अधिक काम नहीं करता है।
गैलेक्सी

33

यदि आप चाहते हैं कि आपका गणित एकल पंक्ति में दिखाई दे, जैसे $ $ का प्रयोग करें,

$$a = b + c$$ (line break after the equation)

यदि आपको गणित के बाद लाइन ब्रेक की आवश्यकता नहीं है, तो एकल डॉलर चिह्न $ का उपयोग करें, जैसे,

$a = b + c$   (no line break after the equation)

23

आप मार्कडाउन होने के लिए एक सेल चुन सकते हैं, फिर लेटेक्स कोड लिख सकते हैं जो कि मैथजैक्स द्वारा व्याख्या की जाती है, जैसा कि उत्तरदाताओं में से एक कहता है।

वैकल्पिक रूप से, iPython नोटबुक ट्यूटोरियल के लेटेक्स अनुभाग इसे अच्छी तरह से समझाते हैं।

आप या तो कर सकते हैं:

from IPython.display import Latex
Latex(r"""\begin{eqnarray}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0 
\end{eqnarray}""")

या यह करें:

%%latex
\begin{align}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}

अधिक जानकारी इस लिंक में मिली


4
आपका लिंक अब टूट गया है
J'e

1
यहाँ महान उदाहरण: jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/…
ptim

14

मैंने सुंदरपी विकसित किया , जो समीकरण को प्रिंट करने का एक अच्छा तरीका प्रदान करता है। दुर्भाग्य से, यह प्रदर्शन नहीं है और परीक्षण की आवश्यकता है।

उदाहरण:

यहां छवि विवरण दर्ज करें

दी गई, सहानुभूति एक बेहतरीन विकल्प है और हालांकि बहुत सुंदर अभिव्यक्ति का मूल्यांकन करने की अनुमति नहीं देता है, चर आरंभीकरण की आवश्यकता नहीं है।


2
मेरा मतलब यह था कि मैंने पैकेज विकसित किया। मैंने स्पष्ट रूप से यह बताने के लिए अपने उत्तर को समायोजित किया।
चार्ल्स

1
सार्वजनिक डोमेन में कोड डालने के लिए यश। मैं अपनी (अब) अप्रचलित टिप्पणी को हटा दूंगा।
रोबिनो

10

चूंकि, मैं %% लेटेक्स कीवर्ड या $ .. $ सीमक का उपयोग करने के बाद भी कोड में सभी लेटेक्स कमांड का उपयोग करने में सक्षम नहीं था, इसलिए मैंने nbextensions स्थापित किया था जिसके माध्यम से मैं मार्कडाउन में लेटेक्स कमांड का उपयोग कर सकता था। यहां दिए गए निर्देशों का पालन करने के बाद: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md और फिर ज्यूपिटर और फिर लोकलहोस्ट को फिर से शुरू करना: 8,08 / nbextensions और फिर सक्रिय करना "लेटेक्स पर्यावरण के लिए" जुपिटर ", मैं कई लेटेक्स कमांड चला सकता था। उदाहरण यहाँ हैं: https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html

\section{First section}
\textbf{Hello}
$
\begin{equation} 
c = \sqrt{a^2 + b^2}
\end{equation}
$
\begin{itemize}
\item First item
\item Second item
\end{itemize}
\textbf{World}

जैसा कि आप देख रहे हैं, मैं अभी भी usepackage का उपयोग करने में असमर्थ हूं। लेकिन शायद भविष्य में इसमें सुधार किया जाएगा।

यहां छवि विवरण दर्ज करें


1
लेटेक्स_एएनवीएस नोटबुक एक्सटेंशन बाहरी लाटेक्स पैकेज या शैलियों का उपयोग नहीं कर सकता है; इसमें एक संकलक शामिल नहीं है, लेकिन बस कुछ कीवर्ड, संरचनाओं को पहचानता है और उपयुक्त HTML प्रतिस्थापन बनाता है। इसका उपयोग करने के लिए धन्यवाद। पाइप का उपयोग करके अब ipython-contrib नोटबुक एक्सटेंशन को स्थापित करना बहुत आसान है।
jfb

9

मिन्क्र द्वारा दिया गया उत्तर (पूर्णता के लिए शामिल) अच्छा है, लेकिन एक और तरीका है जो मुझे और भी पसंद है।

आप पाठ सेल में पहली पंक्ति के रूप में LaTeXलिखकर पूरे सेल को प्रस्तुत कर सकते हैं %%latex। यह उपयोगी है यदि आप

  • अधिक नियंत्रण चाहते हैं,
  • सिर्फ एक गणित वातावरण से अधिक चाहते हैं,
  • या यदि आप एक सेल में बहुत सारे गणित लिखने जा रहे हैं।

minrk का जवाब:


IPython नोटबुक HTML / markdown के अंदर LaTeX रेंडर करने के लिए MathJax का उपयोग करता है । बस अपने LaTeX गणित को अंदर रखें $$

$$c = \sqrt{a^2 + b^2}$$

sqrt

या आप पायथन से लाटेक्स / मैथ आउटपुट प्रदर्शित कर सकते हैं, जैसा कि नोटबुक टूर के अंत में देखा गया है :

from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))

अविभाज्य



3

मैंने इस लेख में Jupyter नोटबुक में LaTeX लिखने का तरीका लिखा

आपको उन्हें डॉलर ($) के संकेतों में संलग्न करना होगा।

  • बाईं ओर संरेखित करने के लिए एक एकल डॉलर ($) का उपयोग करें।

$P(A)=\frac{n(A)}{n(U)}$

  • केंद्र से संरेखित करने के लिए डबल डॉलर ($ $) के संकेतों का उपयोग करें।

$$P(A)=\frac{n(A)}{n(U)}$$

  • का प्रयोग करें \limitsके लिए \lim, \sumऔर \intऊपर और हर चिन्ह की तह तक सीमा को जोड़ने के लिए।

  • लाटेक्स विशेष शब्दों जैसे गणित के प्रतीकों, लैटिन शब्दों, पाठ आदि से बचने के लिए एक बैकस्लैश का उपयोग करें।

यहां छवि विवरण दर्ज करें

इसको आजमाओ।

$$\overline{x}=\frac{\sum \limits _{i=1} ^k f_i x_i}{n} \text{, where } n=\sum \limits _{i=1} ^k f_i  $$
  • मैट्रिसेस

यहां छवि विवरण दर्ज करें

  • टुकड़ा करने का कार्य
$$
\begin{align}
\text{Probability density function:}\\
\begin{cases}
\frac{1}{b-a}&\text{for $x\in[a,b]$}\\
0&\text{otherwise}\\
\end{cases}
\\
\text{Cumulative distribution function:}\\
\begin{cases}
0&\text{for $x<a$}\\
\frac{x-a}{b-a}&\text{for $x\in[a,b)$}\\
1&\text{for $x\ge b$}\\
\end{cases}
\end{align}
$$

उपरोक्त कोड इसे बनाएगा।

यहां छवि विवरण दर्ज करें

यदि आप जानना चाहते हैं कि समीकरणों और संरेखित समीकरणों में नंबरिंग कैसे जोड़ें, तो कृपया विवरण के लिए इस लेख को पढ़ें ।


2

सीधे मार्कडाउन सेल में LaTeX सिंटैक्स का उपयोग करना मेरे लिए काम करता है। मैं जिपिटर 4.4.0 का उपयोग कर रहा हूं।

मुझे %%latexजादू कमांड का उपयोग करने की आवश्यकता नहीं है , मैं जोर देता हूं, बस एक मार्कडाउन सेल:

\begin{align}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\
\nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}

रेंडर करने के लिए:

यहां छवि विवरण दर्ज करें


2
यह वास्तव में इसे करने का सबसे आसान और साफ तरीका है।
वेलिको

1

मैं इस समस्या में किसी दिन कोलाब का उपयोग करके आया था। और मुझे लगता है कि सबसे दर्दनाक तरीका सिर्फ छपाई से पहले इस कोड को चला रहा है। हर चीज तब आकर्षण की तरह काम करती है।

from IPython.display import Math, HTML

def load_mathjax_in_cell_output():
  display(HTML("<script src='https://www.gstatic.com/external_hosted/"
               "mathjax/latest/MathJax.js?config=default'></script>"))
get_ipython().events.register('pre_run_cell', load_mathjax_in_cell_output)
import sympy as sp
sp.init_printing()

परिणाम इस तरह दिखता है:

यहां छवि विवरण दर्ज करें


1

मैं ज्यूपिटर नोटबुक का उपयोग कर रहा हूं। मुझे लिखना था

%%latex
$sin(x)/x$

एक LaTex फ़ॉन्ट प्राप्त करने के लिए।


1
यह तब काम करता है जब आप कोडिंग मोड में होते हैं। यदि आप मार्कडाउन मोड में हैं, तो आप %% लेटेक्स से छुटकारा पा सकते हैं
लाहिरु करुणारत्ने
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.