Spaces:
Running
Running
| # ============================================================ | |
| # install_tinytex_xelatex.sh | |
| # 一键安装 TinyTeX (用户级,无需 sudo) | |
| # 适用于 beamer / fontspec / gemini / cam 海报编译 | |
| # ============================================================ | |
| set -e # 出错立即退出 | |
| WORKDIR=$(pwd) | |
| echo "当前目录: $WORKDIR" | |
| # ------------------------------------------------------------ | |
| # Step 0. 预清理旧残留 | |
| # ------------------------------------------------------------ | |
| echo "🧹 Step 0. 检查并清理旧 TinyTeX 安装或锁文件..." | |
| if [ -d "$HOME/.TinyTeX" ]; then | |
| echo "⚠️ 检测到已有 ~/.TinyTeX 目录,尝试安全删除..." | |
| # 杀掉占用 .nfs 文件的进程 | |
| 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 | |
| # 清除当前目录下可能存在的 texlive 安装残留 | |
| rm -rf texlive install-tl* tinytex.profile 2>/dev/null || true | |
| # ------------------------------------------------------------ | |
| # Step 1. 安装 TinyTeX | |
| # ------------------------------------------------------------ | |
| echo "🚀 Step 1. 安装 TinyTeX 到用户目录 (~/.TinyTeX)..." | |
| wget -qO- "https://yihui.org/tinytex/install-unx.sh" | sh | |
| # ------------------------------------------------------------ | |
| # Step 2. 设置 PATH 环境变量 | |
| # ------------------------------------------------------------ | |
| echo "✅ 安装完成,设置 PATH 环境变量..." | |
| export PATH=$HOME/.TinyTeX/bin/x86_64-linux:$PATH | |
| # 写入 ~/.bashrc 方便以后使用 | |
| 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 | |
| # ------------------------------------------------------------ | |
| # Step 3. 检查 XeLaTeX 是否可用 | |
| # ------------------------------------------------------------ | |
| 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 | |
| # ------------------------------------------------------------ | |
| # Step 4. 安装常用包 | |
| # ------------------------------------------------------------ | |
| 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" | |