我看到了问题如何翻译 tikz 日历名称?我尝试用以下代码制作波斯语日历:
\documentclass{standalone}
\usepackage[farsi]{babel}
\usepackage[farsi]{translator}
\usepackage{tikz}
\usetikzlibrary{calendar}
\begin{document}
\sffamily\scriptsize
\tikz
\calendar [dates=2000-01-01 to 2000-12-31,
month list,month label left,month yshift=1.25em]
if (Sunday) [black!50];
\end{document}
喜欢那个问题,但它显示以下错误:!LaTeX 错误:LAE' unknown. ! LaTeX Error: Command \alefhamza unavailable in encoding OT1. ! LaTeX Error: Unknown option
包translator'. ! LaTeX Error: Font family
LAE+cmss 的编码方案 farsi' 未知。
我能做什么?坦克
答案1
我不认识波斯语,但我的其中一种语言不受该软件包的开箱即用支持translator
。很遗憾calendar
不能直接使用 Babel,因为语言定义文件包括月份名称,并且可用于更多种类的语言。但编写自己的语言并不困难。
您需要找到translator-months-dictionary-English.dict
它并将其复制到您的工作目录中translator-months-dictionary-Farsi.dict
。在 Linux 上,对于威尔士语,您可以使用
cp $(kpsewhich translator-months-dictionary-English.dict) ./translator-months-dictionary-Welsh.dict
只需使用您通常使用的任何方法来查找、复制和重命名文件即可。该.dict
文件现在是其中的一部分translator
,不再是 Beamer 的一部分,而是一个独立的软件包。
在文本编辑器中打开重命名的文件,将威尔士语单词和缩写替换为英语的波斯语翻译。将Welsh
顶部的单词更改为Farsi
。
\ProvidesDictionary{translator-months-dictionary}{Welsh}
\providetranslation{January}{Ionawr}
\providetranslation{February}{Chwefror}
\providetranslation{March}{Mawrth}
\providetranslation{April}{Ebrill}
\providetranslation{May}{Mai}
\providetranslation{June}{Mehefin}
\providetranslation{July}{Gorffennaf}
\providetranslation{August}{Awst}
\providetranslation{September}{Medi}
\providetranslation{October}{Hydref}
\providetranslation{November}{Tachwedd}
\providetranslation{December}{Rhagfyr}
\providetranslation{Jan}{Ion}
\providetranslation{Feb}{Chwe}
\providetranslation{Mar}{Maw}
\providetranslation{Apr}{Ebr}
\providetranslation{May}{Mai}
\providetranslation{Jun}{Meh}
\providetranslation{Jul}{Gorff}
\providetranslation{Aug}{Awst}
\providetranslation{Sep}{Medi}
\providetranslation{Oct}{Hyd}
\providetranslation{Nov}{Tach}
\providetranslation{Dec}{Rhag}
\providetranslation{Monday}{Llun}
\providetranslation{Tuesday}{Mawrth}
\providetranslation{Wednesday}{Mercher}
\providetranslation{Thursday}{Iau}
\providetranslation{Friday}{Gwener}
\providetranslation{Saturday}{Sadwrn}
\providetranslation{Sunday}{Sul}
\providetranslation{Mon}{Llun}
\providetranslation{Tue}{Maw}
\providetranslation{Wed}{Mer}
\providetranslation{Thu}{Iau}
\providetranslation{Fri}{Gwe}
\providetranslation{Sat}{Sad}
\providetranslation{Sun}{Sul}
也就是说,不是英语的部分应该是波斯语,而Welsh
英语单词应该是Farsi
。
然后我用
\documentclass[welsh]{standalone}
\usepackage{babel}
\usepackage{translator}
\usepackage{tikz}
\usetikzlibrary{calendar}
\begin{document}
\sffamily\scriptsize
\tikz
\calendar [dates=2000-01-01 to 2000-12-31,
month list,month label left,month yshift=1.25em]
if (Sunday) [black!50];
\end{document}
结果
答案2
month text=\ifcase\the\numexpr\pgfcalendarcurrentmonth-1 translationofJan\or translationofFeb ...\or translationofDec\fi
您可以在日历选项列表中使用。