उदात्त पाठ 2: कई दस्तावेजों के साथ काम करना, मास्टर फ़ाइल का निर्माण करना


9

मैं वर्तमान में LaTeX के साथ काम कर रहा हूं। मेरे पास कई उप दस्तावेजों में विभाजित एक बड़ा दस्तावेज़ है। जब मैं एक उप-दस्तावेज़ में काम कर रहा होता हूं, तो मुझे ctrl + b दबाने पर मास्टर फ़ाइल संकलित करना पसंद होगा, न कि वह फ़ाइल जो मैं वर्तमान में हूं। मैं यह कैसे करूँ?

जवाबों:


9

मुझे बस खुद ही जवाब मिल गया! जैसा कि यहां बताया गया है , एक को बस %!TEX root = protokoll.tex उप दस्तावेजों की पहली पंक्ति के रूप में रखना है !


मैं वास्तव में इसकी प्रशंसा करता हूँ!!! इस समस्या ने मुझे कुछ समय के लिए उलझन में डाल दिया।
झीगॉन्ग ली

1

यदि आपके पास 3 अलग-अलग फाइलें हैं, तो आपको पहली पंक्ति (या दूसरी अगर आपको utf8 सामान की आवश्यकता है) टिप्पणियों का उपयोग कर सकते हैं। मैं इसका उपयोग बच्चों में से एक से मुख्य TeX फ़ाइल को संकलित करने के लिए करता हूं।

%!../main_file.tex
\documentclass[12pt,a4paper]{scrartcl}

\usepackage[czech,english]{babel}

मेरे पास एक स्क्रिप्ट है, जो पहली पंक्ति में दिखती है:

match=`head -n1 $1 | grep %!`

if [[ $match ]]
    then
        # do stuff with the parent's name, which is ${match:2:100}
    else
        # no match :/
fi

और मेरी कस्टम स्क्रिप्ट पर लक्ष्य करने वाली एक साधारण बिल्ड फ़ाइल:

{
    "cmd": ["/path/to/build/script.sh", "$file"],
    "selector": "whatever"
}

इस तरह, आप अपनी फ़ाइलों में जितने चाहें उतने "संदर्भ" रख सकते हैं। का मान स्विच करें head -n1

के साथ समाप्त करने के लिए, मैं आपके लिए अपनी XeLaTeX स्क्रिप्ट का निर्माण करता हूं;)

#!/bin/bash
file="$1"
flag="-halt-on-error"

match=`head -n1 $file | grep %!`

if [[ $match ]]
    then
        if [ ${match:2:3} = ../ ]
            then
                cd .. &&
                target=${match:5:100}
            else
                target=${match:2:100}
        fi
    else
        target=$file
fi
rubber -c 'set arguments -shell-escape' -f -m xelatex -W all $target

exit 0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.