2010-05-21 16 views
5

में पूर्ण पथ कैसे सक्षम करें मेरे पास ~/my_files/test.tex के तहत एक दस्तावेज़ है और test.tex में कुछ स्टाइलिंग सूचनाएं शामिल करना चाहते हैं, जो ~/latex/शैलियों/info_hypersetup.tex के अंतर्गत पाई जा सकती हैं।लाटेक्स

जब मैं अपने test.tex में निम्नलिखित बयान में शामिल हैं:

%% setting the infos for the pdf 
\include{home/helex/latex/styles/info_hypersetup.tex} 

जब pdflatex test.test चल मैं निम्नलिखित त्रुटि मिलती है:

! I can't write on file `~/latex/styles/info_hypersetup.tex.aux'. 

मैं 777 के अधिकार सेट, लेकिन यह कुछ भी नहीं बदला है। यह काम करता है, अगर मैं निर्देशिका-संरचना में info_hypersetup.tex डालता हूं जहां test.tex है। लेकिन मैं अपने स्टाइल सूचना को अपने सभी दस्तावेजों के लिए वैश्विक सेटिंग के रूप में उपयोग करना चाहता हूं और इसे हर प्रोजेक्ट में कॉपी नहीं करना चाहता हूं।

आपकी मदद के लिए धन्यवाद।

+0

निर्देशिका '~/latex/शैलियों /' लिखने योग्य है? – kennytm

+0

हाय केनीटीएम, हाँ मैंने इसे सुडो chmod -R 777 ~/लेटेक्स के साथ सेट किया है और त्रुटि अभी भी वही है। –

+0

इसे अपने स्थानीय TeXmf पेड़ (~/texmf/tex/latex/local /) में जोड़ें और फिर texhash चलाएं (जैसा कि आप, * नहीं * रूट के रूप में)। फिर आप {info_hypersetup.tex} को शामिल करने में सक्षम होना चाहिए। बीटीडब्लू, मुझे संदेह है कि आप वास्तव में इस फ़ाइल को इनपुट करना चाहते हैं: \ include का अर्थ टाइपसेट के लिए है। (आपके द्वारा उपयोग किए जाने वाले पथ के प्रकार को मना करने के लिए अच्छे सुरक्षा कारण हैं।) –

उत्तर

1

यहाँ मेरी गंदा समाधान है (क्योंकि वहाँ बहुत से लोगों को इनपुट का उपयोग करने के लिए नहीं कहते हैं लेकिन मैं :) पर प्राप्त करना चाहते हैं):

\newcommand{\home}{../..} 
\input{\home/latex/styles/info_hypersetup} 

आप कुछ बेहतर मिल जाए, बस मुझे सूचित करें। Output_any = int int के साथ संकेत texmf.conf काम नहीं किया। मैं उबंटू का उपयोग कर रहा हूँ।

5

~ यूनिक्स में कोई पथ नहीं है, बल्कि यह एक पथ है कि यूनिक्स शैल $ HOME के ​​मूल्य में विस्तारित है।

कुछ संभावित अपनी समस्या को हल करने के लिए तरीके मिल गया है:

  1. परिभाषित एक मैक्रो \homedir जिसका मूल्य आपकी लेटेक्स फ़ाइल में कोडित है अपने घर (का निरपेक्ष पथ होने के लिए यानी, $ की सामग्री होम)। गैर-पोर्टेबल: यदि आप अपनी फ़ाइल को दूसरी मशीन पर ले जाते हैं, तो शायद यह काम नहीं करेगा।
  2. सापेक्ष पथ का उपयोग करें: यह आपका समाधान है। यदि आप फ़ाइलों के उप-निर्देशिकाओं को स्थानांतरित करते हैं, और सावधान हैं कि स्वयं निहित हैं, तो यह अच्छी तरह से काम करता है।
  3. अपनी निर्देशिका शैली बनाएं, thisfilesystem.sty कहें, विभिन्न निर्देशिकाओं के लिए हार्डकोडेड मानों के साथ। इसके बाद आप मशीन के मशीन से इसके मूल्यों को बदल सकते हैं। यह मेकफ़ाइल से स्वचालित रूप से भी बनाया जा सकता है।
  4. echo $HOME चलाने के लिए \write18 का उपयोग करें और इसे \homedir मैक्रो से बांधें। यह पोर्टेबल है, लेकिन मैं इसे सलाह नहीं देता: आपको \write18 से बचने की आदत में जाना चाहिए, क्योंकि यह एक भयानक सुरक्षा छेद है।

मैं # 2 की सिफारिश करता हूं।

0

समस्या: आप जिस पीडीएफ को बना रहे हैं या संकलित कर रहे हैं उसे बंद करना भूल जाते हैं।

समाधान: बस आपको एडोब रीडर या जो भी एप्लिकेशन आप पीडीएफ फ़ाइल पढ़ रहे हैं उसे बंद करें।