
在最新更新 teubner.sty(帶有 GlyphNames)之前,只要未載入 babel 的法語(teubner-doc.pdf 第 15 頁 n. 1),就可以使用 \og-macro (ὸ)。現在,\og 巨集根本不起作用:pdf 輸出中沒有任何內容,而 .tex 檔案中有 \og。在 .log 檔案中它說
! Undefined control sequence.
l.596 t\og{} kal\og n mhk\ea ti \og{}
我的 .tex 檔案中沒有任何法語內容,即使當我刪除每個軟體包 TeXify、刪除另一個軟體包而不是最後一個軟體包時,\og 也不起作用。我看不到它在哪裡被重新定義,甚至我在不同的包之前和之後使用的 savesymbol 也沒有幫助。
MWS:
\pdfgentounicode=1
\input glyphtounicode
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass{scrbook}
\usepackage{cmap}
\usepackage[LGR,T1]{fontenc}
\usepackage[utf8]{inputenc}
\input{ix-utf8enc.dfu}
\usepackage{savesym}
\usepackage[math=normal,greek,german,main=ngerman,english]{babel}
\usepackage{gfsdidot,gfsporson}
\usepackage[GlyphNames,boldLipsian]{teubner}
\savesymbol{breve}
\savesymbol{og}
\usepackage[osf,sc]{mathpazo}
\restoresymbol{pplj}{breve}
\usepackage[scaled=.95]{DejaVuSansCondensed}
\Lipsiantrue
\ifFamily{pplj}{porson}
\usepackage[nonegthinspace,twothirds]{thinsp}
\usepackage{fixltx2e}
\makeatletter
\renewcommand{\,}{\thinspace\allowhyphens}
\newcommand{\hrsp}{\ifmmode\mskip1mu\else\kern0.08em\fi}
\ifFamily{pplj}{porson}
\addto\greek@shorthands{%
\declare@shorthand{greek}{\/}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}
\allowhyphens}{}}
}
\Lipsiantrue
\ifFamily{pplj}{porson}
\makeatother
\begin{document}
\subsection*{Platon \emph{Theaitetos} 184\hrsp b--185\hrsp d}
185\hrsp c\\
\begin{otherlanguage}{greek}to\uc to o\usa\/te \osa yis
o\usa\/te \as ko\hg{} fa\ia netai, \as ll\aa{} ti \asa llo. \quad
\textsc{JE.} T\ia{} d''\,o\us{} m\ea llei, \hra{} ge di\ag{} t\hc s
gl\wa sshs d\ua namis? \quad \textsc{SW.} Kal\wc s l\ea geis. \hr{}
d\eg{} d\hg{} di\ag{} t\ia nos d\ua namis t\oa{} t''\,\es p\ig{}
p\ac si koin\og n ka\ig{} t\og{} \es p\ig{} to\ua tois
dhlo\ic{} soi, \wrci{} t\og{} ((\esa stin)) \es p\/onom\aa zeis
ka\ig{} t\og{} ((o\us k \esa sti)) ka\ig{} \arg{} nun\/d\hg{}
\hs rwt\wa men per\ig{} a\us t\wc n? to\ua tois p\ac si po\ic a
\as po\/d\wa seis \osa rgana di''\,\wrc n a\is sj\aa netai \hr m\wc n
t\og{} a\is sjan\oa menon \era kasta? \quad \textsc{JE.} O\us s\ia an
l\ea geis ka\ig{} t\og{} m\hg{} e\isc nai, ka\ig{} \oR moi\oa\/thta
ka\ig{} \as n\/omoi\oa\/thta, ka\ig{} t\og{} ta\us t\oa n te ka\ig{}
t\og{} \era teron, \esa ti d\eg{} \era n te ka\ig{} t\og n \asa llon
\as rijm\og n per\ig{} a\us t\wc n.\\
\og\og\og
\end{otherlanguage}
\end{document}
答案1
這很說明問題:
\documentclass{scrbook}
\usepackage{savesym}
\usepackage[greek,english]{babel}
\usepackage[GlyphNames]{teubner}
\savesymbol{og}
\begin{document}
\begin{otherlanguage}{greek}\og\end{otherlanguage}
\begin{otherlanguage}{greek}to o\usa\end{otherlanguage}
\end{document}
這可以避免這個問題:
\documentclass{scrbook}
\usepackage{savesym}
\usepackage[greek,english]{babel}
\usepackage[GlyphNames]{teubner}
\savesymbol{og}
\restoresymbol{pplj}{og}
\begin{document}
\begin{otherlanguage}{greek}\og\end{otherlanguage}
\begin{otherlanguage}{greek}to o\usa\end{otherlanguage}
\end{document}
至少,假設這就是 \og 應該看起來的樣子。我不知道。
編輯:根據OP的評論,我正在編輯這個答案。上述內容對於舊版的 teubner 是正確的。對於較新的版本,以下顯示了問題:
\documentclass{scrbook}
\usepackage{savesym}
\usepackage[greek,english]{babel}
\usepackage[GlyphNames]{teubner}
\savesymbol{oG}
\begin{document}
\begin{otherlanguage}{greek}\oG\end{otherlanguage}
\begin{otherlanguage}{greek}to o\usa\end{otherlanguage}
\end{document}
而以下內容可以避免該問題:
\documentclass{scrbook}
\usepackage{savesym}
\usepackage[greek,english]{babel}
\usepackage[GlyphNames]{teubner}
\savesymbol{oG}
\restoresymbol{pplj}{oG}
\begin{document}
\begin{otherlanguage}{greek}\oG\end{otherlanguage}
\begin{otherlanguage}{greek}to o\usa\end{otherlanguage}
\end{document}
請注意,僅更新為使用 \oG 是不夠的。還需要 \restoresymbol... 才能顯示字元。
輸出如上圖所示。