মহামান্য পাঠ 2: একাধিক নথি, বিল্ডিং মাস্টার ফাইলের সাথে কাজ করা


9

আমি বর্তমানে লটেক্সের সাথে কাজ করছি। আমার বেশ কয়েকটি সাব ডকুমেন্টে একটি বড় ডকুমেন্ট বিভক্ত হয়েছে। আমি যখন একটি সাব ডকুমেন্টে কাজ করছি, আমি সিটিআরএল + বি টিপানোর সময় মাস্টার ফাইলটি संकलित করতে পছন্দ করব, আমি বর্তমানে যে ফাইলটি করছি তা নয়। আমি কীভাবে এটি করব?

উত্তর:


9

আমি নিজেই উত্তরটি খুঁজে পেয়েছি! এখানে যেমন উল্লেখ করা হয়েছে , কেবলমাত্র %!TEX root = protokoll.tex সাব ডকুমেন্টগুলির প্রথম লাইন হিসাবে লিখতে হবে!


আমি সত্যিই এটার প্রশংসা করছি!!! এই সমস্যাটি আমাকে কিছু সময়ের জন্য বিভ্রান্ত করেছে।
Zhigong লি

1

আপনার যদি 3 টি পৃথক ফাইলের প্রয়োজন হয় তবে আপনি প্রথম-লাইনের (বা দ্বিতীয়টি আপনাকে utf8 স্টাফের প্রয়োজন হলে) মন্তব্যগুলি ব্যবহার করতে পারেন। আমি এটি শিশুদের মধ্যে একটির থেকে মূল টেক্স ফাইলটি সংকলন করতে ব্যবহার করি।

%!../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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.