2009-08-21 11 views
7

मैं \todonotes पैकेज से \todo कमांड का उपयोग करता हूं। मैं अपने स्रोत लेआउट करने के लिए पिछले पैराग्राफ से अलग \todos शामिल करना चाहते हैं:लाटेक्स: नए पैराग्राफ से बचें?

Some text. 

\todo{make note} 

लेकिन मैं एक नया पैरा शुरू करने के लिए \todo नहीं करना चाहती है, या यह दस्तावेज़ के अंतर ऊपर शिकंजा।

क्या इससे बचने के लिए कोई आदेश है?

यदि व्हाइटसाइट का उपभोग करने के लिए कोई कमांड/पैकेज था, तो मैं इसका उपयोग करने के लिए \todo को फिर से परिभाषित कर सकता था।

संपादित करें: सबकुछ के बीच% जोड़ना स्पष्ट रूप से बहुत परेशान है। और कुछ?

+1

कम से कम परेशान समाधान प्रति '\ todo' प्रति एक वर्ण नहीं जोड़ रहा है जिसे हम प्राप्त कर सकते हैं? – voyager

+0

Voyager: नहीं, मैं कोई अक्षर जोड़ना नहीं चाहता। सबसे अच्छा हम कर सकते हैं कि एक कमांड (कहें \ उपभोग करें) जो कि व्हाईटस्पेस का उपभोग करता है, ताकि मैं \ उपभोग करने के लिए \ ndo को फिर से परिभाषित कर सकूं। –

+1

अंतिम क्षैतिज स्थान को हटाने के लिए \ unskip है, लेकिन अनुच्छेद विभाजक एक पूरी तरह से अलग कहानी है। –

उत्तर

9

मुझे हर किसी के साथ सहमत होना है कि आपको शायद % जोड़ना चाहिए, लेकिन मुझे यह प्रश्न पूर्णांक मिल गया है आराम कर रहा। समस्या यह है कि जैसे ही लाटेक्स खाली रेखा पढ़ता है, इसे \par कमांड में परिवर्तित कर दिया जाता है, जो पिछले पैराग्राफ को समाप्त करता है। \todo की शुरुआत में, \par कमांड पहले से ही निष्पादित कर दिया गया है, और इसे पूर्ववत करना असंभव है (मुझे लगता है)। तो आपकी एकमात्र उम्मीद है कि \par डालने से या सामान्य रूप से व्यवहार करने से इसे रखना है। यदि आप इसे डालने से रोकना चाहते हैं, तो आप "द टेक्सबुक" के अध्याय 8 को पढ़ने का प्रयास कर सकते हैं, जो आपको बताएगा कि खाली रेखा को \par में कैसे परिवर्तित किया गया है। वैकल्पिक रूप से, आप निम्न प्रकार के विचारों के आधार पर समाधान बनाने का प्रयास कर सकते हैं:

 
Some text.{\let\par\relax 

\todo{make note}} 

लेकिन देखो! आप निश्चित रूप से वैश्विक स्तर पर\par के व्यवहार को बदलना नहीं चाहते हैं, यही कारण है कि मैंने घुंघराले ब्रेसिज़ की अतिरिक्त जोड़ी जोड़ दी है (लाटेक्स कमांड स्कॉप्ड हैं, इसलिए \par की नई परिभाषा केवल उस समूह के भीतर प्रभावी होती है जहां परिभाषा बनाई गई थी)। सौभाग्य।

+0

मुझे लगता है कि यह एक सही जवाब है जैसा कि मैं प्राप्त कर सकता हूं। –

4

इस प्रयास करें:

 
Some text. 
% 
\todo{make note} 
+0

सब कुछ के बीच एक% जोड़ना स्पष्ट रूप से बहुत परेशान है। और कुछ? –

+0

@ पॉल बिगगर स्पष्ट रूप से, आप और मेरे पास अलग सहनशीलताएं हैं। ;-) –

+1

@Sinan Ünür: ठीक है, मुझे इसे हर जगह करना है। यही कारण है कि मैंने व्हाइटस्पेस का उपभोग करने के लिए एक आदेश मांगा। –

2

कैसे के बारे में

Some text. 
% 
\todo{make note} 
% 
some more text 
+0

सब कुछ के बीच एक% जोड़ना स्पष्ट रूप से बहुत परेशान है। और कुछ? –

+1

मेरे साथ कुछ गड़बड़ होना चाहिए क्योंकि मैं 1 99 3 से ऐसा कर रहा हूं जब भी मैं पैराग्राफ बनाने के बिना पैराग्राफ के मध्य में कुछ जगह छोड़ना चाहता था। मुझे यह आश्चर्य करने के लिए प्रेरित नहीं किया गया कि क्या ऐसा करने का कोई और तरीका है। –

+1

@Sinan Ünür: स्पष्ट रूप से, आपको विलंब करने के लिए एक महत्वपूर्ण परियोजना की कमी थी;) –

2

हो सकता है आप पाठ और कार्य करने की टिप्पणी या के बीच नई लाइन छोड़ नहीं करना चाहिए सिर्फ टिप्पणी यह ​​

Some text. 
% 
\todo{make note} 
+0

सबकुछ के बीच% जोड़ना स्पष्ट रूप से बहुत परेशान है। और कुछ? –

+0

यह सुनिश्चित नहीं है कि यह काम करेगा, लेकिन यदि आप टेक्स्ट और नोट के बीच नई लाइन छोड़ना चाहते हैं तो आप todo कमांड \ b \ todo {make note} – stefita

+1

के सामने बैकस्पेस वर्ण जोड़ने का प्रयास कर सकते हैं बस रिक्त रेखा को पूरी तरह से छोड़ दें?लेटेक्स के लिए एक नया पैराग्राफ शुरू करने का एकमात्र तरीका एक खाली रेखा – Martijn

0

बस अपने टेक्स्ट के मध्य में अपने \ todo सही शामिल करें। कोई लाइन ब्रेक नहीं, कुछ भी नहीं।

ब्ला ब्ला ब्लाह टेक्स्ट \ todo {इसे अभी करें!} अधिक टेक्स्ट ब्ला ब्ला ब्लाह।

मेरे कंप्यूटर पर (xp, miktex 2.7, texniccenter जीतें) यह काम ठीक है, कोई लाइन ब्रेक नहीं बनाता है, और मार्जिन में टोडो नोट डालता है। । ।

+2

मुझे लगता है कि मूल प्रश्नकर्ता वास्तव में ** स्रोत ** में '\ todo' दृष्टि से विशिष्ट बनाना चाहता है। –

+0

टूडो पैकेज के विनिर्देशक के साथ, जैसे \ todo [inline] {text करने के लिए} यह मार्जिन में पाठ को जोड़ने वाली रेखा के साथ जोड़ता है ... यदि आप [इनलाइन] विकल्प का उपयोग करेंगे तो यह ले जाएगा पूरी लाइन और डिफ़ॉल्ट रूप से पृष्ठभूमि रंग नारंगी में डाल दिया। – Mica

2

खाली लाइनों को बनाने के लिए \endlinechar=-1 सेट करें। पैराग्राफ को अलग करने के लिए आपको \par का उपयोग करने की आवश्यकता होगी, जो मुझे लगता है कि विभाजक लाइनों पर % टाइप करने की तुलना में एक बड़ी जलन है, लेकिन यही वह है जिसे आप पूछ रहे हैं।

+0

मैं वास्तव में क्या पूछ रहा हूं वह कहने की क्षमता है "आखिरी खाली रेखा का कोई प्रभाव नहीं पड़ा। लेकिन बहुत रोचक, धन्यवाद। –

+0

मुझे नहीं लगता कि यह आसान होगा। जब टीएक्स पहले से ही आखिरी खाली रेखा ले चुका है अनुच्छेद विभाजक के रूप में, इसने पिछले अनुच्छेद को अंतिम रूप दिया है और इसे पृष्ठ के लिए बक्से की सूची में जोड़ा है, और संभवतः यह तय किया है कि पृष्ठ पूर्ण था और पृष्ठ के लिए आउटपुट दिनचर्या कहा जाता है। मुझे यह कहने में संकोच नहीं है कि यह पूर्ववत करना असंभव है टेक्स विज़ार्ड कर सकते हैं कि चाल के अनुरोध का अनुरोध किया, लेकिन मुझे लगता है कि आपको इस के साथ मदद करने के लिए TeX से घनिष्ठ परिचित किसी को ढूंढना होगा। –

1

\\ टैग के अंदर अभी भी काम करने के लिए बाकी सब कुछ रखने के बारे में कैसे, और फिर इसे हटाने और दस्तावेज़ में उचित स्थानांतरित करने के लिए जब कोई और काम नहीं है?

उदा।

\def \par1 
{ 
It was the best of times, it was the 
} 

\def \par2000 
{ 
"Repression is the only lasting philosophy. The dark deference of fear and slavery, my friend," observed the Marquis 
} 

\def \paridunno 
{ 
The end 
} 

दो शहरों की कथा, चार्ल्स डिकेंस

\par1 
\todo{write a whole bunch of pages} 
\par2000 
\todo{Visit ghost of Christmas future, copy pages from finished book} 
\paridunno 
\todo{Think of a better ending} 

तुम दोनों स्रोत में एक \ listoftodos सचमुच देने के अतिरिक्त लाभ है कि, और

उत्पादन में

द्वारा।

6

जब मैक्रो अवांछित स्थान से पहले होता है, तो यदि आप \ @ifnextchar और \ @gobble का उपयोग करते हैं तो% आवश्यक नहीं है। ,

\makeatletter 
\let\oldtodo\todo 
\renewcommand\todo[1]{% 
\oldtodo{#1}% 
\@ifnextchar\par{\@gobble}{}} 
\makeatother 

इस तरह यदि आप कुछ की तरह है::

की तरह कुछ (प्रस्तावना में, निश्चित रूप से) पर विचार करें

\todo{Stuff} 

Things 

यह

\todo{Stuff} 
% 
Things 
के रूप में ही कार्य करेगा

या

\todo{Stuff} 
Things 

आप की तरह

\makeatletter 
\newcommand\gobblepars{% 
    \@ifnextchar\par% 
     {\expandafter\gobblepars\@gobble}% 
     {}} 
\makeatother 

एक मैक्रो के साथ ऐसी बातें सामान्यीकरण कर सकते हैं तब आप \gobblepars उपयोग कर सकते हैं भी आप अंतरिक्ष खाने के लिए (कार्य करने के बाद) की तरह चाहते हैं। आप इसके बाद \gobblepars स्वचालित रूप से रखने के लिए टोडो (ऊपर दिखाए गए अनुसार) को फिर से परिभाषित भी कर सकते हैं।

को खाली स्थान को संभालने के लिए। आप \gobblepars भी उपयोग कर सकते हैं, लेकिन आपको स्पष्ट होना चाहिए। उदाहरण के लिए:

Some text\gobblepars 

\todo{Stuff} 

दो पंक्तियों के बीच दिखाए जाने से एक \ par नहीं कर पाएगा।