我如何更新 TikZ/PGF?

我如何更新 TikZ/PGF?

我正在搜索一个可以执行以下操作的脚本。

  1. 删除本地 texmf 树中的所有旧 PGF/TikZ 文件
  2. 在我的 csv 存储库的本地 texmf 树中安装所有新的 PGF/TikZ:
    PGF 和 TikZ -- TeX 的图形系统 --cvs
  3. 根据新文件创建新的用户手册(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.

我个人只使用genericlatex

无需 CVS 即可在此处获取文件源码然后点击下载 GNU tarball。您将获得 pgf-pgf.tar.gz,解压并手动安装文件夹。

要删除,可以手动删除文件夹“pgf”。我个人会压缩 ( .zip) 文件夹,然后删除未压缩的文件夹。如果我对新版本有问题,我会解压档案 ( .zip)

对于 CVS 版本的手册:

  1. 我通过 CVS 获取源代码(在目录 ~/pgf 中)。我按照以下步骤进行:

    cd ~
    cvs -z3 -d:pserver:[email protected]:/cvsroot/pgf co -P pgf
    
  2. pgfmanual然后对于pdftex

    cd ~/pgf/doc/generic/pgf/version-for-pdftex/en
    
  3. 如果此文件夹不存在,则创建文件夹“plots”。

    mkdir plots
    
  4. 第一次编译:

    TEXINPUTS=".:~/pgf//:" make
    
  5. 然后使用以下命令进行多次编译:

    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,
    }
    
  6. 现在您可以pgfmathtestsuite.pdf通过以下方式创建:

    cd ~/pgf/generic/pgf/testsuite/mathtest
    pdflatex pgfmathtestsuite.tex
    
  7. 最后,您可以通过以下方式创建存档 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

altermundus.com

答案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
################################################################

相关内容