git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: Support more text-mode accents.

Add support for `\|`, `\b`, `\G`, `\h`, `\d`, `\f`, `\r`, `\t`, `\U`, `\i`, `\j`, `\newtie`, `\textcircled`. Also fall back to combining characters when composed characters are not available. Closes #4652.

commit42f4632e600dea34e5dcbe75fc734899a2436c05 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 17 Aug 2018, 23:19 (8 years ago) parent159863e
2 files changed+95−5
src/Text/Pandoc/Readers/LaTeX.hs+91−1 test/command/macros.md+4−4
src/Text/Pandoc/Readers/LaTeX.hs+91−1
@@ -1214,6 +1214,84 @@ macron 'o' = "ō"
12141214macron 'u' = "ū"
12151215macron c = [c]
12161216
1217+ringabove :: Char -> String
1218+ringabove 'A' = "Å"
1219+ringabove 'a' = "å"
1220+ringabove 'U' = "Ů"
1221+ringabove 'u' = "ů"
1222+ringabove c = [c]
1223+
1224+dotbelow :: Char -> String
1225+dotbelow 'B' = "Ḅ"
1226+dotbelow 'b' = "ḅ"
1227+dotbelow 'D' = "Ḍ"
1228+dotbelow 'd' = "ḍ"
1229+dotbelow 'H' = "Ḥ"
1230+dotbelow 'h' = "ḥ"
1231+dotbelow 'K' = "Ḳ"
1232+dotbelow 'k' = "ḳ"
1233+dotbelow 'L' = "Ḷ"
1234+dotbelow 'l' = "ḷ"
1235+dotbelow 'M' = "Ṃ"
1236+dotbelow 'm' = "ṃ"
1237+dotbelow 'N' = "Ṇ"
1238+dotbelow 'n' = "ṇ"
1239+dotbelow 'R' = "Ṛ"
1240+dotbelow 'r' = "ṛ"
1241+dotbelow 'S' = "Ṣ"
1242+dotbelow 's' = "ṣ"
1243+dotbelow 'T' = "Ṭ"
1244+dotbelow 't' = "ṭ"
1245+dotbelow 'V' = "Ṿ"
1246+dotbelow 'v' = "ṿ"
1247+dotbelow 'W' = "Ẉ"
1248+dotbelow 'w' = "ẉ"
1249+dotbelow 'Z' = "Ẓ"
1250+dotbelow 'z' = "ẓ"
1251+dotbelow 'A' = "Ạ"
1252+dotbelow 'a' = "ạ"
1253+dotbelow 'E' = "Ẹ"
1254+dotbelow 'e' = "ẹ"
1255+dotbelow 'I' = "Ị"
1256+dotbelow 'i' = "ị"
1257+dotbelow 'O' = "Ọ"
1258+dotbelow 'o' = "ọ"
1259+dotbelow 'U' = "Ụ"
1260+dotbelow 'u' = "ụ"
1261+dotbelow 'Y' = "Ỵ"
1262+dotbelow 'y' = "ỵ"
1263+dotbelow c = [c]
1264+
1265+doublegrave :: Char -> String
1266+doublegrave 'A' = "Ȁ"
1267+doublegrave 'a' = "ȁ"
1268+doublegrave 'E' = "Ȅ"
1269+doublegrave 'e' = "ȅ"
1270+doublegrave 'I' = "Ȉ"
1271+doublegrave 'i' = "ȉ"
1272+doublegrave 'O' = "Ȍ"
1273+doublegrave 'o' = "ȍ"
1274+doublegrave 'R' = "Ȑ"
1275+doublegrave 'r' = "ȑ"
1276+doublegrave 'U' = "Ȕ"
1277+doublegrave 'u' = "ȕ"
1278+doublegrave c = [c]
1279+
1280+hookabove :: Char -> String
1281+hookabove 'A' = "Ả"
1282+hookabove 'a' = "ả"
1283+hookabove 'E' = "Ẻ"
1284+hookabove 'e' = "ẻ"
1285+hookabove 'I' = "Ỉ"
1286+hookabove 'i' = "ỉ"
1287+hookabove 'O' = "Ỏ"
1288+hookabove 'o' = "ỏ"
1289+hookabove 'U' = "Ủ"
1290+hookabove 'u' = "ủ"
1291+hookabove 'Y' = "Ỷ"
1292+hookabove 'y' = "ỷ"
1293+hookabove c = [c]
1294+
12171295cedilla :: Char -> String
12181296cedilla 'c' = "ç"
12191297cedilla 'C' = "Ç"
@@ -1645,12 +1723,24 @@ inlineCommands = M.union inlineLanguageCommands $ M.fromList
16451723 , ("\"", accent '\776' umlaut)
16461724 , (".", accent '\775' dot)
16471725 , ("=", accent '\772' macron)
1726+ , ("|", accent '\781' (:[])) -- vertical line above
1727+ , ("b", accent '\817' (:[])) -- macron below
16481728 , ("c", accent '\807' cedilla)
1729+ , ("G", accent '\783' doublegrave)
1730+ , ("h", accent '\777' hookabove)
1731+ , ("d", accent '\803' dotbelow)
1732+ , ("f", accent '\785' (:[])) -- inverted breve
1733+ , ("r", accent '\778' ringabove)
1734+ , ("t", accent '\865' (:[])) -- double inverted breve
1735+ , ("U", accent '\782' (:[])) -- double vertical line above
16491736 , ("v", accent 'ˇ' hacek)
16501737 , ("u", accent '\774' breve)
16511738 , ("k", accent '\808' ogonek)
16521739 , ("textogonekcentered", accent '\808' ogonek)
1653− , ("i", lit "i")
1740+ , ("i", lit "ı") -- dotless i
1741+ , ("j", lit "ȷ") -- dotless j
1742+ , ("newtie", accent '\785' (:[])) -- inverted breve
1743+ , ("textcircled", accent '\8413' (:[])) -- combining circle
16541744 , ("\\", linebreak <$ (do inTableCell <- sInTableCell <$> getState
16551745 guard $ not inTableCell
16561746 optional opt
test/command/macros.md+4−4
@@ -24,18 +24,18 @@ expanded at point of use:
2424% pandoc -f latex -t latex
2525\let\a\b
2626\newcommand{\b}{\emph{ouk}}
27−\a
27+\a a
2828^D
29−\b
29+a̱
3030```
3131
3232```
3333% pandoc -f latex -t latex
3434\newcommand{\a}{\b}
3535\newcommand{\b}{\emph{ouk}}
36−\a
36+\a a
3737^D
38−\emph{ouk}
38+\emph{ouk}a
3939```
4040
4141```