有没有可用于在 LaTeX 中制作政治地图的软件包?例如世界地图或欧洲地图?
答案1
该pst-geo
包可以处理 CIS 世界数据。它需要序列latex->dvips->ps2df
,因为数据是在 PostScript 级别读取的。
\documentclass{article}
\usepackage{pst-map3d}
\definecolor{graygreen}{cmyk}{0.7,0,0.6,0.2}
\definecolor{BlueDark}{cmyk}{1,1,0,0.5}
\pagestyle{empty}
\begin{document}
\begin{pspicture*}(-0.5\linewidth,-0.45\textheight)(0.5\linewidth,0.5\textheight)
\psset{PHI=45,THETA=5,unit=7.5,
path=Links/texmf-local-generic/pst-geo/data}
\WorldMapThreeD[lakes=false,circlesep=0.25,lakes=false,gridmap=false,
mapcolor=graygreen!50,bordercolor=red,rivers=false,
coasts=false,islandcolor=blue]%
\WorldMapThreeD[gridmapcolor=yellow,circles=false,lakes,gridmapdiv=5,france,
islandcolor=blue,blueEarth=false,
bordercolor=red,islands=false,borders=false,rivers,coasts,
coastcolor=blue]%
\psmeridien{2.32} \psparallel{48.85}
\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow!50,framesep=0,
linestyle=none,opacity=0.5}
\input{villesFrance3d}
\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=red!50,
framesep=0,linestyle=none,opacity=0.5}
\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=yellow!50,linecolor=red}
\psset{nodeWidth=0.025\psunit,linecolor=red}
\pnodeMapIIID(10.51667,43.85){Lucques}
\pscircle[fillstyle=solid,fillcolor=green](Lucques){0.025\psunit}
\psdot[dotsize=0.025\psunit](Lucques)
\uput[u](Lucques){\psframebox[fillstyle=solid,fillcolor=yellow!50,framesep=0,
linestyle=none,opacity=0.5]{\textsf{Lucques}}}
\input{capitales3d}
\psepicenter[circlecolor=red,waves=16,Rmax=2000](0.3333,46.5833){Poitiers}
\end{pspicture*}
\end{document}
答案2
该代码的作者是Paul Gaborit(fctt)
\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcommand\grilleimage[1]{
\foreach \x in {0,0.1,...,1.01}{
\path (#1.south west) -- (#1.north west) coordinate[pos=\x] (x);
\draw[gray]
(#1.south west |- x) ++(-.1,0)
node[left]{\pgfmathprintnumber{\x}} -- (#1.south east |- x);
\path (#1.south west) -- (#1.south east) coordinate[pos=\x] (x);
\draw[gray]
(#1.south west -| x) ++(0,-.1)
node[rotate=90,left]{\pgfmathprintnumber{\x}} -- (#1.north west -| x);
}
}
\newcommand\defpt[4]{
\path (#1.south west) -- (#1.south east) coordinate[pos=#2] (x);
\path (#1.south west) -- (#1.north west) coordinate[pos=#3] (y);
\coordinate (#4) at (x |- y);
}
\begin{tikzpicture}
\node[inner sep=0cm] (image) {\includegraphics[width=10cm]{eu}};
\grilleimage{image}
\defpt{image}{0.5}{0.5}{milieu}
\defpt{image}{0.75}{0}{trois quart bas}
\fill[red] (milieu) circle[radius=2pt];
\fill[red] (trois quart bas) circle[radius=2pt];
\end{tikzpicture}
\end{document}
答案3
Inkscape 可以将 svg 文件(例如地图,可能经过修改)转换为 LaTeX,方法是使用一个特定选项进行保存。(通过滚动“另存为”菜单列表很容易找到)这种方法使用 postscript 并需要 pstricks 来编译生成的文件,最好使用命令行选项:pdflatex -shell-escape。
还有一个 python 脚本 svg2tikz,据说可以将 svg 文件转换为 TikZ 代码,但使用它似乎需要更多技能。
也可以看看:
http://mirrors.linsrv.net/tex-archive/info/svg-inkscape/InkscapePDFLaTeX.pdf
答案4
通常,您会从外部源导入地图,因为在 Tikz 中绘制“复杂”的地图需要太多工作。一种选择是使用 Inkscape 等对其进行预处理。
确实还有另一种创建高质量地理地图的选择,那就是使用 ncl 或 PyNgl。此功能:
- 允许使用所有类型的投影来最大程度地灵活地绘制地图。
- 该产品是矢量文件(eps)
- ncl 和 Pyngl 都是开源的
- 它不仅可以创建地图,而且还可以对数据进行实际预处理和后处理,并将其包含在最终的图形中。
- 这里有大量文档以及示例库,您可以从中获得灵感。
我已尝试将其上传到我的云提供商。看看你是否可以下载它。 https://mybox.cyi.ac.cy/public.php?service=files&t=28e78d6a1c6e1eea8233b226d6003b29
ncl画廊:https://www.ncl.ucar.edu/Applications/
PyNgl 画廊:https://www.pyngl.ucar.edu/Examples/gallery.shtml
亲切的问候,
马可