|
|
#!/usr/bin/env bash |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set -e |
|
|
WORKDIR=$(pwd) |
|
|
echo "当前目录: $WORKDIR" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "🧹 Step 0. 检查并清理旧 TinyTeX 安装或锁文件..." |
|
|
if [ -d "$HOME/.TinyTeX" ]; then |
|
|
echo "⚠️ 检测到已有 ~/.TinyTeX 目录,尝试安全删除..." |
|
|
|
|
|
PIDS=$(lsof +D "$HOME/.TinyTeX" 2>/dev/null | awk 'NR>1 {print $2}' | sort -u) |
|
|
if [ -n "$PIDS" ]; then |
|
|
echo "🔪 结束占用进程: $PIDS" |
|
|
kill -9 $PIDS 2>/dev/null || true |
|
|
fi |
|
|
|
|
|
rm -rf "$HOME/.TinyTeX" 2>/dev/null || true |
|
|
fi |
|
|
|
|
|
|
|
|
rm -rf texlive install-tl* tinytex.profile 2>/dev/null || true |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "🚀 Step 1. 安装 TinyTeX 到用户目录 (~/.TinyTeX)..." |
|
|
wget -qO- "https://yihui.org/tinytex/install-unx.sh" | sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "✅ 安装完成,设置 PATH 环境变量..." |
|
|
export PATH=$HOME/.TinyTeX/bin/x86_64-linux:$PATH |
|
|
|
|
|
|
|
|
if ! grep -q ".TinyTeX/bin/x86_64-linux" ~/.bashrc; then |
|
|
echo 'export PATH=$HOME/.TinyTeX/bin/x86_64-linux:$PATH' >> ~/.bashrc |
|
|
echo "📝 已自动将 TinyTeX 路径写入 ~/.bashrc" |
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "🧩 Step 2. 检查 XeLaTeX 版本..." |
|
|
if ! command -v xelatex >/dev/null 2>&1; then |
|
|
echo "❌ XeLaTeX 未找到,安装可能失败,请检查 ~/.TinyTeX/bin 是否存在。" |
|
|
exit 1 |
|
|
else |
|
|
xelatex --version | head -n 2 |
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "📦 Step 3. 安装必要的 LaTeX 包 (无 sudo)..." |
|
|
tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet |
|
|
tlmgr update --self --all --reinstall-forcibly-removed |
|
|
tlmgr install \ |
|
|
beamer beamerposter fontspec xcolor pgfplots anyfontsize type1cm \ |
|
|
ragged2e changepage geometry booktabs natbib tikz fp |
|
|
|
|
|
echo "✅ 所有包已安装。TinyTeX 可正常用于 XeLaTeX 海报编译。" |
|
|
echo "👉 现在你可以运行:" |
|
|
echo " xelatex poster_output.tex" |
|
|
|