Created
December 16, 2019 00:34
-
-
Save kmuto/0da32b5bc6d0d7f1acd82fd0d6e2c0f4 to your computer and use it in GitHub Desktop.
breakallコードがhyperrefの作用箇所でおかしくなってしまう
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%!ptex2pdf -l -u break.tex | |
\documentclass[uplatex]{jsarticle} | |
% hyperref有効にすると | |
% ! TeX capacity exceeded, sorry [input stack size=5000]. | |
% <to be read again> | |
% \HyPsd@@LetCommand | |
% l.61 \section{\reviewcode{Hello}} | |
% になってしまう (https://github.com/kmuto/review/issues/1432) | |
\usepackage[dvipdfmx]{hyperref} | |
\makeatletter | |
% allow break line in tt | |
% contributed by @zr_tex8r | |
\newif\ifreview@ba@break | |
\def\review@ba@end{\review@ba@end@} | |
\DeclareRobustCommand{\reviewbreakall}[1]{% | |
\begingroup | |
\review@ba@breakfalse | |
\review@break@all@a#1\review@ba@end | |
\endgroup | |
} | |
\def\review@break@all@a{% | |
\futurelet\review@ba@tok\review@break@all@b | |
} | |
\def\review@break@all@b{% | |
\ifx\review@ba@tok\review@ba@end | |
\let\next\@gobble | |
\else\ifx\review@ba@tok\@sptoken | |
\let\next\review@break@all@c | |
\else\ifx\review@ba@tok~% | |
\let\next\review@break@all@d | |
\else\ifx\review@ba@tok\bgroup | |
\let\next\review@break@all@e | |
\else | |
\let\next\review@break@all@f | |
\fi\fi\fi\fi | |
\next | |
} | |
\expandafter\def\expandafter\review@break@all@c\space{% | |
\space | |
\review@ba@breakfalse | |
\review@break@all@a | |
} | |
\def\review@break@all@d#1{% | |
\review@break@all@f{\mbox{\space}}% | |
} | |
\def\review@break@all@e#1{% | |
\review@break@all@f{{#1}}% | |
} | |
\def\review@break@all@f#1{% | |
\ifreview@ba@break | |
\hskip0pt plus 0.02em\relax | |
\fi | |
#1% | |
\review@ba@breaktrue | |
\review@break@all@a | |
} | |
\DeclareRobustCommand{\reviewcode}[1]{{\ttfamily\reviewbreakall{#1}}} | |
\begin{document} | |
\section{\reviewcode{Hello}} | |
\end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
\reviewcode{Hello world}
のようにしないと空白が保持されることがmustだとわかりにくいか