ฉันกำลังทำงานกับ LaTeX ฉันมีเอกสารขนาดใหญ่แยกเป็นหลายเอกสารย่อย เมื่อฉันทำงานในเอกสารย่อยฉันชอบที่จะรวบรวมไฟล์ต้นแบบเมื่อกด ctrl + b ไม่ใช่ไฟล์ที่ฉันอยู่ในปัจจุบันฉันจะทำอย่างไร
ฉันกำลังทำงานกับ LaTeX ฉันมีเอกสารขนาดใหญ่แยกเป็นหลายเอกสารย่อย เมื่อฉันทำงานในเอกสารย่อยฉันชอบที่จะรวบรวมไฟล์ต้นแบบเมื่อกด ctrl + b ไม่ใช่ไฟล์ที่ฉันอยู่ในปัจจุบันฉันจะทำอย่างไร
คำตอบ:
หากคุณมี 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