我正在尝试为 .ru 维基百科编写网址。出于其他一些原因,我使用\cyrillic
和,\breakhref
如以下脚本中定义的那样。对于像这样的网址http://ru.wikipedia.org/wiki/Елена_Стасова
,我无法使用正确的西里尔字符和活动链接来呈现它们。如果您对此有所了解,欢迎您提出建议。
\documentclass[titlepage,a4paper,12pt]{article}
\usepackage{etex}
\usepackage{bigfoot}
\DeclareNewFootnote{default}
\DeclareNewFootnote{Inter}[alph] %arabic
\MakeSortedPerPage{Inter}
\usepackage[backend=biber,style=philosophy-modern,sorting=nyt]{biblatex}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[titletoc,toc,title]{appendix}
\usepackage{lmodern} % Enable Latin Modern fonts
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage[american,russian,italian]{babel}
\usepackage{tipa}
\usepackage[babel,italian=guillemets]{csquotes}
\usepackage{enumitem}
\usepackage{ifthen}
\usepackage{float}
\usepackage{datetime}
\usepackage{multirow}
\usepackage{pdfcolparallel}
\usepackage{longtable}
\usepackage{fancyhdr}
\usepackage{hyperref}
\usepackage{hypcap}
\usepackage{color}
\usepackage[tableposition=top,figureposition=bottom,font=small,format=hang]{
caption}
\usepackage[object=vectorian]{pgfornament}
\usepackage[normalem]{ulem}
\usepackage{soul}
\newcommand\cyrillic{%
\renewcommand\rmdefault{wncyr}%
\renewcommand\sfdefault{wncyss}%
\renewcommand\encodingdefault{T2A}%
\normalfont
\selectfont}
\makeatletter
\newcommand*{\breakhref}{}
\DeclareRobustCommand*{\breakhref}{%
\begingroup
\hyper@normalise\breakhref@
}
\newcommand*{\breakhref@}[2]{%
\endgroup
\SOUL@setup
\def\SOUL@everyspace##1{%
##1%
\dimen@=\fontdimen2\font
\advance\dimen@ by \fontdimen3\font
\cleaders\hbox to \dimen@{%
\hss
\href{#1}{\ \vphantom{#2}}%
\hss
}\hskip\dimen@\relax
\hspace{-\fontdimen3\font
plus \fontdimen3\font minus \fontdimen3\font}%
}%
\def\SOUL@everysyllable{%
\href{#1}{\the\SOUL@syllable\vphantom{#2}}%
}%
\def\SOUL@everyhyphen{%
\discretionary{-}{}{}%
}%
\def\SOUL@everyexhyphen##1{%
\SOUL@setkern\SOUL@hyphkern
\href{#1}{##1\vphantom{#2}}%
\discretionary{}{}{%
\SOUL@setkern\SOUL@charkern
}%
}%
\SOUL@{#2}%
}
\makeatother
\author{mario \\ v. 0.1}
\title{Test}
\date{\today{,} \currenttime}
\begin{document}
\maketitle
\begin{abstract}
\end{abstract}\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\fancyhead[LO,RE]{{\footnotesize Draft Compilation: \today{,}
\currenttime{.}}}
\fancyhead[RO,LE]{\thepage\ }
\breakhref{http://ru.wikipedia.org/wiki/\textcyrillic{Елена{\_}Стасова}}{
http://ru.wikipedia.org/wiki/\textcyrillic{Елена{\_}Стасова}}
\end{document}
答案1
感谢 TeX Live 邮件列表的人们,我了解到我需要对西里尔字符串进行 urlencode 编码。另请注意,要获取编码后的 URL,您只需从 Firefox(也可能是其他浏览器)剪切并粘贴即可。
因此对于https://ru.wikipedia.org/wiki/Большой_террор
,以下方法可以很好地工作:
{\breakhref{https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9_%D1%82%D0%B5%D1%80%D1%80%D0%BE%D1%80}{https://ru.wikipedia.org/wiki/{\textcyrillic{Большой\_террор}}}}
注意,我们似乎需要将 \textcyrillic 括在 {} 内。
事实上,如果您尝试将上述 URL 作为 URL 插入此消息本身中,您可能会检查相同的技巧: 尝试将 url 作为链接插入到此帖子中。
希望能帮助到你