diff --git a/lib/chkconfig.ltx b/lib/chkconfig.ltx index be2972011c..401406eb64 100644 --- a/lib/chkconfig.ltx +++ b/lib/chkconfig.ltx @@ -466,6 +466,7 @@ \TestPackage{mdbch} \TestPackage{mdput} \TestPackage{mdugm} +\TestPackage{menukeys} \TestPackage{MinionPro} \TestFont[rzmnr]{minion2newtx} \TestPackage{newtxmath} diff --git a/lib/unicodesymbols b/lib/unicodesymbols index ba2afdf602..393ab4779c 100644 --- a/lib/unicodesymbols +++ b/lib/unicodesymbols @@ -17,7 +17,6 @@ # You can use development/tools/unicodesymbols.py to add stubs for more # symbols. # Do only add commands that give correct output, no hacks that look "similar". -# TODO: fix "missing Qt keysequences (MacSpecialKey)" hacks (search for "Qt::") # Commands that modify other parts of the text should not be added either. # For this reason, all commands requiring txfonts, pxfonts, fourier, mathdesign # and MnSymbol are commented out (these packages switch to fonts like times or @@ -2052,7 +2051,7 @@ 0x21b6 "" "" "force=utf8;utf8x" "\\curvearrowleft" "amssymb" # ANTICLOCKWISE TOP SEMICIRCLE ARROW 0x21b7 "" "" "force=utf8;utf8x" "\\curvearrowright" "amssymb" # CLOCKWISE TOP SEMICIRCLE ARROW #0x21b8 "" "" "" "" "" # NORTH WEST ARROW TO LONG BAR -#0x21b9 "" "" "" "" "" # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR +0x21b9 "\\tabwin" "menukeys" "force" "" "" # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR 0x21ba "" "" "force=utf8;utf8x" "\\circlearrowleft" "amssymb" # ANTICLOCKWISE OPEN CIRCLE ARROW 0x21bb "" "" "force=utf8;utf8x" "\\circlearrowright" "amssymb" # CLOCKWISE OPEN CIRCLE ARROW 0x21bc "" "" "force=utf8" "\\leftharpoonup" "" # LEFTWARDS HARPOON WITH BARB UPWARDS @@ -2089,19 +2088,20 @@ 0x21db "" "" "force=utf8;utf8x" "\\Rrightarrow" "amssymb" # RIGHTWARDS TRIPLE ARROW #0x21dc "" "" "" "\\leftsquigarrow" "mathabx" # LEFTWARDS SQUIGGLE ARROW 0x21dd "" "" "force=utf8;utf8x" "\\rightsquigarrow" "amssymb" # RIGHTWARDS SQUIGGLE ARROW -0x21de "Option-Up Arrow" "" "force=utf8;utf8x,notermination=text" "" "" #Qt::Key_PageUp, UPWARDS ARROW WITH DOUBLE STROKE = page up "\\nHuparrow" "boisik|stik" -0x21df "Option-Down Arrow" "" "force=utf8;utf8x,notermination=text" "" "" # Qt::Key_PageDown, DOWNWARDS ARROW WITH DOUBLE STROKE = page down "\\nHdownarrow" "boisik|stix" +# FIXME Yes, these are constructed, but better than a key symbols text. +0x21de "\\ooalign{\\textuparrow\\cr\\kern.1em\\textdblhyphen}" "textcomp" "force=utf8;utf8x" "" "" #Qt::Key_PageUp, UPWARDS ARROW WITH DOUBLE STROKE = page up "\\nHuparrow" "boisik|stix" +0x21df "\\ooalign{\\textdownarrow\\cr\\kern.1em\\textdblhyphen}" "textcomp" "force=utf8;utf8x,notermination=text" "" "" # Qt::Key_PageDown, DOWNWARDS ARROW WITH DOUBLE STROKE = page down "\\nHdownarrow" "boisik|stix" 0x21e0 "" "" "force=utf8;utf8x" "\\dashleftarrow" "amssymb" # LEFTWARDS DASHED ARROW #0x21e1 "" "" "" "" "" # UPWARDS DASHED ARROW 0x21e2 "" "" "force=utf8;utf8x" "\\dashrightarrow" "amssymb" # RIGHTWARDS DASHED ARROW #0x21e3 "" "" "" "" "" # DOWNWARDS DASHED ARROW -0x21e4 "Shift-Tab" "" "force=utf8;utf8x,notermination=text" "" "" # Qt::Key_Backtab, LEFTWARDS ARROW TO BAR = leftward tab "\\barleftarrow" "boisik|stix" -0x21e5 "Tab" "" "force=utf8;utf8x,notermination=text" "" "" # Qt::Key_Tab, RIGHTWARDS ARROW TO BAR = rightward tab "\\rightarrowbar" "boisik|stix" +0x21e4 "\\reflectbox{\\tabmac}" "menukeys,graphics" "force" "" "" # Qt::Key_Backtab, LEFTWARDS ARROW TO BAR = leftward tab "\\barleftarrow" "boisik|stix" +0x21e5 "\\tabmac" "menukeys" "force" "" "" # Qt::Key_Tab, RIGHTWARDS ARROW TO BAR = rightward tab "\\rightarrowbar" "boisik|stix" #0x21e6 "" "" "" "" "" # LEFTWARDS WHITE ARROW -#0x21e7 "" "" "" "" "" # UPWARDS WHITE ARROW +0x21e7 "\\shift" "menukeys" "force" "" "" # UPWARDS WHITE ARROW 0x21e8 "\\pointer" "wasysym" "force=utf8;utf8x" "" "" # RIGHTWARDS WHITE ARROW #0x21e9 "" "" "" "" "" # DOWNWARDS WHITE ARROW -0x21ea "Caps Lock" "" "force=utf8;utf8x,notermination=text" "" "" # Qt::Key_CapsLock, UPWARDS WHITE ARROW FROM BAR = caps lock "\\whitearrowupfrombar" "boisik|stix" +0x21ea "\\capslockmac" "menukeys" "force" "" "" # Qt::Key_CapsLock, UPWARDS WHITE ARROW FROM BAR = caps lock "\\whitearrowupfrombar" "boisik|stix" #0x21eb "" "" "" "" "" # UPWARDS WHITE ARROW ON PEDESTAL #0x21ec "" "" "" "" "" # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR #0x21ed "" "" "" "" "" # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR @@ -2410,7 +2410,7 @@ 0x2315 "\\recorder" "wasysym" "force" "" "" # TELEPHONE RECORDER #0x2316 "" "" "" "" "" # POSITION INDICATOR #0x2317 "" "" "" "" "" # VIEWDATA SQUARE -#0x2318 "" "" "" "" "" # PLACE OF INTEREST SIGN +0x2318 "\\cmdmac" "menukeys" "force" "" "" # PLACE OF INTEREST SIGN #0x2319 "" "" "" "" "" # TURNED NOT SIGN 0x231a "\\Clocklogo" "marvosym" "force" # WATCH #0x231b "" "" "" "" "" # HOURGLASS @@ -2422,15 +2422,15 @@ #0x2321 "" "" "" "" "" # BOTTOM HALF INTEGRAL 0x2322 "" "" "force" "\\frown" "" # FROWN 0x2323 "" "" "force" "\\smile" "" # SMILE -#0x2324 "" "" "" "" "" # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS -#0x2325 "" "" "" "" "" # OPTION KEY -0x2326 "Delete" "" "force,notermination=text" "" "" # Qt::Key_Delete, ERASE TO THE RIGHT = delete to the right key +0x2324 "\\enter" "menukeys" "force" "" "" # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS +0x2325 "\\Altmac" "menukeys" "force" "" "" # OPTION KEY +0x2326 "\\delmac" "menukeys" "force" "" "" # Qt::Key_Delete, ERASE TO THE RIGHT = delete to the right key 0x2328 "\\Keyboard" "marvosym" "force" # KEYBOARD -0x232b "Backspace" "" "force,notermination=text" "" "" # Qt::Key_Backspace, ERASE TO THE LEFT = delete to the left key +0x232b "\\backdelmac" "menukeys" "force" "" "" # Qt::Key_Backspace, ERASE TO THE LEFT = delete to the left key 0x2339 "" "" "force" "\\APLinv" "wasysym" # APL FUNCTIONAL SYMBOL QUAD DIVIDE 0x233f "" "" "force" "\\notslash" "wasysym" # APL FUNCTIONAL SYMBOL SLASH BAR 0x2340 "" "" "force" "\\notbackslash" "wasysym" # APL FUNCTIONAL SYMBOL BACKSLASH BAR -0x238b "Escape" "" "force,notermination=text" "" "" # Qt::Key_Escape, BROKEN CIRCLE WITH NORTHWEST ARROW = escape +0x238b "\\escmac" "menukeys" "force" "" "" # Qt::Key_Escape, BROKEN CIRCLE WITH NORTHWEST ARROW = escape # # 79 Control Pictures # diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 503cc7792e..8245f73cac 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -2242,8 +2242,8 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features, << "\\makeatother\n\n"; // We try to load babel late, in case it interferes with other packages. - // Jurabib, hyperref, varioref, bicaption and listings (bug 8995) have to be - // called after babel, though. + // Jurabib, hyperref, varioref, bicaption, menukeys and listings (bug 8995) + // have to be called after babel, though. if (use_babel && !features.isRequired("jurabib") && !features.isRequired("hyperref") && !features.isRequired("varioref") @@ -2385,6 +2385,11 @@ bool BufferParams::writeLaTeX(otexstream & os, LaTeXFeatures & features, os << '\n'; } + // Since menukeys uses catoptions, which does some heavy changes on key-value options, + // it is recommended to load menukeys as the last package (even after hyperref) + if (features.isRequired("menukeys")) + os << "\\usepackage{menukeys}\n"; + docstring const i18npreamble = features.getTClassI18nPreamble(use_babel, use_polyglossia, use_minted);