ข้อความประเสริฐ 2: การทำงานกับเอกสารหลายฉบับสร้างไฟล์หลัก


9

ฉันกำลังทำงานกับ LaTeX ฉันมีเอกสารขนาดใหญ่แยกเป็นหลายเอกสารย่อย เมื่อฉันทำงานในเอกสารย่อยฉันชอบที่จะรวบรวมไฟล์ต้นแบบเมื่อกด ctrl + b ไม่ใช่ไฟล์ที่ฉันอยู่ในปัจจุบันฉันจะทำอย่างไร

คำตอบ:


9

ฉันเพิ่งพบคำตอบด้วยตัวเอง! ดังที่กล่าวไว้ที่นี่เพียงแค่ใส่ %!TEX root = protokoll.tex บรรทัดแรกของเอกสารย่อย!


ฉันซาบซึ้งจริงๆ !!! ปัญหานี้ทำให้ฉันสับสนไปซักพัก
Zhigong Li

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.