我正在搜索一个可以执行以下操作的脚本。
- 删除本地 texmf 树中的所有旧 PGF/TikZ 文件
- 在我的 csv 存储库的本地 texmf 树中安装所有新的 PGF/TikZ:
PGF 和 TikZ -- TeX 的图形系统 --cvs - 根据新文件创建新的用户手册(csv 版本提供了
Makefile
)
我没有最喜欢的语言。
最好的方法是使用适用于 Unix / Mac / Windows 平台的脚本 — — 类似于biber
,我使用的是 Unix。
我在这里问这个问题是因为它主要与 PGF/TikZ 有关。
答案1
这不是一个脚本,但我在 OS X 上使用的方法在 Linux 上也是可行的
我把版本 CVS 放在我家了。你有一个 PGF 文件夹
inside /tex/generic
inside /tex/latex
inside /tex/context
inside /tex/plain.
我个人只使用generic
和latex
。
无需 CVS 即可在此处获取文件源码然后点击下载 GNU tarball。您将获得 pgf-pgf.tar.gz,解压并手动安装文件夹。
要删除,可以手动删除文件夹“pgf”。我个人会压缩 ( .zip
) 文件夹,然后删除未压缩的文件夹。如果我对新版本有问题,我会解压档案 ( .zip
)
对于 CVS 版本的手册:
我通过 CVS 获取源代码(在目录 ~/pgf 中)。我按照以下步骤进行:
cd ~ cvs -z3 -d:pserver:[email protected]:/cvsroot/pgf co -P pgf
pgfmanual
然后对于pdftex
cd ~/pgf/doc/generic/pgf/version-for-pdftex/en
如果此文件夹不存在,则创建文件夹“plots”。
mkdir plots
第一次编译:
TEXINPUTS=".:~/pgf//:" make
然后使用以下命令进行多次编译:
TEXINPUTS=".:~/pgf//:" make dist
(您需要查看链接是否正确。makefile 使用好的 texmf.cnf。)
链接颜色已被 PGF 团队的一名成员禁用(可能是个人喜好问题):您需要colorlinks=true
在下一个文件中写入pgfmanual-en-main.tex
:
Christian Feuersänger 的评论\usepackage{hyperref} \hypersetup{% colorlinks=false, % use true to enable colors below: linkcolor=blue,%red, filecolor=blue,%magenta, pagecolor=blue,%red, urlcolor=blue,%cyan, citecolor=blue, pdfborder=0 0 0, }
现在您可以
pgfmathtestsuite.pdf
通过以下方式创建:cd ~/pgf/generic/pgf/testsuite/mathtest pdflatex pgfmathtestsuite.tex
最后,您可以通过以下方式创建存档 TDS:
cd ~; make -f pgf/scripts/pgf/Makefile.pgf_release
您将获得三个文件:
~/pgf_2.10-CVS.ChangeLog ~/pgf_2.10-CVS.pdf ~/pgf_2.10-CVS.tds.zip
备注1
使用这种方法,您不需要有关图表的部分。要获取此部分,您需要使用LuaLaTeX
,但有时会出现一些问题。上次(15 天)无法获取整个手册。我获得了一部分pdflatex
和另一部分LuaLaTeX
。您需要检查文件pgfmanual-en-main.tex
以查看需要制作的内容。
备注2
我把 25-04-2012 版本的文件放在我的网站上 +pgfmanual
答案2
我尝试编写一个 shell 脚本来完成这个任务。但是要使用此脚本,您必须安装 CVS。
请自行承担风险测试该文件。
#!/bin/bash
# small script to download // install the cvs version of pgf
# I hereby relicense under the GPL (version 3 or later).
# Author: Marco Daniel
# Year: 2012
################################################################
# Declare variables
################################################################
## Name settings
TEMPFOLDER=temppgftempinstall
TEMPDIR=$HOME/Desktop
## Color settings
RED=$(tput setaf 1) # red
GREEN=$(tput setaf 2) # blue
BLUE=$(tput setaf 4) # blue
WHITE=$(tput setaf 7)
## Flag settings
DOCUMENTATION=false
COLORLINKS=false
HELP=false
QUIET=false
REMOVE=false
################################################################
# Options
################################################################
# Loop until we run out of arguments.
while [ "$#" -gt 0 ]
do
case "$1" in
-d | --documenation )
shift
DOCUMENTATION=true
;;
-c | --colorlinks )
shift
COLORLINKS=true
DOCUMENTATION=true
;;
-h | --help )
shift
HELP=true
;;
-q | --quite )
shift
QUIET=true
;;
-r | --remove )
shift
REMOVE=true
;;
*)
echo "Unknown argument '$1'" >&2
;;
esac
# Delete $1 argument, set $1=$2, $2=$3, ...
shift
done
################################################################
# Help
################################################################
if [ "$HELP" == "false" ]
then
:
else
echo -e "\n${BLUE}Script to install TikZ/PGF to local texmf folder$WHITE"
echo -e "${BLUE}Script by Marco Daniel$WHITE"
echo -e "\n${GREEN}Option\t\tExplanation"
echo -e "--------------------------------------------------"
echo -e "${GREEN}-d\t\tcreate documenation"
echo -e "${GREEN}-c\t\tuse colorlinks in documenation"
echo -e "${GREEN}-h\t\tprint help"
echo -e "${GREEN}-q\t\tquiet compilation"
echo -e "${GREEN}-r\t\tremove temp folder"
echo -e "--------------------------------------------------"
echo -e "\n${RED}Note:\t\tThe compilation of the manual"
echo -e "\t\ttake some time${WHITE}"
exit 0
fi
################################################################
# Starting script
################################################################
echo -e "${BLUE}Update pgf in texmflocal$WHITE\n"
################################################################
# create temp folder and cvs-download
################################################################
## create new folder in $HOME to download the files
cd $TEMPDIR # go to temp dir
rm -r -f $TEMPFOLDER # remove older file (if exits)
mkdir $TEMPDIR/$TEMPFOLDER && cd $_ # create new folder and go to
## CVS-Settings
## login to cvs-server of pgf
echo -e "${GREEN}Password -- press return $RED"
cvs -d:pserver:[email protected]:/cvsroot/pgf login
## download developing branch
echo -e "\n${GREEN}Download pgf in $TEMPFOLDER"
cvs -z3 -d:pserver:[email protected]:/cvsroot/pgf -Q checkout -P pgf
## remove unnecessary folders CVS
echo -e "\n${RED}remove unnecessary folders CVS"
find * -name CVS | xargs rm -r -f
echo -e "${GREEN}Done"
################################################################
# Provide TDS-Structure of the downloaded files
################################################################
# provide TDS-Structure
echo -e "\n${RED}create TDS structure"
cd $TEMPDIR/$TEMPFOLDER/pgf
mkdir tex
FOLDERLIST=(context generic incoming latex plain)
for i in "${FOLDERLIST[@]}"
do
cp -a $i tex
rm -r -f $i
done
echo -e "${GREEN}Done"
################################################################
# Go to TEXMFHOME
################################################################
echo -e "\n${RED}Your local texmf path is"
PATHTEXHOME=$(kpsewhich --var-value TEXMFHOME)
echo $GREEN$PATHTEXHOME$WHITE
## test if TEXMFHOME exists
if [ -d "$PATHTEXHOME" ]
then
:
else
echo -e "${RED}$PATHTEXHOME directory doesn't exist!"
echo -e "create"
mkdir $PATHTEXHOME
fi
cd $PATHTEXHOME
################################################################
# Remove older versions and copy the new one
################################################################
## removing
echo -e "${RED}remove older version of pgf in texmf local"
find * -name pgf | xargs rm -r -f
echo -e "${GREEN}Done"
## install files in local texmftree
echo -e "\n${RED}Install to local texmf tree"
echo -e "${RED}Install new files"
cd $TEMPDIR/$TEMPFOLDER/pgf
cp -a tex $PATHTEXHOME
cp -a doc $PATHTEXHOME
echo -e "${GREEN}Done"
################################################################
# Documenation
################################################################
if [ "$DOCUMENTATION" == "false" ]
then
echo -e "\n${GREEN}Create no documenation$WHITE"
else
echo -e "\n${RED}Create documenation -- this take a while$WHITE"
if [ "$COLORLINKS" == "true" ]
then
echo -e "\n${RED}Using colorlinks option -- replace command$WHITE"
cd $TEMPDIR/$TEMPFOLDER/pgf/doc/generic/pgf/text-en
sed -rie "s/(colorlinks=false)/colorlinks=true/" pgfmanual-en-main.tex
fi
cd $TEMPDIR/$TEMPFOLDER/pgf/doc/generic/pgf/version-for-pdftex/en
mkdir plots
TEXINPUTS=".:~/pgf//:" make
TEXINPUTS=".:~/pgf//:" make dist
TEXINPUTS=".:~/pgf//:" make dist
TEXINPUTS=".:~/pgf//:" make dist
cp pgfmanual.pdf $PATHTEXHOME/doc/generic/pgf/
echo -e "\n${GREEN}DONE"
fi
################################################################
# Remove temp folder
################################################################
if [ "$REMOVE" == "true" ]
then
cd $TEMPDIR # go to temp dir
rm -r -f $TEMPFOLDER # remove older file (if exits)
fi
echo -e "\n${BLUE}COMPLETE ${WHITE}"
################################################################
# End
################################################################
exit 0
################################################################
# End
################################################################