Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

URLs in a['href'] should be escaped for LaTeX #67

wants to merge 1 commit into from


Copy link

@hperl hperl commented Jul 16, 2013

An URL such as in a a['href'] can contain URL escape codes, which all start with a %. The LaTeX-converter should escape all % to \% using escape(), or otherwise the unescaped % will be treated like a comment in LaTeX, corrupting the file.

This pull request fixes this by calling escape() on the URL.

@ghost ghost assigned gettalong Jul 29, 2013
Copy link

@gettalong gettalong commented Aug 21, 2013


@gettalong gettalong closed this Aug 21, 2013
Copy link

@mkamensky mkamensky commented Sep 28, 2016

I think this is actually wrong, escaping breaks for instance urls with a tilde in them. The hyperref manual says that " The special characters # and ̃ do not need to be escaped in any way.". Unfortunately, it does not say anything about other characters...

Copy link

@gettalong gettalong commented Sep 28, 2016

@mkamensky Thanks for your comment - do you have any test cases for this?

Copy link

@mkamensky mkamensky commented Oct 2, 2016

Yes, this comes from my real life example:

echo '<>' | ruby -rkramdown -e 'puts'

It produces


which does not compile. Thanks!

Copy link

@gettalong gettalong commented Sep 8, 2017

@mkamensky Sorry for the long delay...

I have tested this now with #, % and ~: Seems to work fine without escaping. As you mentioned, the hyperref package doesn't say much about escaping but I found this answer on StackExchange.

Therefore I have changed the code to just escape the percent sign and nothing else. Seems to do what it should so far.

Will be in the next release!

gettalong added a commit that referenced this pull request Sep 8, 2017
Pull request #67 changed the code to use the escape() method. However,
this does more than it should, breaking the URLs.

By just escaping the percent sign this code should work in all
cases and environments now (fingers crossed).
Copy link

@mkamensky mkamensky commented Sep 18, 2017

@gettalong Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants