Как записать код программы, содержащий 'символ в латексе?

Это был отличный вопрос! Исследуя это через эту ссылку , я пришел к следующему, которое, по общему признанию, не сильно отличается от предоставленного там решения. Узнай что-нибудь каждый день ... проверяй!

#include 
#include 
#include 

using namespace std;

template
class IsDerivedFrom
{
  class No { };
  class Yes { No no[3]; };

  static Yes Test(B*); // declared, but not defined
  static No Test(...); // declared, but not defined

public:
  enum { IsDerived = sizeof(Test(static_cast(0))) == sizeof(Yes) };
};


class Base
{
public:
    virtual ~Base() {};
};

class A : public Base
{
    int i;
};

class B : public Base
{
    bool b;
};

class C
{
    string z;
};


template 
class BasePair
{
public:
    BasePair(T1 first, T2 second)
        :m_first(first),
         m_second(second)
    {
        typedef IsDerivedFrom testFirst;
        typedef IsDerivedFrom testSecond;

        // Compile time check do...
        BOOST_STATIC_ASSERT(testFirst::IsDerived == true);
        BOOST_STATIC_ASSERT(testSecond::IsDerived == true);

        // For runtime check do..
        if (!testFirst::IsDerived)
            cout << "\tFirst is NOT Derived!\n";
        if (!testSecond::IsDerived)
            cout << "\tSecond is NOT derived!\n";

    }

private:
    T1 m_first;
    T2 m_second;
};


int main(int argc, char *argv[])
{
    A a;
    B b;
    C c;

    cout << "Creating GOOD pair\n";
    BasePair good(a, b);

    cout << "Creating BAD pair\n";
    BasePair bad(c, b);
    return 1;
}

25
задан ragnarius 2 November 2009 в 15:42
поделиться

5 ответов

У меня

alt text

Что не так?

Новое

Если вы хотите получить что-то вроде этого

alt text

, напишите

\makeatletter
\let \@sverbatim \@verbatim
\def \@verbatim {\@sverbatim \verbatimplus}
{\catcode`'=13 \gdef \verbatimplus{\catcode`'=13 \chardef '=13 }} 
\makeatother
4
ответ дан 28 November 2019 в 20:33
поделиться

Загрузите пакет upquote , чтобы исправить эту проблему в дословном режиме.

Если вы хотите использовать прямые кавычки в моноширинном текстовом режиме (например, \ texttt {. ..} ) или любым другим шрифтом, то вы можете использовать команду \ textquotesingle , определенную в пакете textcomp :

\documentclass{article}
\usepackage{upquote,textcomp}
\begin{document}
\newcommand\upquote[1]{\textquotesingle#1\textquotesingle}
\verb|'c'| \texttt{\upquote{h}}
\textsf{\upquote{h}} \upquote{h}
\end{document}

Это будет хорошо работать для шрифтов в любой кодировке, а не в зависимости от конкретного слота глифа (например, \ char13 в кодировке по умолчанию OT1 ).

34
ответ дан 28 November 2019 в 20:33
поделиться

Для отображения исходного кода вы можете рассмотреть возможность использования пакета listings ; он довольно мощный и предлагает возможность отображать «прямые» кавычки.

4
ответ дан 28 November 2019 в 20:33
поделиться

Если вы видите фигурные одинарные правые кавычки в дословной среде, то одинарная правая кавычка в шрифте вашей пишущей машинки будет фигурной, и это правильный выбор для что вы делаете (что, как я полагаю, отображает код на языке C).

0
ответ дан 28 November 2019 в 20:33
поделиться

\textf {`} и \textf {''} довольно близко подходят к прямым кавычкам. Нет необходимости использовать какие-либо специальные пакеты.

0
ответ дан 28 November 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: