F# (много как пример C#)
let p s=let i=0;let l=s.Length;while(++i<l)if(s[i]!=[l-i-1]) 0; 1;;
хорошо, теперь найдено какое-то обходное решение:
вместо пакета listings используйте listingsutf8
\ usepackage {listingsutf8}
скопируйте listings.sty в папку, в которой находится документ
найдите следующие строки
\ lst @ CCPutMacro \ lst @ ProcessOther {"23} \ # \ lst @ ProcessLetter {"24} \ textdollar \ lst @ ProcessOther {"25} \% \ lst @ ProcessOther {"26} \ &
Введите следующие строки (каждая" регистрирует "один умляут)
\ lst @ ProcessLetter {" E4} {\ "a} \ lst @ ProcessLetter {"F6} {\" o} \ lst @ ProcessLetter {"FC} {\" u} \ lst @ ProcessLetter {"C4} {\" A} \ lst @ ProcessLetter {"D6} {\" O} \ lst @ ProcessLetter {"DC} {\" U} \ lst @ ProcessLetter {"DF} {\ ss {}}
Сохраните файл
Используйте
\ lstset { extendedchars = \ истина, inputencoding = utf8 / latin1 }
для включения отображения символов utf8 в символы latin1
Я знаю, что во многих это некрасиво способ, но это единственное решение, которое пока работает для меня.
Возможно, вам потребуется установить входную кодировку документа также как UTF-8. В потоке comp.text.tex обсуждается, как это сделать. Следующее выполняет это в TeXLive в GNU / Linux:
\usepackage[utf8]{inputenc}
Автор пакета предлагает использовать параметр texcl. Иногда помогает, иногда нет.
Просто не используйте UTF-8 в латекс, если вы хотите использовать какие-либо списки . Использование Latin1 в ваших документах отобразится немецкие умлауты просто в порядке.
Я пишу свой тезис на немецком языке, используя эту настройку:
% Your language, here German
\usepackage[ngerman]{babel}
% Will work with Umlauts
\usepackage[latin1]{inputenc}
% Euro characters etc.
\usepackage{textcomp}
% Works perfectly with latin1
\usepackage{listings}
Я могу подтвердить, что решение, предоставленное Яношом, работает почти правильно.
В моем случае мне нужно было использовать испанские символы: á, é, í, ó, ú, ñ, Á, É, Í, Ó, Ú, и я попробовал его решение без результатов, пока я не скомпилировал свой файл с помощью xelatex вместо pdflatex .
В любом случае вам следует изменить listings.sty либо в вашей локальной копии, либо непосредственно в общем файле и добавить следующее:
\lst@CCPutMacro
\lst@ProcessOther {"23}\#
\lst@ProcessLetter{"24}\textdollar
\lst@ProcessOther {"25}\%
\lst@ProcessOther {"26}\&
%spanish letters coded in UTF
\lst@ProcessOther {"E1}{\'a}
\lst@ProcessOther {"C1}{\'A}
\lst@ProcessOther {"E9}{\'e}
\lst@ProcessOther {"C9}{\'E}
\lst@ProcessOther {"ED}{\'i}
\lst@ProcessOther {"CD}{\'I}
\lst@ProcessOther {"F3}{\'o}
\lst@ProcessOther {"D3}{\'O}
\lst@ProcessOther {"FA}{\'u}
\lst@ProcessOther {"DA}{\'U}
\lst@ProcessOther {"F1}{ñ}
\lst@ProcessOther {"D1}{Ñ}
В моем файле .tex я использовал следующие параметры для списков:
\usepackage{listingsutf8}
\lstset{
inputencoding=utf8,
extendedchars=\true}
Надеюсь, это поможет кому угодно и, возможно, мы сможем создать list.sty, содержащий почти все символы UTF8 ... :)
Это должно работать и для других языков (испанский, датский):
\documentclass[
a4paper, %% defines the paper size: a4paper (default), a5paper, letterpaper, ...
12pt %% set default font size to 12 point
]{scrartcl} %% article, see KOMA documentation (scrguide.dvi)
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\lstset{language=Pascal}
\lstset{literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}2
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
\begin{document}
[Latex: kann man Umlaute in lstlisting verwenden?]
\begin{lstlisting}
Test für Umlaut äöü ÄÖÜ ß So geht es
\end{lstlisting}
\end{document}
Я нашел более простой подход, который работает для меня:
\usepackage{listings}
\lstset{
literate={ö}{{\"o}}1
{ä}{{\"a}}1
{ü}{{\"u}}1
}
У меня работает отлично!
Мои 2 цента для французской стороны:
\lst@ProcessOther {"C0}{\`{A}}
\lst@ProcessOther {"C1}{\'{A}}
\lst@ProcessOther {"C2}{\^{A}}
\lst@ProcessOther {"C4}{\"{A}}
\lst@ProcessOther {"C7}{\c{C}}
\lst@ProcessOther {"C8}{\`{E}}
\lst@ProcessOther {"C9}{\'{E}}
\lst@ProcessOther {"CA}{\^{E}}
\lst@ProcessOther {"CB}{\"{E}}
\lst@ProcessOther {"CE}{\^{I}}
\lst@ProcessOther {"CF}{\"{I}}
\lst@ProcessOther {"D4}{\^{O}}
\lst@ProcessOther {"D6}{\"{O}}
\lst@ProcessOther {"D9}{\`{U}}
\lst@ProcessOther {"DB}{\^{U}}
\lst@ProcessOther {"E0}{\`{a}}
\lst@ProcessOther {"E1}{\'{a}}
\lst@ProcessOther {"E2}{\^{a}}
\lst@ProcessOther {"E4}{\"{a}}
\lst@ProcessOther {"E7}{\c{c}}
\lst@ProcessOther {"E8}{\`{e}}
\lst@ProcessOther {"E9}{\'{e}}
\lst@ProcessOther {"EA}{\^{e}}
\lst@ProcessOther {"EB}{\"{e}}
\lst@ProcessOther {"EE}{\^{\i}}
\lst@ProcessOther {"EF}{\"{\i}}
\lst@ProcessOther {"F4}{\^{o}}
\lst@ProcessOther {"F6}{\"{o}}
\lst@ProcessOther {"F9}{\`{u}}
\lst@ProcessOther {"FB}{\^{u}}