Definição de novo comando envolvendo o verbatim

53 views
Skip to first unread message

edson.t...@ufv.br

unread,
Oct 21, 2024, 7:19:57 PM10/21/24
to Latex-br
Boa noite a todos.

Estou redigindo um texto e nele, utilizo várias vezes a mesma sequências de comandos e ambientes, como por exemplo: fazer duas minipaginas, em que na primeira é mostrado o resultado da compilação de um código e na segunda é mostrado extamente o código utilizado na minipágina ao lado.

Vou enviar um modelo para tentarem me ajudar. Saberiam me ajudar?

Desde já agradeço.

Atenciosamente,

Edson.


\documentclass[a4paper,12pt]{book} \usepackage[left=2cm,right=2cm,bottom=2cm,top=2cm]{geometry} \usepackage[brazil]{babel} \usepackage{indentfirst} \usepackage{setspace} \usepackage{amsmath} \usepackage{verbatim} %\usepackage{fvextra} \usepackage{fancyvrb} % Necessário para usar o ambiente Verbatim em caixas
\newcommand{\comando}[1]{% \bigskip
\noindent\begin{minipage}{0.45\textwidth} #1 \end{minipage}\hfill \begin{minipage}{0.45\textwidth} \SaveVerb*{myVerb}|#1|% Salva o conteúdo verbatim \UseVerb*{myVerb}% Insere o conteúdo verbatim \end{minipage}
\bigskip }


\begin{document}
Quero que fique exatamente desta forma:
\noindent\begin{minipage}{0.45\textwidth} 
Gostaria que o texto 
em \LaTeX{} ficasse 
exatamente como 
digitado aqui. 
\end{minipage}\hfill\begin{minipage}{0.45\textwidth} 
\begin{verbatim} Gostaria que o texto 
em \LaTeX{} ficasse 
exatamente como 
digitado aqui. 
\end{verbatim} 
\end{minipage}

Defini um novo comando \verb|\comando|, como acima, mas o verbatim não reconhece as mudanças de linhas.
\comando{ 
Gostaria que o texto 
em \LaTeX{} ficasse 
exatamente como 
digitado aqui. 
}
\end{document}


Emílio Kavamura

unread,
Oct 23, 2024, 9:36:54 PM10/23/24
to Latex-br
Seria algo assim ?


\documentclass{article}
\title{Listing Tcolorbox}
\usepackage{listings}
\usepackage{hyperref}

% configuração para caracteres acentuados
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{listingsutf8}
\lstset{
     inputencoding=utf8/latin1,
     backgroundcolor=\color{black!05},
     basicstyle=\footnotesize\ttfamily,%\SetTracking{encoding=*}{-60}\lsstyle,
     basewidth=0.55em,
     keywordstyle=\color{blue}\bfseries\underbar,
     language = [LaTeX]{TeX},
    numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=4pt,
    %columns=fixed,
    commentstyle=\color{red!50!black},
    %showstringspaces=false,
    literate=
    {á}{{\'a}}1
    {à}{{\`a}}1
    {ã}{{\~a}}1
    {Ã}{{\~A}}1
    {é}{{\'e}}1
    {É}{{\'E}}1
    {ê}{{\^e}}1
    {í}{{\'i}}1
    {Í}{{\'I}}1
    {ó}{{\'o}}1
    {õ}{{\~o}}1
    {ú}{{\'u}}1
    {ü}{{\"u}}1
    {ç}{{\c{c}}}1
    {Ç}{{\c{C}}}1
    {&}{{\&}}1
      }
%    \lstloadlanguages{[LaTeX]TeX}


% colocrir a tabela
\usepackage[most]{tcolorbox}

%configurações da tabela colorida
\tcbset{
lstbox/.style={
enhanced,
breakable,
sharp corners=all,
% arc=18pt,sharp corners=downhill,
fonttitle=\footnotesize,%\bfseries,
fontupper=\footnotesize\itshape,
top=0mm,
bottom=0mm,
right=0mm,
left=8mm,
left skip=2mm,
colback=gray!15!blue!08,
colframe=white,
% spread downwards,
% interior style={top color=white,bottom color=blue!05},
colbacktitle=white,
coltitle=blue,
attach boxed title to top left,
boxed title style={empty, size=minimal, bottom=1.5mm},
overlay unbroken ={
\draw [blue!50](title.south west)--(title.south east);
\draw [blue!50]([xshift=3.5mm]frame.north west)|-%
(frame.south east);},%--(frame.north east);},
overlay first={
\draw [blue!50](title.south west)--(title.south east);
\draw [blue!50]([xshift=3.5mm]frame.north west)--  ([xshift=3.5mm]frame.south west);
\draw [blue!50](frame.north east)--(frame.south east);},
overlay middle={
\draw [blue!50]([xshift=3.5mm]frame.north west)--([xshift=3.5mm]frame.south west);
\draw [blue!50](frame.north east)--(frame.south east);},
overlay last={
\draw [blue!50]([xshift=3.5mm]frame.north west)|-%
(frame.south east)--(frame.north east);},
},
}

% configurar um contador para a listagem
\newtcbtheorem[list inside={lst}]{listingbox}{Listagem}{lstbox}{lst}

% nome para o sumário de listagens
\makeatletter
\newcommand\tcb@cnt@listingboxautorefname{LISTAGEM~}
\makeatother


\begin{document}



\tcblistof[\section*]{lst}{Listas de códigos}
\clearpage

Exemplo para colocar lado a lado \autoref{tcb:espacamento}

\begin{listingbox}[sidebyside, label = tcb:espacamento]{Espaçamento diferenças}{}%,sidebyside, label=tcb:espacamento]
\lstset{basicstyle=\ttfamily\small}
\begin{lstlisting}
\int y \mathrm{d}x

\int y\: \mathrm{d}x
\end{lstlisting}
\tcblower
\begin{align*}
&\int y \mathrm{d}x\\[2mm]
&\int y\: \mathrm{d}x
\end{align*}
\end{listingbox}

\vspace{10mm}
Acima e abaixo \autoref{tcb:espacamento2}

\begin{listingbox}[label = tcb:espacamento2]{Espaçamento diferenças}{}%,sidebyside, label=tcb:espacamento]
\lstset{basicstyle=\ttfamily\small}
\begin{lstlisting}
\int y \mathrm{d}x

\int y\: \mathrm{d}x
\end{lstlisting}
\tcblower
\begin{align*}
&\int y \mathrm{d}x\\[2mm]
&\int y\: \mathrm{d}x
\end{align*}
\end{listingbox}
\end{document}

Emílio Kavamura

unread,
Oct 23, 2024, 9:39:03 PM10/23/24
to Latex-br

Screenshot_20241023_223752.png

Edson Teixeira

unread,
Oct 24, 2024, 7:41:15 PM10/24/24
to late...@googlegroups.com
Boa noite. 

Obrigado, Emílio pela resposta, mas estou querendo apenas que o Verbatim funcione corretamente dentro do minipage. Se compilar o arquivo que enviei verá que o texto extrapola a linha, mesmo quebrando a linha em várias.



--
Você recebeu essa mensagem porque está inscrito no grupo "Latex-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para latex-br+u...@googlegroups.com.
Para ver esta conversa, acesse https://groups.google.com/d/msgid/latex-br/692940e4-ad64-452e-b52f-9f80f455f37cn%40googlegroups.com.

Edwin López

unread,
Oct 25, 2024, 1:45:58 AM10/25/24
to late...@googlegroups.com
Boa noite,

fiz algumas mudanças no seu codigo, aqui funcionou:

\documentclass[a4paper,12pt]{book}
\usepackage[left=2cm,right=2cm,bottom=2cm,top=2cm]{geometry}
\usepackage[brazil]{babel}
\usepackage{indentfirst}
\usepackage{setspace}
\usepackage{amsmath}

\newcommand{\comando}[1]{
\bigskip
\noindent\parbox{0.45\textwidth}{ #1 }
\hfill\parbox{0.45\textwidth}{\verb~#1~}

\bigskip
}

\begin{document}
Quero que fique exatamente desta forma:

\noindent\begin{minipage}{0.45\textwidth}
Gostaria que o texto
em \LaTeX{} ficasse
exatamente como
digitado aqui.
\end{minipage}\hfill\begin{minipage}{0.45\textwidth}
\begin{verbatim}
Gostaria que o texto
em \LaTeX{} ficasse
exatamente como
digitado aqui.
\end{verbatim}
\end{minipage}

Defini um novo comando \verb|\comando|, como acima, mas o verbatim não reconhece as mudanças de linhas.

\comando{%

Gostaria que o texto
em \LaTeX{} ficasse
exatamente como
digitado aqui.
}
\end{document}

Edson Teixeira

unread,
Oct 25, 2024, 7:44:37 AM10/25/24
to late...@googlegroups.com
Bom dia, Edwin López.

Era exatamente isso que eu queria. Funcionou perfeitamente. Muito obrigado.

Atenciosamente,

Edson.



Edson Teixeira

unread,
Oct 25, 2024, 9:23:05 AM10/25/24
to late...@googlegroups.com
Bom dia, Edwin López.

Havia dito anteriormente que o meu problema tinha sido resolvido, mas percebi agora que quando o argumento possui expressões em ambientes matemáticos, com \( ... \), a fórmula é compilada normalmente e não aparece como deveria no ambiente verbatim.

Saberia contornar esta situação?

Desde já agradeço.




Em sex., 25 de out. de 2024 às 02:45, Edwin López <macro...@gmail.com> escreveu:

Edwin López

unread,
Oct 27, 2024, 9:26:06 PM10/27/24
to late...@googlegroups.com
tenta assim:


\documentclass[a4paper,12pt]{book}
\usepackage[left=2cm,right=2cm,bottom=2cm,top=2cm]{geometry}
\usepackage[brazil]{babel}
\usepackage{indentfirst}
\usepackage{setspace}
\usepackage{amsmath}

\newcommand{\comando}[1]{
    \bigskip
    \noindent\parbox{0.45\textwidth}{ #1 }
    \hfill\parbox{0.45\textwidth}{\texttt{\detokenize{#1}}}

    \bigskip
}

\begin{document}
    Quero que fique exatamente desta forma:
   
    \noindent\begin{minipage}{0.45\textwidth}
        Gostaria que o texto
        em \LaTeX{} ficasse
        exatamente como
        digitado $x^2$, \(y^2\) aqui.

    \end{minipage}\hfill\begin{minipage}{0.45\textwidth}
        \begin{verbatim}
Gostaria que o texto
em \LaTeX{} ficasse
exatamente como
digitado $x^2$, \(y^2\) aqui.

        \end{verbatim}
    \end{minipage}
   
    Defini um novo comando \verb|\comando|, como acima, mas o verbatim não reconhece as mudanças de linhas.
   
    \comando{%
        Gostaria que o texto
        em \LaTeX{} ficasse
        exatamente como
        digitado $x^2$, \(y^2\) aqui.
    }
\end{document}

Edson Teixeira

unread,
Oct 29, 2024, 11:34:49 AM10/29/24
to late...@googlegroups.com
Bom dia, Edwin López.

Muito obrigado pela resposta. A parte do código matemático foi resolvida. Agora o  problema está quando deixo uma linha em branco. Ele não respeita isso, mas já me ajudou muito.

Muito obrigado.

Atenciosamente,

Edson.



edson.t...@ufv.br

unread,
Dec 5, 2024, 7:22:45 AM12/5/24
to Latex-br
Bom dia, pessoal.

Encontrei uma forma até mais bonita do que eu queria, tomando como modelo, um código fornecido pelo autor do tikz, quando elaborou o manual do usuário. Fiz alterações e deixei o código mais limpo possível. 

Para isso utilizei o pacote tcolorbox, juntamente com o opcional most. Me deparei com o problema de não conseguir inserir os ambientes de objetos flutuantes, conforme poderão verificar no exemplo que fornecerei. Alguém consegue contornar este problema?

Desde já agradeço.



\documentclass[a4paper,12pt]{book} 
\usepackage[most]{tcolorbox}

\newtcblisting{caixa}{% 
width=1\textwidth, % largura das caixas 
lower separated=true, % separador entre a entrada e a saída 
colback=blue!20!white, % Cor de fundo 
colframe=red!80!white, % Cor da borda 
top=10pt,% espaçamento superior do texto à margem da caixa 
bottom=10pt,% espaçamento inferior do texto à margem da caixa 
left=50pt,% espaçamento lateral esquerdo do texto à margem da caixa 
right=15pt,% espaçamento lateral direito do texto à margem da caixa 
arc=5pt,% arredondamento dos cantos da caixa 
boxrule=2pt,% espessura do contorno da caixa 
text outside listing,% caixas lado a lado 
listing side text,% opção para que a entrada também apareça dentro da caixa 
sidebyside gap=20mm,% espaçamento horizontal do texto e a barra separadora das caixas 
colupper=blue, % cor do texto de entrada 

}
\newtcblisting{caixas}{% 
width=1\textwidth, % largura das caixas 
lower separated=true, % separador entre a entrada e a saída 
colback=blue!20!white, % Cor de fundo 
colframe=red!80!white, % Cor da borda 
top=10pt,% espaçamento superior do texto à margem da caixa 
bottom=10pt,% espaçamento inferior do texto à margem da caixa 
left=50pt,% espaçamento lateral esquerdo do texto à margem da caixa 
right=15pt,% espaçamento lateral direito do texto à margem da caixa 
arc=5pt,% arredondamento dos cantos da caixa 
boxrule=2pt,% espessura do contorno da caixa 
sidebyside gap=20mm,% espaçamento horizontal do texto e a barra separadora das caixas 
colupper=blue, % cor do texto de entrada 
}


\begin{document}

\begin{caixa} 
O código de entrada aparece do lado esquerdo e a saída é mostrada na caixa da esquerda. O parágrafo e os espaços extras aparecem como no ambiente verbatim. As fórmulas aparecem normalmente, como por exemplo 
\[a^2=b^2+c^2.\]
Além disso, o código é ajustado à largura da caixa. 
\end{caixa}

\vspace{2cm}

\begin{caixas} 
O código de entrada aparece do lado esquerdo e a saída é mostrada na caixa da esquerda. O parágrafo e os espaços extras aparecem como no ambiente verbatim. As fórmulas aparecem normalmente, como por exemplo 
\[a^2=b^2+c^2.\]
Além disso, o código é ajustado à largura da caixa. 
\end{caixas}

\vspace{2cm}

\begin{caixa} 
O problema é que este ambiente não aceita ambiente de objetos flutuantes, como \verb+tabular+, \verb+figure+, etc. Remova os comentários dos códigos mais abaixo para ver o erro. 
\end{caixa}

\vspace{2cm}

\begin{caixas} 
O problema é que este ambiente não aceita ambiente de objetos flutuantes, como \verb+tabular+, \verb+figure+, etc. Remova os comentários dos códigos mais abaixo para ver o erro. 
\end{caixas}

%\vspace{2cm} 
%
%\begin{caixa} 
%\begin{figure} 
%Aqui é incluída a figura. 
%\caption{Legenda da Figura} 
%\end{figure} 
%\end{caixa} 
% 
%\vspace{2cm} 
% 
%\begin{caixas} 
%\begin{figure} 
%Aqui é incluída a figura. 
%\caption{Legenda da Figura} 
%\end{figure} 
%\end{caixas}


\end{document}

Paulo Emiliano

unread,
Dec 6, 2024, 11:56:14 AM12/6/24
to Latex-br
Boa tarde, com a dica dada por Martin Scharrer  em https://tex.stackexchange.com/questions/19295/side-by-side-source-and-output-when-documenting-a-style-file e fazendo algumas adaptações creio que isso pode auxiliar:

\documentclass[a4paper,12pt]{book}
\usepackage[most]{tcolorbox}
\usepackage{float}
\begin{caixa}
Este é um texto aleatório.
$$a^2+b^2+c^2=1.$$
\begin{figure}[H]
\centering
\includegraphics[width = 3cm]{logoUFV1}
\caption{Legenda da Figura 01}
\end{figure}

\end{caixa}

\vspace{2cm}

\begin{caixas}
Este é um texto aleatório.
$$a^2+b^2+c^2=1.$$
\begin{figure}[H]
\centering
\includegraphics[width = 3cm]{logoUFV1}
\caption{Legenda da Figura 02}
\end{figure}
\end{caixas}


\begin{caixa}
Este é um texto aleatório.
$$a^2+b^2+c^2=1.$$
\begin{table}[H]
\centering
\begin{tabular}{|c|c|}
  \hline
  $x^2$ & $a^2$ \\
  b & 4 \\
  \hline
\end{tabular}
\caption{Legenda da Tabela 01}
\end{table}

\end{caixa}

\vspace{2cm}

\begin{caixas}
Este é um texto aleatório.
$$a^2+b^2+c^2=1.$$
\begin{table}[H]
\centering
\begin{tabular}{|c|c|}
  \hline
  $x^2$ & $a^2$ \\
  b & 4 \\
  \hline
\end{tabular}
\caption{Legenda da Tabela 02}
\end{table}
\end{caixas}

\end{document}

Att,

Edson Teixeira

unread,
Dec 6, 2024, 12:51:57 PM12/6/24
to late...@googlegroups.com
Muito obrigado, Paulo.

Sua resposta e o link que me enviou me ajudou em outra situação que eu tambeḿ queria resolver.

Reply all
Reply to author
Forward
0 new messages