Mais

Ao editar a anotação vinculada a um recurso com a cor da fonte branca, a anotação desaparece


Ao mover ou editar a anotação, ela desaparece. Estamos editando em um fundo preto, então o texto não está apenas se misturando ao fundo. A tabela de atributos não mostra nenhuma anormalidade, mas a opção "Zoom para Selecionado" está esmaecida. Ele pode ser selecionado na tabela, mas não é exibido na janela de exibição. Alguém tem esse problema? Encontrou alguma solução?


Para o caso de mais alguém se deparar com este problema e parar nesta página. Tentar:

- Reparar a geometria - Reconstruir o índice espacial (use a ferramenta Adicionar Índice Espacial)

O último funcionou para mim quando os recursos em uma classe de anotação desapareceram ao aumentar o zoom.

Boa sorte,

AZ


Programa para fazer anotações de texto em arquivos PDF que estão sempre visíveis?

Estou procurando um programa com o qual eu possa anotar arquivos PDF com texto de forma que este texto esteja sempre diretamente visível.

O Okular funciona bem para sublinhar, realçar, etc. Mas ao usar o Okular para fazer uma anotação de texto, ele desaparece em uma janela pop-up.

Quero fazer anotações de texto que sempre aparecem, sem precisar clicar em algumas janelas pop-up.

Isso é possível no Ubuntu?


Atualizar

Eu apresentei uma recompensa, mas uma resposta correta nunca foi alcançada. Implementei uma solução JS que funciona para mim, mas não vou marcar uma resposta como correta ainda. Se for possível apenas com CSS / HTML, eu ainda adoraria ver. Mas o consenso geral é que atualmente não é possível.

O objetivo

CodePen aqui, snippet executável na parte inferior.

Tenho algum conteúdo HTML que gostaria de anotar com uma pequena mensagem flutuando diretamente acima dele, no lado esquerdo, como anotações & ltruby & gt (mas não exatamente). Pode haver muitos trechos de conteúdo, cada um com suas próprias anotações. O conteúdo deve seguir o fluxo normal de texto. Este é meu HTML atual:

Exemplo de Trabalho

Abaixo, a frase É um pássaro, é um avião, é o Superman! Vá buscar a criptonita tem 4 partes separadas (4 peças de conteúdo), cada uma representada por uma cor diferente. Cada parte do conteúdo tem sua própria anotação, exibida em itálico acima dela.

Eu tenho isso funcionando fazendo com que o conteúdo e a anotação flutuem: para a esquerda e dando à anotação uma margem negativa. Este é o exemplo 1 no CodePen.

Exemplo quebrado 1

O problema ocorre quando a anotação é mais longa do que o conteúdo. Abaixo, a anotação de still no mudou para o mais longo você pode estar certo. As duas linhas de conteúdo continuam a seguir o fluxo embutido normal (conforme desejado), mas como as anotações ainda estão alinhadas na borda esquerda de seu conteúdo, elas se sobrepõem.

Este é o exemplo 2 no CodePen.

Exemplo quebrado 2

Uma solução proposta foi usar uma tabela com visibilidade: recolher para fazer o alinhamento, o que funciona bem na prevenção da sobreposição, mas resulta em espaço extra após as anotações, nos casos em que a anotação começa além da borda esquerda do conteúdo.

Como deveria funcionar

Eu quero que as anotações sigam seu próprio fluxo, mas sem quebrando o fluxo natural embutido do conteúdo. Veja abaixo como a linha de conteúdo ainda é uma única frase ininterrupta, mas sim! é deslocado para a direita para permitir que você tenha todo o espaço de que precisa por muito tempo. Porém, o muahaha corrige de volta, pois tem espaço para sentar diretamente em cima. Vá pegar a criptonita.

Posso alterar o CSS e o HTML para que isso aconteça, mas uma solução somente CSS seria o ideal. Obrigado.


Tive um problema semelhante e descobri que existe um repositório de exemplo que foi criado para demonstrar esse problema aqui. Se esse link não funcionar, verifique minha versão bifurcada aqui

Depois de alguns experimentos aleatórios, descobri que remover android: fitSystemWindows = "true" (attribute) definido no AppBarLayout resolve esse problema. Anexando arquivo de layout fixo e MainActivity para sua referência.

E para sua informação, seu método de configuração definido em NavigationDrawerActivity tenta definir o título na barra de ferramentas, mas de acordo com o guia oficial, você precisa definir o título no CollapsingToolBarLayout em vez da barra de ferramentas. Vou sugerir que você use NavigationView (da biblioteca de suporte de design) em vez de um DrawerFragment personalizado, a menos que você queira adicionar um comportamento sofisticado / personalizado à sua gaveta de navegação.


1 resposta 1

Você está usando ColumnText.showAligned (), que é suficiente para adicionar uma linha de texto sem nenhum recurso especial, mas se quiser que a âncora funcione, será necessário usar ColumnText de maneira diferente.

Isso é mostrado no exemplo AddLinkAnnotation2:

Nesse caso, definimos um retângulo para um objeto ColumnText, adicionamos a frase à coluna e vamos ().

Se você verificar o resultado, link_annotation2.pdf, perceberá que pode clicar nas palavras em negrito.

Não há planos de oferecer suporte a isso em ColumnText.showTextAligned (). Esse é um método de conveniência que pode ser usado como um atalho para as poucas linhas mostradas acima, mas existem algumas limitações conhecidas: as linhas não são quebradas, a interatividade é ignorada.

Atualização 1: na seção de comentários, você fez uma pergunta adicional sobre a rotação do conteúdo e do link.

Girar o conteúdo não é difícil. Há ainda mais de uma maneira de fazer isso. Girar o link não é trivial, pois um link é um tipo de anotação e as anotações não fazem parte do conteúdo.

Vamos primeiro dar uma olhada em AddLinkAnnotation3:

Neste exemplo, definimos uma transformação de 30 graus (Math.PI / 6):

Usamos essa transformação ao renderizar a coluna:

Isso gira o conteúdo, mas não adicionamos nenhuma anotação ainda. Em vez disso, definimos um evento de página:

e introduzimos uma tag genérica:

Para adicionar a anotação, usamos um pouco de mágica na implementação do evento da página:

Criamos uma anotação, mas antes de fazer isso, realizamos uma transformação no retângulo. Isso garante que o texto se ajuste ao retângulo com o texto que precisa ser clicável, mas. isso pode não ser o que você espera:

Você pode querer que o retângulo seja girado, e isso é possível, mas é mais matemática. Por exemplo: você pode criar um polígono que se ajuste melhor: Polígono clicável ITextShape ou caminho

Felizmente, você não precisa de um ângulo de 30 graus, você deseja girar o texto em um ângulo de 90 graus. Nesse caso, você não tem o efeito estranho mostrado na captura de tela acima.

Como você pode ver, adicionei uma única linha para remover a borda (a borda está lá por padrão, a menos que você redefina o PdfBorderArray).

O resto do código também é quase idêntico. Agora definimos um ângulo de Math.PI / 2 (90 graus).

Observe que o canto inferior esquerdo da página é o ponto dinâmico, portanto, precisamos adaptar as coordenadas onde adicionamos a coluna, caso contrário, você girará todo o conteúdo fora da área visível da página.

Em outro comentário, você está perguntando sobre as coordenadas que você precisa usar ao adicionar texto em um sistema de coordenadas girado.

Eu fiz este desenho:

Na parte superior, você adiciona a palavra MÉDIO no meio de uma página, mas não é onde ela aparecerá: você está girando tudo em 90 graus, portanto, a palavra MÉDIO irá girar fora de sua página (na área hachurada). A palavra estará no PDF, mas você nunca a verá.

Se você olhar meu código, verá que uso estas coordenadas:

Isso é fora da área visível (está abaixo das dimensões reais da página), mas conforme giro tudo em 90 graus, ele gira na área visível.

Se você olhar para o meu desenho, você pode ver que a página com as coordenadas (0, 0), (0, -595), (842, -598) e (842, 0) gira 90 graus e, portanto, coincide com uma página com coordenadas (0, 0), (595, 0), (595, 842) e (0, 842). Esse é o tipo de matemática que todos nós aprendemos no ensino médio -)


1 resposta 1

Algumas coisas sobre set_titles.

Primeiro, os títulos padrão são desenhados no método FacetGrid.map, então se você quiser mudar os títulos, você deve chamar set_titles após plotagem, ou então eles serão substituídos.

Em segundo lugar, se você olhar para a docstring do método, ela não pega apenas uma lista arbitrária de títulos. Ele fornece uma maneira de alterar a forma como o título é renderizado usando o nome e o valor da variável da coluna:

Portanto, a maneira mais fácil de ter "texto significativo" é usar dados significativos em seu dataframe. Veja este exemplo com dados aleatórios:

Se você quiser que o "grupo" seja zero e um, você deve apenas alterar essa coluna ou fazer uma nova:

Então diga que você não quer ter o nome da variável no título, a maneira correta de usar FacetGrid.set_titles seria

Se você não quiser alterar os dados que está traçando, terá que definir os atributos nos eixos matplotlib diretamente, algo como:

Observe que isso é menos preferível do que o método acima porque você deve ter muito cuidado ao se certificar de que a ordem de sua lista está correta e que não vai mudar, ao passo que obter as informações do próprio dataframe será muito mais robusto .


Alguns links desaparecem com tcolorboxenvironment para ambientes do tipo teorema

Em um documento de memória de classe de documento de tamanho de livro com cerca de 2 MB de conteúdo de corpo e 140 K de preáveis, cada um distribuído em vários arquivos separados, eu uso cleveref junto com hyperref e o tcolorboxenvironment para criar uma versão colorida de cada ambiente semelhante a um teorema (por exemplo, teorema, proposição, lema) definido por thmtools.

Todos os links cref funcionam bem exceto dois: após o processamento completo, os links estão faltando no documento. Em mais detalhes:

  • após a execução inicial do pdflatex, uma dessas duas entradas de rótulo nunca aparece no arquivo .aux, embora o segundo rótulo apareça
  • após uma execução de biber (ou bibtex) e a segunda execução de pdflatex, o segundo rótulo agora desapareceu!

Se eu não colorir os teoremas, evitando tcolorboxenvironment, então todos os links estão OK! Portanto, o problema parece ter algo a ver com tcolorbox.

Além disso, se eu colorir os teoremas, mas compilar usando xelatex - meu preâmbulo está configurado para permitir isso, mas com fontes diferentes - então os rótulos e links desaparecem de teoremas diferentes do que quando eu uso pdflatex.

Isso parece muito estranho. Infelizmente, não fui capaz de reproduzir o problema se reduzir o conteúdo do corpo apenas às duas seções que contêm os ambientes do tipo teorema cujos rótulos são usados ​​nesses links.

Para o documento real do tamanho de um livro, após a execução inicial do pdflatex, o arquivo .aux inclui os seguintes dois grupos de linhas consecutivas:

  • no primeiro grupo, é a entrada para o rótulo thm-one-pt-cptn que desaparece após a 2ª execução do pdflatex
  • no segundo grupo, uma entrada para o rótulo lem: path-prod deve aparecer logo antes das linhas que contêm mas não.

Aqui está o extrato do .aux:

Uma pista provável (adicionada em 2020-10-18):

Para ambas as instâncias do ambiente semelhante a um teorema particular (modificado por tcolorboxenvironment), cujos rótulos e links desaparecem, o teorema é impresso no topo do corpo da página (abaixo do cabeçalho, é claro). No log, vejo o seguinte:

Esse Aviso tcolorbox não aparece em nenhum outro lugar do log e, correspondentemente, nenhum outro link é afetado!

Solução temporária: Se para cada um dos dois teoremas afetados, movo o comando label para seguir o corpo do teorema em vez de mantê-lo imediatamente após o begin , então o problema desaparece. Claro isso não é uma solução é uma correção temporária muito frágil, porque conforme o conteúdo do documento muda, outros teoremas podem ir para o topo de uma página e causar o mesmo problema.

Explicação provável (não é uma solução!):

Parece que tcolorbox está jogando fora os rótulos de tais teoremas apenas quando eles são impressos no topo da página.

Pergunta: Qual correção será robusta para que tcolorbox não jogue fora o rótulo de um teorema quando o teorema for impresso no topo de uma página?

Fonte de amostra do método usado:

Estou feliz em compartilhar a fonte do meu projeto de livro com qualquer pessoa que possa me ajudar a rastrear esse estranho problema.

Enquanto isso, a fonte abaixo dá uma ideia do que estou fazendo - embora este pequeno exemplo faz compilar sem erros.

Adicionado 2020-10-17: todos os pacotes que o documento real usa

Talvez haja um problema de ordem de carregamento do pacote com meu documento real (embora, se houver, ainda não entendo por que os links ausentes ocorrem apenas com duas instâncias particulares de ambientes semelhantes a teoremas, mas não com outros exatamente do mesmo tipo!) . Assim, reunidos aqui estão todos os pacotes que utilizo no documento real, que os distribui por vários arquivos .sty separados que são inseridos no preâmbulo.


Illustrator: Como dividir o texto ao meio?

Estou tentando criar um texto tachado semelhante ao efeito "marcador através do texto" no ilustrador. Tenho um trecho de texto que converti em contornos e coloquei um retângulo comprido em cima dele. Eu tentei Minus Front, Divide, Clipping Mask e muitas outras coisas, mas não funcionou. A forma inteira desaparece ou fico com áreas que são comuns ao texto e o retângulo que é o oposto do que eu quero. Você pode sugerir como fazer isso? Acredito que o problema seja porque as diferentes formas não se sobrepõem e são um grupo de formas separadas.


5 respostas 5

Como mencionei em meu comentário, a palavra "sobre" é freqüentemente usada como sinônimo da palavra "sobrejetiva". No mesmo espírito, você pode usar "um-para-um" em vez de "injetivo". Veja, por exemplo, o artigo correspondente da Wikipedia.

Editar: Concordo com os comentários de Qiaochu e Jonas de que "um-para-um" é um pouco ambíguo e pode referir-se a uma bijeção. Portanto, é provavelmente melhor manter os termos inequívocos "injetivo" e "sobrejetivo".

Isso também me confundiu na minha primeira aula de álgebra linear. A diferença psicológica entre "sobre" e "sobrejetivo" é que o último só é introduzido como um adjetivo, ao passo que a experiência anterior nos faz querer ler "sobre" como uma preposição. Eu não acho que esse problema surja para "um para um", porque novamente aprendemos essa frase como um adjetivo, então não há nada com que confundir.

O dicionário Oxford English tem numerosas definições da preposição "para", mas a única instância que dá para uso como adjetivo é em matemática.

B. adj.

Matemática. Em forma para. Designando um mapeamento de um conjunto para outro.

A seguir está a primeira citação fornecida para este uso:

1942 S. Lefschetz Algebraic Topol. eu. 7 Se uma transformação é 'para', a imagem inversa do complemento de um conjunto é o complemento da imagem inversa desse conjunto.

Estou confuso com essa citação, pois o resultado é verdadeiro para mapas que não estão em. No entanto, uma rápida pesquisa do livro mostra outros usos do adjetivo "em" no sentido moderno. O próximo é mais adequado:

1951 N. Jacobson Lect. Abstr. Álgebra I. 4 Se α é um mapeamento de S em T, e β é um mapeamento de T em S tal que αβ = $ 1_S $ e βα = $ 1_T $, então α e β são 1−1, em mapeamentos e β = α $ ^ <−1> $.

Onto significa sobrejetivo: cada elemento no espaço alvo está na imagem da função. Formalmente, se $ f: X a Y $ é on, para todos $ y em Y $ podemos encontrar pelo menos um $ x em X $ tal que $ y = f (x) $.

Você realmente ouve esses termos em relação às funções.

Um para um significa o mesmo que injetivo. Onto significa o mesmo que sobrejetivo. Um para um e para significa bijetivo.

Uma função pode ser apenas um ou todos os três.

Para responder à sua pergunta específica, on significa que cada valor do codomínio é mapeado por um membro do domínio.

Considere primeiro o definições do que significa para uma função ser um-para-um ou para (definições adaptadas de John Durbin's Álgebra Moderna):

Um a um: Um mapeamento $ alpha colon S to T $ é dito ser um a um se $ alpha (x_1) = alpha (x_2) quad text quad x_1 = x_2 quad (x_1, x_2 in S), $ isto é, se elementos desiguais no domínio têm imagens desiguais no codomínio.

Para: Se $ alpha colon S to T $ e $ alpha (S) = T $, então $ alpha $ é dito ser para. Assim, $ alpha $ é sobre se para cada $ y em T $ há pelo menos um $ x em S $ tal que $ alpha (x) = y $.

Você pode visualizar a definição acima de para com a seguinte imagem:

$ color< text

>$

Exemplo: Seja $ S = $ e $ T = <1,2,3 > $. Então, um mapeamento $ alpha colon S to T $ pode ser definido por $ alpha (x) = 2, alpha (y) = 1, alpha (z) = 3 $. Outro mapeamento, $ beta colon S to T $, é dado por $ beta (x) = 1, beta (y) = 3, beta (z) = 1 $. O mapeamento $ alpha colon S to T $ se parece com isto:

$ color< text

>$

E o mapeamento $ beta colon S to T $ se parece com isto:

$ color< text

>$

Para $ alpha colon S to T $, podemos ver que este mapeamento está ligado porque cada elemento em $ T $ está sendo mapeado por algum elemento em $ S $:

Mas e quanto a $ beta colon S to T $? Este mapeamento é para? Você pode ver por que não? Considere o seguinte:

Para que $ beta colon S to T $ seja ativado, cada elemento em $ T $ deve ser mapeado por algum elemento em $ S $. Infelizmente, como podemos ver acima pela parte destacada em vermelho, nenhum elemento em $ S $ mapeia de fato para $ 2 $ que está em $ T $. Assim, $ beta $ não é um mapeamento on.

Raciocínio semelhante mostrará que $ alpha $ é um para um, mas $ beta $ não. Tudo faz sentido agora?


2 respostas 2

As curvas no gimp também podem fazer o truque para você, conforme mostrado no próximo exemplo. Mas se você estiver procurando por uma ferramenta de correção de lote automatizada, posso sugerir outra coisa além de salvar as curvas / níveis predefinidos (usando o botão "+" ao lado da caixa de combinação "Predefinições") e você poderá aplicar rapidamente as mesmas curvas / níveis a todas as suas imagens.

Capturas de tela fornecidas para sua conveniência:

Gimp em ação com curvas fazendo a correção.

As curvas aplicadas à imagem final.

A imagem após o processo de curvas.

Nota: Neste exemplo, as curvas são definidas para uma condição agressiva que faz com que as imagens pareçam mais escuras, é por isso que ainda existem muitos detalhes indesejados na imagem, diferentes dos resultados que @falstaff forneceu em seu exemplo. Você pode ajustá-lo para obter os mesmos resultados, mas eu queria fornecer um exemplo diferente. Obrigado pela sua compreensão.