2010-03-01 17 views
5

में लॉजिक सबूत टाइप करना मैं लाटेक्स में कुछ बुनियादी तर्क प्रमाण टाइप करने की कोशिश कर रहा हूं। मुझे एक से अधिक कॉलम लेआउट की आवश्यकता है, और मुझे दाईं ओर क्रमांकित लाइनों की आवश्यकता है। मैं प्रत्येक सबूत के लिए संख्या को रीसेट करना चाहता हूं। उत्पादन इस तरह दिखना चाहिए:लाटेक्स

1) (x)¬F  A 

2) (Ex)F 

3) ... 

यह करने के लिए सबसे आसान तरीका क्या है? गणना एक अच्छा विचार प्रतीत नहीं होता है, क्योंकि यह एकाधिक कॉलम चीजों को पसंद नहीं करेगा। मुझे गणित में भी सब कुछ चाहिए।

क्या ऐसा करने का कोई आसान तरीका है?

[संपादित करें] यहां तक ​​कि मैंने अभी तक ऐसा करने में कामयाब रहा है, लेकिन यह सुरुचिपूर्ण से बहुत दूर है।

\begin{minipage}{\linewidth} 
\boldmath \center{$ \forall x \neg F \to \neg \exists x F $} \unboldmath 

\begin{math} 
    \begin{array}{llr} 
    1. &\forall x \neg F & \\ 
    2. &\exists x F & A \\ 
    3. &F[\alpha/x ] & ES 2 \\ 
    4. &\neg F[\alpha/x] & US \\ 
    5. &\exists x F \to F[\alpha/x ] & CP 2,4 \\ 
    6. &\neg \exists x F & TI 4,5 
    \end{array} 
\end{math} 
\end{minipage} 

आदर्श रूप में मैं कुछ है कि स्वचालित रूप से संख्या चरणों चाहते हैं और बाहर बनाता है "शीर्षक" लाइन आसान ...

+0

मिनीपेज चीज इतनी है कि जब मैं इसे मल्टीकॉल में चिपकाता हूं, तो "शीर्षक" सबूत से अलग नहीं होता है। – Seamus

+0

अगर मैं इस प्रश्न को कम करता हूं तो समझाया जाएगा कि इसमें क्या गलत था। इस बात को ध्यान में रखते हुए कि tex.stackexchange.com से पहले पूछा गया था ... – Seamus

उत्तर

6

फिच-स्टाइल सबूत here के लिए पैकेज देखें। आपको बस किसी भी सबप्रूफ की आवश्यकता नहीं है। LaTeX for Logicians में अन्य सबूत शैलियों, तार्किक प्रतीकों, आदि शामिल हैं

+1

+1: Logicians के लिए लेटेक्स एक उत्कृष्ट संसाधन है, बहुत अच्छी तरह से एक साथ रखा। मुझे लगता है कि, हालांकि, एलेक्सी एम का सुझाव इतना संक्षिप्त है कि मैं इस कार्य के लिए किसी अन्य पैकेज के टालने योग्य आयात की तुलना में पसंद करूंगा। –

+0

दोनों लिंक अब टूटा हुआ है। – Ruud

+1

@ रुडवा फिक्स्ड, धन्यवाद! –

0

चेक amsmath पैकेज प्रलेखन के section 3.6

+0

मैं चाहता हूं कि प्रत्येक कॉलम गठबंधन हो, और मैं प्रत्येक सबूत के लिए नंबरिंग रीसेट करने के लिए एक आसान (यानी स्वचालित) तरीका चाहता हूं। – Seamus

0

क्षमा करें, अब \ LaTeX कंपाइलर नहीं है, इसलिए मेरा कोड संकलित नहीं हो सकता है या मूर्खतापूर्ण गलतियां हो सकती हैं। , तब

\newcount\logicproofline 

आप एक आदेश की जरूरत है इसे शुरू करने के:

आप अपने लाइनों के लिए एक नया काउंटर की जरूरत अब

\def\proofline#1{ 
    \global\advance\logicproofline by 1 
    \shoveright{\text{\the\logicproofline}\qquad#1} 
} 

, आप proof को फिर से परिभाषित करने के लिए अपने काउंटर रीसेट करने की आवश्यकता होगी:

\AtBeginDocument{ 
    \let\myoldproof=\proof 
    \def\proof{\myoldproof\logicproofline=0\relax} 
} 

परिभाषा क्योंकि सबूत के साथ संबद्ध नहीं है की जरूरत है कोई काउंटर, इसलिए हम उसे एक मास्टर काउंटर नहीं बना सकते हैं।

4
\newcount\mycount 
\def\nextnum{\global\advance\mycount 1 \the\mycount.} 
\def\logicx#1{\halign{$\nextnum##$\quad \hfil&$##$\hfil 
     &\qquad\hfil##\crcr#1\crcr}\endgroup} 
\def\logic{\begingroup \global\mycount 0 \let\\\cr \logicx} 

\logic{ 
    &\forall x \neg F & \\ 
    &\exists x F & A \\ 
    &F[\alpha/x ] & ES 2 \\ 
    &\neg F[\alpha/x] & US \\ 
    &\exists x F \to F[\alpha/x ] & CP 2,4 \\ 
    &\neg \exists x F & TI 4,5 \\ 
} 
+0

मुझे लगता है कि आपको सबूत की शुरुआत में 'mycount' रीसेट करना चाहिए, प्रत्येक '\ logic' पर नहीं। – Vlad

+2

@Vlad: Alexey's '\ logiC# 1' एक बार में एक संपूर्ण सबूत टाइप करता है। –

+0

@ चार्ल्स: आमतौर पर एक सबूत में कुछ और शब्द होते हैं, केवल गणना नहीं। कुछ ऐसा: "मान लें x> 0. y = | x | + 1 डालकर, हमें मिल गया है: (समीकरणों की सूची)। मामले के लिए x <0, (एक और सूची)। केस x = 0 स्पष्ट है।" इस तरह के सबूत के लिए, समीकरण संख्या इसके बीच में रीसेट हो जाएगी। – Vlad